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