當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]引言VxWorks是美國Wind River公司專門為嵌入式處理器設(shè)計的一種模塊化、高性能的實時多任務(wù)操作系統(tǒng)。嵌入式軟件多采用交叉開發(fā)的方式,即主機運行開發(fā)工具Tonado,通過某

引言

VxWorks是美國Wind River公司專門為嵌入式處理器設(shè)計的一種模塊化、高性能的實時多任務(wù)操作系統(tǒng)。嵌入式軟件多采用交叉開發(fā)的方式,即主機運行開發(fā)工具Tonado,通過某種連接方式連接目標(biāo)機,硬件平臺為PC/104+架構(gòu)。這里提出一種VxWorks操作系統(tǒng)下ComPactPCI總線驅(qū)動程序的設(shè)計及實現(xiàn)。該設(shè)計使用德國Kontron DT-64,它是一款高性能嵌入式計算機。采用Dual PentiLim 3 CPU,工作頻率高達866 MHz,具有128 KB一級高速緩存和128 KB二級高速緩存。KontronDT-64與PC/AT標(biāo)準(zhǔn)完全兼容,并遵從PC/104+標(biāo)準(zhǔn)。具有PC/104結(jié)構(gòu)的優(yōu)點,適用于各種復(fù)雜的工作環(huán)境。

2 BSP與VxWorks的關(guān)系

板級支持包BSP(board support packet)通常是針對具體的硬件平臺,是用戶所編寫的啟動代碼和部分設(shè)備驅(qū)動程序的集合。在VxWorks操作系統(tǒng)中,BSP是介于底層硬件環(huán)境和 VxWorks之間的一個軟件接口,它的主要功能是系統(tǒng)加電后初始化目標(biāo)機硬件、初始化操作系統(tǒng)及提供部分硬件的驅(qū)動程序。BSP與VxWorks之間的關(guān)系如圖1所示。從圖1發(fā)現(xiàn),BSP不是一個設(shè)備驅(qū)動程序。它只能運行于指定設(shè)備的硬件環(huán)境中,對其進行控制和初始化。這里主要闡述在PCM發(fā)送,接收模塊的設(shè)計過程中,如何利用DT-64 BSP來實現(xiàn)PCI總線的驅(qū)動程序。

 


3 總線及接口技術(shù)

由于CompactPCI規(guī)范定義基于PCI總線方式的復(fù)印加堅固而耐用的PCI版本,并且適用于工業(yè)和嵌入式應(yīng)用,本設(shè)計采用此規(guī)范。CompactPCI總線是3種技術(shù)的集成:通用PCI局部總線(Local Bus)的高性能,安裝牢固的歐卡結(jié)構(gòu),接觸可靠的針孔連接器(pin-antl-soeket connector)。

PCI局部總線是一種地址和數(shù)據(jù)復(fù)用的高性能32,64位總線,它在高度集成的外圍控制器件、外圍插件板和處理器/存儲器之間起連接作用。 PCI總線為CPU和板上外設(shè)提供了方便的高速通信連接,工作頻率為66 MHz或更高。PCI作為一種同步的、獨立于處理器的32 bit或64 bit局部總線,在工作頻率為33 MHz總線寬度為32 bit最低規(guī)格時其峰值吞吐速率可達到132 MB/s,適用于網(wǎng)絡(luò)適配器、硬盤驅(qū)動器、視頻卡、圖形卡等各類高速外設(shè)。連接到PCI總線上的設(shè)備分為主控和目標(biāo)兩類,PCI支持多主系統(tǒng)。PCI總線的一個重要特點是存在配置空間,它提供一種配置關(guān)聯(lián),適合于目前或?qū)淼南到y(tǒng)配置機制,實現(xiàn)參數(shù)自動配置。系統(tǒng)軟件通過讀取配置空間中相應(yīng)參數(shù),即可確定 PCI總線上掛接了什么設(shè)備以及需要哪些資源,通過對地址空間的重定位分配資源避免競爭,實現(xiàn)PCI設(shè)備的即插即用。

連接到PCI總線的用戶功能板卡需要使用PCI總線接口控制器和PCI總線進行交互,在應(yīng)用系統(tǒng)設(shè)計時采用OL5064器件。QL5064是一款32 bit/33 MHz的通用PCI總線控制器,符合PCI規(guī)范2.2版,本突發(fā)傳輸速率達到132 MB/s。可作為PCI總線的主控設(shè)備控制總線,也可作為目標(biāo)設(shè)備響應(yīng)總線。Ql5064提供了PCI總線、E2ROM、LOCAL總線3個接口。 LOCAL總線支持復(fù)用/非復(fù)用的32 bit地址/數(shù)據(jù),有3種工作模式:M、C和J。在系統(tǒng)實際數(shù)據(jù)采集時,將LOCAl總線設(shè)置為C模式,這是一種目標(biāo)設(shè)備模式。選用NM93CS56L型串行E2PROM作為QL5064的配置器件,該器件通過E2ROM接口和QL5064相連。QL5064的長配置方式要求68個字節(jié)的信息,主要包括:設(shè)備識別號、供應(yīng)商代碼號、LO-CAL總線3個空間的性質(zhì)、范圍以及基址等,這些配置信息內(nèi)容一般要預(yù)先設(shè)計并用編程器事先寫入配置器件中。在計算機啟動時,系統(tǒng)將根據(jù)配置信息分配器件所申請的資源。Q155064作為一種橋接器件,在PCI總線和LOCAL總線之間有3種主要數(shù)據(jù)傳輸模式:

