LPC1227的遠(yuǎn)距離ZigBee無線網(wǎng)關(guān)設(shè)計
摘要:介紹了一種基于GPRS和遠(yuǎn)距離ZigBee無線通信技術(shù)的網(wǎng)關(guān)節(jié)點的軟硬件設(shè)計方法與實現(xiàn)方案。網(wǎng)關(guān)采用基于Cortex-M0內(nèi)核的LPC1227微控制器,結(jié)合GSM模塊、ZigBee芯片和2.4 GHz無線功率放大芯片,實現(xiàn)了GPRS網(wǎng)絡(luò)、以太網(wǎng)和無線傳感網(wǎng)絡(luò)的互聯(lián)。為測試網(wǎng)關(guān)功能,搭建了針對路燈節(jié)能、監(jiān)控應(yīng)用的上位機測試系統(tǒng)。測試表明,網(wǎng)關(guān)工作穩(wěn)定,能夠滿足低成本、高實時性的要求。
關(guān)鍵詞:無線網(wǎng)關(guān);LPC1227;CC2530;CC2591;EM310
引言
物聯(lián)網(wǎng)被稱為繼計算機、互聯(lián)網(wǎng)與移動通信網(wǎng)之后的世界信息產(chǎn)業(yè)第三次浪潮。它代表了下一代信息發(fā)展技術(shù),被世界各國當(dāng)作應(yīng)對國際金融危機、振興經(jīng)濟的重點技術(shù)領(lǐng)域。
物聯(lián)網(wǎng)分為感知層、網(wǎng)絡(luò)層、應(yīng)用層,而無線網(wǎng)關(guān)節(jié)點則是實現(xiàn)感知層與網(wǎng)絡(luò)層數(shù)據(jù)交互的橋梁,在物聯(lián)網(wǎng)中具有特殊的地位。網(wǎng)關(guān)負(fù)責(zé)網(wǎng)絡(luò)間的協(xié)議解析,不同網(wǎng)絡(luò)類型的網(wǎng)絡(luò)路由,網(wǎng)絡(luò)數(shù)據(jù)的匯聚、存儲、處理、轉(zhuǎn)發(fā)等功能,成為物聯(lián)網(wǎng)感知層與網(wǎng)絡(luò)層不可缺少的紐帶。因此設(shè)計出成本低、效率高、運行穩(wěn)定的網(wǎng)關(guān)對物聯(lián)網(wǎng)的推廣有著重要的現(xiàn)實意義。
1 系統(tǒng)方案
本文設(shè)計的網(wǎng)關(guān)主要由高速微控制器LPC1227、ZigBee射頻收發(fā)模塊、GSM通信模塊EM310、AC—DC電源模塊等組成。網(wǎng)關(guān)的系統(tǒng)結(jié)構(gòu)如圖1所示。
為了滿足網(wǎng)關(guān)低成本、高實時性的要求,網(wǎng)關(guān)的MCU采用基于Cortex-M0內(nèi)核的LPC1227微控制器,該微控制器由NXP半導(dǎo)體公司設(shè)計,于2011年2月投入市場。微控制器可在高達(dá)45 MHz的CPU頻率下運行,包含128 KB片內(nèi)Flash存儲器和8 KB數(shù)據(jù)存儲器。512字節(jié)Flash擦除扇區(qū)帶來了多種設(shè)計上的好處,同時該芯片有兩個具備內(nèi)部FIFO的UART。網(wǎng)關(guān)系統(tǒng)軟件不采用任何嵌入式操作系統(tǒng),利用最小的軟件負(fù)載實現(xiàn)高實時性。
網(wǎng)關(guān)的ZigBee芯片采用TI公司的CC2530芯片,相對于當(dāng)前使用較多的CC2430芯片,CC2530芯片的性價比更高。兩種芯片的主要參數(shù)對比如表1所列。
網(wǎng)關(guān)中擴展了配合CC2530芯片的射頻前端芯片CC2591。CC2591是TI公司推出的工作頻率為2.4GHz,面向低功耗與低電壓無線應(yīng)用,集成度很高的射頻前端芯片。CC2591集成了可將輸出功率提高+22 dBm的功率放大器以及可將接收機靈敏度提高+6 dBm的低噪聲放大器,從而擴大了ZigBee無線網(wǎng)絡(luò)的覆蓋范圍。
網(wǎng)關(guān)采用華為公司設(shè)計的EM310 GSM模塊,該模塊具備內(nèi)置的TCP/IP協(xié)議棧,方便實現(xiàn)ZigBee無線傳感網(wǎng)和以太網(wǎng)的數(shù)據(jù)交互。[!--empirenews.page--]
2 硬件設(shè)計
2.1 網(wǎng)關(guān)電源電路
LPC1227、CC2530和CC2591芯片需要3.3 V電壓供電??紤]到GSM模塊EM310的輸入電壓范圍為3.4~4.7 V,本次設(shè)計采用4.1 V電壓對EM310模塊供電。因此網(wǎng)關(guān)電源電路設(shè)計為3.3 V和4.1 V輸出的應(yīng)用系統(tǒng),如圖2所示。
首先由JP1電源接口輸入220 V的交流電,經(jīng)過AC—DC電源模塊輸出9 V直流電源。網(wǎng)關(guān)系統(tǒng)中GSM模塊功耗最大,雖然EM310最大瞬時電流可達(dá)到1.6 A,但是EM310處于GPRS工作模式時只需要400 mA電流。綜合考慮AC—DC模塊的體積、成本以及系統(tǒng)工作的穩(wěn)定性,最終選擇了功率為10 W的AC—DC電源模塊,可保證系統(tǒng)的穩(wěn)定工作。為了穩(wěn)定地向EM310提供4.1 V的電壓,LDO芯片(低壓差電源芯片)選擇Sipex公司的SP X29302芯片,該芯片可穩(wěn)定輸出高達(dá)3A的電流,結(jié)合43kΩ和100kΩ的電阻,可將輸出電壓調(diào)節(jié)到4.1V。
為保證3.3 V的輸出電壓采用了3.3 V的SPX1117LDO芯片,它的輸出電流可達(dá)800mA,輸出電壓的精度在±1%。
兩種LDO的輸出端都采用一個10μF的鉭電容來改善瞬態(tài)響應(yīng)和穩(wěn)定性。
2.2 遠(yuǎn)距離ZigBee模塊電路
遠(yuǎn)距離ZigBee模塊電路主要由晶振電路、CC2530芯片、CC2591芯片、芯片間RF差分信號線的匹配鏈路、RF信號到天線的匹配電路、CC25 91控制信號線,以及電源的退耦濾波部分組成。本文只給出ZigBee模塊系統(tǒng)結(jié)構(gòu)圖,如圖3所示。
對于CC2591的3個使能控制引腳,CC2530與CC2591的引腳連接分配如下:P1_1對應(yīng)PA EN,P1_4對應(yīng)EN,P0_7對應(yīng)HGM。
在實際設(shè)計ZigBee模塊的PCB電路板時,需注意以下2點:
①CC2530的GND引腳在芯片底部,畫PCB封裝時可在GND焊盤上添加GND過孔,以實現(xiàn)芯片的GND引腳與PCB板上的GND相連。
②TI公司提供的CC2591設(shè)計資料中建議采用4層板設(shè)計,考慮成本因素,本次設(shè)計仍采用2層PCB設(shè)計。經(jīng)測試發(fā)現(xiàn)ZigBee節(jié)點間的通信距離在采用5 dm全向天線時,無障礙通信距離可達(dá)1 km以上,滿足設(shè)計需要。[!--empirenews.page--]
2.3 EM310模塊電路
EM310是由華為公司設(shè)計的GSM模塊。它的輸入電壓設(shè)計在第1節(jié)中已有介紹。這里需要注意2點:
①串口引腳的連接。EM310模塊采用串口與LPC1227進(jìn)行通信,EM310串口引腳的連接比較特殊。RXD對應(yīng)終端設(shè)備的RXD口,TXD對應(yīng)終端設(shè)備的TXD口。因此LPC1227與EM310相連時引腳分配如下:PIO0_1/RXD0對應(yīng)RXD,PIO0_2/TXD0對應(yīng)TXD。
②本次設(shè)計中雖然不需要使用EM310進(jìn)行語音通話,但建議EM310模塊的RING引腳與LPC1227的GPIO引腳相連。因為EM310模塊在收到短信和語音呼叫時都會在RING引腳輸出低電平,LPC1227通過中斷可以及時計算出RING引腳低電平持續(xù)時間,從而盡快地對短信或來電進(jìn)行處理,比采用軟件查詢方式更具有實時性。
3 軟件設(shè)計
網(wǎng)關(guān)的軟件系統(tǒng)主要由ZigBee協(xié)調(diào)器程序和嵌入式處理器程序構(gòu)成。
3.1 ZigBee協(xié)調(diào)器程序
ZigBee標(biāo)準(zhǔn)定義ZigBee網(wǎng)絡(luò)中存在3種類型的設(shè)備:協(xié)調(diào)器、路由器、終端設(shè)備。其中協(xié)調(diào)器負(fù)責(zé)建立ZigBee網(wǎng)絡(luò),因此網(wǎng)關(guān)中的ZigBee模塊需要在程序中配置為協(xié)調(diào)器類型。
協(xié)調(diào)器程序采用最新的TI公司推出的ZigBee協(xié)議棧2007版,該協(xié)議棧可很好地支持網(wǎng)絡(luò)的自組織和自愈合。相對于目前使用較多的ZigBe e協(xié)議棧2006版,07版協(xié)議棧在06版協(xié)議?;A(chǔ)上主要增加了支持多密鑰高安全性、大型網(wǎng)絡(luò)和分割傳輸?shù)忍匦浴?br />
協(xié)調(diào)器程序在已有協(xié)議?;A(chǔ)上,主要還需增加如下部分:
①2007版ZigBee協(xié)議棧中包含了CC2591控制程序,為了使用CC2591,在協(xié)調(diào)器程序中需要開啟“halboard_cfg.h”文件中的HAL_PA_LNA編譯選項。
②增加串口處理任務(wù),實現(xiàn)與網(wǎng)關(guān)處理器的串口通信。
③按照自定義的數(shù)據(jù)傳輸幀格式解析、處理接收到的數(shù)據(jù),按照自定義的數(shù)據(jù)傳輸幀格式構(gòu)造待發(fā)送的數(shù)據(jù)。
④定期向全網(wǎng)廣播包含RTC信息的數(shù)據(jù)包。定期廣播該數(shù)據(jù)包對于全網(wǎng)節(jié)點來說有兩種作用。一是該數(shù)據(jù)包可實現(xiàn)全網(wǎng)節(jié)點RTC同步;二是網(wǎng)絡(luò)中的其他節(jié)點可通過定期檢查有無收到該數(shù)據(jù)包判斷協(xié)調(diào)器有無出現(xiàn)異常。此設(shè)計很適合包含路由器、需要RTC同步的大型網(wǎng)絡(luò)。
⑤增加CC2530芯片的看門狗初始化以及定期喂狗程序。
3.2 嵌入式處理器程序
為了實現(xiàn)網(wǎng)關(guān)的低成本、高實時性設(shè)計,本次網(wǎng)關(guān)不采用任何嵌入式操作系統(tǒng)。整個軟件系統(tǒng)采用前后臺的編程思想,后臺ISR(中斷服務(wù)程序)和前臺主程序循環(huán)之間的數(shù)據(jù)交換可以通過事件標(biāo)志和數(shù)據(jù)緩存區(qū)來實現(xiàn)。
由于EM310模塊內(nèi)置了TCP/IP協(xié)議,因此網(wǎng)關(guān)的MCU向該模塊直接發(fā)送AT指令即可與目標(biāo)上位機建立TCP/IP連接,實現(xiàn)數(shù)據(jù)的遠(yuǎn)程無線傳輸;通過發(fā)送AT指令還可收發(fā)短信、掛斷語音通話。為了增強網(wǎng)關(guān)的靈活性以及降低運行成本,網(wǎng)關(guān)采用GPRS方式與上位機進(jìn)行通信,同時保留處理短信功能,實現(xiàn)短信對網(wǎng)關(guān)的配置與操控。比如遇到目標(biāo)上位機IP地址變動的情況時,可通過給網(wǎng)關(guān)發(fā)送短信,配置網(wǎng)關(guān)最新目標(biāo)IP地址然后再與目標(biāo)主機建立GPRS連接。
對于該部分程序,需要注意以下幾點:
①LPC1227具備在應(yīng)用中編程的功能,對于需要掉電保存的信息可無須外擴Flash芯片而直接通過執(zhí)行程序?qū)⑻囟ㄐ畔⒈4娴絃PC1227芯片中。
②ZigBee協(xié)調(diào)器中RAM空間很有限,而且自身的Flash擦除次數(shù)也有限(CC2530支持約2萬次的擦寫,而LPC1227可支持約10萬次的擦寫)??紤]到保存ZigBee網(wǎng)絡(luò)中大量節(jié)點的16位網(wǎng)絡(luò)地址需要很大的空間,而協(xié)調(diào)器中RAM空間明顯不夠用,如果保存到協(xié)調(diào)器的Flash中又會影響CC2530芯片的使用壽命,因此采用LPC1227中的RAM空間來保存節(jié)點的網(wǎng)絡(luò)地址。畢竟LPC1227芯片8 KB的RAM空間足以保存一個大型網(wǎng)絡(luò)中節(jié)點的網(wǎng)絡(luò)地址。同時,LPC1227具備的在應(yīng)用編程功能可將節(jié)點網(wǎng)絡(luò)地址信息保存在自身Flash中。
③本次設(shè)計中自定義的ZigBee數(shù)據(jù)傳輸幀的節(jié)點ID號采用一字節(jié)進(jìn)行保存。因此,一個網(wǎng)關(guān)所建立的ZigBee網(wǎng)絡(luò)容量最大可為255個節(jié)點(除去協(xié)調(diào)器節(jié)點)。為了實現(xiàn)簡單的ZigBee節(jié)點網(wǎng)絡(luò)地址和節(jié)點號之間的地址映射,采用如下代碼實現(xiàn)(前提是節(jié)點編號從0到255):
uint16 Node[256]; //定義用于保存16位網(wǎng)絡(luò)地址的數(shù)組
Node[x]=NetAddr; //保存節(jié)點號為x的網(wǎng)絡(luò)地址
NetAddr=Node[x]; //獲取節(jié)點號為x的網(wǎng)絡(luò)地址
嵌入式處理器程序的MCU程序處理流程如圖4所示。
[!--empirenews.page--]
4 測試結(jié)果
網(wǎng)關(guān)的測試借助上位機測試平臺和ZigBee終端節(jié)點,以無線路燈節(jié)能、監(jiān)控系統(tǒng)為應(yīng)用背景。
上位機測試平臺如圖5所示。
網(wǎng)關(guān)技術(shù)指標(biāo)如表2所列。
5 總結(jié)
本次設(shè)計中網(wǎng)關(guān)沒有采用任何嵌入式操作系統(tǒng),相比當(dāng)前采用的嵌入式操作系統(tǒng)網(wǎng)關(guān),它具有更小的軟件負(fù)荷和更低的軟硬件成本。網(wǎng)關(guān)中的ZigBee模塊加入了2.4 GHz功率放大芯片CC2591,使得ZigBee節(jié)點間的無線通信距離更大,更適用于遠(yuǎn)距離無線通信場合。
網(wǎng)關(guān)的MCU采用較新的基于Cortex-M0內(nèi)核的ARM芯片LPC1227,運行速度高達(dá)45 MHz,具備在應(yīng)用編程(IAP)功能,方便對關(guān)鍵數(shù)據(jù)的掉電保存。兩路串口與ZigBee模塊和GSM模塊連接方便,具有較高的性價比。
系統(tǒng)軟件的編寫采用前后臺的設(shè)計思想,使得網(wǎng)關(guān)具有很好的實時性和可靠性,滿足工業(yè)級要求。因此本文設(shè)計的網(wǎng)關(guān)在低成本、遠(yuǎn)距離ZigBee通信領(lǐng)域具有較高的推廣價值。