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