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