《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA和TCP/IP的多路采集與切換系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于FPGA和TCP/IP的多路采集與切換系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2019年電子技術(shù)應(yīng)用第6期
王 威1,張秋云1,江 虹1,余恒松2,易志強(qiáng)1,朱 笛1
1.西南科技大學(xué) 信息工程學(xué)院,四川 綿陽621010;2.西南科技大學(xué) 國防科技學(xué)院,四川 綿陽621010
摘要: 為保證數(shù)據(jù)采集應(yīng)用中系統(tǒng)遠(yuǎn)距離控制和數(shù)據(jù)傳輸?shù)目煽啃?,及滿足多路信號接口的切換與并行數(shù)據(jù)采集需求,設(shè)計(jì)了一種基于FPGA和TCP/IP的多路采集與切換系統(tǒng)。該系統(tǒng)以Xilinx Spartan-6系列的FPGA為主控芯片,可滿足8組×13路通道的切換,及16路模擬信號的同步采集與實(shí)時(shí)傳輸,采用FPGA+TOE架構(gòu)實(shí)現(xiàn)TCP/IP協(xié)議通信,并配備監(jiān)測上位機(jī)。通過測試表明,該系統(tǒng)能夠長期穩(wěn)定地進(jìn)行多路通道切換及高速采集與實(shí)時(shí)傳輸,使用便捷、可靠性高,在分布式采集領(lǐng)域中具有一定的應(yīng)用價(jià)值。
中圖分類號: TP274
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190247
中文引用格式: 王威,張秋云,江虹,等. 基于FPGA和TCP/IP的多路采集與切換系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,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.
Design and implementation of multiplex acquisition and switching system based on FPGA and TCP/IP
Wang Wei1,Zhang Qiuyun1,Jiang Hong1,Yu Hengsong2,Yi Zhiqiang1,Zhu Di1
1.School of Information Engineering,Southwest University of Science and Technology,Mianyang 621010,China; 2.School of National Defense of Science and Technology,Southwest University of Science and Technology,Mianyang 621010,China
Abstract: In order to ensure the reliability of long-distance control and data transmission in data acquisition applications, and meet the requirements of multi-channel signal interface switching and parallel data acquisition, a multi-channel acquisition and switching system based on FPGA and TCP/IP is designed. The system uses Xilinx Spartan-6 series FPGA as the main control chip, which can meet the switching of 8 groups of 13 channels, and the synchronous acquisition and real-time transmission of 16 analog signals. The system uses the architecture of FPGA+TOE to realize TCP/IP , and is equipped with a monitoring host computer. The experimental results show that the system is capable of long-term stable multi-channel switching , high-speed acquisition and real-time transmission. It is convenient to use and highly reliable, and has certain application value in the field of distributed acquisition.
Key words : data acquisition;TCP/IP;multichannel switching;FPGA+W5500

0 引言

    隨著信息網(wǎng)絡(luò)與分布式采集技術(shù)的飛速發(fā)展,在智能交通、工業(yè)測控等領(lǐng)域,對網(wǎng)絡(luò)數(shù)據(jù)傳輸處理速度、可靠性及實(shí)時(shí)性的要求越來越高[1]。同時(shí),現(xiàn)場可編程門陣列(FPGA)憑借日益豐富的片內(nèi)資源、運(yùn)行速度快和并行處理等特點(diǎn),使其成為高速采集傳輸系統(tǒng)設(shè)計(jì)的一個(gè)有效手段[2-3]。以太網(wǎng)標(biāo)準(zhǔn)TCP/IP協(xié)議是Internet互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),其不依賴固定的硬件或軟件系統(tǒng),可以集成于不同的網(wǎng)絡(luò)環(huán)境中,具有通信可靠、使用普遍、易于適配接口等優(yōu)點(diǎn)[4]。但傳統(tǒng)的基于CPU軟件實(shí)現(xiàn)的TCP/IP協(xié)議處理方式,占用大量的CPU資源,消耗存儲空間,無論在處理速度還是穩(wěn)定性方面,都無法與基于硬件實(shí)現(xiàn)的相比[5-6]。韓國WIZnet公司推出的以太網(wǎng)控制芯片W5500支持硬件TCP卸載引擎(TCP Offload Engine,TOE),其集成了TCP/IP全硬件協(xié)議棧,能夠大幅提高應(yīng)用設(shè)備的網(wǎng)絡(luò)性能,降低CPU占用率,減少FPGA邏輯資源使用,縮短響應(yīng)時(shí)間[7]。

    針對上述研究現(xiàn)狀和分布式采集場景分析,本文介紹了一種基于FPGA和TOE架構(gòu),實(shí)現(xiàn)TCP/IP協(xié)議數(shù)據(jù)傳輸?shù)亩嗦凡杉c切換系統(tǒng)。該系統(tǒng)涉及并行數(shù)據(jù)采集、多路通道切換、TCP/IP協(xié)議通信等模塊,并通過上位機(jī)PC(或鍵盤與LCD)進(jìn)行遠(yuǎn)程(或本地)準(zhǔn)確控制與實(shí)時(shí)顯示,滿足多路通道切換、模擬信號并行采集、可靠性傳輸?shù)裙δ艿男枨蟆?/p>

