多個Zigbee監測網絡遠程監控的實現
4.2. 與數據采集節點間的數據傳遞
本文引用地址:http://www.104case.com/article/86468.htm網關節點作為Zigbee監測網絡與IP網絡的連接點,除了要與上一層的消息代理進行數據傳遞,還要與Zigbee監測網絡中的數據采集節點間進行數據傳遞,獲得原始的監測數據和向數據采集節點傳遞設置參數。
4.2.1. 網關節點的硬件結構
網關節點的硬件結構如圖2所示。主要分成兩大部分:系統運行的硬件平臺和IEEE802.15.4無線通信模塊。
圖2 網關節點的硬件結構
CPU選用AMD的 Au1550。它是一款多功能、高性能、低功耗、高集成度的網絡安全處理器。
無線通信模塊采用飛思卡爾的MC13192。它實現了IEEE802.15.4物理層的數據傳輸,可以自動完成數據的校驗和封裝。
Au1550與MC13192通過3線SPI接口、一個片選線和一個中斷請求線相連,完成數據傳輸和控制。
4.2.2. 網關節點的軟件設計
圖3 網關節點軟件系統的結構
根據網關節點的功能,軟件系統主要完成兩個功能,一是負責網絡的建立和維護、匯集監測網絡中的監測數據、向數據采集節點發送設置參數。這一部分為實時部分,由內核模塊實現,運行于內核態;二是與遠程的消息代理之間的消息傳遞、原始監測數據的預處理。這部分為非實時部分運行于用戶空間。
當MC13192接收到IEEE802.15.4物理層的數據后,產生中斷請求觸發數據處理任務讀取,校驗正確后寫入FIFO中,用戶空間的應用程序則定時讀取FIFO中的數據,然后將原始數據形成文本格式的消息發送給消息代理。
當用戶空間的應用程序收到消息代理發來的控制消息后,轉換成控制命令字寫入FIFO中,內核模塊中FIFO讀取任務則定時讀取FIFO的控制命令,形成MAC層的幀格式,通過SPI傳遞給MC13192。
一、Au1550與MC13192間的數據傳輸
MC13192與Au1550之間通過SPI進行數據傳輸。將SPI的通信模式設為主從方式,Au1550為主機,MC13192為從設備。數據的傳輸完全由主機Au1550通過片選信號控制完成。
SPI數據幀由幀頭和數據組成。幀頭為8位,第一位為讀寫標志位,R/W=1表示讀操作(從到主),R/W=0表示寫操作(主到從)。低六位表示MC13192中寄存器的地址。
MC13192設置成包傳輸模式,它就會將接收到的主機數據暫存到發送RAM中,當接收完成后再以包的形式發送出去。同樣,收到IEEE802.15.4數據幀后,存儲到接收RAM中,確定數據幀的長度、進行校驗和和鏈路質量的計算,數據校驗正確后向主機發出中斷請求,請求主機將數據讀走。
二、實時任務與非實時應用間的數據傳輸
實時任務與非實時應用間采用FIFO進行數據傳遞。每一個FIFO都是在一個方向上傳送數據。要實現實時任務與非實時應用間的雙向傳輸,需要建立兩個FIFO。一個FIFO用于實時任務向非實時應用發送原始監控數據,一個FIFO用于接收非實時應用的控制命令。
在實時任務一側,不管FIFO狀態是什么,任何讀寫入操作都是非阻塞的。因此,讀寫后都立即返回。在內核模塊中FIFO通過rtf_create()來創建,rtf_put()向FIFO寫數據, rtf_get()從FIFO讀數據。FIFO的讀過程由一個周期性的實時線程完成。
從應用程序一側來看,FIFO就像一個常規文件。因此,調用文件打開函數來獲得相關FIFO的指針,獲得指針后通過讀寫函數實現對FIFO的讀寫操作。數據的讀操作也由專門的線程用輪詢方式完成,數據的發送操作則直接用函數調用方式。
5. 結束語
本文給出基于中間件技術的分層體系結構,實現對多個Zigbee監測網絡的集中管理的方法,并給出了數據傳遞、網關節點等關鍵技術的具體實現。這種方式有效地解決了星型拓撲結構Zigbee監測網絡監測范圍受限的問題。通過增加監測網絡的個數來擴大監測范圍或多點分布式監測,而且還不會影響到管理應用。
本文的創新點:利用基于中間件技術的分層體系結構,實現了對多個Zigbee監測網絡的集中管理,有效地解決了星型拓撲結構Zigbee監測網絡監測范圍受限的問題。星形拓撲結構具有結構簡單、易于部署的特點,而且節點間不需要路由,可以有效節省節點的能耗。增加監測網絡的個數可以擴大監測范圍,但存在對多個監測網絡集中管理的問題。
參考文獻
[1] Motorola.MC13192/MC13193 Reference Manual
[2] LAN-MAN Standards Committee of the IEEE Computer Society. Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (LR-WPANs), IEEE, 2003
[3] IBM.Websphere Using Java,2004.
評論