朱健軍,倪有糧
(浙江工業大學 信息工程學院,浙江 杭州 310023)
?
基于以太網的多功能一體化數據采集系統
朱健軍,倪有糧
(浙江工業大學 信息工程學院,浙江 杭州 310023)
摘要:針對目前機房集中監控系統產生的數據量大,且通用數據采集器功能單一、實時性差的問題,提出一款以京微雅閣SoC系列FPGA為核心設計實現的多功能一體化數據采集系統.通過分析通用數據采集器實時傳輸的難點,系統采用了軟硬協同的設計方法,由Cortex M3實現系統的網絡協議及數據調度算法,并利用可編程邏輯對異步串口及以太網接口進行硬件加速.它能夠實現同時對多個接口進行數據采集,并通過以太網實時傳輸.實際系統的運行測試,驗證了該平臺的可靠性和實時性,并且系統具有較高的數據吞吐能力和靈活的擴展性.
關鍵詞:以太網;數據采集;軟硬協同設計;可編程邏輯門陣列
以4G/WiFi為標志的下一代無線網絡,主要采用微基站的建設方式,以提升每個用戶的接入帶寬.微基站數量的成倍增長,需要采集、傳輸、處理的機房監控信息也呈幾何級增長.而傳統的機房集中監控系統中,動力環境監控、視頻監控、門禁及智能防盜、能耗及節能管理等各成體系,監控信息零散,難以統一管理.隨著機房基站運營維護工作的日益精細化,單一功能的數據采集系統已無法滿足下一代無線網絡機房深度運維的需要.目前,數據采集系統大多采用單片機[1]或DSP[2]作為控制核心.單片機的時鐘頻率較低,軟件運行時間在整個采樣時間中占很大的比例,實時性較差;DSP較擅長密集的乘加運算,很難完成復雜的硬件邏輯控制.近年來,國內外對于實時數據采集系統進行了大量研究[3-6],其主要集中于系統架構及數據采集算法的設計.同時,FPGA器件以其并行處理能力強,控制邏輯由硬件實現[7],及在高速、大容量數據采集領域的相關應用[8],也越來越受到了人們的關注.
數據實時采集及傳輸主要有兩個難點:一是如何在有限的軟件處理資源上,減小在兼顧實時性和準確性時耗費的大量計算時間;二是如何減小數據傳輸的延時,以提高系統的網絡速度和數據采集的實時性.對于難點一,可以對系統的軟硬件結構進行協同設計和優化,在保證準確性的基礎上緩解軟件的處理壓力.對于難點二,可以對系統的網絡及數據接口進行硬件加速,簡化系統的硬件設計,以減小數據在傳輸上的延時.鑒于此,提出了一款以京微雅閣SoC系列FPGA為核心的數據采集系統.
1系統架構
該系統是一個數據采集和信息處理的一體化平臺,在現有動力環境監控基礎上,融合了智能防盜、溫濕度、消防等模塊,并采用了底層數據采集與上層業務應用分離的創新架構.由各類傳感器實現對機房環境中大量數據的采集,并通過AI和DI等接口上傳數據,由軟件來實現系統復雜的控制和業務,系統結構如圖1所示.

圖1 系統總體結構圖Fig.1 Structure of the global system
該系統采用的核心是京微雅閣高度集成化的SoC系列FPGA CME-M7,內含嵌入式處理器Cortex M3和大量可編程邏輯.設計的主要思想是將采集器的軟件實現和硬件設計集中在單芯片中,以大大縮短數據和指令的傳輸延時.軟件上,對數據的協議格式進行了簡化設計并合理地定義數據調度方式,減小了協議處理的時間和系統的反應時間;硬件上,利用FPGA的并行處理能力,對主要的業務接口進行了硬件加速,不僅減輕了軟件的處理壓力,而且大大增強了業務口的并發性和實時性.
2系統軟件設計
系統軟件結構設計如圖2所示,主要包括數據采集模塊、控制模塊、數據傳輸模塊及告警模塊.其中,數據采集模塊包含多種類型的數據輸入接口,用于采集多種類型的環境和設備狀態數據.控制模塊用于接收并處理由數據采集模塊提供的數據,通過數據傳輸模塊上傳處理后的數據,并用于協調和控制多接口采集時其他模塊的工作.數據傳輸模塊用于上傳控制模塊處理后的數據.告警模塊用于檢測數據采集模塊提供的數據是否正常,并且在數據異常時生成并上傳告警信號.

