基於FPGA和TCP/IP的多路採集與切換系統設計與實現

隨著信息網絡與分佈式採集技術的飛速發展,在智能交通、工業測控等領域,對網絡數據傳輸處理速度、可靠性及實時性的要求越來越高[1]。同時,現場可編程門陣列(FPGA)憑藉日益豐富的片內資源、運行速度快和並行處理等特點,使其成為高速採集傳輸系統設計的一個有效手段[2-3]。以太網標準TCP/IP協議是Internet互聯網絡的基礎,其不依賴固定的硬件或軟件系統,可以集成於不同的網絡環境中,具有通信可靠、使用普遍、易於適配接口等優點[4]。但傳統的基於CPU軟件實現的TCP/IP協議處理方式,佔用大量的CPU資源,消耗存儲空間,無論在處理速度還是穩定性方面,都無法與基於硬件實現的相比[5-6]。韓國WIZnet公司推出的以太網控制芯片W5500支持硬件TCP卸載引擎(TCP Offload Engine,TOE),其集成了TCP/IP全硬件協議棧,能夠大幅提高應用設備的網絡性能,降低CPU佔用率,減少FPGA邏輯資源使用,縮短響應時間[7]

針對上述研究現狀和分佈式採集場景分析,本文介紹了一種基於FPGA和TOE架構,實現TCP/IP協議數據傳輸的多路採集與切換系統。該系統涉及並行、多路通道切換、TCP/IP協議通信等模塊,並通過上位機PC(或鍵盤與LCD)進行遠程(或本地)準確控制與實時顯示,滿足多路通道切換、模擬信號並行採集、可靠性傳輸等功能的需求。

1 系統總體設計

該系統包含上、下位機設計,組成一個完整的多路採集與切換系統,系統總體設計框圖如圖1所示。上位機部分中的PC控制與顯示子系統,可根據監測需求,遠程對下位機進行配置和部署,並實時顯示獲取的數據。LCD顯示與鍵盤控制子系統,與下位機安裝為一體,可獨立地對下位機進行通道控制與信號檢測,提升該系統的便捷性和實用性。下位機作為該系統的主體部分,主要由基於FPGA芯片的核心調度、數據處理、通道管理、信號調理與採集、網絡通信、串口通信、單片機控制及電源與時鐘管理七大模塊組成。FPGA核心調度模塊是下位機的核心部分,完成對下位機各個模塊間的協調運行與邏輯控制,實現全局時鐘管理、TCP/IP協議與串口通信、命令和數據的組幀與解析、通道切換與配置、信號採集與數據處理等功能。

基於FPGA和TCP/IP的多路採集與切換系統設計與實現

基本工作原理:系統上電後,首先等待FPGA初始化,完成默認配置,被測外圍接口保持關閉,下位機處於TCP服務器模式,等待上位機連接。上位機PC連接成功後,進行通道切換與選擇命令配置,並通過以太網將命令數據傳至下位機。然後,下位機通過以太網通信模塊接收TCP數據,解析數據獲取命令後,逐一對各通道管理模塊進行配置,切換到被測通道,並對其中8路通道的電壓和電流進行信號調理與採集。每次採集的數據和狀態信息,再通過數據處理模塊組幀後,交付給以太網通信模塊以TCP/IP協議發送數據至上位機。最後,上位機對接收數據進行分析和顯示,完成對多路通道的遠程切換、採集與監測。

若無PC連接,系統可使用鍵盤進行命令配置,LCD顯示部分測試結果,採用串口通信與下位機進行命令和數據的交互,實現本地便捷控制與監測。

2 系統硬件及FPGA設計

多路採集與切換系統的硬件設計主要由電源與時鐘模塊、FPGA邏輯控制模塊、以太網通信模塊、通道管理與切換模塊、ADC信號採集模塊和STM32控制模塊組成,硬件設計結構框圖如圖2所示。

基於FPGA和TCP/IP的多路採集與切換系統設計與實現

2.1 FPGA邏輯控制模塊

FPGA邏輯控制模塊採用了基於Xilinx公司Spartan-6系列的XC6SLX150-2FG484C開發的核心板AC6150具有高速、高帶寬、高容量等特點。這款核心板尺寸為60 mm×60 mm,搭載FPGA上電配置功能,擴展用戶I/O接口168個,並具備豐富的內部邏輯資源。其作為載板直插使用,為工程技術人員提供了一個簡便的FPGA使用方案,極大降低了設計複雜度與週期。

FPGA是下位機部分的核心控制單元,邏輯設計採用硬件描述語言(Verilog HDL)和集成開發套件ISE14.7實現。FPGA邏輯控制模塊的頂層設計包括時鐘管理與系統復位、W5500控制、數據處理、通道切換、AD採集控制以及STM32控制等子模塊,頂層模塊負責各個子模塊的連接和邏輯綜合,FPGA頂層設計結構如圖2中間虛線框中所示。

