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