摘要:隨著傳感器技術(shù)和無線通信技術(shù)的發(fā)展,ZigBee技術(shù)得到廣泛應(yīng)用,在數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè)與采集等方面,其應(yīng)用優(yōu)勢(shì)更為顯著。該文設(shè)計(jì)并實(shí)現(xiàn)的基于ZigBee的無線溫度監(jiān)測(cè)系統(tǒng)使用多個(gè)CC2430模塊,一個(gè)作為ZigBee協(xié)調(diào)器,其余作為溫度數(shù)據(jù)采集端。溫度數(shù)據(jù)采集端采集溫度數(shù)據(jù)并通過ZigBee協(xié)議上傳至ZigBee協(xié)調(diào)器,ZigBee協(xié)調(diào)器通過串口將數(shù)據(jù)匯集到上位機(jī)中,從而實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)監(jiān)測(cè)。本系統(tǒng)的完成有助于改變傳統(tǒng)人工的收集數(shù)據(jù)方式,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)收集,適用環(huán)境監(jiān)測(cè),智能家居,工業(yè)監(jiān)測(cè)等領(lǐng)域。
關(guān)鍵詞:ZigBee;CC2430; DS18B20;無線傳感網(wǎng)絡(luò);溫度監(jiān)測(cè)
中圖分類號(hào):TP368.2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)15-3545-05
1 概述
近年來,得益于無線通信技術(shù)、計(jì)算機(jī)技術(shù)和傳感器技術(shù)的不斷進(jìn)步,無線傳感器網(wǎng)絡(luò)已從理論研究逐漸步入生產(chǎn)應(yīng)用。環(huán)境數(shù)據(jù)的實(shí)時(shí)采集是無線傳感器網(wǎng)絡(luò)在環(huán)境監(jiān)測(cè)領(lǐng)域應(yīng)用中實(shí)現(xiàn)的一個(gè)重要功能。由于,環(huán)境溫度數(shù)據(jù)指標(biāo)對(duì)于能源消耗、設(shè)備安全、生物生命體征、生活舒適度等方面均是較重要的參考指標(biāo),因此設(shè)計(jì)一種低成本、可靠高效的溫度采集系統(tǒng)對(duì)于工農(nóng)業(yè)生產(chǎn)效率的提高與社會(huì)生活環(huán)境的改善具有一定的輔助作用。
在傳統(tǒng)的溫度采集系統(tǒng)中,節(jié)點(diǎn)一般采用有線連接方式,布線繁瑣,擴(kuò)展性和可移植性不高[6]。文獻(xiàn)[5]中使用的是基于WiFi的溫度監(jiān)測(cè)的方法, 但WiFi技術(shù)功耗較高,影響了溫度檢測(cè)網(wǎng)絡(luò)的使用壽命。ZigBee[1]作為一種新興的短距離無線通信網(wǎng)絡(luò)技術(shù),憑借其低成本、低功耗的優(yōu)勢(shì),成為無線傳感器網(wǎng)絡(luò)中主要的通信協(xié)議之一。該文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于CC2430的ZigBee無線溫度監(jiān)測(cè)網(wǎng)絡(luò)。該網(wǎng)絡(luò)通過ZigBee協(xié)議棧將多個(gè)節(jié)點(diǎn)設(shè)備組建成星型網(wǎng)絡(luò),將各個(gè)節(jié)點(diǎn)的采集的溫度數(shù)據(jù)實(shí)時(shí)發(fā)送到協(xié)調(diào)器并又協(xié)調(diào)器在匯聚到上位機(jī)中,從而實(shí)現(xiàn)溫度數(shù)據(jù)的實(shí)時(shí)采集。
2 系統(tǒng)設(shè)計(jì)方案
2.1 系統(tǒng)概要設(shè)計(jì)
無線溫度檢測(cè)系統(tǒng)組建成星型網(wǎng)絡(luò),由各個(gè)溫度采集的終端設(shè)備和協(xié)調(diào)器以及其所連接的上位機(jī)組成。協(xié)調(diào)器負(fù)責(zé)整個(gè)網(wǎng)絡(luò)的啟動(dòng)和配置,并且在這些工作完成后,協(xié)調(diào)器工作就像一個(gè)路由器或者不再起作用。而終端設(shè)備主要負(fù)責(zé)采集數(shù)據(jù),并將數(shù)據(jù)傳送給協(xié)調(diào)器,隨后傳給上位機(jī)。系統(tǒng)架構(gòu)如圖1所示。
2.2 溫度傳感器選擇與設(shè)計(jì)
DS18B20[3]是美國Dallas公司推出的新型數(shù)字溫度傳感器,其具有低功耗、微型化、抗干擾性強(qiáng)、高性能等優(yōu)點(diǎn),且采用單接線口方式。數(shù)字溫度計(jì)提供9位溫度讀數(shù),指示器件的溫度。DS18B20的信息的送入或送出要經(jīng)過單線接口,因此從中央處理器到DS18B20僅需連接一條(和地)。因?yàn)槠渲挥幸桓盘?hào)線,因此對(duì)信號(hào)線的正常操作必須要靠嚴(yán)格的操作協(xié)議來保證。讀、寫和完成溫度變換所需的電源可以由數(shù)據(jù)本身提供,而不需要外部電源。因?yàn)槊總€(gè)DS18B20 有唯一的系列號(hào),因此多個(gè)DS18B20可以存在同一條總線上[7]。這允許在許多不同的地方放置溫度靈敏器件。
DS18B20處理時(shí)首先初始化DS18B20,即發(fā)送復(fù)位脈沖指令操作。對(duì)ROM的操作,因?yàn)橐粋€(gè)節(jié)點(diǎn)只連接一個(gè)DS18B20,所以直接跳過ROM操作。最后對(duì)RAM操作,先啟動(dòng)溫度轉(zhuǎn)換命令0X44,再發(fā)送讀取存儲(chǔ)器的命令0XBE,使其將RAM中存儲(chǔ)的數(shù)據(jù)從DQ引腳上傳送處來。
2.3 系統(tǒng)芯片選擇與設(shè)計(jì)
CC2430[2]是一顆真正的系統(tǒng)芯片CMOS解決方案。這種解決方案能充分滿足以ZigBee為基礎(chǔ)的2.4GHz ISM波段應(yīng)用的低成本、低功耗的要求并且能為其提高性能。其具有高性能、低功耗的8051兼容微控制器,最高128KB非易失性程序存儲(chǔ)器和2×4KB數(shù)據(jù)存儲(chǔ)器,硬件AES(Advanced Encryption Standard,高級(jí)加密標(biāo)準(zhǔn))加密/解密,外圍設(shè)備特性,低功耗,IEEE 802.15.4 MAC硬件支持,集成2.4GHz DSSS(Direct-Sequence Spread Spectrum,直接序列擴(kuò)頻)數(shù)字射頻的特性。
3 系統(tǒng)設(shè)計(jì)
3.1 協(xié)調(diào)器設(shè)計(jì)
在本協(xié)調(diào)器中,在系統(tǒng)加電,初始化ZigBee協(xié)議棧后,協(xié)調(diào)器啟動(dòng)并喚醒網(wǎng)絡(luò)。然后進(jìn)行ZigBee網(wǎng)絡(luò)的配置。如果有節(jié)點(diǎn)請(qǐng)求加入,則先在網(wǎng)絡(luò)中加入節(jié)點(diǎn)并賦予其網(wǎng)絡(luò)編號(hào)。最后,發(fā)送相關(guān)的數(shù)據(jù)。
3.2 終端節(jié)點(diǎn)設(shè)計(jì)
終端節(jié)點(diǎn)上電后,首先做的也是對(duì)系統(tǒng)的初始化。此時(shí),終端節(jié)點(diǎn)可以發(fā)現(xiàn)網(wǎng)絡(luò),并可加入網(wǎng)絡(luò)(已加入網(wǎng)絡(luò)的也可退出網(wǎng)絡(luò)),對(duì)協(xié)調(diào)器的信息響應(yīng),并由此處理溫度傳感器,接收數(shù)據(jù)并將其返送給協(xié)調(diào)器。終端節(jié)點(diǎn)工作流程如圖4所示。在終端節(jié)點(diǎn)中,上電、初始化后,終端節(jié)點(diǎn)向協(xié)調(diào)器請(qǐng)求加入網(wǎng)絡(luò)。若成功,則判斷與協(xié)調(diào)器正常通信,若正常則收集溫度傳感器數(shù)據(jù)并將其發(fā)送到協(xié)調(diào)器。
單線總線上的所有操作都是從初始化序列開始進(jìn)行。初始化序列包括從總線控制器發(fā)出復(fù)位脈沖,然后由從屬器件送出存在脈沖(存在脈沖讓總線知道DS15B20在總線上已準(zhǔn)備好操作、一旦總線控制器探測(cè)到一個(gè)存在脈沖,就可以發(fā)出ROM命令)[3]。
DS18B20的數(shù)據(jù)讀寫是通過時(shí)間間隙處理和命令來確認(rèn)信息交換。首先主機(jī)把數(shù)據(jù)從邏輯高電平拉到低電平[4],寫時(shí)間間隙開始(寫時(shí)間間隙必須最少持續(xù)60us,包括兩個(gè)寫周期至少1us的恢復(fù)時(shí)間。)然后I/O線電平拉低后,DS18B20在一個(gè)15us到60us的時(shí)候?qū)/O線采樣。如果線上為高電平,就是寫1,如果線上是低電平,就是寫0。
主機(jī)把數(shù)據(jù)線從高電平拉至低電平時(shí),產(chǎn)生讀時(shí)間片。且數(shù)據(jù)線必須保持低電平至少1us,讀1820輸出的數(shù)據(jù)在讀時(shí)間片后的15us內(nèi)有效(在讀之前必須停止送低電平(也就是送高電平)——低電平1us后直接拉高等待讀數(shù)據(jù))[3]。同時(shí)讀時(shí)間片的最短持續(xù)時(shí)間為60us,各個(gè)讀時(shí)間片之間要有最短為1us的恢復(fù)時(shí)間。
DS18B2進(jìn)行溫度轉(zhuǎn)換時(shí),首先初始化DS18B20,Skip ROM(“跳過”ROM)即寫入0XCCH,啟動(dòng)溫度變換即寫入OX44H,再次初始化DS18B20,寫入指令0X55H來匹配ROM,然后寫入指令0XCCH,再寫入指令0XBEH即讀存儲(chǔ)器,最終得出數(shù)據(jù)。
3.3 數(shù)據(jù)采集與接收
3.3.1 終端設(shè)備
終端設(shè)備即是溫度數(shù)據(jù)采集節(jié)點(diǎn),通過DS18B20采集數(shù)據(jù)。Zigbee無線測(cè)溫模塊為新一代無線測(cè)溫提供解決方案。通過TI公司CC2430組成星型網(wǎng)絡(luò),利用溫度傳感器18B20采集當(dāng)前溫度,并根據(jù)設(shè)置更新配置和上傳溫度數(shù)據(jù)及配置數(shù)據(jù)。其中終端節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)如下。
結(jié)構(gòu)體中設(shè)置節(jié)點(diǎn)參數(shù),包括采樣周期、發(fā)送周期、報(bào)警發(fā)送周期、溫度報(bào)警上限、溫度報(bào)警下限、步進(jìn)溫度、故障記錄和電壓記錄。其默認(rèn)參數(shù)設(shè)置見協(xié)議規(guī)范。終端設(shè)備的工作流程如圖5所示。終端設(shè)備初始化,設(shè)定定時(shí)器,接著通過DS18B20定時(shí)采集溫度數(shù)據(jù)。若超過設(shè)定的警戒溫度,若超過,則直接發(fā)送溫度數(shù)據(jù)到協(xié)調(diào)器。否則設(shè)置采樣頻率后,繼續(xù)發(fā)送數(shù)據(jù)。接著重置定時(shí)器。
3.3.2 協(xié)調(diào)器節(jié)點(diǎn)
協(xié)調(diào)器通過ZigBee協(xié)議棧組建的星型網(wǎng)絡(luò),通過無線獲得終端設(shè)備傳過來的數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行處理,獲得溫度數(shù)據(jù),并通過串口匯集到上位機(jī)中。協(xié)調(diào)器發(fā)送PC串口通信協(xié)議幀,此結(jié)構(gòu)體只在協(xié)調(diào)器中使用。該結(jié)構(gòu)體中將DAT與ID合并為dat,方便傳輸使用。協(xié)調(diào)器工作流程如圖6所示。
協(xié)調(diào)器接收上位機(jī)的數(shù)據(jù),根據(jù)MAC地址,對(duì)終端節(jié)點(diǎn)傳遞數(shù)據(jù)。同時(shí)通過串口向上位機(jī)傳遞數(shù)據(jù)。協(xié)調(diào)器接收無線信息處理回調(diào)函數(shù)接收到無線信息后并不做解析,而是直接轉(zhuǎn)發(fā)至PC串口端,代碼如下。協(xié)調(diào)器節(jié)點(diǎn)任務(wù)響應(yīng)處理函數(shù)響應(yīng)SERIALAPP_UART_REV_EVT(接收串口數(shù)據(jù))和AF_INCOMING_MSG_CMD(接收無線信息)兩個(gè)命令。
3.4 串口通信協(xié)議
串口通信的協(xié)議數(shù)據(jù)格式如表1所示,其中幀頭為0xFF。溫差梯度最小0.5度,在-55至125之間。溫度讀數(shù)以16位bit或者通過符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)方式來提供。由此得出溫度/數(shù)據(jù)的關(guān)系,如表2所示。
4 系統(tǒng)測(cè)試
本設(shè)計(jì)的關(guān)鍵是DS18B20溫度傳感器數(shù)據(jù)的采集,以及ZigBee協(xié)議棧的相互通信。為此,該文作了大量的測(cè)試,測(cè)試用例如表3所示。路由節(jié)點(diǎn)通過串口將數(shù)據(jù)發(fā)到上位機(jī)中,上位機(jī)用工具串口調(diào)試助手V2.2獲得數(shù)據(jù),串口調(diào)試工具助手設(shè)置波特率為38400,校驗(yàn)位為無校驗(yàn),數(shù)據(jù)位為8位,停止位為1位。數(shù)據(jù)顯示界面如圖7所示,此時(shí)對(duì)應(yīng)節(jié)點(diǎn)的MAC地址如圖8所示。圖7中,節(jié)點(diǎn)的MAC地址為FF FF FF FF FF FF FF 02,接收到的數(shù)據(jù)是FF 10 02 FF FF FF FF FF FF 67,即測(cè)的溫度為01 8B即為24.69 ℃。
5 結(jié)論
該系統(tǒng)實(shí)現(xiàn)了基于ZigBee協(xié)議的溫度采集與傳輸,系統(tǒng)支持多個(gè)終端節(jié)點(diǎn)和一個(gè)協(xié)調(diào)器節(jié)點(diǎn)。其中,終端節(jié)點(diǎn)對(duì)所處環(huán)境的溫度數(shù)據(jù)進(jìn)行采集,并以無線方式將數(shù)據(jù)傳送到協(xié)調(diào)器,協(xié)調(diào)器通過串口將數(shù)據(jù)傳送到上位機(jī)中,從而達(dá)到了對(duì)多個(gè)不同地理位置的溫度數(shù)據(jù)采集的設(shè)計(jì)要求。下一階段將加強(qiáng)對(duì)上位機(jī)的溫度數(shù)據(jù)的分類收集和整理。具體包括:實(shí)現(xiàn)對(duì)各個(gè)節(jié)點(diǎn)溫度數(shù)據(jù)分類統(tǒng)計(jì)與分析,完成對(duì)各個(gè)節(jié)點(diǎn)溫度的趨勢(shì)圖顯示,實(shí)現(xiàn)對(duì)各個(gè)節(jié)點(diǎn)溫度上下限預(yù)警功能,在上位機(jī)中完成一個(gè)基于窗口的數(shù)據(jù)查詢與顯示功能,增強(qiáng)系統(tǒng)的用戶友好性。
參考文獻(xiàn):
[1] 高守瑋.ZigBee技術(shù)實(shí)踐教程[M].北京:北京航空航天大學(xué)出版社,2009.
[2] Teaxs Instruments.Datasheet. CC2430[M].Texas:Teaxas Instruments Company,2010.
[3] Maxim.DS18B20 DataSheet[EB/OL](2012-12-05)(2008-12-30).http://datasheets.maximintegrated.com/en/ds/DS18B20-PAR.pdf
[4] Drew Gislason.ZigBee Wireless Networking[M].Boston:Newnes,2008.
[5] 李山,楊波.基于WiFi的環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].軟件,2011,32(1):42-45.
[6] 雷純,何小陽,蘇生輝.基于 ZigBee 的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化技術(shù)與應(yīng)用,2010(2):43-46.