路 遙,江漢紅,芮萬智
?
基于ARM的風電機組遠程監測系統的設計
路 遙,江漢紅,芮萬智
(海軍工程大學艦船綜合電力技術國防科技重點實驗室,武漢 430033)
為順應網絡化發展趨勢實現設備的數據采集,在風電機組遠程監測方面研究了一種基于ARM的嵌入式系統的以太網通信問題;采用LM3S9B92微控制器,在無操作系統下通過移植TCP/IP協議棧LwIP建立高效可靠的數據鏈接,以太網介質接口根據實際需要有光口、電口兩種選擇,最終實現該嵌入式系統與上位機的數據傳輸;通過實驗觀察上位機的輸出結果,驗證了目標板和上位機的通信功能,達到了對風電機組狀態在線監測、故障及時發現的要求。
ARM 風電 以太網 通信
0 引言
當前風電機組維護一般采取定期檢修的方式,是被動式的發現問題,導致維修周期長、突發問題逐漸增多。遠程監測可以在線實時監測,及時發現故障主動上報,對于維護人員不足、重要備件缺乏或規模較大的風電場(如海上風電場)具有重要意義[1]。嵌入式系統以其內核小、專用性強、系統精簡、高時效性等特點,在各領域取得廣泛地應用;微控制器ARM以成本低、性能高、功耗低的特點占據了嵌入式領域的優勢地位,在工業控制、通信系統、消費類電子產品、網絡系統和無線系統等領域得到廣泛應用。在這些應用中,信息交流多采用現場總線技術;但是現場總線的固有缺點就是種類過于繁雜、兼容性差、通信速率不高、價格過于昂貴。近幾年以來,將以太網替代現場總線,與工業控制相結合的研究趨勢顯著,以太網的優勢十分明顯,它的通信速率很高、設備成本較低、組網方便,因此具有十分大的潛力。
本文結合實際需要,提出一種基于ARM的嵌入式系統,用于在風電機組遠程監測系統中組網通信,從硬件設計和軟件設計兩方面進行闡述,實現了系統的以太網通信功能,驗證了系統的有效性和合理性。
1 總體設計
基于ARM嵌入式的遠程監測系統的總體方案如圖1所示。底層控制器是整個系統的核心,一方面實現數據的采集和預處理,另一方面將信號通過TCP/IP協議上傳到上位機進行存儲和監測,考慮到傳輸距離和抗電磁干擾能力,數據一般利用光纖傳輸,電連接口作為調試和應急通信使用。本文重點介紹底層控制器中的主控板。

圖1 遠程監測系統總體方案圖
2 硬件設計
主控板采用DSP、FPGA和ARM組成的嵌入式多核控制器。由于DSP需要運行復雜的控制算法,實時性要求較高,雖然外擴網卡芯片成本較低,但是會耗費DSP大量的片上資源。基于此,主控板采用集成以太網模塊的方式實現以太網通信。根據嵌入式裝置小型化、低成本的趨勢,對比目前市場上的同類主流器件,以太網模塊主要由網絡處理器(ARM)LM3S9B92、光電介質轉換芯片ML6652CH和光收發一體化模塊AFBR5803ATZ組成,其中ARM作為主控單元,完成與FPGA和上位機之間的通信功能。以太網模塊硬件設計原理架構如圖2所示。為方便調試及應用于不同環境,網絡模塊設計有兩種以太網介質接口,通過雙向撥碼開關進行切換。對于數據發送過程,雙向開關選通電接口時,網絡處理器將MLT-3編碼的差分信號通過1:1雙路隔離變壓器、RJ45接口輸出;選通光接口時,光電介質轉換芯片負責將MLT-3編碼的差分信號轉換為適合光纖傳輸的LVPECL信號,并經由電阻網絡轉換為PECL信號進入光纖收發一體化模塊,通過62.5/125 μm多模光纖輸出。數據接收過程與發送過程相反。網絡參數配置撥碼開關用于修改模塊的網絡配置信息,如IP地址、端口號等,使以太網模塊具有通用性,同一類設備之間可以靈活替換。另外,網絡處理器通過EPI并行接口與雙端RAM緩存結構連接,該雙端RAM在FPGA上構建,用于DSP與ARM之間的高速數據傳輸。

