劉 京, 何怡剛, 羅旗舞, 史露強(qiáng)
(合肥工業(yè)大學(xué) 電氣與自動(dòng)化工程學(xué)院,安徽 合肥 230009)
在傳感器高速數(shù)據(jù)采集傳輸[1,2]系統(tǒng)中,以現(xiàn)場(chǎng)可編程門(mén)陣列(field programmable gate array,FPGA)來(lái)作為硬件系統(tǒng)的核心,F(xiàn)PGA間的數(shù)據(jù)高速穩(wěn)定傳輸?shù)膽?yīng)用越來(lái)越多。Aurora串行總線協(xié)議是專用于FPGA間數(shù)據(jù)傳輸?shù)母咚俳涌趨f(xié)議。在Aurora協(xié)議傳輸通道中,數(shù)據(jù)以幀的格式進(jìn)行傳輸,幀的格式由用戶根據(jù)需求任意定義[3],因此,測(cè)試Aurora協(xié)議中的幀格式對(duì)通道數(shù)據(jù)傳輸率的影響,可以更加合理地利用Aurora協(xié)議。本文針對(duì)Aurora協(xié)議進(jìn)行測(cè)試,分析了協(xié)議幀格式與通道數(shù)據(jù)傳輸率的關(guān)系,并驗(yàn)證分析結(jié)論的可靠性。
任何數(shù)據(jù)分組可以通過(guò)Aurora協(xié)議封裝在芯片間,板間傳輸[4]。Aurora 64 B/66 B是在FPGA內(nèi)嵌高速收發(fā)器硬核模塊的物理編碼子層(physical coding sublayer,PCS)采用64 B/66 B編碼,開(kāi)銷(xiāo)僅有3 %左右[5]。Aurora協(xié)議的數(shù)據(jù)傳輸通道由多個(gè)“弄”綁定生成,在配置IP核時(shí)可以選擇“弄”的數(shù)量,IP核內(nèi)部邏輯結(jié)構(gòu)如圖1所示。
傳感器高速數(shù)據(jù)采集與傳輸系統(tǒng)硬件框架主要包括傳感器模塊、模數(shù)轉(zhuǎn)換器(analog-digital converter,ADC)采樣模塊、FPGA模塊、DDR3數(shù)據(jù)緩存模塊、上位機(jī)模塊以及其他FPGA網(wǎng)絡(luò)模塊。傳感器模塊在檢測(cè)過(guò)程中產(chǎn)生大量模擬信號(hào)的數(shù)據(jù),經(jīng)過(guò)ADC采樣成數(shù)字信號(hào)通過(guò)JESD204接口協(xié)議[6]傳輸至FPGA中進(jìn)行數(shù)據(jù)處理并通過(guò)DDR3模塊進(jìn)行數(shù)據(jù)緩存,F(xiàn)PGA通過(guò)PCIE高速總線與上位機(jī)進(jìn)行數(shù)據(jù)交互[7]。系統(tǒng)整個(gè)硬件框架如圖2所示。
圖1 Aurora IP核內(nèi)部邏輯結(jié)構(gòu)
圖2 傳感器高速數(shù)據(jù)采集與傳輸系統(tǒng)硬件框架
FPGA為單層網(wǎng)絡(luò)的核心,與其他FPGA網(wǎng)絡(luò)的FPGA通過(guò)內(nèi)部封裝了對(duì)應(yīng)的Rocket I/O 的Aurora協(xié)議進(jìn)行數(shù)據(jù)交互,因此,Aurora協(xié)議的性能直接影響到整個(gè)網(wǎng)絡(luò)系統(tǒng)高速數(shù)據(jù)傳輸?shù)男阅堋?/p>
以Xilinx的Kintex—7 FPGA 為載體,利用FPGA上的GTX高速收發(fā)器進(jìn)行單個(gè)“弄”通道,全雙工模式的Aurora 64 B/66 B協(xié)議測(cè)試,傳輸通道采用差分模式以增加高速信號(hào)傳輸?shù)目垢蓴_能力。Aurora 64 B/66 B IP核需要輸入2路時(shí)鐘驅(qū)動(dòng),吉比特(Gbit)的高速數(shù)據(jù)傳輸對(duì)時(shí)鐘頻率和質(zhì)量要求很高,因此,外部輸入時(shí)鐘采用差分接口[8],外部時(shí)鐘源采用的時(shí)鐘模塊NI PXIE—6674定時(shí)模塊,利用高精度的DDS時(shí)鐘生成LVDS電平標(biāo)準(zhǔn)的500 MHz的兩路差分輸出時(shí)鐘,分別通過(guò)SMA射頻線輸入到兩塊Kintex—7 FPGA的GTX高速收發(fā)器的參考時(shí)鐘輸入接口。
采用Xilinx的Vivado開(kāi)發(fā)工具進(jìn)行軟件開(kāi)發(fā),整個(gè)軟件框架主要包括頂層模塊,幀產(chǎn)生模塊,幀檢測(cè)模塊,IP核模塊,復(fù)位模塊,時(shí)鐘模塊與收發(fā)器配置模塊。在頂層模塊調(diào)用Aurora IP核,幀產(chǎn)生模塊發(fā)送從DDR3緩存模塊傳送來(lái)的數(shù)據(jù),幀檢測(cè)模塊對(duì)接收的數(shù)據(jù)進(jìn)行檢測(cè),如果出現(xiàn)錯(cuò)誤會(huì)有錯(cuò)誤標(biāo)志位error信號(hào)置高。
Aurora 64B/66B IP核采用AXI4-Stream 接口協(xié)議,該協(xié)議沒(méi)有地址項(xiàng),允許無(wú)限制的數(shù)據(jù)突發(fā)傳輸規(guī)模,適合于高吞吐量的數(shù)據(jù)傳輸[9]。通過(guò)在線邏輯分析儀(ILA)抓取待觀測(cè)信號(hào),如圖3所示,通過(guò)虛擬I/O(virtual I/O,VI/O)修改幀長(zhǎng)與幀間隙的值,對(duì)Aurora 64B/66B通道數(shù)據(jù)傳輸率進(jìn)行實(shí)測(cè)。在圖3中可以看到發(fā)送模塊正確產(chǎn)生了所定義的幀格式。圖中箭頭標(biāo)記的error信號(hào)位始終為低,表示數(shù)據(jù)正確接收,測(cè)試的通道數(shù)據(jù)傳輸率可靠。
圖3 ILA信號(hào)觀測(cè)
將幀間隙固定為10 B,幀長(zhǎng)范圍從1 B增加到400 B,對(duì)幀長(zhǎng)范圍內(nèi)一些點(diǎn)進(jìn)行采樣,分別在發(fā)送端(TX)和接收端(RX)測(cè)試得到相應(yīng)的通道數(shù)據(jù)傳輸率,測(cè)試結(jié)果如圖4所示。
圖4 幀長(zhǎng)與通道數(shù)據(jù)傳輸率關(guān)系
可知當(dāng)保持幀間隙不變,隨著幀長(zhǎng)的增加,通道數(shù)據(jù)傳輸率呈不斷增加趨勢(shì),但增速下降,幀長(zhǎng)增加到一定值后通道數(shù)據(jù)傳輸率接近數(shù)據(jù)傳輸率峰值,接近水平曲線。同時(shí)可以看到在RX端的通道數(shù)據(jù)傳輸率始終小于TX端,這主要因?yàn)闀r(shí)鐘補(bǔ)償和64 B/66 B編碼補(bǔ)償開(kāi)銷(xiāo),為了更加準(zhǔn)確測(cè)定通道數(shù)據(jù)傳輸率,采樣測(cè)定RX端的通道數(shù)據(jù)傳輸率。
將幀長(zhǎng)固定為15 B,幀間隙由0 B增加到511 B,對(duì)幀間隙范圍內(nèi)一些點(diǎn)進(jìn)行采樣,測(cè)試得到RX端通道數(shù)據(jù)傳輸率,測(cè)試結(jié)果如圖5所示。
圖5 幀間隙與通道數(shù)據(jù)傳輸率關(guān)系
可知,當(dāng)保持幀長(zhǎng)不變,隨著幀間隙的增加,通道數(shù)據(jù)傳輸率呈不斷減少趨勢(shì),但減速下降。
由此可見(jiàn),Aurora 64 B/66 B協(xié)議中,幀和幀間隙的長(zhǎng)度對(duì)通道數(shù)據(jù)傳輸率具有關(guān)鍵性的影響,幀長(zhǎng)與通道數(shù)據(jù)傳輸率呈正相關(guān),幀間隙與通道數(shù)據(jù)傳輸率呈反相關(guān),因此有
(1)
式中Vr為當(dāng)前實(shí)際有效數(shù)據(jù)傳輸率,MBps;Vp為通道數(shù)據(jù)傳輸率峰值,MBps;lfs為Aurora協(xié)議中幀的長(zhǎng)度,B;lifg為Aurora協(xié)議中當(dāng)前幀與下一幀之間的間隙,B。
為了驗(yàn)證式(1)結(jié)論的正確性,將幀間隙值固定為50 B,幀長(zhǎng)不斷增加,將采樣點(diǎn)通道數(shù)據(jù)傳輸率測(cè)試值的曲線與式(1)理論通道傳輸率值進(jìn)行對(duì)比,如圖6所示。
圖6 幀長(zhǎng)與通道數(shù)據(jù)傳輸率關(guān)系
可以看到,式(1)理論曲線很好地?cái)M合了采樣曲線,說(shuō)明了由Aurora 64 B/66 B協(xié)議中幀和幀間隙與實(shí)際通道數(shù)率傳輸率之間的關(guān)系的正確性。
通過(guò)Aurora協(xié)議進(jìn)行高速數(shù)據(jù)傳輸時(shí),在不同幀間隙值,根據(jù)式(1)選擇合適的幀長(zhǎng)既可以滿足通道數(shù)據(jù)傳輸率的需求,又可以降低增加幀長(zhǎng)帶來(lái)的數(shù)據(jù)傳輸?shù)臅r(shí)延以及傳輸過(guò)程中數(shù)據(jù)丟失出錯(cuò)的可能性,以平衡傳感器高速數(shù)據(jù)采集傳輸系統(tǒng)中FPGA間數(shù)據(jù)傳輸時(shí)對(duì)通道數(shù)據(jù)傳輸率和通道性能的需求。
本文設(shè)計(jì)傳感器數(shù)據(jù)高速采集與傳輸處理硬件系統(tǒng),并以Kintex—7 FPGA為核心設(shè)計(jì)了Aurora 64 B/66 B協(xié)議傳輸性能測(cè)試硬件系統(tǒng)。在實(shí)際板級(jí)調(diào)試環(huán)境下采樣測(cè)試了Aurora 64 B/66 B協(xié)議通道吞吐量范圍內(nèi)不同的幀格式下通道數(shù)據(jù)傳輸率值,得到了幀格式與通道數(shù)據(jù)傳輸率之間的關(guān)系,測(cè)試結(jié)論穩(wěn)定可靠。結(jié)論對(duì)設(shè)計(jì)傳感器數(shù)據(jù)高速采集與傳輸系統(tǒng)中合理的利用FPGA間數(shù)據(jù)交互的Aurora 64 B/66 B協(xié)議提供了參考。