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

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

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

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

圖5 Ping測(cè)試結(jié)果
然后打開TCP&UDP測(cè)試工具,配置好端口號(hào)和IP地址,顯示連接成功。如圖6所示。與此同時(shí),打開Wireshark抓包工具進(jìn)行抓包分析,證實(shí)目標(biāo)板與上位機(jī)TCP建立連接。如圖7所示。

圖6 TCP&UDP測(cè)試工具截圖

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