1 系統(tǒng)總體設(shè)計(jì)

    該系統(tǒng)包含上、下位機(jī)設(shè)計(jì),組成一個(gè)完整的多路采集與切換系統(tǒng),系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。上位機(jī)部分中的PC控制與顯示子系統(tǒng),可根據(jù)監(jiān)測需求,遠(yuǎn)程對下位機(jī)進(jìn)行配置和部署,并實(shí)時(shí)顯示獲取的數(shù)據(jù)。LCD顯示與鍵盤控制子系統(tǒng),與下位機(jī)安裝為一體,可獨(dú)立地對下位機(jī)進(jìn)行通道控制與信號檢測,提升該系統(tǒng)的便捷性和實(shí)用性。下位機(jī)作為該系統(tǒng)的主體部分,主要由基于FPGA芯片的核心調(diào)度、數(shù)據(jù)處理、通道管理、信號調(diào)理與采集、網(wǎng)絡(luò)通信、串口通信、單片機(jī)控制及電源與時(shí)鐘管理七大模塊組成。FPGA核心調(diào)度模塊是下位機(jī)的核心部分,完成對下位機(jī)各個(gè)模塊間的協(xié)調(diào)運(yùn)行與邏輯控制,實(shí)現(xiàn)全局時(shí)鐘管理、TCP/IP協(xié)議與串口通信、命令和數(shù)據(jù)的組幀與解析、通道切換與配置、信號采集與數(shù)據(jù)處理等功能。

qrs3-t1.gif

    基本工作原理:系統(tǒng)上電后,首先等待FPGA初始化,完成默認(rèn)配置,被測外圍接口保持關(guān)閉,下位機(jī)處于TCP服務(wù)器模式,等待上位機(jī)連接。上位機(jī)PC連接成功后,進(jìn)行通道切換與選擇命令配置,并通過以太網(wǎng)將命令數(shù)據(jù)傳至下位機(jī)。然后,下位機(jī)通過以太網(wǎng)通信模塊接收TCP數(shù)據(jù),解析數(shù)據(jù)獲取命令后,逐一對各通道管理模塊進(jìn)行配置,切換到被測通道,并對其中8路通道的電壓和電流進(jìn)行信號調(diào)理與采集。每次采集的數(shù)據(jù)和狀態(tài)信息,再通過數(shù)據(jù)處理模塊組幀后,交付給以太網(wǎng)通信模塊以TCP/IP協(xié)議發(fā)送數(shù)據(jù)至上位機(jī)。最后,上位機(jī)對接收數(shù)據(jù)進(jìn)行分析和顯示,完成對多路通道的遠(yuǎn)程切換、采集與監(jiān)測。

    若無PC連接,系統(tǒng)可使用鍵盤進(jìn)行命令配置,LCD顯示部分測試結(jié)果,采用串口通信與下位機(jī)進(jìn)行命令和數(shù)據(jù)的交互,實(shí)現(xiàn)本地便捷控制與監(jiān)測。