2.2 以太網TCP/IP通信模塊

以太網TCP/IP通信模塊主要採用WIZnet公司的一款多功能全硬件以太網接口芯片W5500,內部集成10/100 M以太網控制器,嵌入TOE技術,支持TCP、UDP、IPv4等協議,無需考慮協議內部各層關係,不涉及操作系統,只需要正確配置就可以實現網絡連接,接口電路簡單、編程靈活方便[8-9]。該模塊電路如圖3所示。

基於FPGA和TCP/IP的多路採集與切換系統設計與實現

FPGA基於SPI(外部串行接口)協議對W5500內部的寄存器區和內存進行讀寫訪問。寄存器區由通用寄存器區(用於配置網關、子網掩碼、源IP和源MAC地址等)和8個Socket_n(0≤n≤7)寄存器區(用於配置Socket端口號、模式、配置命令等)組成。W5500內嵌32 KB緩存(接收內存和發送內存,各佔16 KB),用於緩存以太網傳輸中已接收和待發送的用戶數據。

採用FPGA+W5500的方式實現基於TCP/IP協議的硬件通信系統設計,具有狀態穩定、體積小、成本低、高速可靠等優勢。FPGA通過W5500控制子模塊實現W5500的狀態機控制和SPI協議通信,實現對W5500芯片的控制和數據交互。W5500的狀態機控制包括對W5500控制器的狀態初始化、寄存器配置、TCP連接管理、內存數據讀寫等功能,其主控制狀態機狀態轉移如圖4所示。

基於FPGA和TCP/IP的多路採集與切換系統設計與實現

FPGA邏輯設計中,將W5500配置為TCP服務器模式,等待上位機PC(作為客戶端)進行主動連接。建立連接後,PC下發通道切換、採集等命令數據,通過以太網傳輸至W5500。FPGA檢測到W5500接收中斷後,從W5500接收緩存中讀取數據,然後交給數據處理模塊,進行數據解析,並將命令信息下發到相關控制模塊。

數據處理模塊主要完成對接收(和待發送)的TCP數據進行解析(和組幀);W5500控制模塊的核心在於TCP的連接建立、數據接收和數據發送控制。使用Socket_0作為與上位機通信的端口,TCP通信建立、數據收發流程如圖5所示。經迴環測試,TCP傳輸最高速率達40 Mb/s,滿足眾多嵌入式應用需求。

基於FPGA和TCP/IP的多路採集與切換系統設計與實現

2.3 通道管理與切換模塊

通道管理與切換模塊採用通道選通芯片(ADG1408YRUZ)、電平轉換芯片(LSF0108DCUR)、控制切換芯片(ADG819BRM)和繼電器(G3FD-X03SN)組成,以實現對外圍不同接口管腳的選通、驅動和控制。通道選通芯片實現8通道選一的選通功能;控制切換芯片和繼電器控制外圍輸入通道是否接入;FPGA管腳輸出電平為3.3 V,難以直接驅動外圍器件,通過電平轉換芯片將輸出轉換為5 V,以提高驅動能力。

當數據解析模塊收到通道切換命令後,FPGA通過通道切換子模塊,實現對外圍芯片的控制,完成多路不同通道的管理和切換。

2.4 ADC信號採集模塊

ADC信號採集模塊由電壓採集和信號調理子模塊組成。電壓採集子模塊選用ADI公司的高精度模數轉換芯片AD7609BSTZ,它是一款18位、8通道、真差分、同步採樣模數數據採集系統(DAS) ,最高吞吐率達200 kS/s。該系統採用2片AD7609芯片分別對8路被測通道的電壓和電流進行採集,模擬信號輸入範圍採用±5 V。在採集前端,連接信號調理子模塊,選用電流轉電壓芯片(MAX4080SASA+)將被測電流信號轉換為模擬電壓信號,再經過電壓信號調理芯片(AD8276ARZ)和適當高精度電阻進行分壓,使輸入AD芯片的被測模擬信號範圍在-5 V~+5 V之間。

FPGA完成對通道的管理切換後,通過AD採集控制子模塊,開啟對接入被測的8路通道AD採集。採樣頻率為10 kHz,16路並行採集,採樣速度達2.88 Mb/s(16×18 bit×10 kHz/s)。AD採集控制子模塊採用串行工作方式,每完成一次採集,將數據交由數據處理子模塊進行組幀,再通過W5500將數據以TCP/IP協議傳輸至上位機PC。

3 系統軟硬件綜合測試

3.1 FPGA邏輯設計仿真與測試