圖2 系統軟件結構示意圖Fig.2 Structure of the system software
控制模塊是系統軟件最重要的組成部分,具體包括采集數據緩存隊列、數據集成單元、數據封裝單元、數據壓縮單元、數據分級單元、高優先級輸出隊列、低優先級輸出隊列、實時輸出隊列、數據輸出切換單元及數據傳輸頻率設置單元,如圖3所示.

圖3 控制模塊結構示意圖Fig.3 Structure of the control module
數據集成單元,對原始數據進行集成化處理,以生成具有統一數據格式的有效凈荷.集成單元分別針對不同來源和類型的原始數據預先設置了相應的描述原型,參數包括:數據采集時間參數,數據采集來源參數,數據類型參數,數據有效時段參數,如某項數據每1 ms采樣一次,則該數據的有效時段為自采集時間起的1 ms內.經數據集成單元的整合統一后,彌補了多元化的采集數據在格式上的差異,有利于對采集數據進行識別、分析和處理.
數據分級單元,對經過壓縮的數據包按照其重要程度進行分級,分別送入高、低、實時三個輸出隊列.分級單元根據數據采集來源參數,將特定數據來源的數據包置入特定輸出隊列,如將數據有效時段比較長的數據包置入低優先級輸出隊列,將數據有效時段比較短的數據包置入高優先級輸出隊列,而將數據有效時段即將過期的數據包置入實時數據輸出隊列.
數據輸出切換單元,負責在三個隊列之間進行切換,從而選擇將哪個輸出隊列的數據送至數據傳輸模塊進行傳輸.對于實時輸出隊列,一般要求在壓縮后的數據包進入隊列后立即發出,因此一旦該隊列內出現有效傳輸數據,則立即向數據輸出切換單元發送中斷信號,數據輸出切換單元立即將該隊列中的數據送至數據傳輸模塊;對于高、低優先級輸出隊列則采用基于權重的切換策略,即高優先級隊列和低優先級隊列分別具有不同的傳輸權重值,用兩個輸出隊列中待傳輸的有效數據量乘上各自的權重值后,權重計算結果高的隊列被切換至數據傳輸模塊進行傳輸.
3系統硬件設計
系統硬件結構如圖4所示,依靠主控芯片CME-7 FPGA和交換芯片RTL8306E為主要硬件支撐.該CME-7 FPGA內嵌ARM Cortex M3處理器,具備齊全的外設驅動,并含有大量的可編程邏輯資源.系統主要由Cortex M3主控模塊和通信接口模塊構成.

圖4 系統硬件結構圖Fig.4 Structure of the system hardware
采用的是京微雅閣M7系列FPGA為系統的核心芯片,支持300 MHz性能的ARM Cortex M3,200 MHz性能的FPGA邏輯,集成DMA控制器、DDR控制器、雙12位1 MS/s ADC以及8 KB Cache等,豐富的邏輯資源和標準外設與處理器集成在一起,使系統變得更加穩定可靠.
系統中,Cortex M3與FPGA邏輯采用AHB方式進行通信,并以狀態寄存器的方式來進行數據收發狀態的告知.所有的寄存器被設在了FPGA側,Cortex M3通過AHB總線查詢或修改狀態寄存器的值.由于Cortex M3與以太網、UART接口的通信方式非常類似,下面只討論了Cortex M3與以太網接口的通信.
當FPGA中有一幀以太網數據被接收時,會將數據直接寫入接收數據緩存,置位相應的以太網接收狀態寄存器,并輸出一中斷脈沖至Cortex M3.Cortex M3通過AHB總線讀取到相應的接收狀態位有效時,立即將接收數據緩存中的數據通過AHB總線讀出,并將其狀態位清0.
當Cortex M3中有數據需要通過以太網發送時,會將數據通過AHB總線寫入發送數據緩存,并置位相應的以太網發送狀態寄存器.FPGA以輪詢的方式讀取各發送狀態寄存器中的值,當讀取到相應的發送狀態位有效時,立即將發送緩存中的數據讀出,并將其狀態位清0.
該模塊主要完成以太網接口時序的設計和4路UART接口的拓展,實現系統的以太網、串口通信功能.對于以太網,硬件層采用RTL8306E,它是一款集成10/100 M交換、PHY功能的以太網交換芯片.FPGA中,以太網接口需要按RMII的時序與交換芯片進行通信,輸入時在使能信號rmii_rxdv有效時,以時鐘的上升沿對輸入數據rmii_rxdi進行采樣,具體時序設計如圖5所示;輸出時置高使能信號rmii_txen,以時鐘的下降沿對rmii_txdo進行輸出,具體時序設計如圖6所示.經實際測試,系統能實現以太網聯網功能,并支持Web服務;在多傳感器并行采集數據且大數據量上傳時,系統仍能保證不丟數據,且采樣周期最小控制在2 s內.
由于串口的控制簡單,目前大多數的數據采集設備都帶UART通信接口.系統中,FPGA實現了4路串口,提高了系統集成度,并節省硬件成本.多路串口的數據采集,是在FPGA中設計一個串口控制器[9]去采集多路串口.系統充分利用了FPGA的并行處理能力,將串口控制器設計為4路串口的并行收發及相應RAM讀寫的硬件電路,即每路串口都有獨立的RAM及串口收發模塊[10],這樣大大提高了串口通信的實時性.經實際測試,4路串口以最大波特率115 200 bps并行通信時,系統穩定可靠,且串口環回時間均小于8 ms.