2 系統(tǒng)硬件及FPGA設(shè)計(jì)

    多路采集與切換系統(tǒng)的硬件設(shè)計(jì)主要由電源與時(shí)鐘模塊、FPGA邏輯控制模塊、以太網(wǎng)通信模塊、通道管理與切換模塊、ADC信號采集模塊和STM32控制模塊組成,硬件設(shè)計(jì)結(jié)構(gòu)框圖如圖2所示。

qrs3-t2.gif

2.1 FPGA邏輯控制模塊

    FPGA邏輯控制模塊采用了基于Xilinx公司Spartan-6系列的XC6SLX150-2FG484C開發(fā)的核心板AC6150具有高速、高帶寬、高容量等特點(diǎn)。這款核心板尺寸為60 mm×60 mm,搭載FPGA上電配置功能,擴(kuò)展用戶I/O接口168個(gè),并具備豐富的內(nèi)部邏輯資源。其作為載板直插使用,為工程技術(shù)人員提供了一個(gè)簡便的FPGA使用方案,極大降低了設(shè)計(jì)復(fù)雜度與周期。

    FPGA是下位機(jī)部分的核心控制單元,邏輯設(shè)計(jì)采用硬件描述語言(Verilog HDL)和集成開發(fā)套件ISE14.7實(shí)現(xiàn)。FPGA邏輯控制模塊的頂層設(shè)計(jì)包括時(shí)鐘管理與系統(tǒng)復(fù)位、W5500控制、數(shù)據(jù)處理、通道切換、AD采集控制以及STM32控制等子模塊,頂層模塊負(fù)責(zé)各個(gè)子模塊的連接和邏輯綜合,F(xiàn)PGA頂層設(shè)計(jì)結(jié)構(gòu)如圖2中間虛線框中所示。

2.2 以太網(wǎng)TCP/IP通信模塊

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

qrs3-t3.gif

    FPGA基于SPI(外部串行接口)協(xié)議對W5500內(nèi)部的寄存器區(qū)和內(nèi)存進(jìn)行讀寫訪問。寄存器區(qū)由通用寄存器區(qū)(用于配置網(wǎng)關(guān)、子網(wǎng)掩碼、源IP和源MAC地址等)和8個(gè)Socket_n(0≤n≤7)寄存器區(qū)(用于配置Socket端口號、模式、配置命令等)組成。W5500內(nèi)嵌32 KB緩存(接收內(nèi)存和發(fā)送內(nèi)存,各占16 KB),用于緩存以太網(wǎng)傳輸中已接收和待發(fā)送的用戶數(shù)據(jù)。

    采用FPGA+W5500的方式實(shí)現(xiàn)基于TCP/IP協(xié)議的硬件通信系統(tǒng)設(shè)計(jì),具有狀態(tài)穩(wěn)定、體積小、成本低、高速可靠等優(yōu)勢。FPGA通過W5500控制子模塊實(shí)現(xiàn)W5500的狀態(tài)機(jī)控制和SPI協(xié)議通信,實(shí)現(xiàn)對W5500芯片的控制和數(shù)據(jù)交互。W5500的狀態(tài)機(jī)控制包括對W5500控制器的狀態(tài)初始化、寄存器配置、TCP連接管理、內(nèi)存數(shù)據(jù)讀寫等功能,其主控制狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移如圖4所示。

qrs3-t4.gif

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

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

qrs3-t5.gif

2.3 通道管理與切換模塊

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

    當(dāng)數(shù)據(jù)解析模塊收到通道切換命令后,F(xiàn)PGA通過通道切換子模塊,實(shí)現(xiàn)對外圍芯片的控制,完成多路不同通道的管理和切換。

2.4 ADC信號采集模塊

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

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

3 系統(tǒng)軟硬件綜合測試