圖2 以太網模塊硬件設計原理架構圖
1.1網絡處理器[2]
TI公司的LM3S9B92是一款32位的微控制器,基于ARM?Cortex-M3TM內核技術,性能先進,主頻達到80 MHz,片上存儲器有256KB的Flash和96KB的SRAM[3]。該控制器具有豐富的外設功能,并行外設支持8位/16位/32位專用并行總線,串行外設支持CAN、USB、UART、I2C、SSI、I2S,集成了MAC和PHY模塊,支持10/100BASE-TX以太網,可實現以太網功能。
1.2光電介質轉換芯片
微線性公司的ML6652CH支持10M或者100M光電介質轉換,功耗低,串行配置接口,全雙工半雙工下支持自動協商,集成數據恢復器。支持六種運行模式:強制10Mbps;強制100Mbps;自動協商非透明半雙工;自動協商非透明全/半雙工;自動協商透明10/100Mbps;非透明特殊情況。根據設備需求,選擇自動協商透明10/100Mbps模式,對應ML6652CH相應引腳的配置通過上下拉或者分壓電阻的方式完成。
1.3光纖收發一體化模塊
安捷倫公司的AFBR5803ATZ收發功能獨立,發射模塊具有溫度補償、慢啟動功能,接收模塊具有前置放大、限幅放大和報警功能。由于ML6652CH輸出為標準LVPECL電平,而AFBR5803ATZ為標準PECL電平驅動,所以二者之間還需要采用交流耦合的方式完成電平的轉換和阻抗的匹配。
3 軟件設計[4]
軟件設計的主要工作在于TCP/IP協議棧的移植以完成通信,和由ARM與DSP之間通過FPGA上構造的雙端RAM完成握手通信等工作。FPGA程序設計在QuartusII9.0環境下采用Verilog語言編寫。以太網模塊軟件移植TCP/IP協議LwIP,運行環境無操作系統。軟件流程圖如圖3所示。運行開始后,首先完成系統初始化;軟件主循環用于以太網模塊與上層服務器之間的數據交互;以太網中斷用于協議棧的網絡數據包處理,在中斷處理之前對網絡連接的狀態進行判斷,若網絡模塊與上層服務器失去連接,則作為客戶端的網絡模塊重新發出連接請求,待連接重新建立后,協議棧即可對接收到的數據包進行解析或者將應用層傳遞的數據進行封包發送至上層服務器。