(1)PCI Initiator數(shù)據(jù)傳輸模式 主控模式,LOCAL總線主設(shè)備通過QL5064訪問PCI總線存儲空間和I/O空間;

(2)PCI Target數(shù)據(jù)傳輸模式PCI總線主設(shè)備通過QL5064訪問LOCAL總線存儲空問和I/O空間;

(3)DMA數(shù)據(jù)傳輸模式QL5064作為兩總線的主設(shè)備,從PCI總線存儲空間讀數(shù)據(jù)到LOCAL總線存儲空間或者從LOCAL總線存儲空間讀數(shù)據(jù)到PCI總線存儲空間。在系統(tǒng)設(shè)計中,使用PCI Target數(shù)據(jù)傳輸模式讀寫控制模塊中的寄存器。

4 設(shè)備的配置技術(shù)

VxWorks是專門為實時嵌人式系統(tǒng)設(shè)計開發(fā)的操作系統(tǒng)軟件,提供高效的實時任務(wù)調(diào)度、中斷管理、實時的系統(tǒng)資源分配以及實時的任務(wù)間通信。程序員可將主要精力放在應(yīng)用程序本身,而不用關(guān)心對系統(tǒng)資源的管理。

為闡明在VxWorks操作系統(tǒng)下如何實現(xiàn)CompaetPCI總線設(shè)備的驅(qū)動,需了解PCI設(shè)備的配置寄存器空間。PCI設(shè)備有3種物理存儲空間:配置寄存器空間、存儲器空間和I/O空間。PCI局部總線設(shè)備中配置寄存器空間是一容量為256 KB并具有特定記錄結(jié)構(gòu)的地址空間,該空間分為頭標(biāo)區(qū)和設(shè)備有關(guān)區(qū)兩部分,空間頭標(biāo)區(qū)的定義如圖2所示。

 


在配置空間中,只讀空間有設(shè)備標(biāo)識、供應(yīng)商代碼、修改版本、分類代碼以及頭標(biāo)類型。其中供應(yīng)商代碼用來標(biāo)識設(shè)備供應(yīng)商;設(shè)備標(biāo)識用來標(biāo)識某一特殊的設(shè)備;修改版本標(biāo)識設(shè)備的版本號;分類代碼用來標(biāo)識設(shè)備的種類;而頭標(biāo)類型用來標(biāo)識頭類型以及是否為多功能設(shè)備。除供應(yīng)商代碼之外,其他字段的值由供應(yīng)商分配。

PCI設(shè)備可以在地址空間中重定位是其重要功能之一,使得系統(tǒng)可合理地分配資源,甚至完全相同的兩塊PCI卡也能夠在同一總線內(nèi)工作而不會產(chǎn)生地址沖突?;刂芳拇嫫鞯墓δ苁欠峙銹CI設(shè)備的系統(tǒng)地址空間,在基地址寄存器中,位0(最低位)均為只讀位并且用來標(biāo)識是存儲器空間還是I/O地址空間。如果該位為0,表示映射到存儲器空間。映射到I/O空間的基址寄存器寬度總是32 bit,其中位0值為1 (用硬件實現(xiàn)),位1為保留位并且其讀出值必須為0,其余各位用來把設(shè)備映射到I/O空間。映射到存儲器空間的基址寄存器可以是32 bit寬度,也可以是64 bit寬度。其中位0也要用硬件方式使其恒為0。位2和位1兩位用來表示映射類型,其余各位用來將設(shè)備映射到存儲器空間。[!--empirenews.page--]

系統(tǒng)配置軟件通過向基址寄存器寫入全“1”后再讀回的方式確定設(shè)備要求的地址空間范圍,與地址空間無關(guān)的位其返回值為0。

在VxWorks操作系統(tǒng)下實現(xiàn)ComPactPCI總線設(shè)備的驅(qū)動過程主要包括下面步驟:

(1)查找CompaetPCI設(shè)備在VxWorks操作系統(tǒng)中通過函數(shù)peiFindDeviee()來實現(xiàn),該函數(shù)可根據(jù)給定的設(shè)備標(biāo)識和供應(yīng)商代碼找到相應(yīng)的設(shè)備。并返回總線號、設(shè)備號以及功能號。函數(shù)的定義如下:

 


)

