當前位置:首頁 > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術》雜志
[導讀]摘要:PCI總線已經(jīng)成為工業(yè)控制計算機中的主流總線結構,文中給出了采用PCI總線的DMA方式來實現(xiàn)大量高速數(shù)據(jù)捕獲,包括DMA數(shù)據(jù)傳輸和突發(fā)數(shù)據(jù)傳輸?shù)膶崿F(xiàn)方法。該方法的驅(qū)動程序采用WinDriver驅(qū)動開發(fā)平臺,并借助PCI設備操作函數(shù)的動態(tài)鏈接庫,使Windows驅(qū)動程序的開發(fā)更加容易,縮短了驅(qū)動程序開發(fā)與調(diào)試周期,并可方便地應用于其它PCI設備的控制。

引言

隨著ISA總線逐步被淘汰,基于PCI總線的擴展板越來越被廣泛地應用于各種高速、大數(shù)據(jù)量的處理系統(tǒng)中。盡管有許多供應商提供了各種通用的PCI總線擴展板,但在較多應用場合,用戶還必須自行設計能滿足自己特殊需求的PCI擴展板,這就不可避免地會遇到PCI總線接口問題。對于絕大多數(shù)用戶而言,選擇專用PCI接口芯片進行PCI接口設計是必然的選擇。PCI9054是PLX公司推出的一種32位33MHz的PCI總線主控I/O加速器。它采用多種先進技術,使復雜的PCI接口應用設計變得相對簡單。該芯片是目前主流的PCI接口芯片之一。

1  PCI9054的工作模式及DMA處理機制

PCI是外圍設備互連(PeripheralComponentInterconnect)的簡稱,它是一種通用總線接口標準。PCI提供了一組完整的總線接口規(guī)范、電氣特性和行為規(guī)約,通過該規(guī)范,計算機系統(tǒng)中的外圍設備能夠?qū)崿F(xiàn)結構化、可控化的連接以及正確地進行交互。PCI設備上有三種地址空間:I/O空間、存儲空間和配置空間。其中配置空間的信息主要包括設備識別號、供應商代碼號、Local總線三個空間的大小以及三個空間的基址等。

在計算機啟動時,系統(tǒng)將根據(jù)配置信息分配系統(tǒng)資源。CPU可以訪問PCI設備上的所有地址空間,其中I/O空間和存儲空間提供給設備驅(qū)動程序使用,而配置空間則由操作系統(tǒng)內(nèi)核中的PCI初始化代碼使用。PCI總線接口因其傳輸速度快、即插即用、自動配置的優(yōu)點而成為實現(xiàn)數(shù)據(jù)采集設備到主機之間接口的首選。

PCI9054是PLX公司生產(chǎn)的PCI總線接口控制器芯片,符合PCIV2.2規(guī)范,32位,工作頻率為33MHz,擁有兩個獨立的DMA通道,傳輸速率達132MB/s。PCI9054提供有PCI總線、EEPROM、LOCAL總線三個接口,其中LOCAL總線有三種工作模式:M模式、C模式和J模式,可通過模式選擇控制引腳MODE[1:0]進行控制。當MODE[1:0]為“11”時,PCI9054工作在M模式;當MODE[1:0]為"00"時,PCI9054工作在C模式;當MODE[1:0]為“01”時,PCI9054工作在J模式;當MODE[1:0]為“10”時,保留工作狀態(tài)。M模式可與Motorola公司的MPC850或MPC860系列高性能微處理器進行無縫連接;C模式可與Inteli960系列高性能微處理器進行無縫連接;J模式地址和數(shù)據(jù)線可以復用,但應用很復雜,不過在一些特殊的應用場合,利用J模式可以和TI公司6000系列DSP的HPI口進行接口,其控制邏輯將比其它模式簡單得多。

在實際的數(shù)據(jù)采集時,LOCAL總線接口一般設置為C模式。PCI9054芯片在PCI總線和LO-CAL總線之間有三種直接的數(shù)據(jù)傳輸模式,其中,在PCIInitiator模式,LOCAL總線主設備可通過PCI9054訪問PCI總線存儲空間和I/O空間;在PCITarget模式,PCI總線主設備可通過PCI9054訪問LOCAL總線存儲空間和I/O空間;而在DMA方式,PCI9054作為兩總線的主設備,可實現(xiàn)PCI總線存儲空間與LOCAL總線存儲空間之間的數(shù)據(jù)傳輸。

