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