3.1 FPGA邏輯設(shè)計(jì)仿真與測試

    進(jìn)行FPGA邏輯設(shè)計(jì)時(shí),仿真分析是必不可少的環(huán)節(jié),利用ISE14.7自帶的仿真軟件ISim和在線邏輯分析軟件ChipScope,有利于驗(yàn)證設(shè)計(jì)的正確性,提高設(shè)計(jì)效率。由于篇幅有限,以下針對該系統(tǒng)FPGA設(shè)計(jì)的重難點(diǎn)模塊之一——以太網(wǎng)TCP/IP通信模塊的W5500數(shù)據(jù)發(fā)送功能,進(jìn)行仿真和測試分析。

    以太網(wǎng)TCP/IP通信通過控制W5500實(shí)現(xiàn),對W5500控制模塊進(jìn)行數(shù)據(jù)發(fā)送測試仿真如圖6所示。在接收到命名標(biāo)志Cmd_Receive后,將測試數(shù)據(jù)Test_Data_r[7:0]依次存入B_FIFO中,再以單bit的方式從B_FIFO中讀出,結(jié)合SPI協(xié)議將數(shù)據(jù)發(fā)送至W5500發(fā)送緩存;數(shù)據(jù)全部寫入后,給出寫入完成標(biāo)志W(wǎng)5500WrFlag,以此開啟W5500進(jìn)行TCP數(shù)據(jù)發(fā)送。使用ChipScope對實(shí)測信號在線“抓取”,得到W5500數(shù)據(jù)發(fā)送測試信號截圖如圖7所示,實(shí)測與仿真結(jié)果一致,表明該設(shè)計(jì)的正確性。

qrs3-t6.gif

qrs3-t7.gif

3.2 系統(tǒng)測試與效果

    下位機(jī)采用標(biāo)準(zhǔn)2U機(jī)箱設(shè)計(jì),可同時(shí)連接8臺被測設(shè)備,每臺設(shè)備有13路不同的接口,共需控制8組×13路通道的切換。上位機(jī)的命令配置界面如圖8所示,通過勾選通道組合,實(shí)現(xiàn)多通道選擇和切換命令的配置。圖8中展示了同時(shí)開啟對8臺被測設(shè)備的2通道監(jiān)測,并施加控制信號1、4的命令配置過程。

qrs3-t8.gif

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

qrs3-t9.gif

    在2號通道接入被測器件,上位機(jī)采用圖8中的通道切換命令配置,系統(tǒng)測試對應(yīng)的PC和LCD監(jiān)測顯示結(jié)果如圖10所示,PC在報(bào)表界面可實(shí)時(shí)顯示被測8路通道的電壓和電流,LCD以10 Hz的頻率刷新顯示監(jiān)測結(jié)果。經(jīng)長期試驗(yàn)和測試結(jié)果表明,PC與LCD顯示結(jié)果與實(shí)際一致,測試效果良好,顯示畫面穩(wěn)定,操作便捷流暢。

qrs3-t10.gif

4 結(jié)論

    本文設(shè)計(jì)了一種基于FPGA和TCP/IP協(xié)議的多路采集與切換系統(tǒng),其采用FPGA+W5500的方式實(shí)現(xiàn)了基于硬件的TCP/IP協(xié)議棧,并詳細(xì)介紹了該系統(tǒng)的TCP/IP通信、通道切換和多路采集部分的設(shè)計(jì)方法。綜合測試結(jié)果表明,系統(tǒng)可以實(shí)現(xiàn)多路采集與切換控制的功能,穩(wěn)定可靠、使用便捷,具有一定的實(shí)用價(jià)值。

參考文獻(xià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)設(shè)計(jì)[J].電子測量技術(shù),2015(10):72-77.

[3] 周浩,王浩全,任時(shí)磊.基于FPGA和NAND Flash的便攜式信號采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,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ù)通信的設(shè)計(jì)與應(yīng)用[D].武漢:武漢科技大學(xué).

[7] 高柯柯.基于FPGA和W5500的串口數(shù)據(jù)切換系統(tǒng)研究與設(shè)計(jì)[D].蘭州:蘭州交通大學(xué),2017.

[8] 王文,鄭建生.基于FPGA的TCP/IP網(wǎng)絡(luò)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2018(8):5-9.

[9] 彭海,高俊雄,王耘波.基于FPGA的虹膜圖像采集系統(tǒng)設(shè)計(jì)[J].儀表技術(shù)與傳感器,2016(1):43-46.



作者信息:

王  威1,張秋云1,江  虹1,余恒松2,易志強(qiáng)1,朱  笛1

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。