在PCI9054中,DMA傳輸主要用于PCI總線與LOCAL總線間的數(shù)據(jù)傳輸,此時,PCI9054將接管兩總線的控制權,可進行兩個方向的數(shù)據(jù)傳輸。和DMA操作相關的寄存器包括:DMA模式寄存器(DMAMODE)、PCI基地址寄存器(DMAPADR)、LOCAL基地址寄存器(DMALADR),傳輸大小寄存器(DMASIZ)和描述符指針寄存器(DMADPR)o

通過這些寄存器的操作,就可以實現(xiàn)PCI到LOCAL或LOCAL到PCI的DMA數(shù)據(jù)傳輸。但是,這只是在硬件上的實現(xiàn),而要在Windows操作系統(tǒng)上進行操作,還必須具有相應的驅(qū)動程序支持。

2  DMA方式數(shù)據(jù)傳輸

雖然DriverWorks已設計好了程序框架,但其流程較為復雜。下面簡要介紹如何編寫DMA的WDM驅(qū)動程序。DriverWorks提供了三個類:kd--maAdapter、KDmaTransfer和KCommonDmaBuffer類,可用于實現(xiàn)DMA操作。其中,KDmaTransfer類用來管理和操縱DMA傳送,它能夠管理所有類型的DMA傳送操作;KDmaAdapter類用于建立一個DMA適配器,以說明DMA通道的特性,描述DMA傳送類型。例如,是總線主設備DMA還是系統(tǒng)DMA?如果是系統(tǒng)DMA,還有使用哪個DMA通道,DMA通道的寬度是8b還是16b等?而Kcom-monDmaBuffer類用于申請系統(tǒng)提供的公用緩沖區(qū)。利用上述幾個類來編寫DMA驅(qū)動程序的步驟如下:

(1) 創(chuàng)建一個KDmaAdapter類的實例,并且正確地描述要進行的DMA信息。

(2) 決定驅(qū)動程序使用的內(nèi)存類型是“Packet”還是“CommonBuffer”。DMA傳送可以使用Com-monBuffer暫時存放所要傳送的數(shù)據(jù)。CommonBuffer是由系統(tǒng)預先分配的一塊物理地址連續(xù)的內(nèi)存區(qū)域,處理器和設備都能對它進行訪問。Kcom-monDmaBuffer類可對CommonBuffer進行描述。另外一種方法是使用MDL(MemoryDescriptorList)描述的內(nèi)存區(qū)域來作為DMA傳送數(shù)據(jù)的源與目標,這種方法被稱為"PacketDMA”;

(3) 創(chuàng)建—KDmaTransfer類的實例,并使用成員函數(shù)Initiate給實例加入一個回調(diào)函數(shù)(callbackfunction)。

(4) 編寫上面所說的回調(diào)函數(shù)。當一次DMA傳送由于硬件設備的限制或由于緩沖區(qū)容量大小的限制而不得不分成多段傳送時,回調(diào)函數(shù)將會被多次調(diào)用。它首先通知設備開始進行傳送,然后立即返回,而并不是等待傳送結束再返回。

(5) 編寫代碼來處理分段傳送結束。驅(qū)動程序應能判定何時DMA傳送的一個分段傳送結束。驅(qū)動程序必須調(diào)用成員函數(shù)Continue來通知傳送對象當前分段已傳送完畢,如果整個DMA傳送還未完成,它會設置下一次傳送,并調(diào)用回調(diào)函數(shù)。DMA數(shù)據(jù)傳輸?shù)某绦蛄鞒虉D如圖1所示。

基于PCI9054的DMA和突發(fā)數(shù)據(jù)傳輸實現(xiàn)

3  DMA和突發(fā)數(shù)據(jù)傳輸

