《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于PCIE的高速光纖圖像實(shí)時(shí)采集系統(tǒng)設(shè)計(jì)
基于PCIE的高速光纖圖像實(shí)時(shí)采集系統(tǒng)設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2013年第10期
雷 雨1,2,, 任國(guó)強(qiáng)1,, 孫 健1,2,, 徐永剛1,2,, 黃 輝1,2
1. 中國(guó)科學(xué)院光電技術(shù)研究所,, 四川 成都 610209,; 2. 中國(guó)科學(xué)院大學(xué),,北京100149
摘要: 利用PCI Express(PCIE)總線及DMA數(shù)據(jù)傳輸技術(shù),,設(shè)計(jì)光纖圖像實(shí)時(shí)采集系統(tǒng),。利用FPGA中的PCIE硬核實(shí)現(xiàn)了PCIE總線的DMA傳輸,同時(shí)介紹了整個(gè)采集系統(tǒng)的數(shù)據(jù)流和光纖接口模塊的設(shè)計(jì),。測(cè)試結(jié)果表明,,系統(tǒng)DMA數(shù)據(jù)傳輸速度可達(dá)到138 MB/s,完全滿足高速光纖圖像實(shí)時(shí)采集的需要,。
中圖分類號(hào): TP914.3
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)10-0136-03
Design of high-speed real-time fiber image acquisition system based on PCIE bus
Lei Yu1,2, Ren Guoqiang1, Sun Jian1,2, Xu Yonggang1,2, Huang Hui1,2
1. Institute of Optics and Electronics of Chinese Academy of Sciences, Chengdu 610209, China; 2. University of Chinese Academy of Sciences, Beijing 100149, China
Abstract: PCIE technology and DMA technology are used to implement the real-time fiber image acquisition system. The paper focuses on how to implement DMA transmission on PCIE hard core and introduces the data stream of the system and the custom protocol of high speed serial fiber transmission. The test result shows that the DMA speed can reach 138MB/s, so the system fulfils the need of high-speed real-time fiber image acquisition.
Key words : PCIE; DMA; real-time acquisition; fiber; hard core; transaction layer packet

    隨著高分辨率,、高頻幀的CCD相機(jī)在航測(cè)中的廣泛使用,如何對(duì)產(chǎn)生的高速圖像數(shù)據(jù)進(jìn)行實(shí)時(shí)記錄,,成為了一個(gè)技術(shù)難題,。光纖通信具有帶寬高、價(jià)格低廉,、傳輸距離長(zhǎng)等優(yōu)點(diǎn),,單根光纖的傳輸帶寬達(dá)到10.2 Tb/s。大量光電轉(zhuǎn)換模塊的出現(xiàn),,使光纖在高速圖像采集傳輸系統(tǒng)中大量使用,,常規(guī)光模塊帶寬達(dá)到2 Gb/s,而傳統(tǒng)通過(guò)PCI總線與主機(jī)通信的理論帶寬只有133 MB/s,,但當(dāng)實(shí)際數(shù)據(jù)采集速度到達(dá)100 MB/s左右時(shí)就變得相當(dāng)困難 ,,難以滿足對(duì)記錄帶寬的要求。PCIE是繼PCI后的第三代高性能I/O總線,,與PCI相比,,PCIE屬于串行總線,引腳少,,采用基于數(shù)據(jù)包的協(xié)議進(jìn)行事務(wù)編碼,,每個(gè)傳輸通道獨(dú)享帶寬;硬件接口簡(jiǎn)單,,采用點(diǎn)對(duì)點(diǎn)互聯(lián),,X1的單向傳輸理論帶寬即可達(dá)到2.5 Gb/s,用戶可以根據(jù)實(shí)際需要將PCIE鏈路配置為X1、X2,、X4,、X8、X16等。

    PCIE數(shù)據(jù)包在傳輸過(guò)程中要經(jīng)過(guò)事務(wù)層,,數(shù)據(jù)鏈路層及物理層,。采用類似網(wǎng)絡(luò)分層的思想,不同之處在于PCIE體系中的各個(gè)層都是采用硬件邏輯來(lái)實(shí)現(xiàn),。事務(wù)層是PCIE架構(gòu)的上層,,其主要功能是接收、緩沖和分發(fā)事務(wù)包TLP(Transaction Layer Packet),。TLP通過(guò)使用I/O,、存儲(chǔ)器 、配置和消息事務(wù)來(lái)傳遞信息,。數(shù)據(jù)鏈路層是保證可靠正確的數(shù)據(jù)傳輸,,主要負(fù)責(zé)鏈路管理與數(shù)據(jù)完整性相關(guān)的功能,包括錯(cuò)誤檢測(cè)與改正,,裝配和拆解數(shù)據(jù)鏈路層包DLLP,。物理層是PCIE協(xié)議的最底層,為設(shè)備鏈路提供物理支持,,分為邏輯子塊和電氣子塊,。邏輯子塊完成對(duì)數(shù)據(jù)包的合成分解、加擾和去擾,、8 bit/10 bit編碼和10 bit/8 bit解碼,、并串轉(zhuǎn)換和串并轉(zhuǎn)換;電氣物理層負(fù)責(zé)對(duì)每路串行數(shù)據(jù)差分驅(qū)動(dòng)的傳輸與接收及阻抗匹配[1-2],。
