楊校權,張毅,馬鈞元
(1.重慶郵電大學計算機學院,重慶400065;2.重慶郵電大學通信學院)
楊校權、馬鈞元(碩士研究生),張毅(教授):主要研究方向為嵌入式系統應用、物聯網。
物聯網被稱為繼計算機、互聯網與移動通信網之后的世界信息產業第三次浪潮。它代表了下一代信息發展技術,被世界各國當作應對國際金融危機、振興經濟的重點技術領域。
物聯網分為感知層、網絡層、應用層,而無線網關節點則是實現感知層與網絡層數據交互的橋梁,在物聯網中具有特殊的地位。網關負責網絡間的協議解析,不同網絡類型的網絡路由,網絡數據的匯聚、存儲、處理、轉發等功能,成為物聯網感知層與網絡層不可缺少的紐帶。因此設計出成本低、效率高、運行穩定的網關對物聯網的推廣有著重要的現實意義。
本文設計的網關主要由高速微控制器 LPC1227、Zig-Bee射頻收發模塊、GSM 通信模塊EM310、AC—DC電源模塊等組成。網關的系統結構如圖1所示。
為了滿足網關低成本、高實時性的要求,網關的MCU采用基于Cortex-M0內核的LPC1227微控制器,該微控制器由NXP半導體公司設計,于2011年2月投入市場。微控制器可在高達45 MHz的CPU頻率下運行,包含128 KB片內Flash存儲器和8 KB數據存儲器。512字節Flash擦除扇區帶來了多種設計上的好處,同時該芯片有兩個具備內部FIFO的UART。網關系統軟件不采用任何嵌入式操作系統,利用最小的軟件負載實現高實時性。
網關的ZigBee芯片采用TI公司的CC2530芯片,相對于當前使用較多的CC2430芯片,CC2530芯片的性價比更高。兩種芯片的主要參數對比如表1所列。

圖1 網關系統結構

表1 CC2430與CC2530主要參數對比
網關中擴展了配合CC2530芯片的射頻前端芯片CC2591。CC2591是 TI公司推出的工作頻率為 2.4 GHz,面向低功耗與低電壓無線應用,集成度很高的射頻前端芯片。CC2591集成了可將輸出功率提高+22 dBm的功率放大器以及可將接收機靈敏度提高+6 dBm的低噪聲放大器,從而擴大了ZigBee無線網絡的覆蓋范圍。
網關采用華為公司設計的EM310 GSM模塊,該模塊具備內置的TCP/IP協議棧,方便實現ZigBee無線傳感網和以太網的數據交互。
LPC1227、CC2530和CC2591芯片需要3.3 V電壓供電。考慮到GSM模塊EM310的輸入電壓范圍為3.4~4.7 V,本次設計采用4.1 V電壓對EM310模塊供電。因此網關電源電路設計為3.3 V和4.1 V輸出的應用系統,如圖2所示。

圖2 網關電源電路
首先由JP1電源接口輸入220 V的交流電,經過AC—DC電源模塊輸出9 V直流電源。網關系統中GSM模塊功耗最大,雖然EM310最大瞬時電流可達到1.6 A,但是EM310處于GPRS工作模式時只需要400 mA電流。綜合考慮AC—DC模塊的體積、成本以及系統工作的穩定性,最終選擇了功率為10 W 的AC—DC電源模塊,可保證系統的穩定工作。為了穩定地向EM310提供4.1 V的電壓,LDO芯片(低壓差電源芯片)選擇Sipex公司的SPX29302芯片,該芯片可穩定輸出高達3 A的電流,結合43 kΩ和100 kΩ的電阻,可將輸出電壓調節到4.1 V。
為保證3.3 V的輸出電壓采用了3.3 V的SPX1117 LDO芯片,它的輸出電流可達800mA,輸出電壓的精度在±1%。
兩種LDO的輸出端都采用一個10 μ F的鉭電容來改善瞬態響應和穩定性。
遠距離ZigBee模塊電路主要由晶振電路、CC2530芯片、CC2591芯片、芯片間 RF差分信號線的匹配鏈路、RF信號到天線的匹配電路、CC2591控制信號線,以及電源的退耦濾波部分組成[1]。本文只給出ZigBee模塊系統結構圖,如圖3所示。
對于CC2591的3個使能控制引腳,CC2530與CC2591的引腳連接分配如下:P1_1對應PA_EN,P1_4對應EN,P0_7對應HGM。
在實際設計ZigBee模塊的PCB電路板時,需注意以下2點:
①CC2530的GND引腳在芯片底部,畫PCB封裝時可在GND焊盤上添加GND過孔,以實現芯片的GND引腳與PCB板上的GND相連。
②TI公司提供的CC2591設計資料中建議采用4層板設計,考慮成本因素,本次設計仍采用2層PCB設計。經測試發現ZigBee節點間的通信距離在采用5 dm全向天線時,無障礙通信距離可達1 km以上,滿足設計需要。