在《PCI9054-DataBook》中,每種工作模式都將DMA和突發(fā)數(shù)據(jù)傳輸?shù)臅r序圖放在一起,這并不意味著DMA和突發(fā)數(shù)據(jù)傳輸是等同的,這是兩個不同的概念。事實上,既可利用一周期的總線操作,也可以利用DMA方式進行數(shù)據(jù)傳輸。

DMA和突發(fā)數(shù)據(jù)傳輸?shù)淖饔貌煌?。PCI9054中有兩個DMA通道,可以獨立工作,互不干擾。釆用DMA方式傳輸數(shù)據(jù)可以節(jié)省CPU資源;而采用突發(fā)方式傳輸數(shù)據(jù)可以提高數(shù)據(jù)的傳輸率,充分發(fā)揮PCI總線數(shù)據(jù)傳輸速率高的優(yōu)點。因此,在高速大容量數(shù)據(jù)傳輸和處理系統(tǒng)中,將DMA和突發(fā)數(shù)據(jù)傳輸方式結合在一起是比較理想的,這樣一方面可以充分發(fā)揮PCI總線的性能,另一方面,也可以用節(jié)省出的CPU資源對數(shù)據(jù)處理算法進行優(yōu)化。用狀態(tài)機實現(xiàn)該控制邏輯是比較理想的-PCI9054在C模式下,釆用單一周期和突發(fā)相結合的總線訪問狀態(tài)轉(zhuǎn)換程序流程圖如圖2所示。

基于PCI9054的DMA和突發(fā)數(shù)據(jù)傳輸實現(xiàn)

用該狀態(tài)轉(zhuǎn)換圖設計出的邏輯電路,既可滿足單一周期總線訪問的需要,又可以滿足突發(fā)方式傳輸數(shù)據(jù)的需要,因而具有很大的實用價值。使用DMA和突發(fā)方式相結合進行數(shù)據(jù)傳輸時,其驅(qū)動程序應作如下設置:

(1) 調(diào)用驅(qū)動程序中相應的API函數(shù),找到PC機的物理地址;

(2) 在設備驅(qū)動程序中使能突發(fā)寄存器;

(3) 在設備驅(qū)動程序中使能總線位寬寄存器;

(4) 在設備驅(qū)動程序中使能相應的寄存器,指明DMA傳輸?shù)姆较蚴荘CI—LOCAL還是LOCAL

—PCI;

       (5) 在設備驅(qū)動程序中指明本次DMA傳輸需要傳輸?shù)淖止?jié)數(shù)。

完成上述設置后,即可在突發(fā)方式下進行DMA傳輸,否則,DMA傳輸就會失敗。

4  結論

計算機接口技術的變化主要是由以前的以基本接口設計為中心轉(zhuǎn)變?yōu)橐訮CI總線相關技術為中心。在8/16位的系統(tǒng)環(huán)境下,硬件擴展卡的設計主要是面向ISA總線,所有的可用資源都是固定不變的;在編程方面是直來直去,并沒有什么保護措施。而在32位系統(tǒng)環(huán)境下,所有的資源都是動態(tài)分配的,而且在設計擴展卡時,并不是直接與系統(tǒng)打交道,而是要經(jīng)過多次的邏輯轉(zhuǎn)換。對于軟件的設計,也需要編寫32位程序,并且需要經(jīng)過不同層次的軟件設計。

DMA通信高度依賴操作系統(tǒng)、硬件特性和資源。在實現(xiàn)DMA通信的過程中,其項目要求、DMA本身的特點、操作系統(tǒng)提供的支持、具體硬件特性以及系統(tǒng)資源之間是相互作用的。DMA環(huán)境的建立過程,就是各部分相互協(xié)調(diào)、互為支持的過程。DMA編程必須充分了解控制芯片所提供的手段和限制,這些手段和限制是實現(xiàn)DMA的基礎。實現(xiàn)DMA通信,需要處理的主要問題有:DMA緩沖區(qū)的物理連續(xù)問題、PCI設備檢測和初始化問題、緩沖區(qū)的大小問題、PCI設備信息的收集問題等。

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

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

關鍵字: 阿維塔 塞力斯 華為

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

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

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

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

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

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

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

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

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

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

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

關鍵字: BSP 信息技術
關閉
關閉