賈偉
摘 要: 物聯(lián)網(wǎng)技術(shù)已成為國(guó)際備受關(guān)注的前沿?zé)狳c(diǎn)研究領(lǐng)域,ZigBee技術(shù)具有低功耗、高度可擴(kuò)展性、低成本、易組網(wǎng)等特點(diǎn),已成為短距離物聯(lián)網(wǎng)技術(shù)發(fā)展的一條主線。構(gòu)建了一個(gè)基于ZigBee無(wú)線網(wǎng)絡(luò)的物聯(lián)網(wǎng)實(shí)驗(yàn)平臺(tái),設(shè)計(jì)協(xié)調(diào)器節(jié)點(diǎn)、路由節(jié)點(diǎn)和終端節(jié)點(diǎn),移植并修改Miracl大數(shù)運(yùn)算庫(kù),成功實(shí)現(xiàn) RC5 和 AES 等數(shù)據(jù)加密算法,實(shí)現(xiàn)數(shù)據(jù)的可靠性傳輸。最后,設(shè)計(jì)了上位機(jī)監(jiān)控軟件,在接收到數(shù)據(jù)幀后能夠進(jìn)行解析、存儲(chǔ)等操作,實(shí)時(shí)地查看網(wǎng)絡(luò)節(jié)點(diǎn)的運(yùn)行狀態(tài)和較直觀地顯示監(jiān)測(cè)區(qū)域的采集信息。
關(guān)鍵詞: 物聯(lián)網(wǎng); Cortex?M3; ZigBee協(xié)議; 傳感器; 監(jiān)控軟件
中圖分類號(hào): TN911?34; TP368.2 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)05?0033?05
隨著科技進(jìn)步與網(wǎng)絡(luò)的發(fā)展,物聯(lián)網(wǎng)技術(shù)已成為全球關(guān)注的焦點(diǎn)并應(yīng)用于多個(gè)領(lǐng)域,這為實(shí)現(xiàn)物聯(lián)網(wǎng)的數(shù)據(jù)共享和安全等服務(wù)提供了技術(shù)保障。本文設(shè)計(jì)構(gòu)建了一個(gè)基于ZigBee無(wú)線網(wǎng)絡(luò)的物聯(lián)網(wǎng)實(shí)驗(yàn)平臺(tái),深入研究物聯(lián)網(wǎng)的數(shù)據(jù)采集與信息傳輸技術(shù)。
1 網(wǎng)絡(luò)節(jié)點(diǎn)的軟硬件設(shè)計(jì)
在搭建物聯(lián)網(wǎng)實(shí)驗(yàn)平臺(tái)時(shí),根據(jù)網(wǎng)絡(luò)節(jié)點(diǎn)在網(wǎng)絡(luò)中的任務(wù)特點(diǎn)設(shè)計(jì)了三種類型的網(wǎng)絡(luò)節(jié)點(diǎn),即終端節(jié)點(diǎn)(又稱傳感器節(jié)點(diǎn))、路由節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)。三種節(jié)點(diǎn)相互通信協(xié)作,共同完成數(shù)據(jù)的信息化處理。
1.1 網(wǎng)絡(luò)節(jié)點(diǎn)的結(jié)構(gòu)設(shè)計(jì)
網(wǎng)絡(luò)節(jié)點(diǎn)一般由傳感器模塊、微處理器模塊、無(wú)線通信模塊、能量供應(yīng)等模塊構(gòu)成(路由節(jié)點(diǎn)和協(xié)調(diào)節(jié)點(diǎn)可沒有傳感器模塊)。該硬件平臺(tái)的網(wǎng)絡(luò)節(jié)點(diǎn)采用TI公司Cortex?M3核的LM3S811,LM3S1138和LM3S9B96作為節(jié)點(diǎn)微控制器。無(wú)線收發(fā)模塊是由CC2420 芯片和相應(yīng)的外部元器件封裝而成。
1.2 網(wǎng)絡(luò)節(jié)點(diǎn)的軟件設(shè)計(jì)
網(wǎng)絡(luò)節(jié)點(diǎn)的軟件設(shè)計(jì)框架如圖1所示。軟件底層采用的是μC/OS?Ⅱ操作系統(tǒng)。
節(jié)點(diǎn)軟件的操作系統(tǒng)之上為ZigBee協(xié)議棧,通過這個(gè)協(xié)議棧實(shí)現(xiàn)樹簇的網(wǎng)絡(luò)結(jié)構(gòu)。在網(wǎng)絡(luò)節(jié)點(diǎn)的軟件設(shè)計(jì)中,整個(gè)工程創(chuàng)建了多個(gè)用戶文件夾,分類存儲(chǔ)程序源文件。其中 μC/OS?Ⅱ的文件夾中存放的是μC/OS?Ⅱ操作系統(tǒng)源碼相關(guān)文件,Stack文件夾中是有關(guān) MsstatePAN協(xié)議棧的源碼等相關(guān)文件,Target文件夾中是程序目標(biāo)代碼,Middleware文件夾中是一些中間件的代碼,主要包括微控制器外部接口的代碼實(shí)現(xiàn)等。LM3S DriverLib是TI公司提供的針對(duì)Cortex M3系列微控制器的驅(qū)動(dòng)庫(kù)[1]。
1.3 通信協(xié)議幀設(shè)計(jì)
在建設(shè)過程中,為了方便其他設(shè)備對(duì)信息的識(shí)別和統(tǒng)一整個(gè)監(jiān)控網(wǎng)絡(luò)的數(shù)據(jù)幀的格式,自定義用戶數(shù)據(jù)幀格式,具體數(shù)據(jù)位定義如圖2所示。
需要注意的是,接口數(shù)據(jù)是以ASCII碼形式傳送的, 一個(gè)字節(jié)型的整數(shù)需要兩個(gè)ASCII碼表示,因此以上數(shù)據(jù)都要轉(zhuǎn)換成字符串的形式,按照用戶自定義的數(shù)據(jù)幀與上位機(jī) PC 進(jìn)行數(shù)據(jù)通信。在組網(wǎng)過程中,根據(jù)用戶數(shù)據(jù)幀協(xié)議的約定,定義了3個(gè)特殊的數(shù)據(jù)幀提供給各節(jié)點(diǎn),用于向上位機(jī)匯報(bào)組網(wǎng)狀態(tài)。
2 ZigBee無(wú)線網(wǎng)絡(luò)的信息傳輸
ZigBee是一種面向自動(dòng)控制的低傳輸率、低功耗、低價(jià)格、近距離的雙向無(wú)線網(wǎng)絡(luò)通信技術(shù),基礎(chǔ)是IEEE 802.15.4,其三個(gè)工作頻段2.4 GHz,915 MHz和868 MHz是完全免費(fèi)開放的。ZigBee的傳輸范圍依賴于輸出功率和信道環(huán)境,網(wǎng)絡(luò)節(jié)點(diǎn)間的傳輸距離可以從標(biāo)準(zhǔn)的75 m擴(kuò)展到幾百米,甚至于幾千米。
2.1 ZigBee網(wǎng)絡(luò)的技術(shù)特點(diǎn)
與WiFi,Bluetooth,GPRS/GSM相比,ZigBee網(wǎng)絡(luò)具有成本低、體積較小、功耗低、易于擴(kuò)展、感應(yīng)性強(qiáng)等特點(diǎn),適用于控制節(jié)點(diǎn)較多、傳輸量不大、覆蓋面相對(duì)較廣以及造價(jià)成本比較低的無(wú)線網(wǎng)絡(luò)應(yīng)用系統(tǒng)中[2?3]。
2.2 ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)
根據(jù)ZigBee網(wǎng)絡(luò)中設(shè)備的功能不同,IEEE 802.15.4把ZigBee網(wǎng)絡(luò)中的設(shè)備分為全功能設(shè)備(Full?Function Device,F(xiàn)FD)和精簡(jiǎn)功能設(shè)備(Reduced?Function Device,RFD)。根據(jù)設(shè)備在網(wǎng)絡(luò)中承擔(dān)的任務(wù)不同,ZigBee網(wǎng)絡(luò)中的節(jié)點(diǎn)分為三種類型,即協(xié)調(diào)器節(jié)點(diǎn)ZC(ZigBee Coordinator),路由節(jié)點(diǎn)ZR(ZigBee Router)和終端節(jié)點(diǎn) ZE(ZigBee EndDevice)[4]。
ZigBee以一個(gè)獨(dú)立的工作節(jié)點(diǎn)為依托,通過無(wú)線通信組成星狀、串(樹)狀、網(wǎng)狀等網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
2.3 ZigBee協(xié)議??蚣?/p>
完整的ZigBee協(xié)議棧由應(yīng)用層、應(yīng)用支持層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路、媒體接入層(MAC)和物理層(PHY)組成,協(xié)議棧中的每層都含有特定的功能和服務(wù)。中間層都為其上一層提供一系列特定的服務(wù),其中每層的數(shù)據(jù)實(shí)體提供相對(duì)應(yīng)的數(shù)據(jù)傳輸服務(wù),管理實(shí)體負(fù)責(zé)其他配套服務(wù)。每層的服務(wù)實(shí)體通過相應(yīng)接口與上一層進(jìn)行數(shù)據(jù)交換,為上層提供數(shù)據(jù)傳輸服務(wù)。
2.4 MsstatePAN協(xié)議棧的移植
采用硬件平臺(tái)的收發(fā)功能主要通過Cortex?M3系列微控制器控制CC2420模塊實(shí)現(xiàn),選用原PIC微控制器+CC2420的協(xié)議棧為模板。在對(duì)MsstatePAN協(xié)議棧的結(jié)構(gòu)與工作機(jī)制大致了解的基礎(chǔ)上,修改硬件平臺(tái)有關(guān)驅(qū)動(dòng),順利在Keil和IAR的開發(fā)平臺(tái)上將MsstatePAN協(xié)議棧移植到了LM3S811,LM3S1138,LM3S4749,LM3S9B96等同系列目標(biāo)開發(fā)板上。
LM3S811/9B96微控制器使用串口進(jìn)行通信,需充分利用其提供的UART驅(qū)動(dòng)函數(shù),在程序中只需對(duì) UART硬件資源進(jìn)行簡(jiǎn)單配置和初始化,就能實(shí)現(xiàn)數(shù)據(jù)的傳輸。
3 物聯(lián)網(wǎng)的前端數(shù)據(jù)采集
本節(jié)主要介紹DS18B20溫度傳感器、SHT11溫濕度傳感器、MMA7260三維加速度傳感器、TSL230光頻轉(zhuǎn)換器和RFID等模塊。
3.1 DS18B20溫度傳感器
DS18B20是美國(guó)Dallas半導(dǎo)體公司推出的一款支持 “單總線”控制接口的溫度傳感器[5]。該傳感器溫度采集轉(zhuǎn)化后得到的12位數(shù)據(jù)存儲(chǔ)內(nèi)部的兩個(gè)8位高速暫存器RAM,RAM中的第一個(gè)字節(jié)存放測(cè)量溫度數(shù)據(jù)的低8位,第二個(gè)字節(jié)存放數(shù)據(jù)的高8位。利用DS18B20特有的控制命令集進(jìn)行操作,將數(shù)據(jù)正確讀入到微控制器,命令集分為ROM操作命令集和內(nèi)存操作命令集。
設(shè)計(jì)中,基于TI的LM3S811/1138微控制器采用C語(yǔ)言程序來(lái)實(shí)現(xiàn)對(duì)DS18B20的操作,芯片采用默認(rèn)的 12位采集數(shù)據(jù)模式,轉(zhuǎn)換的時(shí)間一般低于750 μs。實(shí)踐表明,單總線方式的溫度傳感器DS18B20具有控制簡(jiǎn)單、易于擴(kuò)展和成本低等優(yōu)點(diǎn)。同時(shí),利用微控制器讀取傳感器數(shù)據(jù)的程序相對(duì)比較簡(jiǎn)單,讀取的溫度值也相對(duì)比較精確。
3.2 SHT11溫濕度傳感器
SHT11是瑞士Sensirion公司推出的一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。該傳感器內(nèi)部的測(cè)濕元件、測(cè)溫元件將監(jiān)控區(qū)域的濕度和溫度轉(zhuǎn)換成相對(duì)應(yīng)的電信號(hào),同時(shí)將產(chǎn)生的電信號(hào)輸入到信號(hào)放大器中,然后將放大的模擬電信號(hào)輸送至內(nèi)部的A/D轉(zhuǎn)換器,轉(zhuǎn)化數(shù)據(jù)存儲(chǔ)在內(nèi)部的寄存器中。傳感器經(jīng)過二根I/O數(shù)據(jù)線與微控制器進(jìn)行通信,并將轉(zhuǎn)換數(shù)據(jù)發(fā)送出去。
傳感器通過兩線串行接口和微控制器LM3S811/1138相連接,采用普通I/O與傳感器模塊相連,模擬SHT11芯片能識(shí)別的時(shí)鐘信號(hào),并通過DATA數(shù)據(jù)線直接獲取采集數(shù)據(jù),無(wú)需額外A/D轉(zhuǎn)換電路,大大簡(jiǎn)化了傳感器和微控制器之間的硬件連接。
3.3 TSL230光頻轉(zhuǎn)換模塊
TSL230使用硅光二極管測(cè)量光照強(qiáng)度,具有響應(yīng)快、穩(wěn)定性好等特點(diǎn),廣泛應(yīng)用于照相機(jī)曝光控制、舞臺(tái)燈光檢測(cè)、醫(yī)學(xué)光照診斷等領(lǐng)域。內(nèi)部由光強(qiáng)采集、光/頻轉(zhuǎn)換、頻率信號(hào)處理三部分組成,外部由8引腳PDIP封裝。
3.4 MMA7260三維加速度傳感器
采用LQMMA7260模塊檢測(cè)物體的運(yùn)動(dòng)狀態(tài)。可以通過其本身提供的休眠模式來(lái)降低芯片功耗。具體方法為待傳感器數(shù)據(jù)采集完畢后,通過SLEEP引腳來(lái)控制MMA7260是否進(jìn)入休眠,當(dāng)SLEEP引腳接到低電平信號(hào)時(shí),傳感器進(jìn)入休眠模式,此時(shí)電流為3 μA;當(dāng)SLEEP接到高電平信號(hào)時(shí),傳感器便恢復(fù)工作。
采用LQMMA7260模塊與LM3S811微控制器進(jìn)行連接,模塊的三路電壓分別與微控制器的A/D轉(zhuǎn)換輸入引腳相連,并采用ADC多通道采樣的方法對(duì)三路模擬數(shù)據(jù)進(jìn)行模/數(shù)轉(zhuǎn)換。
3.5 校園一卡通的信息采集
設(shè)計(jì)一款讀卡器可以快速準(zhǔn)確地讀取校園一卡通編號(hào)。讀卡模塊采用AK?RFMOD05CD芯片,讀卡器模塊將采集的卡片信息按照Wiegand數(shù)據(jù)協(xié)議標(biāo)準(zhǔn)傳輸,通過WD0和WD1引腳進(jìn)行輸出。微控制器LM3S1138通過兩個(gè)I/O引腳對(duì)數(shù)據(jù)進(jìn)行接收,其接口電路如圖3所示。讀卡器模塊的數(shù)據(jù)輸出引腳WD0和微控制器的PB0相連,WD1和PB1相連。
程序開始后,初始化PB0和PB1兩引腳為輸入方式,并設(shè)置為下降沿的中斷觸發(fā),當(dāng)兩根線上有低電平出現(xiàn)時(shí),進(jìn)入相應(yīng)的中斷服務(wù)程序中接收Wiegan數(shù)據(jù)。在中斷服務(wù)程序中判斷觸發(fā)中斷的引腳編號(hào)和傳輸數(shù)據(jù),同時(shí)將數(shù)據(jù)存儲(chǔ)在用戶開辟的數(shù)據(jù)緩沖區(qū)中。
使用數(shù)字式示波器對(duì)讀卡器的DATA0和DATA1線在協(xié)議位給出高電平時(shí)的波形圖進(jìn)行截取和分析,讀卡器模塊選擇Wiegand26協(xié)議,將一張校園卡放置在讀卡器上,其中上側(cè)為WD0輸出信號(hào)線波形圖,下側(cè)波形為WD1輸出信號(hào)線波形圖,與韋根協(xié)議理論波形對(duì)比,得出該卡的Wiegand26數(shù)據(jù)為“00000110100010010100110 111”,數(shù)據(jù)波形與微控制器采集的數(shù)據(jù)保持一致。
4 信息的加密傳輸
數(shù)據(jù)加密的本質(zhì)就是對(duì)明文(文件或數(shù)據(jù))按照預(yù)定的方法進(jìn)行特殊處理,使其變?yōu)闊o(wú)法進(jìn)行直接可讀的一段代碼或亂碼數(shù)據(jù)。
針對(duì)加入網(wǎng)絡(luò)的節(jié)點(diǎn),系統(tǒng)需要對(duì)申請(qǐng)入網(wǎng)的節(jié)點(diǎn)進(jìn)行一個(gè)比較嚴(yán)格的入網(wǎng)認(rèn)證。在網(wǎng)絡(luò)的數(shù)據(jù)傳輸過程中,傳輸數(shù)據(jù)需要經(jīng)過高強(qiáng)度密碼算法進(jìn)行加密處理,防止私有數(shù)據(jù)的竊聽,保證數(shù)據(jù)的可靠性傳輸[6]。
4.1 信息通信的數(shù)據(jù)加密
一般數(shù)據(jù)加密可通過無(wú)線通信網(wǎng)絡(luò)中的三個(gè)層次來(lái)實(shí)現(xiàn),分別為鏈路加密、節(jié)點(diǎn)加密和端到端加密。
鏈路加密要求網(wǎng)絡(luò)節(jié)點(diǎn)之間的數(shù)據(jù)通信中的數(shù)據(jù)必須是不可讀數(shù)據(jù),包括路由信息、目的地址等數(shù)據(jù)。節(jié)點(diǎn)加密算法的操作方式與鏈路加密大體一致,在ZigBee通信鏈路上為傳輸?shù)臄?shù)據(jù)幀提供安全保障。在整個(gè)ZigBee網(wǎng)絡(luò)數(shù)據(jù)通信過程中,端到端加密又稱脫線加密或包加密,用戶可以自行設(shè)計(jì)一些加密算法對(duì)數(shù)據(jù)幀中的負(fù)載數(shù)據(jù)進(jìn)行加密,只有當(dāng)目的網(wǎng)絡(luò)節(jié)點(diǎn)接收數(shù)據(jù)幀時(shí),才通知本節(jié)點(diǎn)的上次去解密數(shù)據(jù)幀。
4.2 常用的無(wú)線傳感網(wǎng)數(shù)據(jù)加密算法
Miracl庫(kù)是ShamusSoftwareLtd開發(fā)的一個(gè)基于大數(shù)運(yùn)算的函數(shù)庫(kù),是編寫密碼安全方面的程序所必備的一個(gè)算法模板庫(kù),是當(dāng)前應(yīng)用比較廣泛的基于公鑰加密算法實(shí)現(xiàn)的大數(shù)庫(kù)之一。
RC5是由RSA公司的Rivest于1994年提出的一種新型的分組加密算法。結(jié)合TI公司的ARMCortex?M3系列微控制器的特點(diǎn),由于該類型微控制器的存儲(chǔ)字長(zhǎng)為32位,特設(shè)置該RC5算法的三個(gè)參數(shù)可定義為:字長(zhǎng)為32位,加密輪數(shù)為12輪,密鑰長(zhǎng)度為16 B,可用符號(hào)表示為RC5?32/12/16。
在加密系統(tǒng)中,首先創(chuàng)建密鑰組,在創(chuàng)建完密鑰組后,開始對(duì)明文數(shù)據(jù)進(jìn)行加密。針對(duì)AES加解密算法,利用Miracl開源庫(kù)中的相關(guān)函數(shù),編寫適應(yīng)于微控制器的特定程序。其中節(jié)點(diǎn)進(jìn)行AES加解密數(shù)據(jù)流程如圖4所示。
5 上位機(jī)監(jiān)控軟件開發(fā)
5.1 監(jiān)控軟件總體設(shè)計(jì)
該監(jiān)控軟件采用Visual Studio系統(tǒng)平臺(tái)進(jìn)行開發(fā),利用現(xiàn)代計(jì)算機(jī)技術(shù)、數(shù)據(jù)通信技術(shù)、圖形學(xué)等技術(shù),將分布于監(jiān)控區(qū)域的各類設(shè)備的運(yùn)行參數(shù)和采集信息以文字、圖形、圖像等形式展示給用戶,實(shí)現(xiàn)監(jiān)控軟件的可視化控制,實(shí)現(xiàn)對(duì)遠(yuǎn)程ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備的自動(dòng)化控制。本系統(tǒng)監(jiān)控軟件的框架設(shè)計(jì)模型如圖5所示。
5.2 監(jiān)控軟件與協(xié)調(diào)器節(jié)點(diǎn)的數(shù)據(jù)通信
采用標(biāo)準(zhǔn)串口和USB兩種通信模式實(shí)現(xiàn)微控制器與監(jiān)控軟件的數(shù)據(jù)通信。
為了較好地完成串口通信任務(wù),LM3S811/1138/9B96微控制器可以利用TI公司提供的驅(qū)動(dòng)庫(kù)配置UART資源,然后通過調(diào)用UARTCharPut和UARTCharGet等函數(shù)來(lái)實(shí)現(xiàn)下位機(jī)串口數(shù)據(jù)的收發(fā)。上位機(jī)監(jiān)控軟件利用多線程串口編程工具CserialPort類進(jìn)行開發(fā),CserialPort是由RemonSpekeijse編寫的免費(fèi)串口類,其內(nèi)部函數(shù)完全透明,并允許對(duì)相關(guān)類的內(nèi)容進(jìn)行改造、補(bǔ)充和完善等[7],其內(nèi)部重要函數(shù)如表1所示。本文對(duì)CserialPort進(jìn)行修改,以滿足系統(tǒng)的整體需求。程序設(shè)計(jì)中需要?jiǎng)?chuàng)建一個(gè)監(jiān)視線程負(fù)責(zé)監(jiān)視可用串口產(chǎn)生的各種信息。讀/寫串口操作需要WaitCommEvent和WaitForMultipleObjects等函數(shù)配合監(jiān)視線程共同完成。
一個(gè)典型的USB應(yīng)用系統(tǒng)由USB設(shè)備、USB主機(jī)和USB電纜組成。在本課題中,協(xié)調(diào)器節(jié)點(diǎn)是USB設(shè)備,USB主機(jī)則是具有USB接口的計(jì)算機(jī)。上位機(jī)監(jiān)控軟件的USB數(shù)據(jù)通信需要調(diào)用TI公司提供的動(dòng)態(tài)鏈接庫(kù)LMUSB.dll,程序可以采用顯式鏈接和隱式鏈接兩種方式調(diào)用LMUSB.dll動(dòng)態(tài)鏈接庫(kù)。
在USB接口程序的設(shè)計(jì)中,首先利用設(shè)備管理器查看具有USB硬件資源的協(xié)調(diào)器節(jié)點(diǎn)的PID,VID和GUID等相關(guān)信息,然后加載動(dòng)態(tài)鏈接庫(kù)LMUSB.dll。程序通過調(diào)用InitializeDevice函數(shù)初始化協(xié)調(diào)器節(jié)點(diǎn)設(shè)備,待初始化成功后,監(jiān)控軟件創(chuàng)建接收數(shù)據(jù)線程,線程中調(diào)用ReadUSBPacket()函數(shù)去接收協(xié)調(diào)器節(jié)點(diǎn)設(shè)備發(fā)送的數(shù)據(jù)幀。在使用完USB設(shè)備后,需要通過調(diào)用TerminateDevice函數(shù)釋放USB設(shè)備。
待完成數(shù)據(jù)通信以后, 上位機(jī)軟件需要?jiǎng)?chuàng)建專門的線程用于接收協(xié)調(diào)器節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)幀。 然后根據(jù)自定義的數(shù)據(jù)幀格式, 編寫專門的函數(shù)對(duì)接收的數(shù)據(jù)幀進(jìn)行解析,然后將數(shù)據(jù)分類存儲(chǔ)在相對(duì)應(yīng)節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)體中。 用戶可以自定義網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)幀發(fā)送周期,監(jiān)控軟件根據(jù)預(yù)先設(shè)定的周期內(nèi)是否收到該節(jié)點(diǎn)的數(shù)據(jù)幀去判斷其在網(wǎng)絡(luò)中的組網(wǎng)狀態(tài)。
5.3 繪圖模塊
本節(jié)中將部分終端節(jié)點(diǎn)采集的信息以曲線等形式顯示出來(lái)。本軟件選用TeeChartPro作為圖表、圖形控件,它和Visual Studio平臺(tái)具有較好的兼容性。它提供了上百種2D和3D圖形風(fēng)格、40余種數(shù)學(xué)統(tǒng)計(jì)功能以及20余種圖標(biāo)操作工具等,圖6為添加TeeChart控件類的步驟圖。
5.4 ZigBee組網(wǎng)功能測(cè)試
在整個(gè)測(cè)試過程中,終端節(jié)點(diǎn)負(fù)責(zé)采集檢測(cè)區(qū)域的數(shù)據(jù),并按照自定義的數(shù)據(jù)幀格式進(jìn)行封裝,然后發(fā)送至協(xié)調(diào)器節(jié)點(diǎn);協(xié)調(diào)器節(jié)點(diǎn)主要負(fù)責(zé)創(chuàng)建和維護(hù)網(wǎng)絡(luò),并將收集的幀發(fā)送至上位機(jī)監(jiān)控軟件。監(jiān)控軟件能夠?qū)Ω鱾€(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的組網(wǎng)狀態(tài)進(jìn)行有效判斷,路由節(jié)點(diǎn)和終端節(jié)點(diǎn)可以根據(jù)實(shí)際需要定時(shí)地向協(xié)調(diào)器節(jié)點(diǎn)發(fā)出成功組網(wǎng)狀態(tài)標(biāo)志數(shù)據(jù)幀。
本節(jié)選用LM3S9B96作為微控制器的網(wǎng)絡(luò)節(jié)點(diǎn),或者整個(gè)測(cè)試網(wǎng)絡(luò)的協(xié)調(diào)器節(jié)點(diǎn),以LM3S811/1138作為微控制器的網(wǎng)絡(luò)節(jié)點(diǎn),終端節(jié)點(diǎn)或者路由節(jié)點(diǎn)。對(duì)協(xié)調(diào)器節(jié)點(diǎn)建立網(wǎng)絡(luò)的過程、終端節(jié)點(diǎn)加入網(wǎng)絡(luò)的過程、樹型拓?fù)渚W(wǎng)絡(luò)系統(tǒng)進(jìn)行了檢測(cè),選擇樹型拓?fù)渚W(wǎng)絡(luò)系統(tǒng)測(cè)試進(jìn)行詳細(xì)說明。
當(dāng)協(xié)調(diào)器節(jié)點(diǎn)組建網(wǎng)絡(luò),把編寫好的路由節(jié)點(diǎn)程序下載到編號(hào)為一號(hào)和二號(hào)的路由器節(jié)點(diǎn)上,然后逐個(gè)按下開發(fā)板上的Reset按鍵,等待其加入網(wǎng)絡(luò)。如果路由器節(jié)點(diǎn)成功組網(wǎng)后,并向協(xié)調(diào)器節(jié)點(diǎn)發(fā)送路由器成功組網(wǎng)標(biāo)志數(shù)據(jù)幀,監(jiān)控軟件接收到該數(shù)據(jù)幀后,該路由節(jié)點(diǎn)設(shè)備相對(duì)應(yīng)的組網(wǎng)圖標(biāo)為綠色(紅色表示未加入網(wǎng)絡(luò));然后依次上電復(fù)位編號(hào)為1~5的傳感器采集節(jié)點(diǎn),待節(jié)點(diǎn)成功加入網(wǎng)絡(luò)后,監(jiān)控軟件根據(jù)相關(guān)數(shù)據(jù)形成檢測(cè)ZigBee網(wǎng)絡(luò)拓?fù)鋱D。根據(jù)形成的網(wǎng)絡(luò)拓?fù)鋱D可知,共計(jì)有1個(gè)協(xié)調(diào)器節(jié)點(diǎn)、2個(gè)路由器節(jié)點(diǎn)、5個(gè)終端節(jié)點(diǎn)共同組成此時(shí)的ZigBee監(jiān)控網(wǎng)絡(luò)。
6 結(jié) 論
本設(shè)計(jì)移植精簡(jiǎn)版ZigBee協(xié)議棧到TICortex?M3系列微控制器上,實(shí)現(xiàn)了組網(wǎng)功能。成功移植μC/OS?Ⅱ操作系統(tǒng),使協(xié)調(diào)器上的任務(wù)運(yùn)行于μC/OS?Ⅱ之上,為以后協(xié)調(diào)器節(jié)點(diǎn)的功能擴(kuò)展奠定軟件基礎(chǔ)。對(duì)基于ZigBee無(wú)線網(wǎng)絡(luò)的短距離物聯(lián)網(wǎng)進(jìn)行了進(jìn)一步的研究,編寫上位機(jī)監(jiān)控軟件實(shí)時(shí)監(jiān)控ZigBee網(wǎng)絡(luò)。監(jiān)控軟件通過串口和USB通信接口接收用戶自定義的數(shù)據(jù)幀,然后解析與分類存儲(chǔ)相關(guān)數(shù)據(jù),并及時(shí)更新網(wǎng)絡(luò)節(jié)點(diǎn)運(yùn)行狀態(tài)與節(jié)點(diǎn)采集數(shù)據(jù)等信息。
參考文獻(xiàn)
[1] 徐琰.基于32位微控制器ZigBee無(wú)線傳感器網(wǎng)絡(luò)的研究[D].北京:北京理工大學(xué),2010.
[2] Sena. The comparison of WiFi, Bluetooth and ZigBee [EB/OL]. [2012?05?17]. http://www.sena.com/blog/?p=359.
[3] ZigBee Alliance. ZigBee_tutorial PDF [EB/OL]. [2009?11?07]. http://www.zigbee.org.
[4] 高鍵,方濱,尹金玉,等.ZigBee無(wú)線通信網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)與組網(wǎng)實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2008,16(12):1912?1914.
[5] 郭天祥.51單片機(jī)C語(yǔ)言教程[M].北京:電子工業(yè)出版社,2009:100?285.
[6] 沈永增,楊利亞.智能家居無(wú)線數(shù)據(jù)的安全傳輸[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010(8):222?224.
[7] 龔建偉,熊光.Visual C++/Turbo C串口通信編程實(shí)踐[M].北京:電子工業(yè)出版社,2008:15?60.