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