圖3 以太網模塊軟件流程圖
3.1雙端RAM設計
網絡處理器ARM與主控制器DSP之間通過FPGA上構造的雙端RAM完成握手通信, 根據實際數據需求,構造8KB的雙端RAM存儲空間并進行劃分,對每一塊存儲區域設置狀態寄存器,用于記錄存儲區域詳細的狀態信息,包括數據類型、存儲空間的空滿狀態、數據長度等。雙端RAM的軟件主體是QuartusⅡ9.0開發環境中的宏單元模塊RAM:2-PORT。由于本文主要介紹ARM網絡通信設計,雙端RAM軟件只進行簡要概述。
3.2 TCP/IP協議棧的移植[5]
LM3S9B92遵循IEEE 802.3規范,包含以太網功能,為實現網絡通信功能,還需要在系統上移植TCP/IP協議棧。傳統TCP/IP協議過于注重數據傳送的可靠性和對數據流量的控制,代碼復雜、實現困難,需占用大量資源,在實時性方面不能滿足嵌入式應用的要求。隨著嵌入式以太網技術的研究深入,輕量級的TCP/IP協議不斷提出,結合實際需要,最終選擇使用LwIP協議。
LwIP是Light Weight(輕型)IP協議,是一套用于嵌入式系統的開源代碼TCP/IP協議棧,由瑞士計算機科學院的Adam Dunkels等開發。無論是移植到操作系統上,還是在無操作系統的情況下,LwIP都可以運行[6],它最大的特點是實現TCP/IP協議主要功能的同時,占用較少的RAM,一般只需要幾百字節的RAM和40kB左右的ROM就可以運行[7],因此非常適合在嵌入式系統中使用。LwIP具有以下特性:
(1)支持IP的轉發;(2)支持ICMP協議;(3)支持用來完成不同處理過程間的包分離的UDP協議;(4)支持包括擁塞控制、RTT估算、快速恢復轉發的TCP協議;(5)提供專門的內部回調函數接口,用于提高應用程序性能;(6)可選擇的Berkeley接口API(多線程情況下)。
ARP協議的實現[8]:地址解析協議(ARP)為IP地址與硬件地址提供動態映射,由ARP緩存、ARP應答和ARP請求三部分組成。ARP緩存實現IP地址與硬件地址間映射記錄更新,ARP應答和ARP請求處于休眠態。當上層發送IP數據包卻沒有目的主機硬件地址時,ARP請求被喚醒,發送ARP請求包,ARP應答接收到ARP請求包后被喚醒。
IP和ICMP協議的實現[9]:IP協議是TCP/IP協議棧的核心,TCP、UDP和ICMP數據傳輸時,都是按照IP的數據報文格式。IP模塊完成發送、接收、轉發報文的最基本功能。由于IP協議是無差錯控制機制,因此用ICMP模塊的通信差錯控制來彌補。ICMP模塊實現PING功能。
TCP層的實現:受限于硬件資源,對TCP層的功能進行了簡化。為防止通信連接異常斷開,建立斷開重連機制:在系統定時器中斷中記錄當前時刻,根據時間是否滿1秒設置用于主循環查詢的全局狀態變量;主程序每次循環開始后,根據全局變量的值為1或者0,確定是否執行網絡連接狀況的檢查;當TCP各狀態的變量為空時,則以太網模塊發送連接請求;非空時,當TCP狀態處于非以下任意一種狀態時:ESTABLISHED,CLOSE_WAIT,SYN_SENT,SYN_RCVD,TIME_WAIT,則首先關閉當前異常連接,釋放并回收當前連接所占資源,重新發送連接請求。
鑒于傳輸的數據大,對數據的傳輸速度、準確性和穩定性提出了較高的要求,結合系統實際情況,將LwIP在無操作系統下獨立運行,通過TCP協議面向連接的、可靠的服務,數據傳輸的質量得以保證。以太網模塊與上位機采取客戶端/服務器模式進行通信,TCP狀態流程如圖4所示。以太網模塊與上位機被賦予不同的IP地址,以太網模塊通過三次握手過程建立與上位機的通信連接,成功后創建一個獨立線程,通信雙方即可進行數據收發;數據傳輸完畢后,通過四次揮手過程關閉連接。
4 測試結果
根據前述硬件和軟件的設計,搭建好硬件平臺并完成軟件調試后,對系統軟硬件進行實驗驗證。上位機使用PC機,CPU為i3-3220,內存3.4GB,操作系統Windows XP SP3。首先利用操作系統自帶命令行進行Ping測試,顯示Ping成功。如圖5所示。

圖5 Ping測試結果
然后打開TCP&UDP測試工具,配置好端口號和IP地址,顯示連接成功。如圖6所示。與此同時,打開Wireshark抓包工具進行抓包分析,證實目標板與上位機TCP建立連接。如圖7所示。

圖6 TCP&UDP測試工具截圖

圖7 Wireshark抓包工具截圖
5 結論
本文從硬件和軟件兩部分對基于ARM的嵌入式系統組網進行了分析和設計,采用精簡TCP/IP協議運行在無操作系統下,占用資源少、成本低、操作方便,適合應用于大量底層控制器與上位機組網通信,在風電機組遠程監測系統中發揮了重要作用,具有很高的推廣價值。
[1] 王效, 劉曉光. 基于ARM的風電齒輪箱振動監測系統設計[J]. 發電技術, 2013, 150(34): 16-19.
[2] Stellaris LM3S9B92 microcontroller datasheet. Texas instruments incorporated.
[3] 吳云, 徐建明, 俞立, 等. 嵌入式三軸運動控制系統的以太網通信實現[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數字音頻網絡廣播終端的設計與實現[D]. 西安: 西安科技大學, 2012.
[6] 唐文俊, 李維波, 賀紅, 等. 一種基于ARM的遠程監控系統的設計與實現[J]. 船電技術, 2011, 31(11): 1-5.
[7] 孔棟, 鄭建宏. 嵌入式TCPIP協議棧LWIP在ARM平臺上的移植與應用[J]. 通信技術, 2008, 41(6): 38-40.
[8] 趙國峰, 邱作雨, 張毅, 等. 基于單片機的嵌入式TCP/IP協議棧的設計與實現[J]. 計算機技術與發展, 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
國家重點基礎研究發展計劃973項目(2012CB215103);國家自然科學基金資助項目(51377167)
路遙(1990-),男,研究生,主要研究方向為電力系統網絡測控。