葛華 湯曉燕
基于CC2530的溫濕度無線數(shù)據(jù)采集
葛華 湯曉燕
(沙洲職業(yè)工學院,江蘇 張家港 215600)
分析ZigBee協(xié)議棧的工作流程,闡述以CC2530芯片為硬件核心構(gòu)建的點對點ZigBee無線網(wǎng)絡(luò),分別從硬件、軟件方面設(shè)計實現(xiàn)了基于ZigBee協(xié)議棧的溫濕度無線數(shù)據(jù)采集。使用IAR開發(fā)環(huán)境,基于TI公司的Z-Stack協(xié)議棧完成無線網(wǎng)絡(luò)協(xié)調(diào)器和終端設(shè)備的程序設(shè)計過程。終端設(shè)備和協(xié)調(diào)器之間通過ZigBee無線網(wǎng)絡(luò)通信,協(xié)調(diào)器和PC端之間通過串口通信,協(xié)調(diào)器可執(zhí)行對終端設(shè)備溫濕度的檢測與超限報警。
ZigBee;CC2530;Z-Stack;溫濕度采集
近年來,MEMS技術(shù)、無線通信技術(shù)的不斷發(fā)展推動了無線傳感網(wǎng)的誕生和發(fā)展。2009年,溫家寶總理視察了中科院物聯(lián)網(wǎng)感知中心,提出感知中國的概念。隨后,上海、無錫等城市相繼成立物聯(lián)網(wǎng)研究中心。國內(nèi)眾多高校成立了物聯(lián)網(wǎng)學院或者物聯(lián)網(wǎng)工程專業(yè)。[1]
沙洲職業(yè)工學院單獨開設(shè)“物聯(lián)網(wǎng)技術(shù)與應(yīng)用”課程,作為電子信息工程技術(shù)專業(yè)、電氣自動化技術(shù)專業(yè)的必修課。根據(jù)專業(yè)人才培養(yǎng)的需要,同時降低課程學習的難度,電子信息工程系于2017年添置了基于TI公司CC2530芯片的物聯(lián)網(wǎng)實驗設(shè)備20套。
在“物聯(lián)網(wǎng)技術(shù)與應(yīng)用”課程之前,相關(guān)專業(yè)的學生已經(jīng)先修了“電路與電工技術(shù)”、“模擬電路分析與實踐”、“數(shù)字電路分析與實踐”、“C語言程序設(shè)計”、“單片機應(yīng)用技術(shù)”等基礎(chǔ)課程,具備了基本的專業(yè)知識。目前,該課程安排共56學時,采用理實一體的教學方式,主要學習內(nèi)容:CC2530的GPIO口,外部中斷,定時器/計數(shù)器,電源管理,串口通信,AD轉(zhuǎn)換,ZigBee協(xié)議棧的無線網(wǎng)絡(luò)通信。課程的教學實驗分為三個層次,首先是CC2530的基礎(chǔ)實驗,了解與掌握CC2530接口的功能與使用;其次是利用傳感器采集環(huán)境數(shù)據(jù)并分析;最后是基于ZigBee協(xié)議棧的組網(wǎng)實驗,進行節(jié)點組網(wǎng)、數(shù)據(jù)采集與無線傳輸。實驗難度循序漸進。溫濕度無線數(shù)據(jù)采集是在完成了課程的主要學習內(nèi)容后,融合“物聯(lián)網(wǎng)技術(shù)與應(yīng)用”課程的知識要點,進行的綜合性ZigBee協(xié)議棧數(shù)據(jù)采集與無線網(wǎng)絡(luò)通信訓練,還可以為相關(guān)專業(yè)后續(xù)的技能訓練、畢業(yè)設(shè)計提供基礎(chǔ)平臺。
CC2530實驗系統(tǒng)的硬件主要包括CC2530單片機模塊、常用傳感器模塊和其他模塊。CC2530單片機模塊主要由8051內(nèi)核和無線ZigBee構(gòu)成,可以完成對外設(shè)的控制和數(shù)據(jù)的無線傳輸。常用傳感器模塊主要包括溫濕度傳感器、煙霧傳感器、人體紅外傳感器等。其他模塊包括電源模塊、串口模塊、JTAG接口模塊、發(fā)光二極管模塊、按鍵模塊、液晶顯示模塊、RFID模塊、AD轉(zhuǎn)換模塊等。
實驗系統(tǒng)中,無論是終端設(shè)備還是路由器、協(xié)調(diào)器,均采用相同的硬件模塊結(jié)構(gòu),采用TI公司的CC2530 芯片結(jié)合ZigBee協(xié)議來完成無線通信。CC2530單片機模塊的電路如圖1所示,主要包括晶振電路和巴倫變換電路。圖中的VCC 接3.3 V,負載電容C221與C231和32 M的振蕩器X1構(gòu)成32 MHz的晶振,負載電容C321、C331與32.768 k的振蕩器X2構(gòu)成32 kHz的晶振。電路中通過巴倫電路L252、L261和C252、C262將CC2530輸出的平衡天線信號轉(zhuǎn)換為實驗系統(tǒng)板載天線所需要的非平衡天線信號。
圖1 CC2530單片機模塊的電路圖
ZigBee采用IEEE 802.15.4標準,利用2.4 GHz頻段進行通信,具有低功耗、低成本、網(wǎng)絡(luò)容量大等特點。低速率、無線自組網(wǎng)的ZigBee技術(shù),與藍牙、WiFi并稱為三大無線通信技術(shù)。[2]CC2530為一款片上系統(tǒng),兼容IEEE 802.15.4標準,可以簡便、快速地構(gòu)建無線通信網(wǎng)絡(luò)。
ZigBee網(wǎng)絡(luò)中的設(shè)備按功能劃分為三類:協(xié)調(diào)器(Coordinator),路由器(Router),終端設(shè)備(End Device)。協(xié)調(diào)器主要功能是啟動和配置IEEE 802.15.4 ZigBee網(wǎng)絡(luò),一個ZigBee網(wǎng)絡(luò)只能有一個協(xié)調(diào)器。路由器是一種支持關(guān)聯(lián)的設(shè)備,將自己關(guān)聯(lián)至協(xié)調(diào)器或者已在網(wǎng)絡(luò)的其他路由器,同時允許其他的路由器和終端設(shè)備加入網(wǎng)絡(luò)。終端設(shè)備執(zhí)行具體的任務(wù),如:數(shù)據(jù)采集,并使用ZigBee網(wǎng)絡(luò)實現(xiàn)信息交互。
Z-Stack協(xié)議棧是一個小型操作系統(tǒng),協(xié)議棧內(nèi)有基本函數(shù)庫,開發(fā)人員通過調(diào)用函數(shù)庫內(nèi)的入口函數(shù)來實現(xiàn)ZigBee組網(wǎng)和數(shù)據(jù)傳輸?shù)裙δ堋-Stack協(xié)議棧采用層結(jié)構(gòu),圖2所示為Z-Stack協(xié)議棧的工程目錄,從上至下各個文件夾分別是:APP文件夾,應(yīng)用層;HAL文件夾,硬件層;MAC文件夾,媒介訪問控制層;MT文件夾,監(jiān)控測試;NWK文件夾,網(wǎng)絡(luò)層;OSAL文件夾,操作系統(tǒng)層;Profile文件夾,應(yīng)用工作層;Security文件夾,安全層;Tools文件夾,工程配置;ZDO文件夾,ZigBee設(shè)備對象層;Zmac文件夾,參數(shù)配置和回調(diào)處理函數(shù);ZMain文件夾,Z-Stack的主函數(shù)入口。其中,ZigBee聯(lián)盟對應(yīng)用層、網(wǎng)絡(luò)層架構(gòu)進行了定義,而IEEE 802.15.4標準則對媒介訪問控制層進行了定義[3]。由下至上,各層均能為上層提供滿足其需要的服務(wù)。
CC2530實驗系統(tǒng)的無線通信采用Z-Stack,用戶只需調(diào)用應(yīng)用層程序的入口函數(shù)來實現(xiàn)具體功能[4]。Z-Stack的工作流程如圖3所示,主要包括初始化中斷、初始化驅(qū)動和各層、各任務(wù)輪詢等。Z-Stack的主入口函數(shù)在ZMain文件夾下的ZMain.c文件中。Zmain.c實現(xiàn)的功能主要有:初始化系統(tǒng)時鐘、初始化電源、初始化堆棧、初始化硬件模塊、初始化內(nèi)存管理、初始化消息隊列、初始化任務(wù)系統(tǒng)、初始化操作系統(tǒng)并啟動操作系統(tǒng)。其中,初始化任務(wù)系統(tǒng)是進行任務(wù)列表和各項任務(wù)的添加,任務(wù)系統(tǒng)是整個協(xié)議棧中協(xié)調(diào)各個任務(wù)模塊及用戶應(yīng)用的核心。Zmain.c最后調(diào)用了osal_start_system( )函數(shù),啟動操作系統(tǒng),此后的操作權(quán)都交給OSAL操作系統(tǒng)。
OSAL是TI公司開發(fā)的一個輪詢式操作系統(tǒng)。osal_start_system( )函數(shù)中有一個死循環(huán),循環(huán)按照任務(wù)優(yōu)先級查詢各任務(wù)是否有事件發(fā)生,若有事件發(fā)生則轉(zhuǎn)入相應(yīng)的函數(shù)處理。初始化任務(wù)系統(tǒng)時已將HAL、MT、MAC、NWK、APP、ZDO等模塊添加到操作系統(tǒng)中,且在操作系統(tǒng)中以獨立任務(wù)運行。操作系統(tǒng)專門為任務(wù)事件分配任務(wù)數(shù)組,一個任務(wù)的所有事件存放在一個任務(wù)單元中,操作系統(tǒng)輪詢每個任務(wù)單元是否有事件發(fā)生,若發(fā)生則進入事件處理函數(shù),若沒有則繼續(xù)輪詢下一任務(wù)單元。
圖2 Z-Stack協(xié)議棧的工程目錄
圖3 Z-Stack的工作流程圖
溫濕度傳感器采用的是DHT11,在其正常工作時溫度測量范圍為0℃~50℃,測量精度為±2℃,分辨度為1℃;濕度測量范圍為20%~90%RH,測量精度為±5%RH。
DHT11與CC2530之間的通信為單總線格式,一次傳輸40位數(shù)據(jù),一次傳輸時間約為4 ms(時序要求比較嚴格),40位數(shù)據(jù)的傳輸順序為:8位濕度整數(shù)數(shù)據(jù)、8位濕度小數(shù)數(shù)據(jù)、8位溫度整數(shù)數(shù)據(jù)、8位溫度小數(shù)數(shù)據(jù)、8位校驗位。
使用CC2530來實時無線采集傳感器的數(shù)據(jù),是極為實用的功能。傳感器可以是溫度傳感器,濕度傳感器,光敏傳感器,煙霧傳感器等等。使用不同的傳感器,與CC2530的接口電路有所不同、驅(qū)動程序有所不同,但是對傳感器數(shù)據(jù)的采集、發(fā)送和接收的流程是相同的。
如圖4所示,溫濕度無線數(shù)據(jù)采集系統(tǒng)由2個節(jié)點組成。一個CC2530單片機模塊作為終端設(shè)備,與溫濕度傳感器DHT11相連,負責驅(qū)動傳感器,間隔固定時間讀取傳感器的采集值,并通過點播方式將采集的數(shù)據(jù)發(fā)送給協(xié)調(diào)器。另一個CC2530單片機模塊作為協(xié)調(diào)器,負責建立網(wǎng)絡(luò),將接收到的傳感器采集值在OLED 12864液晶屏上顯示,同時將數(shù)據(jù)發(fā)送給上位機的串口調(diào)試助手;在傳感器采集值超過設(shè)定的上限值時,協(xié)調(diào)器向終端節(jié)點發(fā)送信號,控制終端設(shè)備點亮LED,作為報警指示。
圖4 溫濕度無線數(shù)據(jù)采集系統(tǒng)框圖
溫濕度無線數(shù)據(jù)采集系統(tǒng)選用IAR 8.10.1集成開發(fā)平臺設(shè)計軟件,基于ZStack-CC2530 version 2.5.1a協(xié)議棧,完成相關(guān)應(yīng)用層程序的編寫。
ZigBee的通訊方式主要有三種:點播、組播、廣播。其中,點播就是點對點通信,即2個設(shè)備之間的通訊。采集系統(tǒng)選用點播的通訊方式。
采集系統(tǒng)的軟件設(shè)計包括:CC2530終端設(shè)備節(jié)點的設(shè)計和CC2530協(xié)調(diào)器節(jié)點的設(shè)計。
(1)協(xié)調(diào)器的軟件設(shè)計
協(xié)調(diào)器的軟件設(shè)計主要分為三部分,包括系統(tǒng)初始化、網(wǎng)絡(luò)建立與通信實現(xiàn)、溫度超限報警控制。協(xié)調(diào)器負責ZigBee網(wǎng)絡(luò)的建立,節(jié)點的加入允許與分配網(wǎng)絡(luò)地址,網(wǎng)絡(luò)維護等。在Z-Stack協(xié)議棧中設(shè)置其為協(xié)調(diào)器。
協(xié)調(diào)器選用的是自啟動模式。在關(guān)閉中斷情況下,先初始化硬件,再初始化操作系統(tǒng),最后啟動操作系統(tǒng)。溫濕度無線數(shù)據(jù)采集系統(tǒng)開始工作時,ZigBee網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點根據(jù)程序定義的網(wǎng)絡(luò)編號PANID,啟動并組建ZigBee網(wǎng)絡(luò)。Z-Stack協(xié)議?;赯DO初始化函數(shù),完成網(wǎng)絡(luò)的初始化,若完成協(xié)調(diào)器網(wǎng)絡(luò)的構(gòu)建,則觸發(fā)ZDO_STATE_CHANGE事件,在OLED 12864液晶屏上顯示網(wǎng)絡(luò)建立狀態(tài)。協(xié)調(diào)器網(wǎng)絡(luò)構(gòu)建完成后,等待路由器節(jié)點或終端設(shè)備節(jié)點的入網(wǎng)請求;組網(wǎng)后,溫濕度傳感終端開始采集信息,將檢測數(shù)據(jù)發(fā)送到協(xié)調(diào)器節(jié)點。在ZigBee網(wǎng)絡(luò)終端設(shè)備節(jié)點完成初始化后,協(xié)調(diào)器進入OSAL任務(wù)的輪詢,系統(tǒng)在此循環(huán)中主要檢查和處理事件程序,完成讀取傳感器信息、收發(fā)數(shù)據(jù)等任務(wù)。協(xié)調(diào)器的軟件設(shè)計流程如圖5所示。
(2)終端設(shè)備的軟件設(shè)計
終端設(shè)備的軟件設(shè)計主要分為四部分,包括系統(tǒng)初始化、網(wǎng)絡(luò)加入與通信實現(xiàn)、傳感器數(shù)據(jù)采集、報警功能。在Z-Stack協(xié)議棧中設(shè)置其為終端設(shè)備。
終端設(shè)備和路由器一樣選用自啟動模式。在Z-Stack協(xié)議棧中,在應(yīng)用層注冊報告事件,加入?yún)f(xié)調(diào)器所在網(wǎng)絡(luò),并完成網(wǎng)絡(luò)通信功能。網(wǎng)絡(luò)初始化時,調(diào)用函數(shù)NLME_Network Discovery Request( )來發(fā)現(xiàn)網(wǎng)絡(luò),網(wǎng)絡(luò)接入成功后,觸發(fā)任務(wù)的ZDO_STATE_CHANGE事件,向協(xié)調(diào)器發(fā)送網(wǎng)絡(luò)地址。若接收到控制命令數(shù)據(jù),則調(diào)用數(shù)據(jù)采集函數(shù)會采集實時溫度值和濕度值,并發(fā)送給協(xié)調(diào)器;若發(fā)送失敗,則延遲1 s后再次發(fā)送。傳感器數(shù)據(jù)采集功能即設(shè)置CC2530的端口P0. 6為輸入端,每隔2 s對該端口進行一次數(shù)據(jù)采集。而報警功能即設(shè)置CC2530的端口P0. 4為輸出端,以高低電平作為輸出控制LED,以達到溫度超限報警的目的。終端設(shè)備的軟件設(shè)計流程如圖6所示。
圖5 協(xié)調(diào)器節(jié)點程序流程圖
圖6 終端設(shè)備節(jié)點程序流程圖
協(xié)調(diào)器模塊調(diào)試:將協(xié)調(diào)器通過USB口連接至計算機,打開計算機中的串口助手軟件,并設(shè)置好COM口和波特率,將終端節(jié)點通電,在計算機的串口助手軟件數(shù)據(jù)區(qū)中可以看到監(jiān)測的溫度值和濕度值,說明協(xié)調(diào)器工作正常。
溫濕度模塊調(diào)試:人為調(diào)節(jié)溫濕度傳感器周圍空氣的溫度和濕度,計算機的串口助手軟件數(shù)據(jù)區(qū)中顯示的溫度值和濕度值相應(yīng)變化,說明溫濕度模塊調(diào)試正常。
數(shù)據(jù)顯示調(diào)試:溫濕度無線數(shù)據(jù)采集系統(tǒng)運行后,計算機的串口助手軟件數(shù)據(jù)區(qū)和OLED 12864液晶屏上可以看到規(guī)定格式的數(shù)據(jù)顯示,說明數(shù)據(jù)顯示正常。
報警模塊調(diào)試:調(diào)節(jié)環(huán)境的溫度,當溫度超過閾值時,終端設(shè)備上的LED閃爍,說明報警模塊正常。
基于CC2530和Z-Stack的溫濕度無線數(shù)據(jù)采集系統(tǒng)實現(xiàn)了對溫濕度的實時采集與控制,若環(huán)境溫度超出閾值,則上位機控制LED閃爍,以提醒用戶進行處理。實驗證明,系統(tǒng)具有成本低、數(shù)據(jù)傳輸可靠、功耗低等特點。
[1] 李雙,潘毅,尤越,秦宏.面向應(yīng)用型高校的無線傳感網(wǎng)課程實驗平臺的設(shè)計[J].電腦知識與技術(shù), 2018 (6): 142-143.
[2] 孫占偉,趙爍,王盼星, 等.基于物聯(lián)網(wǎng)的社區(qū)服務(wù)信息交互終端與系統(tǒng)[J]. 吉林大學學報(信息科學版), 2016, 34 (4): 516-519.
[3] 王小強, 歐陽駿, 黃寧淋. ZigBee無線傳感器網(wǎng)絡(luò)設(shè)計與實現(xiàn)[M].北京: 化學工業(yè)出版社, 2012.
[4] 高翔, 鄧永莉, 呂愿愿, 等.基于Z-Stack協(xié)議棧的ZigBee網(wǎng)絡(luò)節(jié)能算法的研究[J]. 傳感器技術(shù)學報, 2014, 27 (11): 1534-1538.
Wireless Data Acquisition of Temperature and Humidity Based on CC2530
Ge Hua, Tang Xiaoyan
( Shazhou Professional Institute of Technology, Zhangjiagang 215600, Jiangsu, China )
The working process of ZigBee protocol stack is briefly analyzed, and the point-to-point ZigBee wireless network built with CC2530 chip as the hardware core is described in this paper. The temperature and humidity wireless data acquisition based on ZigBee protocol stack is designed and realized respectively from the aspects of hardware and software. With the developing environment of IAR, the programming process of wireless network coordinator and terminal device are completed based on TI's Z-Stack protocol Stack. Through ZigBee wireless network communication between terminal device and coordinator, and through serial port communication between coordinator and PC, the coordinator can perform temperature and humidity detection and over-limit alarm for terminal device.
ZigBee; CC2530; Z-Stack; temperature and humidity acquisition
TP391.44
A
1009-8429(2019)01-0011-05
2019-02-25
葛 華(1974-),女,沙洲職業(yè)工學院電子信息工程系講師;
湯曉燕(1971-),女,沙洲職業(yè)工學院電子信息工程系副教授。