當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化
[導(dǎo)讀]隨著計算機技術(shù)的發(fā)展,以及大數(shù)據(jù)量交互的需要,硬件系統(tǒng)對PC總線傳輸速率、數(shù)據(jù)完整性提出了越來越高的應(yīng)用要求。傳統(tǒng)的PCI總線技術(shù)雖然經(jīng)過不斷的改進,開發(fā)出64b,66MHz的并行協(xié)議PCI-X標準,但由于并行總線整體設(shè)

隨著計算機技術(shù)的發(fā)展,以及大數(shù)據(jù)量交互的需要,硬件系統(tǒng)對PC總線傳輸速率、數(shù)據(jù)完整性提出了越來越高的應(yīng)用要求。傳統(tǒng)的PCI總線技術(shù)雖然經(jīng)過不斷的改進,開發(fā)出64b,66MHz的并行協(xié)議PCI-X標準,但由于并行總線整體設(shè)計難度以及造價高昂,主流的PCI技術(shù)已經(jīng)成為限制數(shù)據(jù)傳輸系統(tǒng)性能發(fā)揮的瓶頸[1-2].因此,第3代I/O技術(shù)PCIExpress總線標準一經(jīng)推出即成為取代PCI總線的下一代標準,并得到迅速的發(fā)展。

PCIExpress總線利用串行的連接特點能輕松的將數(shù)據(jù)整體傳輸速度提到一個更高的頻率,達到遠遠超出以往PC總線的傳輸速度,同時保證了數(shù)據(jù)的完整性[2].PCIExpress連接采用點對點差分傳輸,可以被配置成最高x32的數(shù)據(jù)帶寬,其中PCIExpressGen2.0標準的x1通道傳輸能力達到單向5Gb/s.PCIExpress總線設(shè)備可以通過主機橋接器芯片進行基于主機的傳輸,也可以通過交換器進行多點傳輸,這極大的拓展了PC總線的開發(fā)靈活性。Xilinx公司的Virtex-6系列FPGA芯片內(nèi)嵌了PCIExpress協(xié)議硬核,支持x1,x2,x4和x8通道傳輸,為實現(xiàn)PCIExpress總線解決方案單片集成提供了可能[3].

本文在研究PCIExpress協(xié)議標準及其接口技術(shù)的基礎(chǔ)上,設(shè)計了基于Virtex-6FPGA芯片的PCIExpress高速數(shù)據(jù)采集卡,實現(xiàn)了外部系統(tǒng)與PC的數(shù)據(jù)交互。

1系統(tǒng)總體設(shè)計

PCIExpress采集系統(tǒng)組成框圖如圖1所示。

系統(tǒng)整體框圖

圖1系統(tǒng)整體框圖

采集系統(tǒng)以FPGA作為采集卡的控制核心,外部數(shù)據(jù)經(jīng)數(shù)據(jù)接口傳入FPGA,FPGA通過內(nèi)部邏輯對高速數(shù)據(jù)進行必要的時序控制和相關(guān)處理后將數(shù)據(jù)存儲到片外的SDRAM進行緩存,然后采集卡在總線主控DMA控制器的控制下,通過PCIEx8通道將緩存的數(shù)據(jù)寫入計算機內(nèi)存[4].上位機由驅(qū)動軟件識別PCI Express采集卡,并設(shè)置DMA控制寄存器,通過上層應(yīng)用軟件接收硬件電路發(fā)送到內(nèi)存的數(shù)據(jù),并在每次傳輸結(jié)束是處理中斷。采用DMA模式傳輸實現(xiàn)了在實時數(shù)據(jù)高速采集的同時,不影響上位機對數(shù)據(jù)的處理工作,不僅提高了采集系統(tǒng)整體的采集速度,也保證了數(shù)據(jù)質(zhì)量,以及測試分析完整性。

數(shù)據(jù)接口模塊完成外部數(shù)據(jù)的差分接收,這有利于保證高速數(shù)據(jù)的傳輸質(zhì)量。Virtex-6FPGA實時接收差分信號,并在DataProcessor模塊中進行解碼然后根據(jù)一定時序通過高速FIFO緩存送入外部SDRAM存儲模塊。PCIExpressIPCore為Virtex-6FPGA內(nèi)部集成協(xié)議硬核,完成數(shù)據(jù)的分層打包,DMA控制器作為PCIExpress總線傳輸?shù)闹骺?,實現(xiàn)了DMA方式傳輸。

2采集卡硬件設(shè)計

2.1基于IPCore的PCIExpress接口設(shè)計

本采集卡采用Xilinx公司的Virtex-6系列FPGA芯片作為核心控制器。該款FPGA中內(nèi)置了PCIExpress集成模塊和RocketIOGTP收發(fā)器,提供了符合《PCIExpress基本規(guī)范v2.0》的PCI-E解決方案,單通道最高設(shè)計速度[5]達到5Gb/s.根據(jù)PCI-E總線的分層模型,Virtex-6集成端點模塊提供事務(wù)層(TL)、數(shù)據(jù)鏈路層(DLL)、物理層(PHYMAC)以及配置空間所具有的全部功能。通過使用Xilinx公司提供的PCIExpress LogiCOREIPEndpointBlockPlus核,可實現(xiàn)符合PCI-E總線協(xié)議的數(shù)據(jù)傳輸[6].EndpointBlock Plus核在內(nèi)部例化了Virtex-6集成端點模塊,實現(xiàn)了集成端點模塊和GTP收發(fā)器之間的數(shù)據(jù)傳輸。集成硬核頂層模塊接口組成如圖2所示。