圖3 ZigBee模塊系統結構圖
EM310是由華為公司設計的GSM模塊。它的輸入電壓設計在第1節中已有介紹。這里需要注意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引腳低電平持續時間,從而盡快地對短信或來電進行處理,比采用軟件查詢方式更具有實時性。
網關的軟件系統主要由ZigBee協調器程序和嵌入式處理器程序構成。
ZigBee標準定義ZigBee網絡中存在3種類型的設備:協調器、路由器、終端設備。其中協調器負責建立ZigBee網絡,因此網關中的ZigBee模塊需要在程序中配置為協調器類型。
協調器程序采用最新的TI公司推出的ZigBee協議棧2007版,該協議棧可很好地支持網絡的自組織和自愈合。相對于目前使用較多的ZigBee協議棧2006版,07版協議棧在06版協議棧基礎上主要增加了支持多密鑰高安全性、大型網絡和分割傳輸等特性。
協調器程序在已有協議棧基礎上,主要還需增加如下部分:
①2007版ZigBee協議棧中包含了CC2591控制程序,為了使用 CC2591,在協調器程序中需要開啟“hal_board_cfg.h”文件中的HAL_PA_LNA編譯選項。
②增加串口處理任務,實現與網關處理器的串口通信。
③按照自定義的數據傳輸幀格式解析、處理接收到的數據,按照自定義的數據傳輸幀格式構造待發送的數據。
④定期向全網廣播包含RTC信息的數據包。定期廣播該數據包對于全網節點來說有兩種作用。一是該數據包可實現全網節點RTC同步;二是網絡中的其他節點可通過定期檢查有無收到該數據包判斷協調器有無出現異常。此設計很適合包含路由器、需要RTC同步的大型網絡。
⑤增加CC2530芯片的看門狗初始化以及定期喂狗程序。
為了實現網關的低成本、高實時性設計,本次網關不采用任何嵌入式操作系統。整個軟件系統采用前后臺的編程思想,后臺ISR(中斷服務程序)和前臺主程序循環之間的數據交換可以通過事件標志和數據緩存區來實現。
由于EM310模塊內置了 TCP/IP協議,因此網關的MCU向該模塊直接發送AT指令即可與目標上位機建立TCP/IP連接,實現數據的遠程無線傳輸;通過發送AT指令還可收發短信、掛斷語音通話。為了增強網關的靈活性以及降低運行成本,網關采用GPRS方式與上位機進行通信,同時保留處理短信功能,實現短信對網關的配置與操控。比如遇到目標上位機IP地址變動的情況時,可通過給網關發送短信,配置網關最新目標IP地址然后再與目標主機建立GPRS連接。
對于該部分程序,需要注意以下幾點:
①LPC1227具備在應用中編程的功能,對于需要掉電保存的信息可無須外擴Flash芯片而直接通過執行程序將特定信息保存到LPC1227芯片中。
②ZigBee協調器中 RAM空間很有限,而且自身的Flash擦除次數也有限(CC2530支持約2萬次的擦寫,而LPC1227可支持約10萬次的擦寫)。考慮到保存ZigBee網絡中大量節點的16位網絡地址需要很大的空間,而協調器中RAM空間明顯不夠用,如果保存到協調器的Flash中又會影響CC2530芯片的使用壽命,因此采用LPC1227中的RAM空間來保存節點的網絡地址。畢竟LPC1227芯片8 KB的RAM空間足以保存一個大型網絡中節點的網絡地址。同時,LPC1227具備的在應用編程功能可將節點網絡地址信息保存在自身Flash中。
③本次設計中自定義的ZigBee數據傳輸幀的節點ID號采用一字節進行保存。因此,一個網關所建立的ZigBee網絡容量最大可為255個節點(除去協調器節點)。為了實現簡單的ZigBee節點網絡地址和節點號之間的地址映射,采用如下代碼實現(前提是節點編號從0到255):
uint16 Node[256]; //定義用于保存16位網絡地址的數組Node[x]=NetAddr;//保存節點號為x的網絡地址NetAddr=Node[x];//獲取節點號為x的網絡地址
嵌入式處理器程序的MCU程序處理流程如圖4所示。

圖4 MCU程序處理流程
網關的測試借助上位機測試平臺和ZigBee終端節點,以無線路燈節能、監控系統為應用背景。
上位機測試平臺如圖5所示。
網關技術指標如表2所列。

圖5 上位機測試平臺

表2 網關技術指標
本次設計中網關沒有采用任何嵌入式操作系統,相比當前采用的嵌入式操作系統網關,它具有更小的軟件負荷和更低的軟硬件成本。網關中的ZigBee模塊加入了2.4 GHz功率放大芯片CC2591,使得ZigBee節點間的無線通信距離更大,更適用于遠距離無線通信場合。
網關的MCU采用較新的基于Cortex-M0內核的ARM芯片LPC1227,運行速度高達45 MHz,具備在應用編程(IAP)功能,方便對關鍵數據的掉電保存。兩路串口與ZigBee模塊和GSM模塊連接方便,具有較高的性價比。
系統軟件的編寫采用前后臺的設計思想,使得網關具有很好的實時性和可靠性,滿足工業級要求。因此本文設計的網關在低成本、遠距離ZigBee通信領域具有較高的推廣價值。
[1]黃玉立,童玲,田雨.基于 CC2531+CC2591的 WSN節點通信模塊設計[J].單片機與嵌入式系統應用,2011(1):71-73.
[2]朱瑩,林基明.基于ZigBee無線傳感器網絡網關的設計與實現[J].傳感器與微系統,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數據手冊[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模塊產品概述[OL].[2011-06].http://www.huawei.com.
[11]華為技術有限公司.EM310無線模塊V100R001AT命令手冊[EB/OL].[2011-06].http://www.huawei.com.