基于ZigBee技術(shù)的分布式溫室監(jiān)控系統(tǒng)的設(shè)計(jì)
微處理器單元采用TI 公司MSP430 系列單片機(jī), 是一種具有集成度高、功能豐富、功耗極低等技術(shù)特點(diǎn)的16 位單片機(jī)。超低功耗的混合信號(hào)控制器、豐富的片內(nèi)外設(shè)、節(jié)能考慮的多種工作模式和對(duì)C 語(yǔ)言程序設(shè)計(jì)的支持, 使得MSP430 系列單片機(jī)非常適合于應(yīng)用在嵌入式系統(tǒng)中。設(shè)計(jì)中選用帶有Flash 存儲(chǔ)器可進(jìn)行在線編程的MSP430F149 單片機(jī); 外圍模塊有看門狗、定時(shí)器A/B、同步/異步串行通信接口、10 /12 位A/D 以及6個(gè)8 位并行端口等多種組合形式。其實(shí)現(xiàn)功能主要有: 操作無(wú)線收發(fā)芯片, 通過(guò)SPI 口與GPIO 對(duì)CC2420 工作狀態(tài)控制和傳輸數(shù)據(jù); 本地?cái)?shù)據(jù)處理, 剔除冗余數(shù)據(jù), 以減少網(wǎng)絡(luò)傳輸?shù)呢?fù)載和對(duì)無(wú)線傳輸數(shù)據(jù)的封裝與驗(yàn)證; 應(yīng)答控制中心查詢, 完成數(shù)據(jù)的轉(zhuǎn)發(fā)與存儲(chǔ); 節(jié)點(diǎn)電源管理, 合理地設(shè)置待機(jī)狀態(tài), 以節(jié)省能量消耗, 延長(zhǎng)節(jié)點(diǎn)使用壽命。
無(wú)線通信單元中, 選用了Chipcon 公司的CC2420 射頻收發(fā)器, 它實(shí)現(xiàn)ZigBee 協(xié)議的物理層( PHY) 及媒體訪問(wèn)控制器(MAC) 層, 低耗電、250kbps 傳輸速率、快速喚醒時(shí)間(30ms ) 、CSMA- CA 通道狀態(tài)偵測(cè)等特性。其外圍電路包括晶振時(shí)鐘電路、射頻輸入輸出匹配電路以及微控制器接口電路, MCU 通過(guò)SPI 以及幾個(gè)GPIO 對(duì)C2420 進(jìn)行設(shè)置與讀寫(xiě)數(shù)據(jù)。射頻信號(hào)輸出設(shè)計(jì)采用PCB 上的引線作為天線。
ZigBee 網(wǎng)絡(luò)節(jié)點(diǎn)采用兩節(jié)5 號(hào)電池, 經(jīng)過(guò)升壓DC /DC 芯片CP1402 轉(zhuǎn)換到3.3V和5V, 電池使用效率可達(dá)85%。整體根據(jù)需要切換高低頻率、單片機(jī)的低功耗模式, 同時(shí)采用模擬開(kāi)關(guān)來(lái)控制各個(gè)傳感器的供電, 在不需要采集數(shù)據(jù)時(shí)關(guān)斷電源以進(jìn)一步降低功耗。
2.2 控制器的硬件設(shè)計(jì)
在該系統(tǒng)中控制器是無(wú)線傳感器網(wǎng)絡(luò)與監(jiān)控中心的中轉(zhuǎn)站, 負(fù)責(zé)發(fā)送命令( 查詢、分配地址等) , 接收下層節(jié)點(diǎn)的請(qǐng)求與數(shù)據(jù), 承擔(dān)著ZigBee 網(wǎng)絡(luò)中各節(jié)點(diǎn)與RS485 總線的數(shù)據(jù)交換任務(wù)。其硬件設(shè)計(jì)框圖如圖3 所示。無(wú)線通信單元與網(wǎng)絡(luò)節(jié)點(diǎn)部分的相同, 電平轉(zhuǎn)換單元采用MAX485 實(shí)現(xiàn)TTL 與RS485 之間的轉(zhuǎn)換。
圖3 控制器原理框圖
3 系統(tǒng)軟件設(shè)計(jì)
在系統(tǒng)的軟件設(shè)計(jì)中, 協(xié)議棧的設(shè)計(jì)直接關(guān)系到整個(gè)網(wǎng)絡(luò)系統(tǒng)的運(yùn)行。根據(jù)ZigBee 星型網(wǎng)絡(luò), 協(xié)調(diào)器與終端設(shè)備在網(wǎng)絡(luò)中的功能、地位不同, 網(wǎng)絡(luò)節(jié)點(diǎn)與控制器的軟件設(shè)計(jì)上也有所區(qū)別。下面主要對(duì)協(xié)議棧、網(wǎng)絡(luò)節(jié)點(diǎn)與控制器的軟件設(shè)計(jì)作主要介紹。
3.1 協(xié)議棧
在本設(shè)計(jì)中, 協(xié)議棧是使用C 語(yǔ)言編寫(xiě)的, 協(xié)議棧使用閃存程序存儲(chǔ)器來(lái)存儲(chǔ)可配置的MAC 地址、網(wǎng)絡(luò)表和綁定表。整個(gè)協(xié)議棧構(gòu)架如圖4 所示。
圖4 協(xié)議棧構(gòu)架
協(xié)議棧根據(jù)ZigBee 規(guī)范的定義將其邏輯分為多個(gè)層。實(shí)現(xiàn)每個(gè)層的代碼位于一個(gè)獨(dú)立的源文件中, 而服務(wù)和應(yīng)用程序接口(API) 則在頭文件中定義。要實(shí)現(xiàn)抽象性和模塊性, 頂層總是通過(guò)定義完善的API 和緊接著的下一層進(jìn)行交互, 該層的C頭文件定義該層所支持的所有API。
應(yīng)用程序總是與應(yīng)用層(APL) 和應(yīng)用支持子層(APS) 接口,APL 模塊提供高級(jí)協(xié)議棧管理功能, 用戶應(yīng)用程序使用此模塊來(lái)管理協(xié)議棧功能。APS 層主要提供ZigBee 端點(diǎn)接口。應(yīng)用程序?qū)⑹褂迷搶哟蜷_(kāi)或關(guān)閉一個(gè)或多個(gè)端點(diǎn)并且獲取或發(fā)送數(shù)據(jù)。它還為鍵值對(duì)(KVP) 和報(bào)文(MSG) 數(shù)據(jù)傳輸提供了原語(yǔ)。當(dāng)首次對(duì)協(xié)調(diào)器編程時(shí)綁定表為空, 主應(yīng)用程序必須調(diào)用正確的綁定API來(lái)創(chuàng)建新的綁定項(xiàng)。APS 還有一個(gè)間接發(fā)送緩沖器RAM, 用來(lái)存儲(chǔ)間接幀, 直到目標(biāo)接收者請(qǐng)求這些幀為止。MAC_MAX_DATA_REQ_PERIOD 編譯時(shí)間選項(xiàng)定義了確切的請(qǐng)求時(shí)間。節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)時(shí)間越長(zhǎng), 數(shù)據(jù)包需要保存在間接發(fā)送緩沖器里的時(shí)間也越長(zhǎng), 數(shù)據(jù)請(qǐng)求時(shí)間越長(zhǎng)需要的間接緩沖空間越大。
網(wǎng)絡(luò)層(NWK) 負(fù)責(zé)建立和維護(hù)網(wǎng)絡(luò)連接, 它獨(dú)立處理傳入數(shù)據(jù)請(qǐng)求、關(guān)聯(lián)、解除關(guān)聯(lián)和孤立通知請(qǐng)求。ZigBee 設(shè)備對(duì)象(ZDO) 負(fù)責(zé)接收和處理遠(yuǎn)程設(shè)備的不同請(qǐng)求。介質(zhì)訪問(wèn)控制(MAC)層實(shí)現(xiàn)了IEEE 802.15.4 規(guī)范所要求的功能, 并負(fù)責(zé)同物理( PHY) 層進(jìn)行交互。
3.2 網(wǎng)絡(luò)節(jié)點(diǎn)的軟件設(shè)計(jì)
網(wǎng)絡(luò)節(jié)點(diǎn)主要負(fù)責(zé)采集傳感器數(shù)據(jù)并將這些數(shù)據(jù)傳送給協(xié)調(diào)器( 控制器) , 同時(shí)接收來(lái)自協(xié)調(diào)器( 控制器) 的數(shù)據(jù)并根據(jù)這些數(shù)據(jù)進(jìn)行相關(guān)操作。網(wǎng)絡(luò)節(jié)點(diǎn)上電后掃描所有可用信道來(lái)找到臨近協(xié)調(diào)器, 申請(qǐng)加入此網(wǎng)絡(luò)。由于采用電池供電方式, 必須要保證終端節(jié)點(diǎn)的低功耗, 設(shè)計(jì)中采用定時(shí)喚醒的方式連接協(xié)調(diào)器, 接收或發(fā)送數(shù)據(jù)。其它時(shí)間則轉(zhuǎn)入休眠模式, 節(jié)點(diǎn)功耗降到最低。網(wǎng)絡(luò)節(jié)點(diǎn)的軟件流程圖如圖5 所示。
圖5 網(wǎng)絡(luò)節(jié)點(diǎn)軟件流程圖
評(píng)論