Xilinx公司所提供的PCIExpress解決方案,遵守了PCIE分層協(xié)議標準,從完成對接收的數(shù)據(jù)進行分層打包,通過PCIE接口與計算機通信。分層傳輸過程如圖3所示。

其中處理層主要是接受從軟件層送來的讀寫請求,并且建立一個請求包傳輸?shù)綌?shù)據(jù)鏈路層。作為事務(wù)層和物理層之間的接口,數(shù)據(jù)鏈路層通過維護鏈路活躍狀態(tài)信息、流控制初始化和流控制來確保數(shù)據(jù)的完整性、數(shù)據(jù)包的有序性和數(shù)據(jù)傳輸?shù)目煽啃浴N锢韺游挥赑CIE結(jié)構(gòu)的最底層,主要實現(xiàn)鏈路的建立、通路的分配、時鐘的編碼和并行數(shù)據(jù)與串行數(shù)據(jù)的之間的轉(zhuǎn)換。

在初始化階段,在無需固件或操作系統(tǒng)軟件的介入下,物理層建立狀況狀態(tài)機通過檢測、配置和輪詢來協(xié)商可用的通道數(shù)目和雙方的工作頻率。

集成硬核頂層模塊接口組成框圖

圖2集成硬核頂層模塊接口組成框圖

3PCIExpress分層傳輸過程

圖3PCIExpress分層傳輸過程

2.2高速傳輸實現(xiàn)

作為采集卡數(shù)據(jù)傳輸主控,F(xiàn)PGA內(nèi)部實現(xiàn)了高速數(shù)據(jù)傳輸DMA控制操作。為了接收上位機發(fā)出的DMA控制命令,系統(tǒng)首先必須分配一定大小的FPGA內(nèi)部BlockRAM用作DMA控制寄存器,在驅(qū)動程序的映射下,該BlockRAM在采集卡插入系統(tǒng)是會被映射到主機內(nèi)存空間,于是主機只需訪問映射好的內(nèi)存空間即可實現(xiàn)對FPGA內(nèi)部控制寄存器的訪問。

當(dāng)系統(tǒng)啟動傳輸時,上位機首先將DMA傳輸?shù)哪康牡刂穼懭胂鄳?yīng)的DMA控制寄存器。在接收到采集命令后,采集卡開始接收外部數(shù)據(jù),并對數(shù)據(jù)進行解碼、整形,按順序?qū)?shù)據(jù)依次通過高速FIFO送入外部SDRAM進行緩存。當(dāng)SDRAM數(shù)據(jù)有效后,通過觸發(fā)信號啟動DMA傳輸,DMA控制器將申請從SDRAM中將數(shù)據(jù)寫入到數(shù)據(jù)發(fā)送FIFO,由發(fā)送模塊將發(fā)送數(shù)據(jù)FIFO中的數(shù)據(jù)按照EndpointBlockPlus核的事務(wù)(TRN)接口的格式提交給IP核,由IP核按照PCIExpress總線規(guī)范將數(shù)據(jù)傳至FPGA的GTP收發(fā)器,GTP收發(fā)器直接連接了PCI-E的差分數(shù)據(jù)傳輸對,于是通過PCI-Ex8通道將數(shù)據(jù)以DMA方式直接存入主機物理內(nèi)存中[5,7-8].當(dāng)存完一個數(shù)據(jù)包后發(fā)出中斷消息通知主機上層應(yīng)用程序處理數(shù)據(jù)以及將物理內(nèi)存中的數(shù)據(jù)轉(zhuǎn)存至硬盤,之后即進入下一個數(shù)據(jù)包的傳輸,如此反復(fù),直到收到主機的停止DMA傳輸命令,即完成當(dāng)前幀的采集和傳輸并停止下一幀的采集和傳輸。

3PCIExpress采集卡驅(qū)動設(shè)計

本系統(tǒng)驅(qū)動程序在WindowsXP操作系統(tǒng)下,應(yīng)用微軟公司的DriverStudio平臺進行開發(fā)。DriverStudio平臺提供了驅(qū)動程序開發(fā)所需的WDM(Windows DriverMode,Windows驅(qū)動程序模型),包括VtoolsD、DriverWorks、DriverNetWorks和SoftICE等開發(fā)工具,應(yīng)用該平臺開發(fā)降低了驅(qū)動程序開發(fā)的難度,同時了提高了代碼的可靠性[9].

3.1硬件驅(qū)動驅(qū)動程序

