路 遙,江漢紅,芮萬智
?
基于ARM的風電機組遠程監(jiān)測系統(tǒng)的設(shè)計
路 遙,江漢紅,芮萬智
(海軍工程大學艦船綜合電力技術(shù)國防科技重點實驗室,武漢 430033)
為順應(yīng)網(wǎng)絡(luò)化發(fā)展趨勢實現(xiàn)設(shè)備的數(shù)據(jù)采集,在風電機組遠程監(jiān)測方面研究了一種基于ARM的嵌入式系統(tǒng)的以太網(wǎng)通信問題;采用LM3S9B92微控制器,在無操作系統(tǒng)下通過移植TCP/IP協(xié)議棧LwIP建立高效可靠的數(shù)據(jù)鏈接,以太網(wǎng)介質(zhì)接口根據(jù)實際需要有光口、電口兩種選擇,最終實現(xiàn)該嵌入式系統(tǒng)與上位機的數(shù)據(jù)傳輸;通過實驗觀察上位機的輸出結(jié)果,驗證了目標板和上位機的通信功能,達到了對風電機組狀態(tài)在線監(jiān)測、故障及時發(fā)現(xiàn)的要求。
ARM 風電 以太網(wǎng) 通信
0 引言
當前風電機組維護一般采取定期檢修的方式,是被動式的發(fā)現(xiàn)問題,導(dǎo)致維修周期長、突發(fā)問題逐漸增多。遠程監(jiān)測可以在線實時監(jiān)測,及時發(fā)現(xiàn)故障主動上報,對于維護人員不足、重要備件缺乏或規(guī)模較大的風電場(如海上風電場)具有重要意義[1]。嵌入式系統(tǒng)以其內(nèi)核小、專用性強、系統(tǒng)精簡、高時效性等特點,在各領(lǐng)域取得廣泛地應(yīng)用;微控制器ARM以成本低、性能高、功耗低的特點占據(jù)了嵌入式領(lǐng)域的優(yōu)勢地位,在工業(yè)控制、通信系統(tǒng)、消費類電子產(chǎn)品、網(wǎng)絡(luò)系統(tǒng)和無線系統(tǒng)等領(lǐng)域得到廣泛應(yīng)用。在這些應(yīng)用中,信息交流多采用現(xiàn)場總線技術(shù);但是現(xiàn)場總線的固有缺點就是種類過于繁雜、兼容性差、通信速率不高、價格過于昂貴。近幾年以來,將以太網(wǎng)替代現(xiàn)場總線,與工業(yè)控制相結(jié)合的研究趨勢顯著,以太網(wǎng)的優(yōu)勢十分明顯,它的通信速率很高、設(shè)備成本較低、組網(wǎng)方便,因此具有十分大的潛力。
本文結(jié)合實際需要,提出一種基于ARM的嵌入式系統(tǒng),用于在風電機組遠程監(jiān)測系統(tǒng)中組網(wǎng)通信,從硬件設(shè)計和軟件設(shè)計兩方面進行闡述,實現(xiàn)了系統(tǒng)的以太網(wǎng)通信功能,驗證了系統(tǒng)的有效性和合理性。
1 總體設(shè)計
基于ARM嵌入式的遠程監(jiān)測系統(tǒng)的總體方案如圖1所示。底層控制器是整個系統(tǒng)的核心,一方面實現(xiàn)數(shù)據(jù)的采集和預(yù)處理,另一方面將信號通過TCP/IP協(xié)議上傳到上位機進行存儲和監(jiān)測,考慮到傳輸距離和抗電磁干擾能力,數(shù)據(jù)一般利用光纖傳輸,電連接口作為調(diào)試和應(yīng)急通信使用。本文重點介紹底層控制器中的主控板。
圖1 遠程監(jiān)測系統(tǒng)總體方案圖
2 硬件設(shè)計
主控板采用DSP、FPGA和ARM組成的嵌入式多核控制器。由于DSP需要運行復(fù)雜的控制算法,實時性要求較高,雖然外擴網(wǎng)卡芯片成本較低,但是會耗費DSP大量的片上資源?;诖耍骺匕宀捎眉梢蕴W(wǎng)模塊的方式實現(xiàn)以太網(wǎng)通信。根據(jù)嵌入式裝置小型化、低成本的趨勢,對比目前市場上的同類主流器件,以太網(wǎng)模塊主要由網(wǎng)絡(luò)處理器(ARM)LM3S9B92、光電介質(zhì)轉(zhuǎn)換芯片ML6652CH和光收發(fā)一體化模塊AFBR5803ATZ組成,其中ARM作為主控單元,完成與FPGA和上位機之間的通信功能。以太網(wǎng)模塊硬件設(shè)計原理架構(gòu)如圖2所示。為方便調(diào)試及應(yīng)用于不同環(huán)境,網(wǎng)絡(luò)模塊設(shè)計有兩種以太網(wǎng)介質(zhì)接口,通過雙向撥碼開關(guān)進行切換。對于數(shù)據(jù)發(fā)送過程,雙向開關(guān)選通電接口時,網(wǎng)絡(luò)處理器將MLT-3編碼的差分信號通過1:1雙路隔離變壓器、RJ45接口輸出;選通光接口時,光電介質(zhì)轉(zhuǎn)換芯片負責將MLT-3編碼的差分信號轉(zhuǎn)換為適合光纖傳輸?shù)腖VPECL信號,并經(jīng)由電阻網(wǎng)絡(luò)轉(zhuǎn)換為PECL信號進入光纖收發(fā)一體化模塊,通過62.5/125 μm多模光纖輸出。數(shù)據(jù)接收過程與發(fā)送過程相反。網(wǎng)絡(luò)參數(shù)配置撥碼開關(guān)用于修改模塊的網(wǎng)絡(luò)配置信息,如IP地址、端口號等,使以太網(wǎng)模塊具有通用性,同一類設(shè)備之間可以靈活替換。另外,網(wǎng)絡(luò)處理器通過EPI并行接口與雙端RAM緩存結(jié)構(gòu)連接,該雙端RAM在FPGA上構(gòu)建,用于DSP與ARM之間的高速數(shù)據(jù)傳輸。
圖2 以太網(wǎng)模塊硬件設(shè)計原理架構(gòu)圖
1.1網(wǎng)絡(luò)處理器[2]
TI公司的LM3S9B92是一款32位的微控制器,基于ARM?Cortex-M3TM內(nèi)核技術(shù),性能先進,主頻達到80 MHz,片上存儲器有256KB的Flash和96KB的SRAM[3]。該控制器具有豐富的外設(shè)功能,并行外設(shè)支持8位/16位/32位專用并行總線,串行外設(shè)支持CAN、USB、UART、I2C、SSI、I2S,集成了MAC和PHY模塊,支持10/100BASE-TX以太網(wǎng),可實現(xiàn)以太網(wǎng)功能。
1.2光電介質(zhì)轉(zhuǎn)換芯片
微線性公司的ML6652CH支持10M或者100M光電介質(zhì)轉(zhuǎn)換,功耗低,串行配置接口,全雙工半雙工下支持自動協(xié)商,集成數(shù)據(jù)恢復(fù)器。支持六種運行模式:強制10Mbps;強制100Mbps;自動協(xié)商非透明半雙工;自動協(xié)商非透明全/半雙工;自動協(xié)商透明10/100Mbps;非透明特殊情況。根據(jù)設(shè)備需求,選擇自動協(xié)商透明10/100Mbps模式,對應(yīng)ML6652CH相應(yīng)引腳的配置通過上下拉或者分壓電阻的方式完成。
1.3光纖收發(fā)一體化模塊
安捷倫公司的AFBR5803ATZ收發(fā)功能獨立,發(fā)射模塊具有溫度補償、慢啟動功能,接收模塊具有前置放大、限幅放大和報警功能。由于ML6652CH輸出為標準LVPECL電平,而AFBR5803ATZ為標準PECL電平驅(qū)動,所以二者之間還需要采用交流耦合的方式完成電平的轉(zhuǎn)換和阻抗的匹配。
3 軟件設(shè)計[4]
軟件設(shè)計的主要工作在于TCP/IP協(xié)議棧的移植以完成通信,和由ARM與DSP之間通過FPGA上構(gòu)造的雙端RAM完成握手通信等工作。FPGA程序設(shè)計在QuartusII9.0環(huán)境下采用Verilog語言編寫。以太網(wǎng)模塊軟件移植TCP/IP協(xié)議LwIP,運行環(huán)境無操作系統(tǒng)。軟件流程圖如圖3所示。運行開始后,首先完成系統(tǒng)初始化;軟件主循環(huán)用于以太網(wǎng)模塊與上層服務(wù)器之間的數(shù)據(jù)交互;以太網(wǎng)中斷用于協(xié)議棧的網(wǎng)絡(luò)數(shù)據(jù)包處理,在中斷處理之前對網(wǎng)絡(luò)連接的狀態(tài)進行判斷,若網(wǎng)絡(luò)模塊與上層服務(wù)器失去連接,則作為客戶端的網(wǎng)絡(luò)模塊重新發(fā)出連接請求,待連接重新建立后,協(xié)議棧即可對接收到的數(shù)據(jù)包進行解析或者將應(yīng)用層傳遞的數(shù)據(jù)進行封包發(fā)送至上層服務(wù)器。
圖3 以太網(wǎng)模塊軟件流程圖
3.1雙端RAM設(shè)計
網(wǎng)絡(luò)處理器ARM與主控制器DSP之間通過FPGA上構(gòu)造的雙端RAM完成握手通信, 根據(jù)實際數(shù)據(jù)需求,構(gòu)造8KB的雙端RAM存儲空間并進行劃分,對每一塊存儲區(qū)域設(shè)置狀態(tài)寄存器,用于記錄存儲區(qū)域詳細的狀態(tài)信息,包括數(shù)據(jù)類型、存儲空間的空滿狀態(tài)、數(shù)據(jù)長度等。雙端RAM的軟件主體是QuartusⅡ9.0開發(fā)環(huán)境中的宏單元模塊RAM:2-PORT。由于本文主要介紹ARM網(wǎng)絡(luò)通信設(shè)計,雙端RAM軟件只進行簡要概述。
3.2 TCP/IP協(xié)議棧的移植[5]
LM3S9B92遵循IEEE 802.3規(guī)范,包含以太網(wǎng)功能,為實現(xiàn)網(wǎng)絡(luò)通信功能,還需要在系統(tǒng)上移植TCP/IP協(xié)議棧。傳統(tǒng)TCP/IP協(xié)議過于注重數(shù)據(jù)傳送的可靠性和對數(shù)據(jù)流量的控制,代碼復(fù)雜、實現(xiàn)困難,需占用大量資源,在實時性方面不能滿足嵌入式應(yīng)用的要求。隨著嵌入式以太網(wǎng)技術(shù)的研究深入,輕量級的TCP/IP協(xié)議不斷提出,結(jié)合實際需要,最終選擇使用LwIP協(xié)議。
LwIP是Light Weight(輕型)IP協(xié)議,是一套用于嵌入式系統(tǒng)的開源代碼TCP/IP協(xié)議棧,由瑞士計算機科學院的Adam Dunkels等開發(fā)。無論是移植到操作系統(tǒng)上,還是在無操作系統(tǒng)的情況下,LwIP都可以運行[6],它最大的特點是實現(xiàn)TCP/IP協(xié)議主要功能的同時,占用較少的RAM,一般只需要幾百字節(jié)的RAM和40kB左右的ROM就可以運行[7],因此非常適合在嵌入式系統(tǒng)中使用。LwIP具有以下特性:
(1)支持IP的轉(zhuǎn)發(fā);(2)支持ICMP協(xié)議;(3)支持用來完成不同處理過程間的包分離的UDP協(xié)議;(4)支持包括擁塞控制、RTT估算、快速恢復(fù)轉(zhuǎn)發(fā)的TCP協(xié)議;(5)提供專門的內(nèi)部回調(diào)函數(shù)接口,用于提高應(yīng)用程序性能;(6)可選擇的Berkeley接口API(多線程情況下)。
ARP協(xié)議的實現(xiàn)[8]:地址解析協(xié)議(ARP)為IP地址與硬件地址提供動態(tài)映射,由ARP緩存、ARP應(yīng)答和ARP請求三部分組成。ARP緩存實現(xiàn)IP地址與硬件地址間映射記錄更新,ARP應(yīng)答和ARP請求處于休眠態(tài)。當上層發(fā)送IP數(shù)據(jù)包卻沒有目的主機硬件地址時,ARP請求被喚醒,發(fā)送ARP請求包,ARP應(yīng)答接收到ARP請求包后被喚醒。
IP和ICMP協(xié)議的實現(xiàn)[9]:IP協(xié)議是TCP/IP協(xié)議棧的核心,TCP、UDP和ICMP數(shù)據(jù)傳輸時,都是按照IP的數(shù)據(jù)報文格式。IP模塊完成發(fā)送、接收、轉(zhuǎn)發(fā)報文的最基本功能。由于IP協(xié)議是無差錯控制機制,因此用ICMP模塊的通信差錯控制來彌補。ICMP模塊實現(xiàn)PING功能。
TCP層的實現(xiàn):受限于硬件資源,對TCP層的功能進行了簡化。為防止通信連接異常斷開,建立斷開重連機制:在系統(tǒng)定時器中斷中記錄當前時刻,根據(jù)時間是否滿1秒設(shè)置用于主循環(huán)查詢的全局狀態(tài)變量;主程序每次循環(huán)開始后,根據(jù)全局變量的值為1或者0,確定是否執(zhí)行網(wǎng)絡(luò)連接狀況的檢查;當TCP各狀態(tài)的變量為空時,則以太網(wǎng)模塊發(fā)送連接請求;非空時,當TCP狀態(tài)處于非以下任意一種狀態(tài)時:ESTABLISHED,CLOSE_WAIT,SYN_SENT,SYN_RCVD,TIME_WAIT,則首先關(guān)閉當前異常連接,釋放并回收當前連接所占資源,重新發(fā)送連接請求。
鑒于傳輸?shù)臄?shù)據(jù)大,對數(shù)據(jù)的傳輸速度、準確性和穩(wěn)定性提出了較高的要求,結(jié)合系統(tǒng)實際情況,將LwIP在無操作系統(tǒng)下獨立運行,通過TCP協(xié)議面向連接的、可靠的服務(wù),數(shù)據(jù)傳輸?shù)馁|(zhì)量得以保證。以太網(wǎng)模塊與上位機采取客戶端/服務(wù)器模式進行通信,TCP狀態(tài)流程如圖4所示。以太網(wǎng)模塊與上位機被賦予不同的IP地址,以太網(wǎng)模塊通過三次握手過程建立與上位機的通信連接,成功后創(chuàng)建一個獨立線程,通信雙方即可進行數(shù)據(jù)收發(fā);數(shù)據(jù)傳輸完畢后,通過四次揮手過程關(guān)閉連接。
4 測試結(jié)果
根據(jù)前述硬件和軟件的設(shè)計,搭建好硬件平臺并完成軟件調(diào)試后,對系統(tǒng)軟硬件進行實驗驗證。上位機使用PC機,CPU為i3-3220,內(nèi)存3.4GB,操作系統(tǒng)Windows XP SP3。首先利用操作系統(tǒng)自帶命令行進行Ping測試,顯示Ping成功。如圖5所示。
圖5 Ping測試結(jié)果
然后打開TCP&UDP測試工具,配置好端口號和IP地址,顯示連接成功。如圖6所示。與此同時,打開Wireshark抓包工具進行抓包分析,證實目標板與上位機TCP建立連接。如圖7所示。
圖6 TCP&UDP測試工具截圖
圖7 Wireshark抓包工具截圖
5 結(jié)論
本文從硬件和軟件兩部分對基于ARM的嵌入式系統(tǒng)組網(wǎng)進行了分析和設(shè)計,采用精簡TCP/IP協(xié)議運行在無操作系統(tǒng)下,占用資源少、成本低、操作方便,適合應(yīng)用于大量底層控制器與上位機組網(wǎng)通信,在風電機組遠程監(jiān)測系統(tǒng)中發(fā)揮了重要作用,具有很高的推廣價值。
[1] 王效, 劉曉光. 基于ARM的風電齒輪箱振動監(jiān)測系統(tǒng)設(shè)計[J]. 發(fā)電技術(shù), 2013, 150(34): 16-19.
[2] Stellaris LM3S9B92 microcontroller datasheet. Texas instruments incorporated.
[3] 吳云, 徐建明, 俞立, 等. 嵌入式三軸運動控制系統(tǒng)的以太網(wǎng)通信實現(xiàn)[J]. 計算機測量與控制, 2012, 20(7):1 846-1848.
[4] SLOSS A. ARM System Developer’s Guide: Designing and Optimizing System Software[M]. Singapore: Elsevier Pte Ltd,2004.
[5] 王超. 基于ARMCortex-M3數(shù)字音頻網(wǎng)絡(luò)廣播終端的設(shè)計與實現(xiàn)[D]. 西安: 西安科技大學, 2012.
[6] 唐文俊, 李維波, 賀紅, 等. 一種基于ARM的遠程監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J]. 船電技術(shù), 2011, 31(11): 1-5.
[7] 孔棟, 鄭建宏. 嵌入式TCPIP協(xié)議棧LWIP在ARM平臺上的移植與應(yīng)用[J]. 通信技術(shù), 2008, 41(6): 38-40.
[8] 趙國峰, 邱作雨, 張毅, 等. 基于單片機的嵌入式TCP/IP協(xié)議棧的設(shè)計與實現(xiàn)[J]. 計算機技術(shù)與發(fā)展, 2009, 19(3): 137-140.
[9] DUNKELS A. design and implementation of the LwIP TCP/IP stack[Z]. Swedish Institute of Computer Science, 2001.
Design of Wind Turbine Remote Monitoring System Based on ARM
Lu Yao, Jiang Hanhong, Rui Wanzhi
(National Key Laboratory for Vessel Integrated Power System Technology, Naval University of Engineering, Wuhan 430033, China)
TP273
A
1003-4862(2015)02-0009-04
2014-09-03
國家重點基礎(chǔ)研究發(fā)展計劃973項目(2012CB215103);國家自然科學基金資助項目(51377167)
路遙(1990-),男,研究生,主要研究方向為電力系統(tǒng)網(wǎng)絡(luò)測控。