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