崔瀅 朱敬生
【摘?要】由于其高度的流動(dòng)性,正變得越來越具有自組織性。為了建立一個(gè)基于無線節(jié)點(diǎn)模塊的adhoc網(wǎng)絡(luò),增加了MAC協(xié)議來保證網(wǎng)絡(luò)的位置和防止數(shù)據(jù)沖突。MSP430是該模塊的主要軟件芯片。本文提出了一種多通道硬件傳輸協(xié)議,充分利用了多通道的能力,同時(shí)又不妨礙數(shù)據(jù)傳輸,提高了傳輸效率。另外,使用轉(zhuǎn)換器可以提高數(shù)據(jù)的準(zhǔn)確性和管理效率。
【關(guān)鍵詞】Adhoc網(wǎng)絡(luò);MSP430;nRF905;SPI;跳頻機(jī)制
本文介紹了基于MSP430和nRF905的無線通信模塊,通過在SPI區(qū)域采用雙向通信,SPI支持高速數(shù)據(jù)傳輸,滿足nRF905的帶寬要求,為無線通信提供了強(qiáng)大的頻率機(jī)制,并對(duì)可使用的信道提供了大量的支持在許多特殊情況下。即使不使用PCB天線,傳輸距離也能達(dá)到200米。如果你想繼續(xù)傳輸,可以用有用的天線代替。傳輸距離增加1公里以上,滿足不同用戶的需求。
1驅(qū)動(dòng)實(shí)現(xiàn)2.1MSP430的SPI驅(qū)動(dòng)
如圖1所示,SPI可以在數(shù)據(jù)傳輸?shù)耐瑫r(shí)獲得數(shù)據(jù)[2],這可以通過雙操作模式來理解。SPI分為主模式和完全被動(dòng)模式,數(shù)據(jù)傳輸和接收由主機(jī)完成,主機(jī)將數(shù)據(jù)記錄在緩存utxbuf中,并將數(shù)據(jù)存儲(chǔ)在并行傳輸系統(tǒng)中。當(dāng)數(shù)據(jù)記錄在utxbuf中時(shí),它立即從MoSi線路接收移動(dòng)緩存,移動(dòng)緩存將城市中的數(shù)據(jù)傳輸?shù)揭苿?dòng)寄存器中的數(shù)據(jù)。我們可以同時(shí)獲取主機(jī)的移動(dòng)寄存器和接受緩存,所以我們使用SPI同時(shí)進(jìn)行讀寫。
1.1nRF905的驅(qū)動(dòng)
trn mcu上三個(gè)通用引腳的功耗正常,rsp mcu上三個(gè)通用引腳的功耗由主引腳控制。nrf905的反饋線告訴我們,要感知三個(gè)通道使用的CD,接受具有正確地址的am,并從MCU數(shù)據(jù)中獲得正確的Dr。這些發(fā)夾應(yīng)該由狀態(tài)MCU插入。包括接收到的信號(hào)數(shù)在內(nèi),主單片機(jī)應(yīng)告知清楚。
1.1.1寄存器操作
(1)寄存器介紹
nrf905操作主啟動(dòng)寄存器,有四個(gè)寄存器,即設(shè)置寄存器、發(fā)送地址寄存器或接收數(shù)據(jù)寄存器。每次發(fā)送數(shù)據(jù)時(shí),另一方的地址記錄在傳輸?shù)刂芳拇嫫髦?,不超過32字節(jié)的數(shù)據(jù)記錄在傳輸數(shù)據(jù)寄存器中。每個(gè)節(jié)點(diǎn)的地址在配置寄存器中設(shè)置。接收到的數(shù)據(jù)將自動(dòng)放入寄存器。
1.1.2設(shè)置頻道和頻段
nrf905最吸引人的特性之一是它提供無線頻率支持,并且有大量的信道。nrf905可以在433/868/915頻率上通信。實(shí)際上,868和915屬于同一頻率,主要分為兩個(gè)頻率。一個(gè)頻率可以使用兩個(gè)通道,但事實(shí)上,對(duì)于不同的天線,只有一個(gè)頻率可以發(fā)揮芯片的最佳功能,一個(gè)天線可以使用兩個(gè)通道它可以在“X”中使用。如果任何一個(gè)信道受到干擾,都可以通過無線頻率繼續(xù)通信,保證數(shù)據(jù)的完整性。
1.1.3―發(fā)送數(shù)據(jù)流程
設(shè)置好配置寄存器后,就可以發(fā)送數(shù)據(jù)了。
當(dāng)主MCU字段的pwrup值高時(shí),進(jìn)入905操作模式和TXEN數(shù)據(jù)傳輸模式。發(fā)送地址被傳輸?shù)絊PI端口的地址寄存器txaddress,數(shù)據(jù)被記錄在傳輸數(shù)據(jù)寄存器TX中。有效負(fù)載、SPI速度由主MCU設(shè)置。三周MCU高度TXC e,905自動(dòng)改進(jìn)數(shù)據(jù)幀的形式,添加包頭前導(dǎo)碼,并根據(jù)設(shè)置添加寄存器,接受CRC校驗(yàn),填寫包尾,905將所有數(shù)據(jù)以100位/秒的速度發(fā)送到GFSK,發(fā)送后Dr將被安裝得很高,并通知主MCU下次可以繼續(xù)發(fā)送。④ 如果設(shè)置了自動(dòng)復(fù)位模式,NRF 905將自動(dòng)復(fù)位,并且Trax也將減少CE。⑤ 發(fā)送后,trxc e減小,進(jìn)入待機(jī)模式。在實(shí)際工作中,txce將產(chǎn)生持續(xù)時(shí)間為10×431s或更長的脈沖,可以傳輸數(shù)據(jù)。
1.1.4接受數(shù)據(jù)流程
下面我們討論如何接受數(shù)據(jù),同樣先給出時(shí)序圖,再解釋流程。
檢查數(shù)據(jù)的CRC。如果正確,您可以刪除數(shù)據(jù)包頭和CRC段,并將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)寄存器Rx中。有效載荷,同時(shí),Dr信號(hào)高,通知主MC讀取數(shù)據(jù);主MC的TCE值較高。如果減少,則進(jìn)入待機(jī)模式并通過SPI區(qū)域讀取數(shù)據(jù)。在讀取數(shù)據(jù)之后,nrf905將再次降低am和Dr以準(zhǔn)備下次接受數(shù)據(jù)。
如果需要將驅(qū)動(dòng)程序移動(dòng)到arm等其他平臺(tái),重新定義接口,SPI讀寫功能會(huì)相應(yīng)調(diào)整,便于移植。
2 MAC算法實(shí)現(xiàn)
nrf905提供了如此多的信道和無線頻率系統(tǒng),如何充分利用這一特性使通信更加穩(wěn)定?下面是基于adhoc網(wǎng)絡(luò)的MAC協(xié)議。
2.1MAC協(xié)議框架
信道分為控制信道和數(shù)據(jù)信道兩種,數(shù)據(jù)信道又分為多組,每組有一個(gè)主數(shù)據(jù)信道和兩個(gè)備用數(shù)據(jù)信道。主數(shù)據(jù)通道用于正常的通信,如誤碼率達(dá)到一定程度,可以通過預(yù)備數(shù)據(jù)通道繼續(xù)通信。
本文采用ie802.11bcd-MA/CA系統(tǒng),每次發(fā)送數(shù)據(jù)都要等到信道為空時(shí),采用“二進(jìn)制避免算法”,隨機(jī)延遲時(shí)間,發(fā)送數(shù)據(jù),有效避免了同一信道的數(shù)據(jù)沖突。
考慮到隱藏節(jié)點(diǎn)和暴露節(jié)點(diǎn),我們使用RTS/CTS/brain系統(tǒng)。如果節(jié)點(diǎn)a需要通過節(jié)點(diǎn)B發(fā)送數(shù)據(jù),它將發(fā)送RTs并擁有自己的數(shù)據(jù)通道列表信息。節(jié)點(diǎn)B在接收到RTS后,選擇自己的信道列表共享的空閑信道,返回RTS,接收到CTS和負(fù)載后進(jìn)入信道并發(fā)送數(shù)據(jù),節(jié)點(diǎn)a通過信道信息發(fā)送負(fù)載,然后進(jìn)入數(shù)據(jù)信道與節(jié)點(diǎn)B進(jìn)行通信,其他節(jié)點(diǎn)在接收到CTS和負(fù)載后,快速登錄信道列表信息和直接傳輸數(shù)據(jù)允許下次查詢。信息隨著系統(tǒng)的發(fā)展而不斷更新。然后由每個(gè)節(jié)點(diǎn)維護(hù)的信道被當(dāng)前信道使用。
3數(shù)據(jù)頻道
與普通控制信道不同,兩個(gè)節(jié)點(diǎn)在數(shù)據(jù)信道中都建立了專用信道。此時(shí)不使用CSMA/CA系統(tǒng)。我們可以使用確認(rèn)系統(tǒng)、重傳系統(tǒng)和變頻系統(tǒng)來保證數(shù)據(jù)的準(zhǔn)確傳輸?;旧希ㄐ胚^程是以數(shù)據(jù)10ack的形式發(fā)送數(shù)據(jù),等待ACK,如果數(shù)據(jù)被接受則發(fā)送ACK確認(rèn)。Ack不準(zhǔn)確如果Ack不被接受或不被接受,它將被再次發(fā)送。如果通道不能使用,轉(zhuǎn)臺(tái)和交叉站需要雙方協(xié)調(diào),具有一定的復(fù)雜性。這里,詳細(xì)描述了跨站系統(tǒng)。
總結(jié)
本文基于MSP430和nRF905無線多點(diǎn)收發(fā)模塊,實(shí)現(xiàn)了基于物理層驅(qū)動(dòng)和adhoc網(wǎng)絡(luò)的MAC層協(xié)議,但不提供網(wǎng)絡(luò)層定位拍攝。物理層通信是數(shù)據(jù)傳輸?shù)目煽啃?,它保證了MAC協(xié)議能夠無沖突地傳輸數(shù)據(jù)。
在測(cè)試中,我們?cè)诰W(wǎng)絡(luò)層采用了魚眼算法,通過15個(gè)節(jié)點(diǎn)的動(dòng)態(tài)組織網(wǎng)絡(luò)進(jìn)行信息傳輸。在本系統(tǒng)中同時(shí)傳輸信息時(shí),彼此之間沒有干擾。該模塊已在一些復(fù)制系統(tǒng)、遠(yuǎn)程控制系統(tǒng)和機(jī)器人控制系統(tǒng)中得到了很好的應(yīng)用。
參考文獻(xiàn):
[1]高章飛,朱善安.基于MSP430和nRF905的多點(diǎn)無線通訊模塊[J].電子器件,2006,29(1):264-267,289.
[2]張業(yè)茂,張廣洲,張建功.基于nRF905的無線通訊直流電場(chǎng)測(cè)量系統(tǒng)設(shè)計(jì)[C].//中國電機(jī)工程學(xué)會(huì).輸變電設(shè)施電磁環(huán)境學(xué)術(shù)會(huì)議論文集.2011:98-102.
(作者單位:陜西飛機(jī)工業(yè)有限責(zé)任公司)