一種無線傳感器網(wǎng)絡CSMA協(xié)議的設計與實現(xiàn)
CSMA協(xié)議是網(wǎng)絡中運用得最為廣泛的競爭協(xié)議,因此無線傳感器網(wǎng)絡的MAC層大多使用CSMA機制來提供競爭信道的功能。隨著IEEE 802.15.4標準的制定,各射頻芯片廠家也紛紛推出了性能更好、功能更強的射頻芯片。TI公司(原Chipcon)推出CC2420來替代原來無線傳感器網(wǎng)絡使用最多的射頻芯片CC1000。由于各射頻芯片特性功能各不相同,為了使CSMA協(xié)議達到更好的性能,根據(jù)射頻芯片的具體特性來重新優(yōu)化設計CSMA機制也就變得很有必要。
本文使用TI公司的MSP4301611超低功耗MCU,以及CC2420射頻芯片作為硬件實驗平臺,充分利用CC2420部分IEEE 802.15.4協(xié)議MAC封裝的特性,設計并實現(xiàn)了一個全新的、靈活的CSMA協(xié)議。
1 信道監(jiān)測的設計
實現(xiàn)CSMA協(xié)議的最基本的條件就是物理層必須提供可靠、實用的信道監(jiān)測手段,因此首先要了解射頻芯片的一些特性。
1.1 CC2420的相關特性
CC2420是TI公司推出的2.4 GHz射頻芯片,其硬件封裝支持部分IEEE 802.15.4的MAC層協(xié)議規(guī)定。CC2420的功能結構如圖1所示,CC2420的數(shù)字接口具有自動CRC校驗、自動加密的功能,并維護兩個緩沖區(qū)(一個接收FIFO,一個發(fā)送FIFO)。數(shù)字接口通過SPI通信接口與微處理器相連。CC2420是以數(shù)據(jù)包為單位的射頻芯片,即必須從微處理器收滿一個數(shù)據(jù)包,才會發(fā)送該數(shù)據(jù)包。數(shù)字接口收滿一整包后,自動添加CRC校驗,并送入調制模塊進行數(shù)據(jù)調制和整形,最后發(fā)送出去。當監(jiān)測到信道有數(shù)據(jù)時,將數(shù)據(jù)經(jīng)過模/數(shù)轉換后送入數(shù)字解調器中進行幀同步;如果同步就將數(shù)據(jù)填入接收緩沖區(qū)中,最后填充當前信道內的RSSI(Receive Signal Strength Indicator,接收信號強度指示器)信息。
圖1 CC2420功能結構圖
CC2420提供一個讀取RSSI值的命令,開發(fā)者可以調用該命令來得到當前信道的信號強度值,并通過對該值的解析來判定當前信道是空閑還是繁忙。另外,CC2420在接收到數(shù)據(jù)包時,可以自動在數(shù)據(jù)包的倒數(shù)第二個字節(jié)里填充當前接收數(shù)據(jù)包時的RSSI值。這種特性對于信號強度閾值的更新維護十分有用。
1.2 信道監(jiān)測的設計
CC2420提供了一項CSMACA的功能,稱為CCA(Clear Channel Assessment,空閑信道評估),它使用一個寄存器來設置閾值。當CC2420收到CCA命令后,就開始采樣RSSI值,只有采樣到的RSSI值小于寄存器中的閾值時才允許發(fā)送數(shù)據(jù)。CCA雖然實現(xiàn)了信道監(jiān)測的基本功能,但是也有其自身的缺點: 不夠靈活且開放程度不夠,只能進行一次完整的通道監(jiān)測,并不能設置采樣次數(shù)。這就限制了它在其他協(xié)議中的使用,例如在LPL(Low Power Listening,低功耗偵聽)協(xié)議中,只需要進行一次采樣作為偵聽。另外,它的判定機制并不夠完善,只有一個閾值,因而開發(fā)者難以找到合適的閾值。
評論