文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190247
中文引用格式: 王威,,張秋云,江虹,,等. 基于FPGA和TCP/IP的多路采集與切換系統(tǒng)設計與實現(xiàn)[J].電子技術應用,,2019,45(6):125-129.
英文引用格式: Wang Wei,,Zhang Qiuyun,,Jiang Hong,et al. Design and implementation of multiplex acquisition and switching system based on FPGA and TCP/IP[J]. Application of Electronic Technique,,2019,,45(6):125-129.
0 引言
隨著信息網(wǎng)絡與分布式采集技術的飛速發(fā)展,,在智能交通、工業(yè)測控等領域,,對網(wǎng)絡數(shù)據(jù)傳輸處理速度,、可靠性及實時性的要求越來越高[1]。同時,,現(xiàn)場可編程門陣列(FPGA)憑借日益豐富的片內資源,、運行速度快和并行處理等特點,使其成為高速采集傳輸系統(tǒng)設計的一個有效手段[2-3],。以太網(wǎng)標準TCP/IP協(xié)議是Internet互聯(lián)網(wǎng)絡的基礎,,其不依賴固定的硬件或軟件系統(tǒng),可以集成于不同的網(wǎng)絡環(huán)境中,,具有通信可靠,、使用普遍、易于適配接口等優(yōu)點[4],。但傳統(tǒng)的基于CPU軟件實現(xiàn)的TCP/IP協(xié)議處理方式,,占用大量的CPU資源,消耗存儲空間,,無論在處理速度還是穩(wěn)定性方面,,都無法與基于硬件實現(xiàn)的相比[5-6]。韓國WIZnet公司推出的以太網(wǎng)控制芯片W5500支持硬件TCP卸載引擎(TCP Offload Engine,,TOE),,其集成了TCP/IP全硬件協(xié)議棧,能夠大幅提高應用設備的網(wǎng)絡性能,,降低CPU占用率,,減少FPGA邏輯資源使用,縮短響應時間[7],。
針對上述研究現(xiàn)狀和分布式采集場景分析,,本文介紹了一種基于FPGA和TOE架構,實現(xiàn)TCP/IP協(xié)議數(shù)據(jù)傳輸?shù)亩嗦凡杉c切換系統(tǒng),。該系統(tǒng)涉及并行數(shù)據(jù)采集,、多路通道切換、TCP/IP協(xié)議通信等模塊,,并通過上位機PC(或鍵盤與LCD)進行遠程(或本地)準確控制與實時顯示,,滿足多路通道切換、模擬信號并行采集,、可靠性傳輸?shù)裙δ艿男枨蟆?/p>
1 系統(tǒng)總體設計
該系統(tǒng)包含上,、下位機設計,組成一個完整的多路采集與切換系統(tǒng),,系統(tǒng)總體設計框圖如圖1所示,。上位機部分中的PC控制與顯示子系統(tǒng),,可根據(jù)監(jiān)測需求,遠程對下位機進行配置和部署,,并實時顯示獲取的數(shù)據(jù),。LCD顯示與鍵盤控制子系統(tǒng),與下位機安裝為一體,,可獨立地對下位機進行通道控制與信號檢測,,提升該系統(tǒng)的便捷性和實用性。下位機作為該系統(tǒng)的主體部分,,主要由基于FPGA芯片的核心調度,、數(shù)據(jù)處理、通道管理,、信號調理與采集,、網(wǎng)絡通信、串口通信,、單片機控制及電源與時鐘管理七大模塊組成。FPGA核心調度模塊是下位機的核心部分,,完成對下位機各個模塊間的協(xié)調運行與邏輯控制,,實現(xiàn)全局時鐘管理、TCP/IP協(xié)議與串口通信,、命令和數(shù)據(jù)的組幀與解析,、通道切換與配置、信號采集與數(shù)據(jù)處理等功能,。
基本工作原理:系統(tǒng)上電后,,首先等待FPGA初始化,完成默認配置,,被測外圍接口保持關閉,,下位機處于TCP服務器模式,等待上位機連接,。上位機PC連接成功后,,進行通道切換與選擇命令配置,并通過以太網(wǎng)將命令數(shù)據(jù)傳至下位機,。然后,,下位機通過以太網(wǎng)通信模塊接收TCP數(shù)據(jù),解析數(shù)據(jù)獲取命令后,,逐一對各通道管理模塊進行配置,,切換到被測通道,并對其中8路通道的電壓和電流進行信號調理與采集,。每次采集的數(shù)據(jù)和狀態(tài)信息,,再通過數(shù)據(jù)處理模塊組幀后,,交付給以太網(wǎng)通信模塊以TCP/IP協(xié)議發(fā)送數(shù)據(jù)至上位機。最后,,上位機對接收數(shù)據(jù)進行分析和顯示,,完成對多路通道的遠程切換、采集與監(jiān)測,。
若無PC連接,,系統(tǒng)可使用鍵盤進行命令配置,LCD顯示部分測試結果,,采用串口通信與下位機進行命令和數(shù)據(jù)的交互,,實現(xiàn)本地便捷控制與監(jiān)測。
2 系統(tǒng)硬件及FPGA設計
多路采集與切換系統(tǒng)的硬件設計主要由電源與時鐘模塊,、FPGA邏輯控制模塊,、以太網(wǎng)通信模塊、通道管理與切換模塊,、ADC信號采集模塊和STM32控制模塊組成,,硬件設計結構框圖如圖2所示。
2.1 FPGA邏輯控制模塊
FPGA邏輯控制模塊采用了基于Xilinx公司Spartan-6系列的XC6SLX150-2FG484C開發(fā)的核心板AC6150具有高速,、高帶寬,、高容量等特點。這款核心板尺寸為60 mm×60 mm,,搭載FPGA上電配置功能,,擴展用戶I/O接口168個,并具備豐富的內部邏輯資源,。其作為載板直插使用,,為工程技術人員提供了一個簡便的FPGA使用方案,極大降低了設計復雜度與周期,。
FPGA是下位機部分的核心控制單元,,邏輯設計采用硬件描述語言(Verilog HDL)和集成開發(fā)套件ISE14.7實現(xiàn)。FPGA邏輯控制模塊的頂層設計包括時鐘管理與系統(tǒng)復位,、W5500控制,、數(shù)據(jù)處理、通道切換,、AD采集控制以及STM32控制等子模塊,,頂層模塊負責各個子模塊的連接和邏輯綜合,F(xiàn)PGA頂層設計結構如圖2中間虛線框中所示,。
2.2 以太網(wǎng)TCP/IP通信模塊
以太網(wǎng)TCP/IP通信模塊主要采用WIZnet公司的一款多功能全硬件以太網(wǎng)接口芯片W5500,,內部集成10/100 M以太網(wǎng)控制器,嵌入TOE技術,支持TCP,、UDP,、IPv4等協(xié)議,無需考慮協(xié)議內部各層關系,,不涉及操作系統(tǒng),,只需要正確配置就可以實現(xiàn)網(wǎng)絡連接,接口電路簡單,、編程靈活方便[8-9],。該模塊電路如圖3所示。
FPGA基于SPI(外部串行接口)協(xié)議對W5500內部的寄存器區(qū)和內存進行讀寫訪問,。寄存器區(qū)由通用寄存器區(qū)(用于配置網(wǎng)關,、子網(wǎng)掩碼、源IP和源MAC地址等)和8個Socket_n(0≤n≤7)寄存器區(qū)(用于配置Socket端口號,、模式,、配置命令等)組成。W5500內嵌32 KB緩存(接收內存和發(fā)送內存,,各占16 KB),,用于緩存以太網(wǎng)傳輸中已接收和待發(fā)送的用戶數(shù)據(jù)。
采用FPGA+W5500的方式實現(xiàn)基于TCP/IP協(xié)議的硬件通信系統(tǒng)設計,,具有狀態(tài)穩(wěn)定,、體積小、成本低,、高速可靠等優(yōu)勢。FPGA通過W5500控制子模塊實現(xiàn)W5500的狀態(tài)機控制和SPI協(xié)議通信,,實現(xiàn)對W5500芯片的控制和數(shù)據(jù)交互,。W5500的狀態(tài)機控制包括對W5500控制器的狀態(tài)初始化、寄存器配置,、TCP連接管理,、內存數(shù)據(jù)讀寫等功能,其主控制狀態(tài)機狀態(tài)轉移如圖4所示,。
FPGA邏輯設計中,,將W5500配置為TCP服務器模式,等待上位機PC(作為客戶端)進行主動連接,。建立連接后,,PC下發(fā)通道切換、采集等命令數(shù)據(jù),,通過以太網(wǎng)傳輸至W5500,。FPGA檢測到W5500接收中斷后,從W5500接收緩存中讀取數(shù)據(jù),然后交給數(shù)據(jù)處理模塊,,進行數(shù)據(jù)解析,,并將命令信息下發(fā)到相關控制模塊。
數(shù)據(jù)處理模塊主要完成對接收(和待發(fā)送)的TCP數(shù)據(jù)進行解析(和組幀),;W5500控制模塊的核心在于TCP的連接建立,、數(shù)據(jù)接收和數(shù)據(jù)發(fā)送控制。使用Socket_0作為與上位機通信的端口,,TCP通信建立,、數(shù)據(jù)收發(fā)流程如圖5所示。經(jīng)回環(huán)測試,,TCP傳輸最高速率達40 Mb/s,,滿足眾多嵌入式應用需求。
2.3 通道管理與切換模塊
通道管理與切換模塊采用通道選通芯片(ADG1408YRUZ),、電平轉換芯片(LSF0108DCUR),、控制切換芯片(ADG819BRM)和繼電器(G3FD-X03SN)組成,以實現(xiàn)對外圍不同接口管腳的選通,、驅動和控制,。通道選通芯片實現(xiàn)8通道選一的選通功能;控制切換芯片和繼電器控制外圍輸入通道是否接入,;FPGA管腳輸出電平為3.3 V,,難以直接驅動外圍器件,通過電平轉換芯片將輸出轉換為5 V,,以提高驅動能力,。
當數(shù)據(jù)解析模塊收到通道切換命令后,F(xiàn)PGA通過通道切換子模塊,,實現(xiàn)對外圍芯片的控制,,完成多路不同通道的管理和切換。
2.4 ADC信號采集模塊
ADC信號采集模塊由電壓采集和信號調理子模塊組成,。電壓采集子模塊選用ADI公司的高精度模數(shù)轉換芯片AD7609BSTZ,,它是一款18位、8通道,、真差分,、同步采樣模數(shù)數(shù)據(jù)采集系統(tǒng)(DAS) ,最高吞吐率達200 kS/s,。該系統(tǒng)采用2片AD7609芯片分別對8路被測通道的電壓和電流進行采集,,模擬信號輸入范圍采用±5 V。在采集前端,,連接信號調理子模塊,,選用電流轉電壓芯片(MAX4080SASA+)將被測電流信號轉換為模擬電壓信號,,再經(jīng)過電壓信號調理芯片(AD8276ARZ)和適當高精度電阻進行分壓,使輸入AD芯片的被測模擬信號范圍在-5 V~+5 V之間,。
FPGA完成對通道的管理切換后,,通過AD采集控制子模塊,開啟對接入被測的8路通道AD采集,。采樣頻率為10 kHz,,16路并行采集,采樣速度達2.88 Mb/s(16×18 bit×10 kHz/s),。AD采集控制子模塊采用串行工作方式,,每完成一次采集,將數(shù)據(jù)交由數(shù)據(jù)處理子模塊進行組幀,,再通過W5500將數(shù)據(jù)以TCP/IP協(xié)議傳輸至上位機PC,。
3 系統(tǒng)軟硬件綜合測試
3.1 FPGA邏輯設計仿真與測試
進行FPGA邏輯設計時,仿真分析是必不可少的環(huán)節(jié),,利用ISE14.7自帶的仿真軟件ISim和在線邏輯分析軟件ChipScope,,有利于驗證設計的正確性,提高設計效率,。由于篇幅有限,,以下針對該系統(tǒng)FPGA設計的重難點模塊之一——以太網(wǎng)TCP/IP通信模塊的W5500數(shù)據(jù)發(fā)送功能,進行仿真和測試分析,。
以太網(wǎng)TCP/IP通信通過控制W5500實現(xiàn),,對W5500控制模塊進行數(shù)據(jù)發(fā)送測試仿真如圖6所示。在接收到命名標志Cmd_Receive后,,將測試數(shù)據(jù)Test_Data_r[7:0]依次存入B_FIFO中,,再以單bit的方式從B_FIFO中讀出,結合SPI協(xié)議將數(shù)據(jù)發(fā)送至W5500發(fā)送緩存,;數(shù)據(jù)全部寫入后,,給出寫入完成標志W(wǎng)5500WrFlag,以此開啟W5500進行TCP數(shù)據(jù)發(fā)送,。使用ChipScope對實測信號在線“抓取”,得到W5500數(shù)據(jù)發(fā)送測試信號截圖如圖7所示,,實測與仿真結果一致,,表明該設計的正確性。
3.2 系統(tǒng)測試與效果
下位機采用標準2U機箱設計,,可同時連接8臺被測設備,,每臺設備有13路不同的接口,共需控制8組×13路通道的切換,。上位機的命令配置界面如圖8所示,,通過勾選通道組合,實現(xiàn)多通道選擇和切換命令的配置。圖8中展示了同時開啟對8臺被測設備的2通道監(jiān)測,,并施加控制信號1,、4的命令配置過程。
使用網(wǎng)絡封包分析軟件WireShark對系統(tǒng)的TCP/IP傳輸過程進行測試,,下位機為服務器(IP:192.168.1.168,,端口號:10000),上位機PC為客戶端(IP:192.168.1.1,,端口號:8001),,TCP/IP通信測試的流量統(tǒng)計結果如圖9所示。圖中給出“三次握手”建立TCP連接,,和命令數(shù)據(jù)發(fā)送接收與ACK回復過程,,表明TCP/IP通信正常。
在2號通道接入被測器件,,上位機采用圖8中的通道切換命令配置,,系統(tǒng)測試對應的PC和LCD監(jiān)測顯示結果如圖10所示,PC在報表界面可實時顯示被測8路通道的電壓和電流,,LCD以10 Hz的頻率刷新顯示監(jiān)測結果,。經(jīng)長期試驗和測試結果表明,PC與LCD顯示結果與實際一致,,測試效果良好,,顯示畫面穩(wěn)定,操作便捷流暢,。
4 結論
本文設計了一種基于FPGA和TCP/IP協(xié)議的多路采集與切換系統(tǒng),,其采用FPGA+W5500的方式實現(xiàn)了基于硬件的TCP/IP協(xié)議棧,并詳細介紹了該系統(tǒng)的TCP/IP通信,、通道切換和多路采集部分的設計方法,。綜合測試結果表明,系統(tǒng)可以實現(xiàn)多路采集與切換控制的功能,,穩(wěn)定可靠,、使用便捷,具有一定的實用價值,。
參考文獻
[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] 李洋,,禹衛(wèi)東,,胡驍,,等.基于FPGA的千兆以太網(wǎng)數(shù)傳系統(tǒng)設計[J].電子測量技術,2015(10):72-77.
[3] 周浩,,王浩全,,任時磊.基于FPGA和NAND Flash的便攜式信號采集系統(tǒng)設計[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數(shù)據(jù)通信的設計與應用[D].武漢:武漢科技大學.
[7] 高柯柯.基于FPGA和W5500的串口數(shù)據(jù)切換系統(tǒng)研究與設計[D].蘭州:蘭州交通大學,,2017.
[8] 王文,,鄭建生.基于FPGA的TCP/IP網(wǎng)絡通信系統(tǒng)的設計與實現(xiàn)[J].現(xiàn)代電子技術,2018(8):5-9.
[9] 彭海,,高俊雄,,王耘波.基于FPGA的虹膜圖像采集系統(tǒng)設計[J].儀表技術與傳感器,2016(1):43-46.
作者信息:
王 威1,,張秋云1,,江 虹1,余恒松2,,易志強1,,朱 笛1
(1.西南科技大學 信息工程學院,四川 綿陽621010,;2.西南科技大學 國防科技學院,,四川 綿陽621010)