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