(2)配置CompactPCI設(shè)備 通過操作系統(tǒng)提供的API函數(shù)訪問CompactPCI設(shè)備的配置空間,配置CompactPCI設(shè)備基址寄存器、中斷、ROM基地址寄存器等,可得到 Compact-PCI的仔儲器空間和I/O地址空間映射、設(shè)備的中斷號等。在VxWorks操作系統(tǒng)中訪問CompactPCI設(shè)備配置空間的函數(shù)有 pciConfigInLong()、pciConfigOutLong()等,它們分別完成對CompactPCI設(shè)備配置空間的讀寫操作。這一系列操作也稱為PCI設(shè)備枚舉。然后,根據(jù)CompactPCI設(shè)備的配置參數(shù),對不同的設(shè)備編寫初始化程序、中斷服務(wù)程序以及對PCI設(shè)備存儲空間的訪問程序。

5 中斷的響應(yīng)與控制

硬件中斷處理是實時系統(tǒng)設(shè)計的關(guān)鍵環(huán)節(jié),系統(tǒng)通過中斷與外部事件交互。為了獲得盡可能快的中斷響應(yīng)時間,Vx-Works的中斷處理程序需要運行在特定的上下文中,也就是在所有任務(wù)上下文之外。因此,中斷處理不會涉及任何任務(wù)上下文的切換。QL5064接幾器件的寄存器序列巾有一個中斷控制/ 狀態(tài)寄存器,其偏移地址為0x68H。該寄存器可以使能或禁止CompactPCI總線的中斷,因此在系統(tǒng)進行中斷服務(wù)程序的配置時,必須設(shè)定該寄存器的內(nèi)容,否則系統(tǒng)不能正常響應(yīng)中斷&nBSP; 在VxWorks系統(tǒng)下可以使用pciIntConnect()函數(shù)將中斷和特定的C程序連接起來,該函數(shù)將指定的C函數(shù)與中斷向量相聯(lián)系,甬?dāng)?shù)的地址將存儲在這個中斷向量里。所以當(dāng)中斷發(fā)生時,系統(tǒng)將調(diào)用這個被稱為中斷服務(wù)程序的函數(shù)。因此,cPCI設(shè)備的中斷響應(yīng)設(shè)置主要有兩點:

(1)調(diào)用pciIntConnect()函數(shù)設(shè)置中斷服務(wù)程序,該函數(shù)的定義如下:

 


如果要禁止該設(shè)備的中斷響應(yīng),可以給QL5064的中斷控制寄存器寫入0x0f000000即可。

中斷服務(wù)程序ISR負(fù)責(zé)協(xié)凋系統(tǒng)的采集任務(wù),在系統(tǒng)設(shè)計時采用信號量的方式實現(xiàn)任務(wù)間的同步,因此ISR的程序非常簡單,只給出和特定中斷事件相關(guān)的信號量即可。舉例如下:

 


VxWorks信號量是提供任務(wù)間通信、同步和互斥的最優(yōu)選擇,它提供任務(wù)問的最快速通信,也是提供任務(wù)間同步和互斥的主要手段。對于同步,信號量可以協(xié)調(diào)外部事件與任務(wù)的執(zhí)行。通用二進制信號量能夠滿足兩種類型的任務(wù)協(xié)調(diào)需要:互斥與同步。二進制信號量需要的系統(tǒng)開銷小,因而適用于高性能的需求。二進制信號量可以看成一個標(biāo)記:對應(yīng)的資源是可用f滿)還是不可用(空)。當(dāng)任務(wù)調(diào)用函數(shù)semTake()取一個信號量時,其結(jié)果依賴于在調(diào)用的時刻信號量是否可用。如果此時信號量可用,調(diào)用semTake()的結(jié)果使信號量變?yōu)椴豢捎?,任?wù)繼續(xù)執(zhí)行;如果此時信號量不可用,調(diào)用semTake() 的任務(wù)進入一個阻塞隊列,進入等待狀態(tài)該信號量變?yōu)榭捎米枞麪顟B(tài)。通過信號量來同步整個系統(tǒng)中數(shù)據(jù),可保證系統(tǒng)運行的實時性和可靠性。

6 結(jié)束語

采用上述控制技術(shù),在系統(tǒng)中成功實現(xiàn)控制驅(qū)動對多種CompactPCI板卡以及DSP信號處理板、高速A/D通道、低速A/D轉(zhuǎn)換通道、計數(shù)器通道等均能正常工作。達到系統(tǒng)設(shè)計要求,因此可說明VxWorks系統(tǒng)CompactPCI總線的驅(qū)動與控制方法可行,保證系統(tǒng)實時數(shù)據(jù)采集的可靠性。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