1 采集系統(tǒng)簡(jiǎn)述
    本文采用CCD相機(jī)的分辨率為2 352×1 728,,灰度級(jí)別為8 bit,幀頻為31 F/s,,產(chǎn)生的數(shù)據(jù)量為120.2 MB/s,,則PCIE接口采用X1通道就可以滿足帶寬需要。采集系統(tǒng)的具體結(jié)構(gòu)如圖1所示,。

    XC5VFX70T是Xilinx公司VIRTEX系列的一款具有5 328 KB RAM資源,、內(nèi)嵌3個(gè)PCIE硬核和16個(gè)可配置的高速串行收發(fā)器GTX,速率可達(dá)6.5 Gb/s,,采用CML電平標(biāo)準(zhǔn),,在系統(tǒng)中和SFP模塊無(wú)縫連接。該芯片在系統(tǒng)中主要實(shí)現(xiàn)高速數(shù)據(jù)的接收和緩存,,以及數(shù)據(jù)的實(shí)時(shí)采集[3-4],。
    光纖信號(hào)通過(guò)光纖接口模塊和位寬轉(zhuǎn)換,,數(shù)據(jù)被寫入DDR2中,,DDR2分為A、B兩個(gè)獨(dú)立的存儲(chǔ)區(qū),。當(dāng)A儲(chǔ)存區(qū)寫滿時(shí),,將數(shù)據(jù)寫入PCIE接口模塊的TX_FIFO中,,這時(shí)DMA控制器發(fā)送中斷給主機(jī),主機(jī)會(huì)準(zhǔn)備好接收緩存區(qū),并將緩存區(qū)首地址告知DMA控制器,開(kāi)始DMA傳輸,,將數(shù)據(jù)寫入到主機(jī)內(nèi)存中,,同時(shí)將采集的數(shù)據(jù)寫入B存儲(chǔ)區(qū)中。同理,,當(dāng)B存儲(chǔ)區(qū)中的數(shù)據(jù)被寫滿時(shí),,也通過(guò)同樣的方式寫入主機(jī)的內(nèi)存中。主機(jī)內(nèi)存中的數(shù)據(jù)通過(guò)SATA總線被寫到SATA硬盤并記錄下來(lái),。DDR2采用交叉緩存工作,,以保證高速數(shù)據(jù)流的不間斷采集。
2 功能模塊設(shè)計(jì)
2.1光纖接口模塊邏輯設(shè)計(jì)

    光纖接口模塊分為GTX和包數(shù)據(jù)解析兩個(gè)部分,。光纖信號(hào)經(jīng)GTX核后,,輸出16 bit位寬的并行數(shù)據(jù)和相應(yīng)的K字符信號(hào)。根據(jù)K字符信號(hào)提取數(shù)據(jù)包,。包數(shù)據(jù)解析根據(jù)自定義的協(xié)議進(jìn)行數(shù)據(jù)包解析,,得到幀頭標(biāo)志、幀尾標(biāo)志,、有效圖像數(shù)據(jù)和附加信息等,。附加信息是一組固定長(zhǎng)度的雙字組合,含有圖像相關(guān)的一些信息,如大小,、位數(shù),、編碼方式等[5-6]。圖2所示為自定義協(xié)議包,。

    包頭和包尾作為數(shù)據(jù)包的起始和結(jié)尾標(biāo)志,,包長(zhǎng)用于指示發(fā)送數(shù)據(jù)的有效長(zhǎng)度,包累加和用于包內(nèi)有效數(shù)據(jù)字節(jié)的統(tǒng)計(jì),,包編號(hào)用于統(tǒng)計(jì)發(fā)送的數(shù)據(jù)包有無(wú)丟失,。幀頭標(biāo)志、幀尾標(biāo)志,、有效圖像數(shù)據(jù)和附加信息等則放在有效數(shù)據(jù)中,。
