《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(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é)院,,四川 綿陽(yáng)621010,;2.西南科技大學(xué) 國(guó)防科技學(xué)院,,四川 綿陽(yáng)621010
摘要: 為保證數(shù)據(jù)采集應(yīng)用中系統(tǒng)遠(yuǎn)距離控制和數(shù)據(jù)傳輸?shù)目煽啃裕皾M足多路信號(hào)接口的切換與并行數(shù)據(jù)采集需求,,設(shè)計(jì)了一種基于FPGA和TCP/IP的多路采集與切換系統(tǒng),。該系統(tǒng)以Xilinx Spartan-6系列的FPGA為主控芯片,可滿足8組×13路通道的切換,,及16路模擬信號(hào)的同步采集與實(shí)時(shí)傳輸,,采用FPGA+TOE架構(gòu)實(shí)現(xiàn)TCP/IP協(xié)議通信,,并配備監(jiān)測(cè)上位機(jī)。通過測(cè)試表明,,該系統(tǒng)能夠長(zhǎng)期穩(wěn)定地進(jìn)行多路通道切換及高速采集與實(shí)時(shí)傳輸,,使用便捷、可靠性高,,在分布式采集領(lǐng)域中具有一定的應(yīng)用價(jià)值,。
中圖分類號(hào): TP274
文獻(xiàn)標(biāo)識(shí)碼: 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è)測(cè)控等領(lǐng)域,,對(duì)網(wǎng)絡(luò)數(shù)據(jù)傳輸處理速度,、可靠性及實(shí)時(shí)性的要求越來越高[1]。同時(shí),現(xiàn)場(chǎng)可編程門陣列(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資源,,消耗存儲(chǔ)空間,無論在處理速度還是穩(wěn)定性方面,,都無法與基于硬件實(shí)現(xiàn)的相比[5-6],。韓國(guó)WIZnet公司推出的以太網(wǎng)控制芯片W5500支持硬件TCP卸載引擎(TCP Offload Engine,TOE),,其集成了TCP/IP全硬件協(xié)議棧,,能夠大幅提高應(yīng)用設(shè)備的網(wǎng)絡(luò)性能,降低CPU占用率,,減少FPGA邏輯資源使用,,縮短響應(yīng)時(shí)間[7]

    針對(duì)上述研究現(xiàn)狀和分布式采集場(chǎng)景分析,,本文介紹了一種基于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í)顯示,滿足多路通道切換,、模擬信號(hào)并行采集、可靠性傳輸?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)測(cè)需求,,遠(yuǎn)程對(duì)下位機(jī)進(jìn)行配置和部署,并實(shí)時(shí)顯示獲取的數(shù)據(jù),。LCD顯示與鍵盤控制子系統(tǒng),,與下位機(jī)安裝為一體,可獨(dú)立地對(duì)下位機(jī)進(jìn)行通道控制與信號(hào)檢測(cè),,提升該系統(tǒng)的便捷性和實(shí)用性,。下位機(jī)作為該系統(tǒng)的主體部分,主要由基于FPGA芯片的核心調(diào)度,、數(shù)據(jù)處理,、通道管理、信號(hào)調(diào)理與采集,、網(wǎng)絡(luò)通信,、串口通信、單片機(jī)控制及電源與時(shí)鐘管理七大模塊組成,。FPGA核心調(diào)度模塊是下位機(jī)的核心部分,,完成對(duì)下位機(jī)各個(gè)模塊間的協(xié)調(diào)運(yùn)行與邏輯控制,實(shí)現(xiàn)全局時(shí)鐘管理,、TCP/IP協(xié)議與串口通信,、命令和數(shù)據(jù)的組幀與解析、通道切換與配置,、信號(hào)采集與數(shù)據(jù)處理等功能。

qrs3-t1.gif

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

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

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

    多路采集與切換系統(tǒng)的硬件設(shè)計(jì)主要由電源與時(shí)鐘模塊、FPGA邏輯控制模塊,、以太網(wǎng)通信模塊,、通道管理與切換模塊、ADC信號(hào)采集模塊和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è)簡(jiǎn)便的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ò)連接,接口電路簡(jiǎn)單,、編程靈活方便[8-9],。該模塊電路如圖3所示。

qrs3-t3.gif

    FPGA基于SPI(外部串行接口)協(xié)議對(duì)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端口號(hào),、模式,、配置命令等)組成。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)勢(shì),。FPGA通過W5500控制子模塊實(shí)現(xiàn)W5500的狀態(tài)機(jī)控制和SPI協(xié)議通信,實(shí)現(xiàn)對(duì)W5500芯片的控制和數(shù)據(jù)交互,。W5500的狀態(tài)機(jī)控制包括對(duì)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)行主動(dòng)連接。建立連接后,,PC下發(fā)通道切換,、采集等命令數(shù)據(jù),通過以太網(wǎng)傳輸至W5500,。FPGA檢測(cè)到W5500接收中斷后,,從W5500接收緩存中讀取數(shù)據(jù),,然后交給數(shù)據(jù)處理模塊,進(jìn)行數(shù)據(jù)解析,,并將命令信息下發(fā)到相關(guān)控制模塊,。

    數(shù)據(jù)處理模塊主要完成對(duì)接收(和待發(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)測(cè)試,TCP傳輸最高速率達(dá)40 Mb/s,,滿足眾多嵌入式應(yīng)用需求,。

qrs3-t5.gif

2.3 通道管理與切換模塊

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

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

2.4 ADC信號(hào)采集模塊

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

    FPGA完成對(duì)通道的管理切換后,,通過AD采集控制子模塊,,開啟對(duì)接入被測(cè)的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)軟硬件綜合測(cè)試

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

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

    以太網(wǎng)TCP/IP通信通過控制W5500實(shí)現(xiàn),,對(duì)W5500控制模塊進(jìn)行數(shù)據(jù)發(fā)送測(cè)試仿真如圖6所示。在接收到命名標(biāo)志Cmd_Receive后,,將測(cè)試數(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對(duì)實(shí)測(cè)信號(hào)在線“抓取”,,得到W5500數(shù)據(jù)發(fā)送測(cè)試信號(hào)截圖如圖7所示,實(shí)測(cè)與仿真結(jié)果一致,,表明該設(shè)計(jì)的正確性,。

qrs3-t6.gif

qrs3-t7.gif

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

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

qrs3-t8.gif

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

qrs3-t9.gif

    在2號(hào)通道接入被測(cè)器件,上位機(jī)采用圖8中的通道切換命令配置,,系統(tǒng)測(cè)試對(duì)應(yīng)的PC和LCD監(jiān)測(cè)顯示結(jié)果如圖10所示,,PC在報(bào)表界面可實(shí)時(shí)顯示被測(cè)8路通道的電壓和電流,LCD以10 Hz的頻率刷新顯示監(jiān)測(cè)結(jié)果,。經(jīng)長(zhǎng)期試驗(yàn)和測(cè)試結(jié)果表明,,PC與LCD顯示結(jié)果與實(shí)際一致,測(cè)試效果良好,,顯示畫面穩(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ì)方法,。綜合測(cè)試結(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].電子測(cè)量技術(shù),,2015(10):72-77.

[3] 周浩,王浩全,,任時(shí)磊.基于FPGA和NAND Flash的便攜式信號(hào)采集系統(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é)院,四川 綿陽(yáng)621010,;2.西南科技大學(xué) 國(guó)防科技學(xué)院,,四川 綿陽(yáng)621010)

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