亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于PCIe總線的數(shù)據(jù)采集卡設(shè)計與實現(xiàn)

        2016-11-17 10:13:31肖明國董明利婁小平祝連慶
        計算機測量與控制 2016年3期
        關(guān)鍵詞:采集卡數(shù)據(jù)包總線

        肖明國,董明利,2,劉 鋒,2,婁小平,2,祝連慶,2

        (1.北京信息科技大學 光電測試技術(shù)北京市重點實驗室, 北京 100192;2.生物醫(yī)學檢測技術(shù)及儀器 北京實驗室, 北京 100192)

        ?

        基于PCIe總線的數(shù)據(jù)采集卡設(shè)計與實現(xiàn)

        肖明國1,董明利1,2,劉 鋒1,2,婁小平1,2,祝連慶1,2

        (1.北京信息科技大學 光電測試技術(shù)北京市重點實驗室, 北京 100192;2.生物醫(yī)學檢測技術(shù)及儀器 北京實驗室, 北京 100192)

        為了實現(xiàn)對多路高速光信號采集,利用FPGA設(shè)計基于PCIe總線的數(shù)據(jù)采集系統(tǒng);對PCIe總線低速Slave通道與高速DMA通道的關(guān)鍵算法進行了研究;首先,介紹了數(shù)據(jù)采集卡的硬件構(gòu)成及基本工作原理,提出了PCIe總線算法需要解決的數(shù)據(jù)傳輸問題;然后,分析數(shù)據(jù)采集卡PCIe總線低速Slave通道和高速DMA通道原理以及實現(xiàn)的關(guān)鍵算法;通過Modelsim和SignalTap工具分別對數(shù)據(jù)傳輸算法進行功能驗證和在線仿真;最后,將設(shè)計數(shù)據(jù)采集卡互聯(lián)PCIe上位機進行實際測試;實驗結(jié)果表明,本設(shè)計PCIe總線采用X4接口模式,數(shù)據(jù)傳輸系統(tǒng)的數(shù)據(jù)上傳峰值速率為615.38MB/s,可以滿足穩(wěn)定可靠、高帶寬、模塊化等要求。

        PCIe總線;數(shù)據(jù)采集卡;FPGA;高速數(shù)據(jù)傳輸

        0 引言

        現(xiàn)在的計算機、嵌入式設(shè)備中大量使用的總線有PCI、CPCI、VME及它們的擴展。隨著系統(tǒng)對帶寬要求的逐步提高,高速串行總線越來越多的被采用。傳統(tǒng)并行總線標準維護組織如PICMG、VITA,已將高速串行互連技術(shù)引入PCI、CPCI和VME總線中,使高速串行總線得到更廣泛的應用。PCIe總線就是高速串行總線,第三代IO總線標準,串行總線的特點讓PCB信號線減少,布線難度減小、布線性能提高、PCB空間利用效率更高、連接器尺寸更小,而且系統(tǒng)帶寬也更高,這提高了設(shè)計靈活性,節(jié)約了系統(tǒng)成本。PCIe總線使用點到點互連技術(shù),每一個PCIe終端都擁有獨立數(shù)據(jù)連接,各個設(shè)備之間并發(fā)的數(shù)據(jù)傳輸相互獨立,避免了其他設(shè)備干擾,在穩(wěn)定性、帶寬、可擴展性方面優(yōu)勢明顯。

        本設(shè)計采用PCIe總線互聯(lián),利用Altera公司的Cyclone IV GX系列EP4CGX50 FPGA芯片實現(xiàn),該型FPGA內(nèi)集成有PCIe硬核,支持PCIe 1.0協(xié)議及X4模式,單條通路數(shù)據(jù)傳輸率為2.5 Gbps,理論帶寬1 GB/s。

        實驗證明PCIe總線應用于本設(shè)計在滿足多路高速光信號數(shù)據(jù)采集要求的同時,基于FPGA的設(shè)計可增大系統(tǒng)靈活性,穩(wěn)定性,板卡的速度快,可擴展性強,系統(tǒng)集成度高。

        1 系統(tǒng)構(gòu)成及工作原理

        1.1 數(shù)據(jù)采集卡硬件構(gòu)成

        本設(shè)計數(shù)據(jù)采集系統(tǒng)采用多板卡可插拔結(jié)構(gòu),PCB物理結(jié)構(gòu)相同,如圖1所示,在上位機通過設(shè)備號區(qū)分。板卡采用雙FPGA結(jié)構(gòu),外圍模塊由信號調(diào)理模塊、多路高精度AD模塊、信號校準模塊,電源管理模塊構(gòu)成。FPGA1采用Altera公司的Cyclone IV GX系列芯片(內(nèi)部集成PCIe硬核),完成PCIe總線應用層設(shè)計工作。

        圖1 數(shù)據(jù)采集卡結(jié)構(gòu)框圖

        1.2 數(shù)據(jù)采集卡工作原理

        數(shù)據(jù)采集卡需要采集信號為高速光信號[1-2],設(shè)計了基于PMT傳感器的多增益多通道信號調(diào)理電路,外接PMT模塊通過SPI總線和FPGA2交互,PMT輸出模擬信號通過屏蔽線接入信號調(diào)理模塊。信號校準模塊由兩塊DA芯片產(chǎn)生,一塊產(chǎn)生高精度電壓信號,另一個塊控制DA的電壓輸出,信號轉(zhuǎn)成差分信號后作為信號調(diào)理模塊的校準信號。電源管理模塊實時檢測采集卡上關(guān)鍵電壓信號。FPGA1(帶PCIe硬核)完成多路AD數(shù)據(jù)參數(shù)提取、數(shù)據(jù)封裝、PCIe總線數(shù)據(jù)傳輸功能[3-4]。

        上位機根據(jù)數(shù)據(jù)采集卡工作狀態(tài)做出響應、采樣頻率為80 M的多路高精度AD采集數(shù)據(jù),在FPGA中進行數(shù)據(jù)預處理,然后通過PCIe總線實時上傳。

        2 PCIe總線實現(xiàn)關(guān)鍵算法

        為了實現(xiàn)基于PCIe的數(shù)據(jù)傳輸算法,設(shè)計了PCIe數(shù)據(jù)傳輸結(jié)構(gòu)框圖,如圖2所示。PCIe硬核是FPGA固有模塊,LM配置模塊采樣PCIe配置空間信號,包括最大讀請求、最大負載、總線號及設(shè)備號等信息,供TLP數(shù)據(jù)包裝配使用。交互層是一座數(shù)據(jù)轉(zhuǎn)換的橋梁,將PCIe硬核多個信號進行組裝,在應用層有接收、發(fā)送模塊、DMA讀寫模塊以及Slave從模塊[5]。

        圖2 PCIe數(shù)據(jù)傳輸結(jié)構(gòu)框圖

        設(shè)計使用的PCIe硬核完成PCIe總線的物理層、數(shù)據(jù)鏈路層設(shè)計,這樣應用層數(shù)據(jù)傳輸算法實現(xiàn)就尤為關(guān)鍵,這里主要包括Slave從模塊和DMA寫模塊的設(shè)計,這些設(shè)計直接關(guān)系到PCIe總線的實際帶寬,系統(tǒng)的穩(wěn)定性,可移植性[6-7]。

        針對設(shè)計數(shù)據(jù)采集卡控制命令復雜、帶寬要求高的特點,在PCIe總線的應用層設(shè)計了Slave讀寫模塊和DMA寫模塊。Slave模塊傳輸數(shù)據(jù)采集卡的各種控制命令、狀態(tài)信息。這些命令數(shù)據(jù)量不大,要求快速響應。

        多路并行AD產(chǎn)生的大量數(shù)據(jù)預處理后采用固定格式進行封裝,用DMA通道上傳,DMA結(jié)束后發(fā)送MSI(內(nèi)存信號中斷)數(shù)據(jù)包給上位機,完成本次DMA操作。

        2.1 Slave實現(xiàn)算法

        Slave模塊接收上位機的內(nèi)存讀、內(nèi)存寫數(shù)據(jù)包,根據(jù)接收到的數(shù)據(jù)包完成相應數(shù)據(jù)操作,如果接收到的TLP數(shù)據(jù)包是控制命令,直接將這些命令下發(fā)到底層模塊,由各自底層模塊解析處理。如果接收到的TLP數(shù)據(jù)包為DMA命令,將相應的命令寫入DMA控制寄存器,DMA模塊根據(jù)控制寄存器的狀態(tài)完成DMA操作。為實現(xiàn)Slave模塊功能,設(shè)計了圖3所示狀態(tài)機。

        在RX_IDLE狀態(tài)時,根據(jù)接收請求信號(rx_req)狀態(tài),讀取數(shù)據(jù)包類型,進入RX_DESC_ACK狀態(tài)。在RX_DESC_ACK狀態(tài)讀取數(shù)據(jù)包的長度、地址、Tag,同時判斷數(shù)據(jù)包類型,如果是存儲器讀請求(MRd)TLP,程序?qū)⑦M入RX_START_CPL狀態(tài),將數(shù)據(jù)包地址、數(shù)據(jù)請求長度字段從內(nèi)存中讀出,組織帶數(shù)據(jù)的完成(CPLD)TLP數(shù)據(jù)包的發(fā)送。如果接收數(shù)據(jù)包為存儲器寫請求(MWr)TLP,進入RX_DV_PAYLD狀態(tài),然后讀出TLP數(shù)據(jù)包中數(shù)據(jù)。

        圖3 Slave模塊主狀態(tài)機

        2.2 DMA寫模塊實現(xiàn)算法

        DMA寫模塊讀取DMA控制寄存器狀態(tài),通過發(fā)送存儲器寫請求TLP數(shù)據(jù)完成DMA功能。PCIe總線的DMA操作需考慮數(shù)據(jù)地址對齊[8]、4K邊界、數(shù)據(jù)包拆分等問題。

        有一種方法是約定DMA命令是雙字對齊且不跨越4 KB邊界,這是DMA數(shù)據(jù)傳輸效率很高的一種處理方法。但是這樣會限制驅(qū)動端程序的靈活性、可移植性。

        本設(shè)計參考PCIe規(guī)范,有效地解決了地址對齊、4K邊界對齊及數(shù)據(jù)拆分問題。在PCIe規(guī)范中用4位的First BE和Last BE字段分別表示向前對齊向后對齊[8],相應位為1,則對應的字節(jié)有效。

        向前X字節(jié)對齊使用Headx(Y)函數(shù):

        Headx(Y)=Y-(YmodX)

        (1)

        向后X字節(jié)對齊使用Tailx(Y)函數(shù):

        Tailx(Y)=Headx(Y)+X-1

        (2)

        其中:Y是實際地址;X是字節(jié)對齊單位。

        DMA寫模塊從DMA控制寄存器中獲得PC端地址(Address),長度(Length),單位為雙字(DW),結(jié)束地址為End_Address。

        End_Address=Address+Length-1

        (3)

        在數(shù)據(jù)讀TLP中,長度(length)字段以DW(雙字)為基本單位,通過First DW BE 和Last DW BE字段屏蔽首尾沒有對齊的數(shù)據(jù)。因此L中存放的長度并不是TLP使用的實際長度。

        用M表示數(shù)據(jù)TLP中發(fā)送的數(shù)據(jù)長度

        M=(Taillx(B)-Headx(A)+1)?2

        (4)

        其中:M的單位為雙字,X在應用中為4,通過以上公式可以方便的算出DMA寫TLP中Length的長度。

        本設(shè)計中最大負載(Max_payload)為0x20DW(雙字),即DMA寫時每個TLP數(shù)據(jù)包不能超過128個字節(jié),然后根據(jù)M的實際大小判斷數(shù)據(jù)的拆分方式。

        在算法中利用公式(2)計算TLP數(shù)據(jù)包的Length(長度),X為4,即雙字對齊,當M在1到20之間時,確定相應First BE和Last BE參數(shù)。當M大于20時,根據(jù)TLP的起始地址A,計算距離此地址最近的128字節(jié)對齊的地址,其他TLP以0x80字節(jié)對齊,每個內(nèi)存寫請求TLP數(shù)據(jù)包的長度為128個字節(jié),最后一個數(shù)據(jù)包的起始地址0x20個DW對齊,結(jié)束地址為B。

        采用以上方法數(shù)據(jù)包的發(fā)送效率很高,因為0x20是0x1000的公約數(shù),不會超越4 KB。因此設(shè)計了DMA寫模塊狀態(tài)機框圖,如圖4所示。

        在Idle狀態(tài),如果接收FIFO中有數(shù)據(jù),進入到RD_DW0狀態(tài)讀出DMA控制寄存器狀態(tài),包括源地址、發(fā)送長度。在RD_QW1狀態(tài)更新下一個DMA描述表地址,計算DMA發(fā)送完成后的最大地址并進入到TX_LENGTH狀態(tài),如果此時程序沒有在發(fā)送消息信號中斷(MSI),按照上文拆包原理計算發(fā)送長度,如果此時程序正在發(fā)送MSI數(shù)據(jù)包,則程序返回Idle狀態(tài)。在TX_LENGTH狀態(tài),判斷數(shù)據(jù)發(fā)送長度,在START_TX狀態(tài),激活發(fā)送READY信號進入MWR_REQ狀態(tài)。在MWR_REQ狀態(tài)發(fā)送幀和數(shù)據(jù)有效信號,然后進入MWR_DV狀態(tài)發(fā)送數(shù)據(jù)。在MWR_DV狀態(tài)計算DMA的實際發(fā)送長度,如果數(shù)據(jù)發(fā)送完畢則進入DONE狀態(tài)機,發(fā)送MSI中斷,完成完整的DMA寫模塊。

        圖4 DMA寫模塊狀態(tài)機

        3 仿真實驗與結(jié)果

        為了驗證上文Slave模塊和DMA模塊程序的邏輯功能的正確性以及FPGA綜合布線后時序收斂,設(shè)計了Modelsim功能仿真和SinalTap在線仿真[9]。

        3.1 Modelsim仿真實驗

        本設(shè)計數(shù)據(jù)采集卡為EP(Endpoint)端,Modelsim仿真要求模擬RC端(Root Complex),通過給EP端發(fā)送各種測試數(shù)據(jù)包來進行仿真。

        考慮到仿真波形的復雜性,論文提取了幾個特征信號來表示相應功能,如圖5所示,仿真圖描述了RC端給EP端發(fā)送數(shù)據(jù)包時EP端接收到的信號波形圖。從仿真圖中可以看出Slave模塊滿足數(shù)據(jù)接收邏輯功能。

        圖5 Slave模塊仿真波形

        圖6是DMA寫模塊數(shù)據(jù)包仿真圖,描述了DMA寫模塊發(fā)送內(nèi)存寫數(shù)據(jù)包的關(guān)鍵信號波形圖,由波形圖可知,DMA寫模塊的邏輯功能正確。

        圖6 DMA寫模塊仿真波形

        3.2 SignalTap仿真實驗

        功能仿真完成后,進行綜合布線,加載Altera公司提供的邏輯分析儀IP核,用SignalTap工具進行在線仿真,實驗時要求硬件連接PC上位機,通過PC端驅(qū)動程序運行DMA命令,在PC機上通過SignalTap界面觀察信號的波形,圖7為DMA寫模塊的在線仿真波形圖。發(fā)送請求為高時置位幀有效信號,然后數(shù)據(jù)有效信號置位,然后開始數(shù)據(jù)發(fā)送。從發(fā)送數(shù)據(jù)(tx_desc)狀態(tài)可以看出TLP包頭為3DW,為帶數(shù)據(jù)的存儲器寫請求,發(fā)送長度為0x20個雙字。第一個數(shù)據(jù)包的發(fā)送地址0x9EFD1068,第二個包的發(fā)送地址為0x9EFD10E8,發(fā)送數(shù)據(jù)為0,此可知系統(tǒng)DMA寫操作滿足設(shè)計時序。

        圖7 DMA寫模塊在線仿真波形

        3.3 測試實驗

        為了實際測試PCIe數(shù)據(jù)采集卡的數(shù)據(jù)傳輸性能,在PC端編寫相應驅(qū)動程序測試硬件,通過在驅(qū)動中進行多次DMA讀請求,通過開始結(jié)束時間戳來計算DMA數(shù)據(jù)上傳帶寬。

        實驗結(jié)果證明:在PC端驅(qū)動程序驅(qū)動下系統(tǒng)運行正常,工作穩(wěn)定,測試結(jié)果顯示數(shù)據(jù)傳輸系統(tǒng)PCIe接口數(shù)據(jù)上傳峰值帶寬為615.38 MB/s,滿足設(shè)計需要。

        4 結(jié)論

        本文根據(jù)多通道高速光信號采集系統(tǒng)的復雜性,高寬寬特點,以及設(shè)計的靈活性、穩(wěn)定性、低成本性要求,利用帶PCIe硬核的FPGA設(shè)計了基于PCIe總線的數(shù)據(jù)采集板卡,首先分析了采集卡的硬件架構(gòu)、工作原理,然后根據(jù)要求設(shè)計了基于PCIe總線的Slave從模塊、DMA模塊,詳細分析了本設(shè)計TLP數(shù)據(jù)包拆分原則以及4 K邊界對齊問題。實驗結(jié)果證明:基于PCIe接口數(shù)據(jù)采集卡設(shè)計滿足實際應用要求。

        [1] Liu X,Huo Z ,Yun H , et al . Application of flow cytometry to rapid detection of bacteria [J]. Microbiology China , 2014,41(1): 161-168.

        [2] 裴智果,王 策,陳忠祥,等.用于流式細胞儀的數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)[J].電子測量技術(shù),2015(7):84-88.[3] 馬曉榮,吳銀川.一種多通道數(shù)據(jù)采集系統(tǒng)設(shè)計研究[J].電子設(shè)計工程,2012,20(19):14-1.

        [4] 馬 航,季振宇,史學濤,等. 一種基于FPGA控制的多路并行數(shù)據(jù)采集設(shè)計方法[J]. 醫(yī)療衛(wèi)生裝備,2014(2):1-3.

        [5] Altera Corporation.IP Compiler for PCI Express UserGuide[Z/OL].http://www.altera.com/literature/ug/ug_pci_express.pdf, 2010.[6] A High Speed DMA Transaction Method for PCI Express Devices[J]. Journal of Electronic Science and Technology of China,2009,04:380-384.

        [7] 薛巨峰,黃愛娟.基于PCIe總線的多路復用DMA高速傳輸系統(tǒng)的設(shè)計[J].電子技術(shù),2015(5):87-91.

        [8] 郭政慧,王 巖.內(nèi)存對齊對網(wǎng)絡(luò)通信程序的影響[J].實驗室研究與探索,2010,29(5):68-70.

        [9] 郝曉鵬.基于SignalTap Ⅱ和Modelsim的聯(lián)合仿真技術(shù)[J].計算機與網(wǎng)絡(luò),2014,(13):46-48.

        PCIe Bus Data Acquisition Card Design and Implementation

        Xiao Mingguo1, Dong Mingli1,2, Liu feng1,2, Lou Xiaoping1,2, Zhu Lianqing1,2

        (1.Beijing Key Laboratory for Optoelectronic Test Technology, Beijing Information Science & Technology University,Beijing 100192, China; 2.Beijing Laboratory for Biomedical Detection Technology and Instrument, Beijing 100192,China)

        In order to achieve multi-channel high-speed optical signal acquisition, a data acquisition system based on PCIe bus is established and its applied algorithms such as low-speed Slave channel and high-speed DMA channel are investigated. First, based on hardware structure and basic operating principle of data acquisition card, the algorithms of data transmission problems for PCIe bus are presented.Then,the principles and algorithms of low-speed Slave channel and high-speed DMA channel are analyzed. Function simulation and online simulation of the data transmission algorithm is successfully fulfilled with Modelsim and SignalTap.Finally,plug the data acquisition card into PC for the actual test.Experimental results indicate that the data acquisition system’s peak bandwidth based on PCIe bus with X4 mode is 615.38 MB/s. It can satisfy the system requirements of strong stabilization, high bandwidth, as well as modularization.

        PCIe bus; data acquisition card; FGPA; high-speed data transmission

        2015-10-12;

        2015-11-06。

        北京市屬高等學校創(chuàng)新團隊建設(shè)與教師職業(yè)發(fā)展計劃項目(IDHT20130518);教育部長江學者和創(chuàng)新團隊發(fā)展計劃(IRT1212);北京市教委科研計劃項目(KM201511232006)。

        肖明國(1989-),男,湖北襄陽人,碩士研究生,主要從事生物醫(yī)學檢測儀器方向的研究。

        1671-4598(2016)03-0252-03DOI:10.16526/j.cnki.11-4762/tp

        TP

        A

        猜你喜歡
        采集卡數(shù)據(jù)包總線
        高精度AD采集卡性能測試及評價方法研究
        中國測試(2022年2期)2022-03-19 09:57:30
        基于PCI Express總線的xHC與FPGA的直接通信
        機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
        SmartSniff
        面向數(shù)控機床的多通道傳感數(shù)據(jù)采集卡設(shè)計
        并行高速采樣在地震物理模擬采集中的應用
        PCI-e高速數(shù)據(jù)采集卡的驅(qū)動與上位機軟件設(shè)計
        電子器件(2015年5期)2015-12-29 08:43:12
        多通道ARINC429總線檢查儀
        基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計與實現(xiàn)
        基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計
        河南科技(2014年16期)2014-02-27 14:13:22
        国产思思久99久精品| 欧美成人aaa片一区国产精品| 国产熟女白浆精品视频二| 色窝窝无码一区二区三区| 国内精品人妻无码久久久影院导航| 国产精品黄网站免费观看| 日本熟妇精品一区二区三区| 国产三级精品三级在线专区| 久久久噜噜噜久久| 亚洲久热无码av中文字幕| 久久精品视频按摩| 国产精品老熟女乱一区二区| 国产偷国产偷精品高清尤物| 亚洲国产精品久久久久久久| 亚洲日本精品一区久久精品| 久亚洲精品不子伦一区| 日韩av无码精品一二三区| 亚洲国产成人精品无码区在线观看| 国产主播一区二区在线观看 | 又爽又猛又大又湿的视频| av影片在线免费观看| 亚洲国产精品第一区二区| 国产91 对白在线播放九色| 中文字幕一区二区三区亚洲| 男女肉粗暴进来动态图| 欧美日韩一卡2卡三卡4卡 乱码欧美孕交 | 日本真人添下面视频免费| 人妻少妇精品中文字幕av蜜桃| 国产免费人成视频在线播放播| 久久精品一区一区二区乱码| 亚洲av手机在线网站| 国产女人高潮叫床免费视频| 亚洲免费人成在线视频观看| 国产精品国产午夜免费看福利| 日本乱码一区二区三区在线观看| 免费毛片a线观看| 精品少妇大屁股白浆无码| 一区二区日本免费观看| 久久99国产精品久久99| 中文无码精品一区二区三区| 一区二区亚洲 av免费|