2.2 緩存模塊
    本文的DDR2控制器MPMC采用NPI接口,設(shè)計(jì)有2個(gè)NPI接口分別用于讀寫操作,。一個(gè)是用于存儲(chǔ)光纖的輸入數(shù)據(jù),,另一個(gè)用于輸出內(nèi)存數(shù)據(jù)到PCIE接口。這樣可以避免傳輸過(guò)程中內(nèi)存的訪問(wèn)仲裁,,提高系統(tǒng)的傳輸效率,。
     本文光纖接口模塊輸出的數(shù)據(jù)寬度為16 bit,而采用的NPI接口的數(shù)據(jù)寬度為64 bit。所以需要對(duì)原始數(shù)據(jù)進(jìn)行位寬轉(zhuǎn)換后才能進(jìn)行后續(xù)處理,。位寬轉(zhuǎn)換模塊根據(jù)需要將數(shù)據(jù)寬度從16 bit轉(zhuǎn)換為64 bit,。
2.3 PCIE接口模塊設(shè)計(jì)
    PCIE接口模塊主要是實(shí)現(xiàn)主機(jī)PCIE總線與采集卡之間的通信。為了實(shí)現(xiàn)基于PCIE的DMA傳輸,需要設(shè)計(jì)以下8個(gè)模塊[7-8],, 具體PCIE接口模塊設(shè)計(jì)如圖3所示,。

    圖3中各個(gè)模塊的作用如下:
    (1) PCIE硬核:對(duì)外與其他PCIE設(shè)備通信,對(duì)內(nèi)與TX和RX模塊進(jìn)行數(shù)據(jù)傳輸,。
    (2) TX模塊:將待發(fā)送的數(shù)據(jù)和DMA寄存器中的信息填充到事務(wù)包TLP中,,以并行的方式傳輸給PCIE硬核,實(shí)現(xiàn)PCIE寫操作狀態(tài),。
    (3) RX模塊:將接收的事務(wù)包TLP解析,,根據(jù)TLPs的包頭信息,將數(shù)據(jù)寫入DMA寄存器,。
    (4) 緩存:匹配FIFO兩邊不同傳輸速率的數(shù)據(jù)流,,緩存待處理的數(shù)據(jù)和提高數(shù)據(jù)的傳輸效率。
    (5) DMA控制模塊:DMA寄存器是由發(fā)送寄存器,、中斷寄存器等構(gòu)成,。發(fā)送寄存器用于接收和存放主機(jī)內(nèi)存寫請(qǐng)求的DMA信息,主要為內(nèi)存寫請(qǐng)求地址寄存器及寫長(zhǎng)度寄存器,、寫包數(shù)寄存器,。中斷寄存器是存放中斷產(chǎn)生的原因,為辨別何種中斷提供依據(jù),。
    (6) 用戶邏輯:一方面用戶邏輯通過(guò)DMA控制模塊向主機(jī)發(fā)起DMA傳輸中斷,,設(shè)置DMA傳輸?shù)拈L(zhǎng)度;另一方面控制數(shù)據(jù)的輸入,,保證TX_FIFO不會(huì)溢出,,數(shù)據(jù)不會(huì)丟失。
    (7) 用戶接口模塊:提供簡(jiǎn)單的數(shù)據(jù)通道和控制信號(hào)通道,。
