李 玲,郭曉玲,武仁杰,徐 婷
(河北北方學院 信息科學與工程學院,河北 張家口 075000)
無線傳感器網絡(WSN)是由大量傳感器節(jié)點通過無線通信技術構成的自組織網絡,集成了傳感器、網絡、計算機、嵌入式系統(tǒng)等技術,用來采集、處理和傳輸網絡覆蓋范圍內感知對象的信息。ZigBee是建立在IEEE802.15.4標準基礎上的低功耗個域網協(xié)議,具有低成本、近距離、自組織、低功耗、低數(shù)據傳輸率、低復雜度等特點,較藍牙、WiFi等無線技術,更適用于無線傳感器網絡,也是無線傳感器網絡中采用較多的無線傳輸協(xié)議[1-2]。但是,ZigBee屬于短距離技術,它的協(xié)議棧也并不支持IP協(xié)議。ZigBee網絡中節(jié)點的數(shù)據要到達控制中心或者云端,必須經過網關進行協(xié)議轉換。現(xiàn)已有將ZigBee與以太網、WiFi、GPRS、3G、4G等技術融合的研究[3-6],使ZigBee網絡的數(shù)據能夠到達外部網絡。
NB-IoT(窄帶物聯(lián)網)是IoT領域新興的技術,支持低功耗設備在廣域網的蜂窩數(shù)據連接,是低功耗廣域網技術,具有部署靈活、窄帶、低速率、低成本、高容量、深度覆蓋、低功耗等特點[7-9]。NB-IoT屬于廣域網技術,直接獲取IP地址便可將數(shù)據傳輸?shù)交ヂ?lián)網,具有直達云端的優(yōu)勢。單個NB-IoT節(jié)點向運營商支付的業(yè)務費也較低。
結合ZigBee技術和NB-IoT技術特點,揚長避短,本文提出融合NB-IoT及ZigBee技術的網關設計,滿足物聯(lián)網應用對于“遠”“近”距離可擴展,組網靈活、安全可靠的需求。
傳感器網絡一般由多個節(jié)點和一個匯聚節(jié)點組成。不同的應用場合,對傳感器網絡布點數(shù)量的要求不同,傳感器網絡的拓撲結構也不相同[10]。但是,傳感器網絡要與互聯(lián)網相連接,必須經過網關進行數(shù)據轉發(fā)。ZigBee網絡一般由協(xié)調器節(jié)點、路由器節(jié)點及終端節(jié)點組成。協(xié)調器是ZigBee網絡的中心。該設計將ZigBee協(xié)調器與NB-IoT模塊BC95通過串口連接,實現(xiàn)傳感器網絡與互聯(lián)網的連接。ZigBee協(xié)調器是ZigBee網絡的控制中心,收集各個節(jié)點的數(shù)據,并通過串口將數(shù)據發(fā)送給BC95模塊。BC95模塊通過NB-IoT網絡將數(shù)據傳輸?shù)皆破脚_或者遠程控制中心。云平臺或者遠程控制中心的指令通過NB-IoT網絡到達ZigBee協(xié)調器,協(xié)調器再將指令進行轉發(fā)。網絡整體體系結構如圖1所示。
ZigBee芯片選用德州儀器生產的CC2530F256,CC2530F256芯片是ZigBee片上系統(tǒng)解決方案,基于IEEE802.15.4標準協(xié)議,集成了領先的RF收發(fā)器的優(yōu)良性能,具有業(yè)界標準的增強型8051內核和256 kB的閃存空間,體積小。CC2530F256為網關的核心處理部分,一是具有ZigBee協(xié)調器的功能,二是通過串口與BC95模塊相連,通過AT指令控制BC95模塊進行網絡連接、數(shù)據發(fā)送等功能。CC2530硬件設計如圖2所示。
圖1 網絡整體體系結構
圖2 CC2530硬件設計
NB-IoT模塊選用BC95-B8,B8適配電信網絡。華為研發(fā)了業(yè)界第一款支持NB-IoT網絡的芯片和Boudica120芯片。移遠基于Boudica120芯片開發(fā)了BC95模塊。BC95是一款高性能、低功耗的NB-IoT無線通信模塊。
CC2530F256外設中具有兩路串口:一路通過串口轉USB芯片轉換與PC連接,進行調試用;另一直接與BC95相連進行數(shù)據收發(fā)。串口連接如圖3所示。
圖3 CC2530串口連接
CC2530的電源管理采用兩路AMS111-7芯片,能夠同時穩(wěn)定提供3.3 V、5 V電源,分別給CC2530和BC95模塊使用。
ZigBee協(xié)議棧采用TI公司的Z-Stack協(xié)議棧。Z-Stack協(xié)議棧具有OSAL操作系統(tǒng)抽象層,可以看做是一種任務分配資源的機制,從而形成了一個簡單多任務的操作系統(tǒng)。該設計中將協(xié)調器節(jié)點作為網關節(jié)點,系統(tǒng)軟件要包含協(xié)調器的功能,同時也要包含兩個異構網絡之間數(shù)據轉發(fā)的功能。CC2530與BC95之間通過串口連接,ZigBee協(xié)議由zstack協(xié)議棧處理,NB-IoT協(xié)議由BC95模塊處理,兩種異構網絡的數(shù)據交換主要為應用層數(shù)據的交換。NB-IoT網絡數(shù)據的發(fā)送及接收通過串口發(fā)送AT指令對BC95模塊進行控制。應用層軟件包含三個事件:(1)串口數(shù)據接收事件,處理BC95模塊返回的信息,若有數(shù)據下發(fā),則轉發(fā)給相應的ZigBee節(jié)點;(2)ZigBee網絡數(shù)據接收事件,處理ZigBee節(jié)點反饋的信息,并將數(shù)據轉發(fā)給BC95模塊;(3)定時器事件,發(fā)送心跳幀,定時反饋狀態(tài)數(shù)據。應用層軟件流程如圖4所示。
圖4 應用層軟件流程
BC95模塊控制主要包括開機入網、數(shù)據接收和網絡狀態(tài)檢測。
(1)NB-IoT入網,通過發(fā)送一些列AT指令使BC95模塊附著到NB網絡。
AT+CMEE=1啟動結果碼;
AT+CFUN=1開啟模組的射頻開關;
AT+CIMI查詢IMSI號碼;
AT+CGSN=1查詢IMEI號碼;
AT+CSQ確認當前射頻信號強度;
AT+CGATT=1激活網絡配置;
AT+CGATT確認網絡是否被激活,返回值為1表示網絡激活;
AT+CEREG確認模塊網絡注冊狀態(tài),返回值為1表示注冊成功;
AT+CSCON確認模塊連接狀態(tài),返回值為1表示連接成功;
AT+NSMI=1打開消息發(fā)送指示;AT+NNMI=2設置系統(tǒng)消息提示。(2)數(shù)據接收,使用UDP協(xié)議進行模塊與云服務器之間的數(shù)據傳輸。
使用AT+NSOCR創(chuàng)建socket,如UDPAT+NSOCR=DGRAM,17,10 000,1;
使用AT+NSOST發(fā)送數(shù)據,如AT+NSOST=0,115.29.240.46,6 000,2,6 570;
若有數(shù)據下發(fā),模塊返回+NSONMI∶0,10(提示有10字節(jié)數(shù)據到NB模塊);
使用AT+NSORF指令讀取數(shù)據,如AT+NSORF=0,10。
為了遠端監(jiān)控進程能讀懂采集的數(shù)據,網關能夠識別下發(fā)的控制命令并轉發(fā)給相應的ZigBee節(jié)點,還需定義通信幀結構。定義通信幀結構,如圖5所示。
圖5 通信幀結構
幀頭:一幀數(shù)據的開始標志。
幀長度:包含幀頭至幀尾的整個幀的長度。
源地址、目的地址:ZigBee節(jié)點的64位MAC地址,數(shù)據上報時目的地址為0,數(shù)據下發(fā)時源地址為0。
幀類型:包括數(shù)據上報、命令下發(fā)、心跳幀和確認幀幾種類型。數(shù)據上報幀由ZigBee終端節(jié)點主動發(fā)起;命令下發(fā)幀,為確保終端節(jié)點是否收到,終端節(jié)點收到后需上報確認幀;心跳幀,網關定時上報,維持網絡活性。
數(shù)據區(qū):數(shù)據區(qū)由命令字、數(shù)據長度和數(shù)據組成,一個幀可攜帶多個數(shù)據區(qū)。當幀為數(shù)據幀時,命令字指示采集的何種數(shù)據,如溫度、濕度、光照度等,數(shù)據長度指示當前數(shù)據區(qū)數(shù)據的長度。當幀為命令下發(fā)幀時,命令字指示何種控制命令,數(shù)據為下發(fā)的數(shù)據。當幀為確認幀時,命令字指示何種控制命令,數(shù)據為成功或失敗的標識。當幀為心跳幀時,數(shù)據區(qū)為空。
幀尾:一幀數(shù)據結束標志。
協(xié)議流程:終端節(jié)點上報數(shù)據,網關轉發(fā)到NB-IoT網絡再到云平臺;網關向云平臺發(fā)送心跳幀保持網絡通信順暢;網關接收到云平臺下發(fā)的指令轉發(fā)給終端節(jié)點,終端節(jié)點收到并上報確認幀,網關轉發(fā)確認幀到云平臺;若網關收不到終端節(jié)點的確認幀,則由網關上報失敗的確認幀。
網絡環(huán)境。ZigBee網絡的采集數(shù)據由NB-IoT網絡上報到云平臺,云平臺再將數(shù)據透傳給本地服務器。
數(shù)據上報測試。搭建溫濕度采集系統(tǒng)進行網關功能測試,測試環(huán)境為實驗室室內外溫濕度;布置3個ZigBee節(jié)點,一個節(jié)點室外,一個節(jié)點靠窗,一個實驗室內部;數(shù)據通過NB-IoT網絡傳輸?shù)皆破脚_再透傳到本地服務器,本地服務器通過網絡連接工具接收數(shù)據。溫濕度采集數(shù)據半個小時上報一次,連續(xù)測試5天,系統(tǒng)穩(wěn)定。圖6是服務器端數(shù)據接收的實時顯示。
圖6 服務器端數(shù)據接收
數(shù)據下發(fā)測試。模擬測試環(huán)境為控制ZigBee節(jié)點的LED開關,服務器端隨機下發(fā)控制指令。當ZigBee節(jié)點為工作狀態(tài)時,服務器端會收到成功的確認;當ZigBee節(jié)點處于休閑狀態(tài)時,服務器端會收到失敗的確認。
該系統(tǒng)結合ZigBee自組網、無需付費和NBIoT直達廣域網的優(yōu)勢,設計了ZigBee/NB-IoT無線傳感器網絡網關。測試結果表明,設計方案運行穩(wěn)定,且系統(tǒng)具有成本低、操作方便、便于安裝等特點,具有較高的使用價值。