劉 京, 何怡剛, 羅旗舞, 史露強
(合肥工業大學 電氣與自動化工程學院,安徽 合肥 230009)
在傳感器高速數據采集傳輸[1,2]系統中,以現場可編程門陣列(field programmable gate array,FPGA)來作為硬件系統的核心,FPGA間的數據高速穩定傳輸的應用越來越多。Aurora串行總線協議是專用于FPGA間數據傳輸的高速接口協議。在Aurora協議傳輸通道中,數據以幀的格式進行傳輸,幀的格式由用戶根據需求任意定義[3],因此,測試Aurora協議中的幀格式對通道數據傳輸率的影響,可以更加合理地利用Aurora協議。本文針對Aurora協議進行測試,分析了協議幀格式與通道數據傳輸率的關系,并驗證分析結論的可靠性。
任何數據分組可以通過Aurora協議封裝在芯片間,板間傳輸[4]。Aurora 64 B/66 B是在FPGA內嵌高速收發器硬核模塊的物理編碼子層(physical coding sublayer,PCS)采用64 B/66 B編碼,開銷僅有3 %左右[5]。Aurora協議的數據傳輸通道由多個“弄”綁定生成,在配置IP核時可以選擇“弄”的數量,IP核內部邏輯結構如圖1所示。
傳感器高速數據采集與傳輸系統硬件框架主要包括傳感器模塊、模數轉換器(analog-digital converter,ADC)采樣模塊、FPGA模塊、DDR3數據緩存模塊、上位機模塊以及其他FPGA網絡模塊。傳感器模塊在檢測過程中產生大量模擬信號的數據,經過ADC采樣成數字信號通過JESD204接口協議[6]傳輸至FPGA中進行數據處理并通過DDR3模塊進行數據緩存,FPGA通過PCIE高速總線與上位機進行數據交互[7]。系統整個硬件框架如圖2所示。

圖1 Aurora IP核內部邏輯結構

圖2 傳感器高速數據采集與傳輸系統硬件框架
FPGA為單層網絡的核心,與其他FPGA網絡的FPGA通過內部封裝了對應的Rocket I/O 的Aurora協議進行數據交互,因此,Aurora協議的性能直接影響到整個網絡系統高速數據傳輸的性能。
以Xilinx的Kintex—7 FPGA 為載體,利用FPGA上的GTX高速收發器進行單個“弄”通道,全雙工模式的Aurora 64 B/66 B協議測試,傳輸通道采用差分模式以增加高速信號傳輸的抗干擾能力。Aurora 64 B/66 B IP核需要輸入2路時鐘驅動,吉比特(Gbit)的高速數據傳輸對時鐘頻率和質量要求很高,因此,外部輸入時鐘采用差分接口[8],外部時鐘源采用的時鐘模塊NI PXIE—6674定時模塊,利用高精度的DDS時鐘生成LVDS電平標準的500 MHz的兩路差分輸出時鐘,分別通過SMA射頻線輸入到兩塊Kintex—7 FPGA的GTX高速收發器的參考時鐘輸入接口。
采用Xilinx的Vivado開發工具進行軟件開發,整個軟件框架主要包括頂層模塊,幀產生模塊,幀檢測模塊,IP核模塊,復位模塊,時鐘模塊與收發器配置模塊。在頂層模塊調用Aurora IP核,幀產生模塊發送從DDR3緩存模塊傳送來的數據,幀檢測模塊對接收的數據進行檢測,如果出現錯誤會有錯誤標志位error信號置高。
Aurora 64B/66B IP核采用AXI4-Stream 接口協議,該協議沒有地址項,允許無限制的數據突發傳輸規模,適合于高吞吐量的數據傳輸[9]。通過在線邏輯分析儀(ILA)抓取待觀測信號,如圖3所示,通過虛擬I/O(virtual I/O,VI/O)修改幀長與幀間隙的值,對Aurora 64B/66B通道數據傳輸率進行實測。在圖3中可以看到發送模塊正確產生了所定義的幀格式。圖中箭頭標記的error信號位始終為低,表示數據正確接收,測試的通道數據傳輸率可靠。

圖3 ILA信號觀測
將幀間隙固定為10 B,幀長范圍從1 B增加到400 B,對幀長范圍內一些點進行采樣,分別在發送端(TX)和接收端(RX)測試得到相應的通道數據傳輸率,測試結果如圖4所示。

圖4 幀長與通道數據傳輸率關系
可知當保持幀間隙不變,隨著幀長的增加,通道數據傳輸率呈不斷增加趨勢,但增速下降,幀長增加到一定值后通道數據傳輸率接近數據傳輸率峰值,接近水平曲線。同時可以看到在RX端的通道數據傳輸率始終小于TX端,這主要因為時鐘補償和64 B/66 B編碼補償開銷,為了更加準確測定通道數據傳輸率,采樣測定RX端的通道數據傳輸率。
將幀長固定為15 B,幀間隙由0 B增加到511 B,對幀間隙范圍內一些點進行采樣,測試得到RX端通道數據傳輸率,測試結果如圖5所示。

圖5 幀間隙與通道數據傳輸率關系
可知,當保持幀長不變,隨著幀間隙的增加,通道數據傳輸率呈不斷減少趨勢,但減速下降。
由此可見,Aurora 64 B/66 B協議中,幀和幀間隙的長度對通道數據傳輸率具有關鍵性的影響,幀長與通道數據傳輸率呈正相關,幀間隙與通道數據傳輸率呈反相關,因此有
(1)
式中Vr為當前實際有效數據傳輸率,MBps;Vp為通道數據傳輸率峰值,MBps;lfs為Aurora協議中幀的長度,B;lifg為Aurora協議中當前幀與下一幀之間的間隙,B。
為了驗證式(1)結論的正確性,將幀間隙值固定為50 B,幀長不斷增加,將采樣點通道數據傳輸率測試值的曲線與式(1)理論通道傳輸率值進行對比,如圖6所示。

圖6 幀長與通道數據傳輸率關系
可以看到,式(1)理論曲線很好地擬合了采樣曲線,說明了由Aurora 64 B/66 B協議中幀和幀間隙與實際通道數率傳輸率之間的關系的正確性。
通過Aurora協議進行高速數據傳輸時,在不同幀間隙值,根據式(1)選擇合適的幀長既可以滿足通道數據傳輸率的需求,又可以降低增加幀長帶來的數據傳輸的時延以及傳輸過程中數據丟失出錯的可能性,以平衡傳感器高速數據采集傳輸系統中FPGA間數據傳輸時對通道數據傳輸率和通道性能的需求。
本文設計傳感器數據高速采集與傳輸處理硬件系統,并以Kintex—7 FPGA為核心設計了Aurora 64 B/66 B協議傳輸性能測試硬件系統。在實際板級調試環境下采樣測試了Aurora 64 B/66 B協議通道吞吐量范圍內不同的幀格式下通道數據傳輸率值,得到了幀格式與通道數據傳輸率之間的關系,測試結論穩定可靠。結論對設計傳感器數據高速采集與傳輸系統中合理的利用FPGA間數據交互的Aurora 64 B/66 B協議提供了參考。