新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 無線傳感器網(wǎng)絡底層平臺的深層研究

        無線傳感器網(wǎng)絡底層平臺的深層研究

        作者: 時間:2013-08-10 來源:網(wǎng)絡 收藏

        封裝好后把數(shù)據(jù)寫入TXFIFO中,注意發(fā)送緩沖區(qū)為128字節(jié),不能超出這個范圍,否則會引發(fā)TXOVERFLOW異常。然后,打開接收數(shù)據(jù)中斷后才能調(diào)用發(fā)送命令發(fā)送數(shù)據(jù),在這里可以對發(fā)送過程進行完全的控制,比如在發(fā)送數(shù)據(jù)的過程中,可以通過捕獲SFD引腳的上升沿信號來對發(fā)送準確計時。發(fā)送數(shù)據(jù)后等待接收方回復ACK,如果在規(guī)定時間內(nèi)沒有收到ACK,則判定重傳次數(shù)是否超過最大重傳次數(shù),沒有的話則按照一定策略退避一段時間后再重新發(fā)送這個數(shù)據(jù)包,如果超過最大重傳次數(shù)則丟棄這個包,并設置發(fā)送失敗標志供上層程序參考。如果在規(guī)定時間內(nèi)收到ACK,則會觸發(fā)RX_FRMDONE中斷,會調(diào)用basicRfRxFrmDonelsr()接收數(shù)據(jù)中斷處理程序?qū)κ盏降腁CK包進行分析,如果是對剛發(fā)送包的正確回復,則表示發(fā)送成功,更新相應信息,例如發(fā)送序列號加1,更新發(fā)送狀態(tài),清除TX_FRM_DONE異常等。
        接收過程和發(fā)送過程類似,具體接收流程如圖3所示。

        c.jpg

        2 測試
        2.1 測試方法
        測試的每個節(jié)點都通過一根串口線連接到PC。在測試程序中添加測試代碼,把測試節(jié)點發(fā)送和接收的MAC(Media Access Contro1)層數(shù)據(jù)信息通過串口發(fā)送到PC上。然后通過PC上的串口調(diào)試助手顯示出來。對這些數(shù)據(jù)信息進行分析便可以知道節(jié)點上各模塊程序的運行情況。
        2.2 測試過程及結(jié)果
        通過分析群首節(jié)點廣播數(shù)據(jù)幀到群中終端節(jié)點的過程來判斷底層模塊的運行情況。群首節(jié)點A和群中終端節(jié)點(B、C、D)都通過串口線連接到PC上。群網(wǎng)絡號為0x0001,節(jié)點A、B、C、D地址分別為:0x0001、0x0002、0x0003、0x0004。A通過無線模塊發(fā)送廣播數(shù)據(jù)到B、C、D,并把發(fā)送數(shù)據(jù)發(fā)送到PC顯示,最后把接收到的ACK回復幀也發(fā)送到PC顯示;B、C、D通過無線模塊接收到A發(fā)過來的數(shù)據(jù),按自己節(jié)點地址大小進行延時后對接收數(shù)據(jù)幀進行回復,并把接收數(shù)據(jù)幀和回復ACK幀通過串口發(fā)送到PC顯示。

        d.jpg

        圖4為群首節(jié)點發(fā)送數(shù)據(jù)幀和接收ACK幀的過程。協(xié)議棧MAC層幀的封裝格式按照IEEE 802.15.4標準。從圖4可以看出:第一個框中為發(fā)送節(jié)點發(fā)送數(shù)據(jù)幀,后面三個框中為接收到的終端節(jié)點回復的ACK幀。按照IEEE Std 802.15.4—2006標準中的幀封裝格式,發(fā)送窗口顯示的第一個字節(jié)為物理層數(shù)據(jù)長度。后面緊跟的是FCF(Frame Control Field幀控制字段,占2字節(jié)),對發(fā)送可信廣播數(shù)據(jù)幀為0x8801。參考標準手冊中FCF設置,可以看出對數(shù)據(jù)幀的設置如下:節(jié)點地址和網(wǎng)絡地址都采用16位;在幀中同時包括源網(wǎng)絡ID、源節(jié)點地址、目的網(wǎng)絡ID、目的節(jié)點地址;需要ACK幀確認;沒有采用安全設置。后面是DSN(1字節(jié)),這是傳輸?shù)牡谝粋€幀,所以設置為0x01。后面為目的網(wǎng)號0x0001(占2字節(jié))。后面為目的節(jié)點地址0xFFFF(占2字節(jié)),這是廣播地址,當發(fā)現(xiàn)目的節(jié)點地址為廣播地址時,便向所有節(jié)點傳輸廣播幀。后面為源網(wǎng)絡號0x0001(占2字節(jié))。后面為源節(jié)點地址0x0001(占2字節(jié))。因為這是同一個網(wǎng)段中的群首向終端節(jié)點發(fā)送廣播幀,所以目的網(wǎng)絡號和源網(wǎng)絡號相同。后面接著的2字節(jié)為MAC層數(shù)據(jù),為了測試簡單,測試時只發(fā)送了2字節(jié)的數(shù)據(jù)(1和2,ASCALL碼為0x31和0x32)??尚艔V播幀要求接收節(jié)點回復ACK幀,后面三個框中數(shù)據(jù)分別是節(jié)點B、C、D回復的ACK幀?;貜蛶母袷胶蛿?shù)據(jù)幀的設置情況類似,區(qū)別是回復幀的FCF為0x8802,表示是回復幀且不需要確認,回復幀中沒有數(shù)據(jù)字段,且回復幀中的目的網(wǎng)絡號、目的地址為接收數(shù)據(jù)幀中的源網(wǎng)絡號、源地址。

        e.JPG

        圖5為接收節(jié)點B的接收數(shù)據(jù)幀。從圖中可以看出,第一個框中為接收到的可信廣播數(shù)據(jù)幀,第二框中數(shù)據(jù)為發(fā)送的ACK幀。接收窗口中前面的數(shù)據(jù)和發(fā)送窗口中數(shù)據(jù)一樣。不一樣的是最后的2字節(jié)(具體解釋請參考3.5節(jié)接收過程)。接收節(jié)點解析目的地址,發(fā)現(xiàn)是廣播地址,需要再檢查FCF字段中的Ack Request是否為1,如果為1,則需要回復ACK幀。為了避免群中節(jié)點收到可信廣播數(shù)據(jù)幀,同時回復ACK幀造成信道碰撞,回復ACK幀的時候按照自己節(jié)點地址大小延時發(fā)送。群中其他節(jié)點(C、D)的接收串口顯示數(shù)據(jù)和節(jié)點B的類似,這里就不再詳細說明。

        結(jié)語
        從測試的結(jié)果看,發(fā)送節(jié)點通過CC2520發(fā)送的數(shù)據(jù)能被接收,節(jié)點正確接收并通過串口發(fā)送到PC。這說明論文介紹的各個模塊都能夠正確穩(wěn)定地工作。通過這些底層模塊的協(xié)同工作,為上層操作系統(tǒng)和協(xié)議棧提供了通信的基礎服務。本論文只是簡單地完成了各模塊的功能,還有很多可以改進的地方,比如,可以在CC2520通信過程中加入精確的時序控制,為上層提供更好的服務。

        分頻器相關文章:分頻器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 常州市| 治多县| 星座| 龙岩市| 中山市| 曲阳县| 呼图壁县| 静海县| 随州市| 林口县| 金华市| 收藏| 阿拉善左旗| 商水县| 武鸣县| 平顶山市| 腾冲县| 松潘县| 马鞍山市| 南皮县| 乳源| 岳池县| 桑植县| 新野县| 吴江市| 临潭县| 都匀市| 栾川县| 同心县| 雷州市| 皮山县| 长宁区| 泸水县| 静乐县| 钟祥市| 隆林| 金秀| 平谷区| 黑龙江省| 大英县| 琼结县|