圖5 以太網接收接口時序設計Fig.5 Timing design of the Ethernet receive interface

圖6 以太網發送接口時序設計Fig.6 Timing design of the Ethernet send interface
4結論
系統采用京微雅閣SoC系列FPGA作為該嵌入式數據采集系統的控制核心,以最簡單的硬件結構實現目標應用,大大提升系統的穩定性;同時充分利用片內的可編程邏輯進行并行加速,增強了系統的實時性.經驗證,系統能很好地滿足實時監控和遠程管理的設計需求,并已得到了現場應用.除基站機房外,該系統也可廣泛應用于水利、金融、交通、煤炭、公安、監獄等部門的中心機房環境數據的監測.
參考文獻:
[1]徐丹陽,童建平,隋成華,等.光柵光譜儀中的高速數據采集系統[J].浙江工業大學學報,2014,42(6):690-693.
[2]郭德亮,郭淑琴,鮑衛兵.基于突發光信號的高速數據采集系統的設計與研究[J].浙江工業大學學報,2010,38(1):46-48.
[3]FERRERO M F J, VALLEDOR L M, CAMPO R J C, et al. Low-cost open-source multi-function data acquisition system for accurate measurements[J]. Measurement,2014,55:265-271.
[4]NIETO J, DE A G, RUIZ M, et al. A high throughput data acquisition and processing model for applications based on GPUs[J]. Fusion engineering and design,2015,96/97:895-898.
[5]WANG Z L, ZHANG S S, CHANG J, et al. Adaptive data acquisition algorithm in Raman distributed temperature measurement system[J].Optik,2014,125:1821-1824.
[6]游雪峰,文玉梅,李平.以太網分布式數據采集同步和實時傳輸研究[J].儀器儀表學報,2006,27(4):384-388.
[7]王敬美,楊春玲.基于FPGA和UART的數據采集器設計[J].電子器件,2009,32(2):386-390.
[8]ZHENG W, LIU R, ZHANG M, et al. Design of FPGA based high-speed data acquisition and real-time data processing system on J-TEXT tokamak[J]. Fusion engineering and design,2014,89:698-701.
[9]韓德紅,張顯才,李向東.基于FPGA的串口控制器設計與實現[J].空軍雷達學院學報,2008,22(2):113-116.
[10]劉鳳新,趙堅固.基于FPGA的多路并行獨立串口的實現[J].儀表技術與傳感器,2010(11):44-47.
(責任編輯:劉巖)
An integrated multi-function data acquisition system based on the Ethernet
ZHU Jianjun, NI Youliang
(College of Information Engineering, Zhejiang University of Technology, Hangzhou 310023, China)
Abstract:In current data acquisition system, data produced by the concentrated monitor system is huge, the function of general data acquisition equipment is single, and the real-time performance is bad. In this paper, an integrated multi-function data acquisition system is proposed based on Capital Microelectronics SoC series FPGA. By analyzing the difficulties of real-time transmission in general data acquisition equipment, a methodology of hardware-software co-design method is applied in the whole system, in which the network protocol and data scheduling algorithm are implemented in Cortex M3,and the programmable logic is used to accelerate the asynchronous serial interfaces and Ethernet interface. The system is used to collect data from multiple interfaces,and implement real-time transmission in the Ethernet. The running test in the real system shows that the platform is reliable and has high real-time performance. It also has a high data throughput and flexible expansibility.
Keywords:Ethernet; data acquisition; hardware-software co-design; FPGA
中圖分類號:TP274.2
文獻標志碼:A
文章編號:1006-4303(2016)01-0058-04
作者簡介:朱健軍(1974—),男,浙江義烏人,高級工程師,研究方向為物聯網,E-mail:zjj@zjut.edu.cn.
基金項目:國家火炬計劃項目(2013GH010615)
收稿日期:2015-05-18