3 DMA傳輸?shù)倪壿嬙O(shè)計(jì)與實(shí)現(xiàn)
3.1 DMA寫操作的設(shè)計(jì)與實(shí)現(xiàn)

    首先用戶邏輯檢測(cè)到TX_FIFO中有需要傳輸?shù)臄?shù)據(jù),,這時(shí)用戶邏輯通過(guò)DMA控制器發(fā)送MSI中斷,請(qǐng)求DMA傳輸,。主機(jī)響應(yīng)中斷,配置DMA寄存器,TX模塊啟動(dòng)DMA傳輸,,TX模塊向TLP包加載信息,包括了控制字段、地址字段,、數(shù)據(jù)長(zhǎng)度字段以及數(shù)據(jù)字段等,。當(dāng)一次DMA傳輸結(jié)束后,向主機(jī)發(fā)送DMA傳輸結(jié)束的中斷,這樣一次完整的DMA寫操作就完成了,。具體流程圖如圖4所示,,TX模塊和PCIE硬核之間采用64 bit并行傳輸,, 在本文中一個(gè)TLP的載荷是128 B,一次DMA操作要進(jìn)行65 536次包傳輸,,則一次DMA寫操作就傳輸了8 MB的數(shù)據(jù)量,PCIE寫操作狀態(tài)機(jī)是在TX模塊中實(shí)現(xiàn),。

 

 

    圖6是DMA控制寄存器的設(shè)計(jì)圖,,初始化寄存器的Byte0用于DMA傳輸復(fù)位。1DW的Byte0用于讀開(kāi)始,,Byte1用于讀完成,,Byte2用于寫開(kāi)始,Byte3用于寫完成,;2DW用于存放主機(jī)寫入的緩存首地址,;3DW用于存放一個(gè)TLP包攜帶的有效數(shù)據(jù)量;4DW用于存放一次每次DMA傳輸發(fā)送的TLP包數(shù)量,;5DW的Byte0用于指示FPGA請(qǐng)求DMA傳輸,,Byte1用于指示DMA傳輸結(jié)束。

4 功能驗(yàn)證與性能測(cè)試
    本文PCIE硬核采用X1通道,,最大的理論傳輸帶寬為2.5 Gb/s,。使用ChipScope對(duì)DMA寫操作進(jìn)行了驗(yàn)證,具體時(shí)序如圖7所示,,trn_td是FPGA向主機(jī)發(fā)送的數(shù)據(jù),,trn_tsof_n為低時(shí),表示TLP包的第一個(gè)64 bit數(shù)據(jù);trn_teof_n為低時(shí),表示TLP包的最后64 bit數(shù)據(jù),這時(shí)trn_trem_n為0X0F,,則說(shuō)明最后一個(gè)64 bit只有高32位有效,。傳輸一個(gè)TLP包大約需要108個(gè)時(shí)鐘周期,采用125 MHz的采樣頻率,一個(gè)TLP包有效載荷為128 B,,則可得出在X1的配置下,,DMA的傳輸速度大約為141.3 MB/s。

    本文針對(duì)高速光纖圖像實(shí)時(shí)采集的需要,,設(shè)計(jì)了一種基于PCIE的采集系統(tǒng),。經(jīng)實(shí)際測(cè)試,系統(tǒng)運(yùn)行穩(wěn)定可靠,。采用X1的PCIE總線接口,,DMA寫操作速度大約為138 MB/s,滿足光纖圖像實(shí)時(shí)記錄的帶寬要求,。如果實(shí)際需要更高的采集帶寬,,可以參考本文設(shè)計(jì),將PCIE接口設(shè)計(jì)為X4或X8,,以實(shí)現(xiàn)更高的采集性能,。本設(shè)計(jì)具有通用性,,可被移植于其他內(nèi)嵌有PCIE硬核及串行收發(fā)器GTX等資源的 FPGA平臺(tái)。
參考文獻(xiàn)
[1] BUDRUK R, ANDERSON D,,SHANLEY T. PCI Express系統(tǒng)體系結(jié)構(gòu)標(biāo)準(zhǔn)教材[M].田玉敏,等譯.北京:電子工業(yè)出版社,,2005.
[2] PCI-SIG. PCI express card electromechanical specification  Rev 1.0a[Z].USA: PCI-SIG,2003:5-33.
[3] Virtex-5 FPGA RocketIO GTX transceiver v2.1 user guide[Z].USA:Xilinx,2011.
[4] 使用用于PCI Express設(shè)計(jì)的集成端點(diǎn)模塊實(shí)現(xiàn)點(diǎn)到點(diǎn)連接[Z].USA:Xilinx ,2007.
[5] 孫科林,周維超,,吳欽章.高速實(shí)時(shí)光纖圖像傳輸系統(tǒng)的實(shí)現(xiàn)[J].光學(xué)精密工程,,2011,19(9):2228-2235.
[6] 繆露鵬,涂曉東,,張新穎.光纖適配卡數(shù)據(jù)總線的研究與實(shí)現(xiàn)[J].光通信技術(shù),,2011(1):8-10.
[7] 汪精華,胡善清,,龍騰. 基于FPGA 實(shí)現(xiàn)的高速串行交換模塊實(shí)現(xiàn)方法研究[J].電子技術(shù)應(yīng)用,,2010,36(5):37-40.
[8] 何瓊,陳鐵,,程鑫. 基于FPGA的DMA方式高數(shù)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2011,37(12):40-43.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。