亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于802.15.4協(xié)議的多機(jī)器人無線通信系統(tǒng)的設(shè)計

        2010-05-05 02:39:44臧申俊
        微型電腦應(yīng)用 2010年6期
        關(guān)鍵詞:網(wǎng)絡(luò)層物理層字節(jié)

        臧申俊

        0 引言

        RoboNet的軟件系統(tǒng)采用的系統(tǒng)架構(gòu)如圖1所示:

        圖1 系統(tǒng)架構(gòu)圖

        RoboNet系統(tǒng)硬件采用了Chipcon公司(現(xiàn)已被TI公司收購)的CC2430[1]方案。RoboNet的使用者(機(jī)器人系統(tǒng)[2][3])通過串口向交互層發(fā)送命令,交互層解析命令如果是要發(fā)送數(shù)據(jù)則傳給網(wǎng)絡(luò)層,如果是設(shè)置或查詢系統(tǒng)參數(shù),則CC2430單片機(jī)直接做相應(yīng)處理。網(wǎng)絡(luò)層的任務(wù)是為交互層傳來的數(shù)據(jù)選擇合適的路由并加上網(wǎng)絡(luò)頭,然后將數(shù)據(jù)包傳給介質(zhì)訪問控制層(Medium Access Control)MAC層。在MAC層,系統(tǒng)按照地址格式添加頭部,并調(diào)用物理層進(jìn)行發(fā)送。物理層直接調(diào)用硬件的射頻模塊,把數(shù)據(jù)調(diào)制成無線電波發(fā)送出去。在另一個方向,系統(tǒng)接收到的數(shù)據(jù)沿著相反的方向,從物理層到MAC層再到網(wǎng)絡(luò)層,最后到交互層傳給使用者機(jī)器人系統(tǒng)。

        1 物理層和MAC層

        1.1 RoboNet物理層設(shè)計

        IEEE802.15.4標(biāo)準(zhǔn)定義的物理層幀格式[4]如圖2所示。物理幀第一個字段是4個字節(jié)的前導(dǎo)碼,用來進(jìn)行幀同步。幀起始分隔符(Start-of-Frame Delimiter,SFD)字段長度為一個字節(jié),其值固定為0xA7,標(biāo)識一個物理幀的開始。幀長度(frame length)由一個字節(jié)的低7位表示,其值就是物理幀負(fù)載的長度,因此物理幀負(fù)載的長度不能超過127個字節(jié)。物理幀的負(fù)載長度可變,稱之為物理服務(wù)數(shù)據(jù)單元(PHY Service Data Unit,PSDU),用來承載MAC幀(5個字節(jié)的確認(rèn)幀和8到127字節(jié)變長的其它幀)。

        圖2 802.15.4協(xié)議物理層幀格式

        物理層的主體是有限狀態(tài)機(jī)phy_FSM(),如圖3所示。RoboNet系統(tǒng)初始化物理層狀態(tài)為空閉狀態(tài)IDLE。當(dāng)MAC層想要發(fā)送數(shù)據(jù)并且物理層狀態(tài)為IDLE時,上層需要先把物理層相關(guān)參數(shù)設(shè)置好,然后把物理層狀態(tài)切換為TXDATA。如果物理層的射頻協(xié)處理器已經(jīng)收到數(shù)據(jù),并開始發(fā)送數(shù)據(jù),則把物理層切換到TXWAIT狀態(tài)。否則把物理層狀態(tài)切換到IDLE,結(jié)束此次發(fā)送

        圖3 物理層狀態(tài)機(jī)

        1.2 MAC層設(shè)計

        對于RoboNet應(yīng)用的多機(jī)器人系統(tǒng)來說,由于機(jī)器人節(jié)點(diǎn)之間是互相平等的,關(guān)聯(lián)機(jī)制和信標(biāo)機(jī)制起不到有效的作用,因而在RoboNet系統(tǒng)中,只使用了數(shù)據(jù)幀和確認(rèn)幀。MAC層幀格式[4]如圖4所示。

        圖4 RoboNet使用的MAC層幀格式

        MAC層的主要邏輯是mac_FSM()函數(shù)。MAC層先調(diào)用下層狀態(tài)機(jī)phy_FSM()使其保持運(yùn)轉(zhuǎn),然后檢查本層是否正在發(fā)送數(shù)據(jù),如果是則等待數(shù)據(jù)發(fā)送完畢,最后進(jìn)入MAC層的狀態(tài)機(jī),其狀態(tài)切換如圖5所示。

        圖5 RoboNet MAC層狀態(tài)轉(zhuǎn)換圖

        2 網(wǎng)絡(luò)層和串口交互層

        RoboNet屬于多跳無線自組網(wǎng),無線自組網(wǎng)起源于軍事應(yīng)用,它是20世紀(jì)70年代美國國防部高等研究計劃局(Defence Advanced Research Projects Agency,DARPA)資助研究的在戰(zhàn)場環(huán)境下采用分組無線網(wǎng)進(jìn)行數(shù)據(jù)通信(Packet Radio Net,PRNET)項目中產(chǎn)生的一種新型的網(wǎng)絡(luò)架構(gòu)技術(shù)[5]。

        2.1 網(wǎng)絡(luò)層設(shè)計

        網(wǎng)絡(luò)層的功能是為節(jié)點(diǎn)提供路由功能,是多跳移動無線自組織網(wǎng)絡(luò)的核心部分。AODV[6]和DSR[6]都是可用于移動多機(jī)器人網(wǎng)絡(luò)的優(yōu)秀的路由協(xié)議。DSR雖然需要更長的網(wǎng)絡(luò)頭來保存路徑,但它在高移動性的場合下比AODV對發(fā)送包的開銷要小。RoboNet選擇DSR作為路由協(xié)議。

        圖6 RoboNet網(wǎng)絡(luò)層頭部結(jié)構(gòu)

        MAC層的負(fù)載(MPDU)包括網(wǎng)絡(luò)頭部和網(wǎng)絡(luò)負(fù)載兩部分。其中網(wǎng)絡(luò)頭部為路由提供信息選項,其格式如圖6所示。

        表1 網(wǎng)絡(luò)頭部分類型

        首先是一個字節(jié)的類型位,它表示這個包的類型,一共分四種:路由請求(ROUTE_REQ)、路由回復(fù)(ROUTE_REPLY)、路由錯誤(ROUTE_ERROR)、路由數(shù)據(jù)(ROUTE_DATA),具體數(shù)值見表1。

        第二個字節(jié)有兩個作用:在路由請求時,它表示這個請求的序列號,是為了避免對重復(fù)的請求進(jìn)行處理;在其它類型時,它表示跳數(shù)信息。第三、第四個字節(jié)是表示這個包的網(wǎng)絡(luò)層的目標(biāo)地址,以低有效字節(jié)順序存放。接下來第五個字節(jié)也是個復(fù)用類型的域:在數(shù)據(jù)是廣播時它表示這個廣播的標(biāo)識符,是為了避免對收到過的廣播重新發(fā)送;而在其它情況下,它表示收到的這個節(jié)點(diǎn)和源節(jié)點(diǎn)之間的跳數(shù)。選項的最后是由常量MAX_ROUTE_LEN定義的16位地址數(shù)組,它表示了網(wǎng)絡(luò)層包的傳播路徑,是源路由協(xié)議的直接體現(xiàn)。

        網(wǎng)絡(luò)層不再像物理層和MAC層一樣采用狀態(tài)機(jī)設(shè)計,因為網(wǎng)絡(luò)層既要處理包的發(fā)送,又要處理包的接收,使用狀態(tài)機(jī)會帶來巨大的復(fù)雜度,并且其并行效果也不會明顯。因此網(wǎng)絡(luò)層只提供了一個叫nwk_main()的函數(shù)供上層不斷調(diào)用。它的流程如圖7所示,只做了兩件事:檢查是MAC層是否收到網(wǎng)絡(luò)包,并調(diào)用函數(shù)進(jìn)行處理;檢查發(fā)送隊列里是否有包在等待,并調(diào)用相應(yīng)函數(shù)進(jìn)行處理。這是種串行處理方式,由于MAC層接收到的數(shù)據(jù)和發(fā)送隊列里的數(shù)據(jù)都采用了數(shù)組來緩沖,只要它們的隊列不溢出,就不會對協(xié)議棧的性能造成影響。

        圖7 nwk_main流程圖

        圖8 網(wǎng)絡(luò)層待發(fā)數(shù)據(jù)緩沖區(qū)

        在RoboNet系統(tǒng)中,本節(jié)點(diǎn)要發(fā)送的數(shù)據(jù)都存放在一個叫nwk_send_queue的緩沖區(qū)里。它是一個先進(jìn)先出循環(huán)隊列,如圖8所示。q_tail是最先存進(jìn)來的緩沖區(qū)項的索引,q_tail是下一個空閑的緩沖區(qū)項的索引,當(dāng)上一層有數(shù)據(jù)要發(fā)送時會往這個索引指向的地方存。另外還有兩個布爾變量q_full和q_empty來表示發(fā)送緩沖區(qū)是否為空和是否為滿。

        當(dāng)收到路由請求包時整個流程如圖9所示。首先檢查之前是否已經(jīng)收到過這個請求包,如果收到過那就沒有必要再進(jìn)行處理了。然后判斷這個請求的目標(biāo)節(jié)點(diǎn)是否是當(dāng)前節(jié)點(diǎn)。如果是,則這個請求到達(dá)了終點(diǎn),當(dāng)前節(jié)點(diǎn)需要返回一個路由回復(fù)。路由的回復(fù)直接在收到的路由請求的網(wǎng)絡(luò)頭部里改,不需要再重新分配一個網(wǎng)絡(luò)頭,即方便又節(jié)約了空間。最后一種情況是當(dāng)前節(jié)點(diǎn)既不是目標(biāo)節(jié)點(diǎn),也沒有到目標(biāo)節(jié)點(diǎn)的路由。這時當(dāng)前節(jié)點(diǎn)需要轉(zhuǎn)發(fā)這個路由請求。

        路由回復(fù)發(fā)往發(fā)起路由請求的那個節(jié)點(diǎn),中間節(jié)點(diǎn)收到路由回復(fù)包首先判斷自身是否為源節(jié)點(diǎn),如果是則通過路由回復(fù)包中的地址信息更新自身的路由緩存,并不再轉(zhuǎn)發(fā)路由回復(fù)包。如果自身不是源節(jié)點(diǎn)則在更新完自身緩存后還要繼續(xù)轉(zhuǎn)發(fā)這個路由回復(fù)包。

        路由錯誤包的目的是節(jié)點(diǎn)在轉(zhuǎn)發(fā)數(shù)據(jù)時,發(fā)現(xiàn)原有路徑不可達(dá)時,向數(shù)據(jù)發(fā)起節(jié)點(diǎn)報告路由失效。網(wǎng)絡(luò)層對收到路由錯誤包的處理和收到路由回復(fù)包的處理十分類似,首先判斷接收到路由錯誤包的節(jié)點(diǎn)是否為源節(jié)點(diǎn),如果是則根據(jù)路由錯誤包中的信息刪除自身緩存中已經(jīng)失效的路由,并不再轉(zhuǎn)發(fā)該路由錯誤包。如果自身不是源節(jié)點(diǎn)則在刪除完自身緩存中無效的路由信息后還要繼續(xù)轉(zhuǎn)發(fā)這個路由錯誤包。

        數(shù)據(jù)包的接收和發(fā)送是通信的目的所在,整個流程如圖10所示。首先對于廣播的數(shù)據(jù)包需要特殊處理,先判斷是否需要丟棄。如果存在下列三種情況之一:一本節(jié)點(diǎn)已收到過該廣播數(shù)據(jù)包;二該廣播數(shù)據(jù)包是自身發(fā)出的;三該廣播數(shù)據(jù)包的生存時間為零,則丟棄該廣播數(shù)據(jù)包。否則繼續(xù)廣播該數(shù)據(jù)包。如果收到的不是廣播數(shù)據(jù)包,則判斷這個包的目標(biāo)地址是不是當(dāng)前節(jié)點(diǎn)。對于目標(biāo)地址是當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)包,只需向上層遞交這個數(shù)據(jù)包的網(wǎng)絡(luò)層源地址和網(wǎng)絡(luò)層負(fù)載即可返回。對于目標(biāo)地址不是當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)包需要進(jìn)行轉(zhuǎn)發(fā)。這時還需要檢查發(fā)送是否成功。如果成功就可以結(jié)束處理并返回。如果MAC層發(fā)送失敗,表示這個數(shù)據(jù)包路徑信息中對于當(dāng)前節(jié)點(diǎn)的下一跳不可達(dá),此時要更新當(dāng)前節(jié)點(diǎn)的失效路由信息。

        圖9 對收到路由請求包的處理流程圖

        圖10 對收到數(shù)據(jù)包的處理流程

        2.2 交互層設(shè)計

        交互層位于網(wǎng)絡(luò)層之上,是RoboNet系統(tǒng)的最頂層。它負(fù)責(zé)把網(wǎng)絡(luò)層接收到的數(shù)據(jù),按照約定格式組裝成數(shù)據(jù)幀通過串口發(fā)送出去,同時又對從串口進(jìn)來的數(shù)據(jù)幀進(jìn)行解析處理,如果是要發(fā)送數(shù)據(jù),則把數(shù)據(jù)和目標(biāo)地址提取出來,放到網(wǎng)絡(luò)層的發(fā)送緩沖區(qū)中。

        交互層對串口進(jìn)行接收和發(fā)送的幀都按照圖11所示的格式進(jìn)行處理。第一個字節(jié)是幀界限符,用于表示一個幀的開始,值為十六進(jìn)制0X7E。第二個字節(jié)標(biāo)識長度,是類型相關(guān)數(shù)據(jù)字段的長度,規(guī)定最大長度為106字節(jié)。第三個字段是類型相關(guān)數(shù)據(jù),長度并不固定。最后一個字節(jié)是校驗字節(jié),用來簡單地校驗數(shù)據(jù)在串口收發(fā)過程中有沒出錯。校驗和(checksum)的計算方法如下:把類型相關(guān)數(shù)據(jù)字段中的每個字節(jié)加起來,然后對0XFF取反。校驗和的校驗方法如下:把類型相關(guān)數(shù)據(jù)中的每個字節(jié)加起來,再加上校驗和,如果值為0XFF則數(shù)據(jù)包正確。

        圖11 串口幀通用格式

        RoboNet系統(tǒng)一共有兩大類型幀:第一類是用于通信的數(shù)據(jù)相關(guān)幀,如圖12所示;第二類是用于設(shè)置、查詢、返回參數(shù)用的命令相關(guān)幀,如圖13所示。它們由類型相關(guān)數(shù)據(jù)中的第一個字節(jié)來區(qū)分,具體取值如表2所示。

        圖12 數(shù)據(jù)相關(guān)幀的格式

        表2 串口幀的不同類型

        對于發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的幀,其數(shù)據(jù)部分的前兩個字節(jié)用來標(biāo)識地址,低有效字節(jié)優(yōu)先。發(fā)送數(shù)據(jù)時,地址域是目標(biāo)地址;接收數(shù)據(jù)時,地址域是網(wǎng)絡(luò)層源地址。

        圖13 參數(shù)相關(guān)幀的格式

        第一個字節(jié)表示命令的類型,為表3-2中的設(shè)置參數(shù)、查詢參數(shù)和返回參數(shù)三者之一。第二個字節(jié)指示了要操作的參數(shù)類型。第三、四字節(jié)是參數(shù)值,以低有效字節(jié)優(yōu)先順序存放。對于獲取參數(shù)的幀來說,參數(shù)值還未知,這兩字節(jié)無意義,可用任意數(shù)值填充。對于參數(shù)值只有一位的情況,比如射頻發(fā)射功率,此時值的高有效位無意義,可用任意數(shù)值填充。

        3 系統(tǒng)性能測試與分析

        本節(jié)對RoboNet系統(tǒng)的性能做了測試,測試的標(biāo)準(zhǔn)采用了分組遞交率。測試時使用的四種拓?fù)浣Y(jié)構(gòu)如圖14所示。其中(a)表示A節(jié)點(diǎn)和B節(jié)點(diǎn)在彼此通信距離之內(nèi);(b)表示A節(jié)點(diǎn)和B節(jié)點(diǎn)彼此在通信距離之內(nèi),B節(jié)點(diǎn)和C節(jié)點(diǎn)在彼此通信距離之內(nèi),但A節(jié)點(diǎn)和C節(jié)點(diǎn)不能直接通信;(c)類似(a)和(b);(d)表示A節(jié)點(diǎn)、B節(jié)點(diǎn)、C節(jié)點(diǎn)和D節(jié)點(diǎn)彼此之間都可以直接通信。在以下的測試中,單跳通信使用(a)所示的拓?fù)?,兩跳通信使用(b)所示拓?fù)洌葾節(jié)點(diǎn)向C節(jié)點(diǎn)發(fā)送,三跳通信使用(c)所示的拓?fù)洌葾節(jié)點(diǎn)向D節(jié)點(diǎn)發(fā)送。

        圖14 測試時用的四種拓?fù)浣Y(jié)構(gòu)

        (1)不同跳數(shù)對單播通信遞交率的影響

        圖15所示的是在9600bps波特率的情況下,不同跳數(shù)對單播通信遞交率的影響。我們可以看到單跳通信和兩跳通信都達(dá)到了95%以上的遞交率,而三跳通信在負(fù)載為20字節(jié)的情況下遞交率比較低,只有65%。但是隨著負(fù)載的增加到40字節(jié)后,三跳通信的遞交率也達(dá)到了95%以上。

        圖15 不同跳數(shù)對單播通信遞交率的影響

        圖16 不同發(fā)送間隔對廣播通信遞交率的影響

        (2)不同發(fā)送間隔對廣播通信遞交率的影響(三跳)

        圖16所示的是三種發(fā)送間隔下的三跳廣播通信的遞交率,大的延時能提高遞交率。而負(fù)載越大時需要的延時也越大,從而能減少網(wǎng)絡(luò)中包的沖突,減低丟包率。在頻繁需要廣播通信的機(jī)器人網(wǎng)絡(luò)里發(fā)送廣播時這是需要注意的。

        4 總結(jié)

        本文設(shè)計并實(shí)現(xiàn)了的RoboNet通信系統(tǒng),為多機(jī)器人之間的通信提供了無線多跳自組織網(wǎng)絡(luò)的通信方式,包括了單播通信和廣播通信。它不需要基礎(chǔ)設(shè)施如基站,就可以在任何地點(diǎn)臨時組網(wǎng)通信,并且網(wǎng)絡(luò)中的節(jié)點(diǎn)都是無差異的,不存在主次節(jié)點(diǎn)。在節(jié)點(diǎn)失效時,可以由冗余的節(jié)點(diǎn)繼續(xù)其工作,具有自愈性、抗毀性、高健壯性等特點(diǎn)。該系統(tǒng)目前只是在少量節(jié)點(diǎn)上做實(shí)驗,未來的工作將在大規(guī)模節(jié)點(diǎn)上進(jìn)行實(shí)驗,并測試其性能。

        [1]Texas Instruments.CC2430 Data Sheet.Texas Instrument.Dallas,TX.2006.

        [2]鄒磊,蔡自興,任孝平.基于簇的多移動機(jī)器人通信系統(tǒng).[J]計算機(jī)應(yīng)用研究.2009,26(8):3109-3111.

        [3]Bergbreiter S,Mehta A,Pister K.etc.PhotoBeacon:Design of an Optical System for Localization and Communication in Multi-Robot Systems.In Proceedings of the International Conference on Robot Communication and Coordination.Athens,Greece,Oct.2007:(30-37).

        [4]The Institute of Electrical and Electronics Engineers.IEEE Standard for Local and Metropolitan Area Networks,part 15.4,Wireless Medium Access Control(MAC)and Physical Layer(PHY)Specifications for Low-Rate Wireless Personal Area Networks(LR-WPANs).IEEE Press.2003.

        [5]Reese R B.A Zigbee-subset/IEEE 802.15.4 Multi-platform ProtocolStack.http://www.ece.msstate.edu/~reese/msstateP AN/.2007

        [6]Johnson D B,MaltD A z,Hu Y C.The dynamic source routing protocol for mobile ad hoc networks(DSR).IETF Internet Draft.July,2004.

        猜你喜歡
        網(wǎng)絡(luò)層物理層字節(jié)
        Noise-Tolerant ZNN-Based Data-Driven Iterative Learning Control for Discrete Nonaffine Nonlinear MIMO Repetitive Systems
        基于K-ML-MPWFRFT的物理層安全傳輸技術(shù)
        No.8 字節(jié)跳動將推出獨(dú)立出口電商APP
        公路聯(lián)網(wǎng)電子不停車收費(fèi)系統(tǒng)路側(cè)單元物理層自動測試軟件研發(fā)
        No.10 “字節(jié)跳動手機(jī)”要來了?
        簡談MC7字節(jié)碼
        基于WPA的物聯(lián)網(wǎng)網(wǎng)絡(luò)層安全的研究
        多天線物理層安全傳輸系統(tǒng)性能分析
        1Gbps電力線載波通信物理層算法設(shè)計
        電測與儀表(2014年8期)2014-04-04 09:19:26
        Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
        黄片小视频免费观看完整版| 产国语一级特黄aa大片| av在线免费观看你懂的| 丝袜av乱码字幕三级人妻| 十四以下岁毛片带血a级| 人妻忍着娇喘被中进中出视频| 欧美亚洲国产人妖系列视 | 日韩AV不卡六区七区| 精品999无码在线观看| 护士人妻hd中文字幕| 国产精品无码久久综合网| 99亚洲精品久久久99| 国产经典免费视频在线观看| 国产三区二区一区久久| 精品亚洲国产成人| 色婷婷日日躁夜夜躁| 国产女主播强伦视频网站| 人妖国产视频一区二区| 99久久精品午夜一区二区| 亚欧国产女人天堂Av在线播放| 亚洲国产精品亚洲高清| 久久久精品人妻一区二区三区妖精| 成人网站免费看黄a站视频| 亚洲AV无码国产永久播放蜜芽| 色视频日本一区二区三区| 中文有码亚洲制服av片| 丰满人妻在公车被猛烈进入电影| 极品诱惑一区二区三区| 高清国产国产精品三级国产av| 国产七十六+老熟妇| 国产精品嫩草影院AV| 国产亚洲一区二区三区三州| 男女真人后进式猛烈视频网站 | 一进一出一爽又粗又大| 国产一毛片| 中文字幕一区二区网址| 国产极品粉嫩福利姬萌白酱 | 欧美日韩亚洲成色二本道三区| av网站韩日在线观看免费| 92午夜少妇极品福利无码电影| 丰满爆乳无码一区二区三区|