進行FPGA邏輯設計時,仿真分析是必不可少的環節,利用ISE14.7自帶的仿真軟件ISim和在線邏輯分析軟件ChipScope,有利於驗證設計的正確性,提高設計效率。由於篇幅有限,以下針對該系統FPGA設計的重難點模塊之一——以太網TCP/IP通信模塊的W5500數據發送功能,進行仿真和測試分析。

以太網TCP/IP通信通過控制W5500實現,對W5500控制模塊進行數據發送測試仿真如圖6所示。在接收到命名標誌Cmd_Receive後,將測試數據Test_Data_r[7:0]依次存入B_FIFO中,再以單bit的方式從B_FIFO中讀出,結合SPI協議將數據發送至W5500發送緩存;數據全部寫入後,給出寫入完成標誌W5500WrFlag,以此開啟W5500進行TCP數據發送。使用ChipScope對實測信號在線“抓取”,得到W5500數據發送測試信號截圖如圖7所示,實測與仿真結果一致,表明該設計的正確性。

基於FPGA和TCP/IP的多路採集與切換系統設計與實現基於FPGA和TCP/IP的多路採集與切換系統設計與實現

3.2 系統測試與效果

下位機採用標準2U機箱設計,可同時連接8臺被測設備,每臺設備有13路不同的接口,共需控制8組×13路通道的切換。上位機的命令配置界面如圖8所示,通過勾選通道組合,實現多通道選擇和切換命令的配置。圖8中展示了同時開啟對8臺被測設備的2通道監測,並施加控制信號1、4的命令配置過程。

基於FPGA和TCP/IP的多路採集與切換系統設計與實現

使用網絡封包分析軟件WireShark對系統的TCP/IP傳輸過程進行測試,下位機為服務器(IP:192.168.1.168,端口號:10000),上位機PC為客戶端(IP:192.168.1.1,端口號:8001),TCP/IP通信測試的流量統計結果如圖9所示。圖中給出“三次握手”建立TCP連接,和命令數據發送接收與ACK回覆過程,表明TCP/IP通信正常。

基於FPGA和TCP/IP的多路採集與切換系統設計與實現

在2號通道接入被測器件,上位機採用圖8中的通道切換命令配置,系統測試對應的PC和LCD監測顯示結果如圖10所示,PC在報表界面可實時顯示被測8路通道的電壓和電流,LCD以10 Hz的頻率刷新顯示監測結果。經長期試驗和測試結果表明,PC與LCD顯示結果與實際一致,測試效果良好,顯示畫面穩定,操作便捷流暢。

基於FPGA和TCP/IP的多路採集與切換系統設計與實現

4 結論

本文設計了一種基於FPGA和TCP/IP協議的多路採集與切換系統,其採用FPGA+W5500的方式實現了基於硬件的TCP/IP協議棧,並詳細介紹了該系統的TCP/IP通信、通道切換和多路採集部分的設計方法。綜合測試結果表明,系統可以實現多路採集與切換控制的功能,穩定可靠、使用便捷,具有一定的實用價值。

參考文獻

[1] BAO S,YAN H,CHI Q,et al.A FPGA-based reconfigurable data acquisition system for industrial sensors[J].IEEE Transactions on Industrial Informatics,2017,13(4):1503-1512.

[2] 李洋,禹衛東,胡驍,等.基於FPGA的千兆以太網數傳系統設計[J].電子測量技術,2015(10):72-77.

[3] 周浩,王浩全,任時磊.基於FPGA和NAND Flash的便攜式信號採集系統設計[J].電子技術應用,2018,44(9):88-92.

[4] ZSEBY T,IGLESIAS V F,BERNHARDT V,et al.A network steganography lab on detecting TCP/IP covert channels[J].IEEE Transactions on Education,2016:1-9.

[5] LIU Q,XU Z,LI Z .Implementation of hardware TCP/IP stack for DAQ systems with flexible data channel[J].Electronics Letters,2017,53(8):530-532.

[6] 謝喆.基於FPGA的TCP/IP數據通信的設計與應用[D].武漢:武漢科技大學.

[7] 高柯柯.基於FPGA和W5500的串口數據切換系統研究與設計[D].蘭州:蘭州交通大學,2017.

[8] 王文,鄭建生.基於FPGA的TCP/IP網絡通信系統的設計與實現[J].現代電子技術,2018(8):5-9.

[9] 彭海,高俊雄,王耘波.基於FPGA的虹膜圖像採集系統設計[J].儀表技術與傳感器,2016(1):43-46.

作者信息:

王 威1,張秋雲1,江 虹1,餘恆鬆2,易志強1,朱 笛1

(1.西南科技大學 信息工程學院,四川 綿陽621010;2.西南科技大學 國防科技學院,四川 綿陽621010)

相關推薦

推薦中...