<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > VxWorks下ComPactPCI總線(xiàn)驅動(dòng)程序設計

VxWorks下ComPactPCI總線(xiàn)驅動(dòng)程序設計

作者: 時(shí)間:2009-08-10 來(lái)源:網(wǎng)絡(luò ) 收藏

  引言

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

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

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

BSP與VxWorks之間的關(guān)系

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

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

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

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

  (1)PCI Initiator數據傳輸模式 主控模式,LOCAL總線(xiàn)主設備通過(guò)QL5064訪(fǎng)問(wèn)PCI總線(xiàn)存儲空間和I/O空間;

  (2)PCI Target數據傳輸模式PCI總線(xiàn)主設備通過(guò)QL5064訪(fǎng)問(wèn)LOCAL總線(xiàn)存儲空問(wèn)和I/O空間;

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

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

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

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

空間頭標區的定義

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

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

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

  在VxWorks操作系統下實(shí)現ComPactPCI總線(xiàn)設備的驅動(dòng)過(guò)程主要包括下面步驟:

  (1)查找CompaetPCI設備在VxWorks操作系統中通過(guò)函數peiFindDeviee()來(lái)實(shí)現,該函數可根據給定的設備標識和供應商代碼找到相應的設備。并返回總線(xiàn)號、設備號以及功能號。函數的定義如下:

  程序)

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

  5 中斷的響應與控制

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

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

程序

  如果要禁止該設備的中斷響應,可以給QL5064的寄存器寫(xiě)入0x0f000000即可。

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

程序

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

  6 結束語(yǔ)

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>