TinyOS移植技術分析及在CC2430平臺的應用
4.2 無線傳感器網絡中協調器的設計
協調器負責無線傳感器網絡的組網、路由以及數據收集等功能。同時,協調器也是網路與PC機之間連接的一個橋梁,通過協調器可以監(jiān)控節(jié)點探測到的數據并可以對傳感器節(jié)點進行控制。
協調器設備打開后,會自動接收通信范圍內的節(jié)點信號,這個信號包括節(jié)點采集到的數據以及節(jié)點本身的地址。當協調器接收到信號時,對該信號進行判斷,如果該信號已經存在于網絡列表,則直接接收節(jié)點的數據。如果這個信號不存在于網絡列表當中,則將該節(jié)點加入網絡列表。然后將網絡列表中的節(jié)點發(fā)送來的數據都通過串口傳輸至PC機。當協調器接收到PC發(fā)送的指令后,根據指令內容將指令信號發(fā)送給相應的傳感器節(jié)點。由此,通過協調器可以實現PC機對傳感器節(jié)點的監(jiān)控和操作。軟件的設計流程如圖7所示。本文引用地址:http://m.butianyuan.cn/article/159772.htm
各節(jié)點發(fā)送到協調器的測量數據為一個16位的正整數值,協調器每接收到一個測量數據,即通過RS232接口電路將該數據傳輸至PC機,協調器的硬件框圖如圖8所示。
4.3 節(jié)點與協調器之間的通信協議
節(jié)點使用無線射頻技術(RFID)與協調器進行通信。隨著技術的發(fā)展,RFID技術已經成為人們日常生活中一個重要工具。但RFID技術也存在一些技術問題需要解決,其中標簽防碰撞問題(Anti—collision)是RFID技術的關鍵問題之一。當多個節(jié)點同時向協調器發(fā)送信號時,要防止信號的碰撞。為解決這一問題,有空分多址、頻分多址、碼分多址和時分多址4種方法。文中選用基于CSMA/CA協議的無線射頻防碰撞算法。
CSMA算法是傳統TDMA(Time Division Multiple Access,動態(tài)時分多址)的調度分配算法ALOHA的改進。傳統的ALOHA算法在標簽視圖發(fā)送數據是,并不考慮信道當前的忙閑狀態(tài),完全隨機接入??梢钥吹?。這種算法有很大的盲目性,當存在大量節(jié)點或信息量過大時,會使信道重疊現象加劇,數據碰撞頻繁出現,傳輸性能嚴重下降。為解決這一問題,提出了在發(fā)送數據前,對信道進行偵聽,這就是廣泛使用的CSMA算法。CSMA算法的基本思路是:
(1)標簽產生新的數據,等待發(fā)送。
(2)偵聽信道是否空閑,若空閑則發(fā)送數據,發(fā)送完成后返回第一步;若信道正忙則產生一個隨機數,進入延時操作。假定隨機數的取值范圍為min~max之間,初始化時,值為min,每次重傳,隨機數逐漸增大,當達到max值時保持不變。沒成功傳輸之后,回復到初始值min。
(3)延時操作結束后,返回步驟(2)。
由于無線網絡的特殊性,很難確實地偵聽是否有碰撞發(fā)生,所以采用帶沖突避免的載波偵聽多路訪問即CSMA/CA算法。標簽發(fā)送數據前,先發(fā)送一段請求發(fā)送幀RTS(Request to Send)給目標端,等待目標端回應的清除發(fā)送幀CTS(Clear to Send)后,才開始傳送。通過RTS與CTS的握手(handshake)避免發(fā)送數據時發(fā)生碰撞。
4.4 實驗與結果分析
協調器與節(jié)點上電后,即可實現自動組網。組網成功后,節(jié)點可將采樣到的數據發(fā)送給協調器,協調器接收信號,一方面會觸發(fā)自身的LED燈閃爍,同時通過RS232接口電路將采集到的數據通過串口發(fā)送給PC機。實驗結果如圖9所示。
每個節(jié)點與協調器上均設置有控制按鈕,用于通信的驗證與控制。在節(jié)點上,每按一次按鈕采集一個數據,同時將該數據發(fā)送到協調器。這些過程,通過實驗得到了有效的驗證。在PC機上,通過串口助手軟件來觀察接收的數據。其中,通信的波特率設置為9600bit·s-1,PC機屏幕上顯示信息如圖10所示。其中Device表示節(jié)點ID,最后的數值是經過處理的節(jié)點的探測值。這里使用兩個節(jié)點均置于室內環(huán)境,其中一個用不透光的黑膠帶遮蓋住傳感器的光敏元件??梢钥吹?,協調器共接收到了兩個節(jié)點的信號,兩個信號的值均比較平穩(wěn),其中一個節(jié)點的采樣值明顯大于另一個,與實際情況相符。實驗證明系統各項功能運行良好,網絡通信穩(wěn)定。
5 結束語
在對TinyOS操作系統詳細分析的基礎上,提出了TinyOS的移植方法以及具體實現過程,并將其移植于CC2430硬件平臺。其中移植的功能模塊包括UART通信、定時器和RF無線射頻通信等。實驗結果表明,移植后的TinyOS可以健壯地運行于CC2430平臺,并能可靠地實現傳感器之間的無線組網。該系統可作為一個原型,經進一步性能完善或部分功能擴充即可實現實際應用。
評論