對外部硬件的訪問是通過DriverWorks提供的2個類來實現(xiàn)的,其中,KioRang類實現(xiàn)對I/O映射芯片的訪問,KMemoryRang類實現(xiàn)對內(nèi)存映射芯片的訪問。本系統(tǒng)選擇了KMemoryRang完成PCI Express硬件的訪問,主要調(diào)用函數(shù)如表1所示。

主要調(diào)用函數(shù)

表1

KMemoryRang類主要函數(shù)初始化KMemoryRang類的操作是在驅(qū)動程序啟動例程中執(zhí)行的,主要執(zhí)行程序如下:NTSTATUSPCIeDevice(KIrpI)

{…

PCM_RESOURCE_LIST pResListRaw=I.AllocatedResources();PCM_RESOURCE_LIST pResListTranslated=I.TranslatedResources();m_MemoryRange.Initialize(pResListTranslated,pResListRaw,0);…

}當(dāng)驅(qū)動程序完成初始化時,應(yīng)用端軟件將通過inb()和outb()等函數(shù)對外部硬件電路進行訪問,讀寫數(shù)據(jù)。

3.2DMA傳輸實現(xiàn)

采用DMA傳輸能極大的減輕主機處理負擔(dān),特別適用于大數(shù)據(jù)量處理系統(tǒng)。采用DriverWorks提供的KDmaAdapter類可輕松建立一個DMA傳輸鏈路,實現(xiàn)DMA讀寫操作。用于FPGA總線協(xié)議模塊軟件層完成了相關(guān)DMA傳輸?shù)目刂?,所以?qū)動程序DMA傳輸只需子在系統(tǒng)啟動DMA傳輸時,身心相應(yīng)的內(nèi)存作為公共緩沖區(qū),用于外部DMA控制器存入數(shù)據(jù)文件,這里需要調(diào)用DriverWorks提供的KCommonDmaBuffer類[10],該類常用函數(shù)如表2所示。

VirtaulAddress()函數(shù)返回的內(nèi)核模式地址是提供給驅(qū)動程序讀寫公用緩沖區(qū)用的,而進行DMA傳輸時需要用到緩沖區(qū)的物理地址,也即需要寫入DMA參數(shù)寄存器的是緩沖區(qū)的物理地址。

3.3總線中斷處理

采集卡一共需要處理三種中斷請求,分別是DMA寫完成,DMA讀完成和錯誤中斷請求。在Driver-Works平臺中,KInterrupt類可用于處理硬件中斷,其主要函數(shù)包括中斷寄存器初始化,中斷連接函數(shù),實現(xiàn)了將一個中斷服務(wù)例程連接到一個中斷和解除其連接等。

表2KCommonDmaBuffer類主要函數(shù)中斷處理函數(shù)首先在驅(qū)動程序構(gòu)造的函數(shù)中調(diào)用MEMBER_ISR(class_name,fuction_name),聲明中斷服務(wù)例程為該類的一個成員函數(shù),接著在驅(qū)動程序驅(qū)動例程中調(diào)用InitializeAndConnect(),初始化中斷類實例,并與中斷服務(wù)例程連接起來。

主要函數(shù)中斷處理函數(shù)首先在驅(qū)動程序構(gòu)造的函數(shù)中調(diào)用MEMBER_ISR

這樣就完成了對外部硬件中斷的處理,當(dāng)每次驅(qū)動程序檢測到硬件產(chǎn)生中斷脈沖時,中斷服務(wù)函數(shù)隨即被調(diào)用,從而轉(zhuǎn)入相應(yīng)中斷處理程序中執(zhí)行。

4采集卡性能測試

為測試采集系統(tǒng)性能,自行設(shè)計了應(yīng)用軟件對采集卡數(shù)據(jù)傳輸速率進行統(tǒng)計,在Windows環(huán)境下,采用多種數(shù)據(jù)量進行DMA方式讀寫。應(yīng)用端軟件根據(jù)數(shù)設(shè)定的數(shù)據(jù)包大小,申請不同的內(nèi)存空間,并將虛擬地址映射到FPGA的DMA寄存器。實際測試采集速率結(jié)果如圖4所示。

實際測試數(shù)據(jù)采集速率

圖4實際測試數(shù)據(jù)采集速率

根據(jù)圖4的測試結(jié)果,總線DMA傳輸速率與數(shù)據(jù)塊大小相關(guān)。當(dāng)設(shè)定系統(tǒng)數(shù)據(jù)塊(即開辟的主機內(nèi)存)大于32Mb時,采集卡的采集速率穩(wěn)定在5.6Gb/s.實驗結(jié)果表明,該系統(tǒng)大幅度地提高了數(shù)據(jù)交互速度,發(fā)揮了PCIExpress總線的優(yōu)越性能。

5結(jié)語

本文應(yīng)用Xilinx公司的Virtex-6芯片設(shè)計了PCI Express高速采集卡,通過調(diào)用FPGA內(nèi)部的PCIE集成協(xié)議硬核,配合總線DMA控制器,能夠快速可靠地采集外部差分數(shù)據(jù),具有解碼、整形,高速采集存儲的功能,是大數(shù)據(jù)量交互的有效解決方案。

0次

本站聲明: 本文章由作者或相關(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)意到認證的所有需求的工具,可用于創(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)閉