XMesh無線網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)與論述_第1頁
XMesh無線網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)與論述_第2頁
XMesh無線網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)與論述_第3頁
XMesh無線網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)與論述_第4頁
XMesh無線網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)與論述_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

/XMesh開發(fā)詳解第一章XMesh概述1.1mesh網(wǎng)絡(luò)基礎(chǔ)基于無線mesh網(wǎng)絡(luò)結(jié)構(gòu)的短距離、小范圍網(wǎng)絡(luò)已經(jīng)發(fā)展到使用有效的能量方式來管理非計(jì)算機(jī)設(shè)備。自組織的mesh網(wǎng)絡(luò)結(jié)構(gòu)已經(jīng)使能新的無線設(shè)備應(yīng)用,包括戰(zhàn)場(chǎng)上的傳感監(jiān)控;視頻生產(chǎn)和運(yùn)輸中溫度監(jiān)控;與醫(yī)療設(shè)備用信號(hào)對(duì)病人的診斷。無線傳感網(wǎng)絡(luò)可以在不同的方式被設(shè)計(jì)不同的地址優(yōu)先級(jí)并。所有的無線mesh網(wǎng)絡(luò)系統(tǒng)都有一些基本的應(yīng)用要求:低功耗——為了提供較長時(shí)間的操作,radio連接的能量的消耗必須被縮減,這樣設(shè)備就可由輕的就像硬幣大小的電池來供電較長時(shí)間。容易使用——網(wǎng)絡(luò)協(xié)議允許網(wǎng)絡(luò)以一種高度的adhoc、自組織方式來初始化自己??蓴U(kuò)展性——網(wǎng)絡(luò)必須能對(duì)節(jié)點(diǎn)提供實(shí)時(shí)支持,并支持未來的增長而不會(huì)引起過載。Responsiveness——協(xié)議發(fā)現(xiàn)和重發(fā)現(xiàn)必須有效,尤其是對(duì)移動(dòng)的傳感節(jié)點(diǎn),比如在移動(dòng)設(shè)備或無線傳感中范圍——發(fā)射低能量的RF信號(hào)在一個(gè)短的距離內(nèi)傳輸,可以被中轉(zhuǎn)多次,這比起在一個(gè)長范圍內(nèi)傳輸高能量的信號(hào)來更加有效。使用協(xié)議構(gòu)建中繼網(wǎng)絡(luò),能支持多跳路由,這樣,數(shù)據(jù)包就可以被中轉(zhuǎn)從一個(gè)中繼站到另外一個(gè),當(dāng)移動(dòng)RF終端遠(yuǎn)離基站的時(shí)候。Bi-directionalcommunication——網(wǎng)關(guān)和傳感器之間的通信是bi-directional,它能使基站傳輸信號(hào)來適當(dāng)調(diào)節(jié)操作參數(shù),此外,接收傳感器數(shù)據(jù)??煽啃浴?dāng)數(shù)據(jù)的可靠性很重要時(shí),它對(duì)很多應(yīng)用來說變成了一個(gè)關(guān)鍵性的設(shè)備,比如在醫(yī)療監(jiān)控中。Smallmoduleformfactor——一個(gè)非常小的構(gòu)成因素對(duì)網(wǎng)絡(luò)模塊來說是需要的,因?yàn)檫@樣終端節(jié)點(diǎn)能適應(yīng)內(nèi)部或很容易的接到已存在的設(shè)備上。一個(gè)魯棒性強(qiáng)的網(wǎng)絡(luò)協(xié)議是為滿足上述要求,以與那些在特別是mesh網(wǎng)絡(luò)而設(shè)計(jì)得。網(wǎng)絡(luò)協(xié)議提供支持的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和管理路由數(shù)據(jù)通過網(wǎng)絡(luò)。為了讓應(yīng)用從無線傳感網(wǎng)絡(luò)中受益,基本協(xié)議必須支持所有這些基本要求。1.2拓?fù)溆袔追N結(jié)構(gòu)可以用來實(shí)現(xiàn)無線傳感網(wǎng)絡(luò)的應(yīng)用,包括星型、拓?fù)渑c星型—拓?fù)浠旌系?。每一種結(jié)構(gòu)都有他自己的難點(diǎn)和優(yōu)缺點(diǎn)。一個(gè)無線我網(wǎng)絡(luò)包括以下這些組件:終端節(jié)點(diǎn)——傳感和制動(dòng)器一起來捕獲數(shù)據(jù)。對(duì)ZiggBee網(wǎng)絡(luò),這些通常指的是RFDs。RFDs不能向上、向下傳送報(bào)文。XMesh-ELPMotes類似一個(gè)RFDs設(shè)備路由——擴(kuò)大網(wǎng)絡(luò)覆蓋,路由繞過障礙物,并在網(wǎng)絡(luò)擁塞或設(shè)備故障下提供主干路由備份。某些情況下,路由也能作為終端節(jié)點(diǎn)。路由也可以指ZigBee網(wǎng)絡(luò)中的FFD設(shè)備。XMesh里的所有版本就像FFDs網(wǎng)關(guān)——統(tǒng)計(jì)網(wǎng)絡(luò)中的數(shù)據(jù),提供到主機(jī)、LAN或者因特網(wǎng)的接口,就像一個(gè)入口來管理網(wǎng)絡(luò)性能和參數(shù)。系統(tǒng)軟件——提供網(wǎng)絡(luò)歇息來使能自組織、自處理的adhoc網(wǎng)絡(luò)。CrossbowXMesh網(wǎng)絡(luò)在RFDs和FFDs之間沒有明顯的差別,所以有整合傳感的節(jié)點(diǎn)都可以向上、向下傳送報(bào)文。拓?fù)渲傅氖怯布牟季趾蛿?shù)據(jù)如何通過這樣的布局。1.3XMeshOverviewXMesh是一個(gè)由多跳、adhoc、mesh網(wǎng)絡(luò)協(xié)議構(gòu)成的網(wǎng)絡(luò),由Crossbow公司開發(fā)。一個(gè)XMesh網(wǎng)絡(luò)包含許多節(jié)點(diǎn)能無線地彼此間通信,也能將radio報(bào)文傳遞給基站,然后給PC或其他用戶。多跳性有效地?cái)U(kuò)展了radio的通信范圍并減小傳輸報(bào)文的能量需求。用這種方式多跳數(shù)據(jù)。節(jié)點(diǎn)不需要在一個(gè)raidio的范圍內(nèi)直接相連通信。另外,如果2各節(jié)點(diǎn)之間有一個(gè)壞的radio連接,這個(gè)障礙可以通過周圍路由來克服。典型地,節(jié)點(diǎn)運(yùn)行在一個(gè)低能量的mode上,大多數(shù)時(shí)間處于睡眠狀態(tài),這樣是為了延長多年的電池使用壽命。XMesh是一個(gè)軟件庫,它使用TinyOS操作系統(tǒng),并運(yùn)行在嵌入式設(shè)備上,被稱作Motes。Motes包含:1、Microprocessor(AtmelATmega128forMICA2,MICA2DOTandMICAz).ATmega128has128Kofflashmemory,4KofRAM,and4KofEEPROM.(AtmelATmega1281M9100,M2100andM2110).ATmega1281has128Kofflashmemory,8KofRAM4KofEEPROM.2.Radio:aMICA2radioat916/433MHzoraM9100radioat916MHz,aMICAz/M2100/M2110radioat2.4GHz.3.SerialFlash:ExternalflashstoragememorytosupportOTAP(over-the-airprogramming)anddatalogging.UID:Anintegratedcircuitthatisprogrammedwithaunique64-bitidentifier(forMICA2andMICA2DOT)XMesh網(wǎng)絡(luò)包含:一或更多的Motes參與網(wǎng)絡(luò)一個(gè)基站節(jié)點(diǎn)。這是一個(gè)有XMeshBase應(yīng)用程序的MICA2接口板。它管理網(wǎng)絡(luò)并提供數(shù)據(jù)報(bào)文進(jìn)入和離開meshPC,給橋和其他客戶提供向mesh網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的圖形化界面。XMesh提供一個(gè)mesh網(wǎng)絡(luò)服務(wù)同時(shí)具有自組織和自處理功能。XMesh能把數(shù)據(jù)向上路由值基站或向下路由到單個(gè)節(jié)點(diǎn)。也可以在一個(gè)節(jié)點(diǎn)簇中任意廣播。并使用QOS服務(wù)保障數(shù)據(jù)通信質(zhì)量。XMesh有各種不同能量的節(jié)點(diǎn)構(gòu)成包括HP、LP、ELP等。XMesh網(wǎng)絡(luò)協(xié)議有許多選項(xiàng)包括:低功耗偵聽、時(shí)間同步、節(jié)點(diǎn)睡眠、任意路由。所有Crossbow傳感和數(shù)據(jù)獲得板都可以為一個(gè)XMesh網(wǎng)路提供支持。XMesh網(wǎng)絡(luò)有如下結(jié)構(gòu):?MICA2,MICA2DOT,andMICAzsupport?Lowpower(typicallylessthan220μAaveragecurrent(withoutsensorboard)?Networktimesynchronizationto±1msec.?Lowpowerlisteningwithan8timespersecondwake-upinterval,allowingforrapidmessagetransferacrossthenetwork.Thedefaultsamplingperiodis3minutes,althoughmanyothersamplingintervalsXMesh的網(wǎng)絡(luò)已經(jīng)被廣泛的測(cè)試過,不管在室內(nèi)還是戶外,在一個(gè)典型的室內(nèi)測(cè)試中,節(jié)點(diǎn)每300平方英尺放置一個(gè),能覆蓋1萬平方英尺內(nèi)的設(shè)施。為了仿真較遠(yuǎn)距離間的通信,無線電的傳輸功率傳輸頻率下降到-6dBm。在戶外的測(cè)試中,節(jié)點(diǎn)以每10000平方米一個(gè)的分布傳越幾個(gè)崎嶇不平英畝。關(guān)于許多發(fā)展的靜態(tài)分析表明大于90%的范圍在任何節(jié)點(diǎn)都會(huì)被收基站集到,無需使用端到端的確認(rèn)機(jī)制。1.4XMesh網(wǎng)絡(luò)概況一個(gè)無限網(wǎng)絡(luò)設(shè)備由3個(gè)層級(jí)分明的軟件組成:節(jié)點(diǎn)層:XMesh的所在地,是一個(gè)運(yùn)行在傳感節(jié)點(diǎn)簇的軟件,來構(gòu)成一個(gè)拓?fù)渚W(wǎng)絡(luò)。XMesh軟件提供網(wǎng)絡(luò)算法以構(gòu)建一個(gè)可靠地通信主干,它包含了mesh所能提供服務(wù)的所有的節(jié)點(diǎn)。服務(wù)層:是一個(gè)總是處于可用狀態(tài)的設(shè)施來處理來自無線網(wǎng)絡(luò)的數(shù)據(jù)通信和緩沖,并為無線節(jié)點(diǎn)和因特網(wǎng)用戶提供一個(gè)通道。XServer和XOtap是服務(wù)層的應(yīng)用可以運(yùn)行在PC或Stargate上用戶層:為用戶提供可視化軟件和圖形化接口來管理網(wǎng)絡(luò)。Crossbow提供免費(fèi)的客戶端軟件叫做MoteView,但是Xmesh也是一個(gè)客戶軟件接口。一個(gè)XMesh傳感網(wǎng)絡(luò)系統(tǒng)包含多跳的節(jié)點(diǎn)(MICAz)和一個(gè)基站單元(MICAz),這些被集成在一個(gè)MIB520板上?;咎峁┑姆?wù)有2個(gè)目的:作為節(jié)點(diǎn)層和拂去七層的網(wǎng)關(guān)?;就ㄟ^無線電和其他節(jié)點(diǎn)通信,通過端口和服務(wù)器通信。這樣,基站在主機(jī)系統(tǒng)和其他的mesh網(wǎng)絡(luò)上提供了一個(gè)發(fā)送和接收信息的橋梁。他構(gòu)成了了網(wǎng)絡(luò)的一部分并且是數(shù)據(jù)從各節(jié)點(diǎn)直接傳到他自身上。對(duì)網(wǎng)絡(luò)上的其他節(jié)點(diǎn)來說,基站節(jié)點(diǎn)能無功耗的向PC主機(jī)發(fā)送信息?;竟?jié)點(diǎn)在一個(gè)本地系統(tǒng)中總是被標(biāo)記為“node0”.另外,對(duì)于基站,mesh網(wǎng)絡(luò)包含了一定數(shù)量的其他節(jié)點(diǎn),每一個(gè)帶有一個(gè)可識(shí)別的序號(hào)。這個(gè)節(jié)點(diǎn)系統(tǒng)可運(yùn)行XMesh,自組織到一個(gè)網(wǎng)絡(luò),向上至基站,向下直接點(diǎn)路由信息。1.5XMesh結(jié)構(gòu)和優(yōu)點(diǎn)包括:TrueMesh;更多的傳輸服務(wù);更多的服務(wù)質(zhì)量保證;更多的節(jié)點(diǎn)控制;健壯性檢查;時(shí)間同步;空中編程TrueMeshTrueMesh技術(shù)指的是節(jié)點(diǎn)的這樣一種能力,當(dāng)由于無線電磁干擾或控制權(quán)的循環(huán)使用導(dǎo)致部分網(wǎng)絡(luò)掉線時(shí),它能動(dòng)態(tài)地為傳遞數(shù)據(jù)包尋找新的途徑。一個(gè)網(wǎng)絡(luò)通過簡單的節(jié)點(diǎn)間彼此互聯(lián)的散射構(gòu)建本地?zé)o線網(wǎng)絡(luò)?;谝粋€(gè)特殊的無線網(wǎng)絡(luò)環(huán)境,節(jié)點(diǎn)間可相互發(fā)現(xiàn)和構(gòu)建一個(gè)路由樹。因此,在XMesh網(wǎng)絡(luò)中的節(jié)點(diǎn)真正可以是自組織和自處理的。1.5.2多傳輸服務(wù)XMesh提供多種傳輸服務(wù)協(xié)議在彼此的通信之間,他們是:上溯——從一個(gè)node運(yùn)輸包至基站Mote下溯——從基站到節(jié)點(diǎn)單跳——只向鄰近的節(jié)點(diǎn)傳輸包1.5.3更多的質(zhì)量服務(wù)保證XMesh可提供更多的質(zhì)量服務(wù)的模型,他們是:最好的努力——通過鏈路層的確認(rèn),Mote將多次傳送一個(gè)消息給他的直接鄰居??煽康膫鬏敗峁┒说蕉说拇_認(rèn),消息通過mesh傳到基站,然后基站返回一個(gè)確認(rèn)。1.5.4多功能Modes1HighPower——HP提供:TrueMesh能力網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn)能路由數(shù)據(jù)高帶寬,低latencyMote無線電總是上電的2LowPower——LP提供:TrueMesh能力網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn)能路由數(shù)據(jù)高帶寬,低latencyMote的頻率通常停在一個(gè)低的睡眠狀態(tài),然后定期醒來檢查無線頻率的傳輸。3擴(kuò)展的低功耗:只供網(wǎng)絡(luò)的終端節(jié)點(diǎn)使用節(jié)點(diǎn)不能路由數(shù)據(jù)使用星型—網(wǎng)絡(luò)的混合結(jié)構(gòu)1.5.5健壯性診斷在一個(gè)XMesh網(wǎng)絡(luò)里,節(jié)點(diǎn)可以自動(dòng)地傳輸健壯性信息給基站,這些信息包括節(jié)點(diǎn)在網(wǎng)絡(luò)里的無線傳輸,電池電壓與父節(jié)點(diǎn)的無線電信號(hào)強(qiáng)度指示(RSSI)?;綧ote將把這些健壯性的信息傳遞給Moteview和XSniffer來監(jiān)控和診斷XMesh的健壯性。1.5.6時(shí)間同步XMesh-LP支持網(wǎng)絡(luò)的全球時(shí)間同步到±1毫秒,時(shí)間戳用來同步頻率信息,但也用作用戶傳感器測(cè)量的同步1.5.7OTAPXMesh支持空中編程,它允許用戶對(duì)網(wǎng)絡(luò)的所有節(jié)點(diǎn)用新的代碼進(jìn)行重新編程。OTAP使用直接下載的策略將不同的代碼影響下載到不同的Motes。這允許用戶開發(fā)傳感板并僅在感興趣的單元上編程。OTAP也使用一種promiscuous幀聽模式?;究梢酝德牭叫鹿?jié)點(diǎn)的下載,并得知他們需要同樣的影響,然后存儲(chǔ)代碼存儲(chǔ)器中。(transmissions)第二章構(gòu)建XMesh主要內(nèi)容:XMesh的搭建環(huán)境搭建一個(gè)XMesh的應(yīng)用開發(fā)和測(cè)試一個(gè)小型網(wǎng)絡(luò)用二進(jìn)制搭建應(yīng)用獲得CrossbiwCVS代碼庫2.1XMesh的搭建環(huán)境XMesh使用MoteWorks來編譯和搭建,你必須有以下3個(gè)文件:?MakeXbowlocal?Makefile?Make在構(gòu)建任何應(yīng)用時(shí)應(yīng)根據(jù)需要在以上每一個(gè)文件中設(shè)置正確的參數(shù)2.1.1MakeXbowlocal這個(gè)MakeXbowlocal文件包含全局參數(shù),他對(duì)一個(gè)特別的安裝包含了所有的應(yīng)用。這個(gè)文件在/MoteWorks/apps中參數(shù)描述RADIO_CLASS這個(gè)參數(shù)定義了MICA2/MICADOT網(wǎng)絡(luò)通信的頻率。這個(gè)波特率由無線硬件設(shè)定,需要和board上的label相對(duì)應(yīng)??捎玫念悓?duì)Mica2和Mica2Dot是916MHZ、433MHZ和315MHZRADIO_CHANNEL這個(gè)參數(shù)定義了操作的網(wǎng)絡(luò)無線波段,每一個(gè)波特率有多種波段可供操作,用戶應(yīng)選擇一個(gè)網(wǎng)絡(luò)上不被其他無線設(shè)備使用的channel參看MICAz設(shè)置表RADIO_POWER這個(gè)參數(shù)定義了radio的powerjibieDEFAULT_LOCAL_GROUP本地組標(biāo)記了網(wǎng)絡(luò)中每一個(gè)可通信的節(jié)點(diǎn)。群標(biāo)號(hào)是一個(gè)供多網(wǎng)絡(luò)在同一個(gè)波特率上操作的方式,并且通過群組號(hào)進(jìn)行通信下表列出了MICAZ802.15.4頻率的所有可用channels。USA/FCC&Canada注冊(cè)機(jī)構(gòu)總共分配了27個(gè)channels,Channels11到26在2.4GHZ波特率上。2.1.2Makefile這個(gè)文件包含特殊的參數(shù)。它定義的大多數(shù)高級(jí)別的服務(wù),作為特殊的應(yīng)用列在一張目標(biāo)列表中。文件在/MoteWorks/apps/<specificappname>/2.2構(gòu)建一個(gè)XMesh的應(yīng)用構(gòu)建一個(gè)XMesh-HP的應(yīng)用來說明構(gòu)建一個(gè)多跳的網(wǎng)絡(luò)。我們將要開發(fā)的這個(gè)應(yīng)用是XMeshCountToLeds應(yīng)用,在這個(gè)應(yīng)用中,每一個(gè)節(jié)點(diǎn)每秒增加它自己的數(shù)。并將值返回給基站供檢測(cè)用。證明count應(yīng)用在LEDs列出數(shù)值。需要:至少3各節(jié)點(diǎn)。Mote編程板,在你的PC和mote網(wǎng)絡(luò)間編寫和實(shí)現(xiàn),MIB520通信,PC,CD.第三章硬件概述(略)第四章XMesh概述關(guān)于XMesh如何構(gòu)建ad-hoc網(wǎng)絡(luò)的概述4.1XMesh功耗的概述Crossbow傳感網(wǎng)絡(luò)能運(yùn)行許多不同策略的功耗,每一種策略是一個(gè)在功能和數(shù)據(jù)率之間的交互,對(duì)于有持久功率的系統(tǒng)來說,XMesh-HP是最好的選擇。這個(gè)提供了最好的保文速率,對(duì)于radio的典型波特率,對(duì)電池操作系統(tǒng)來講,需要數(shù)月或數(shù)年的生命期XMesh-LP和XMesh-ELP是通常使用的4.1.1XMesh-HP在這一模塊,Moteradio和處理器是連續(xù)的提供能量。這一消耗在15到30mA之間,主要依賴于Mote的類型。Motes能在任何時(shí)候接受和傳送報(bào)文。Route更新報(bào)文和健康信息被一一個(gè)很快的速率它將減少時(shí)間,在為一個(gè)新的mote加入到mesh里構(gòu)建一個(gè)新的mesh4.1.2XMesh-LP低功率的mesh能靜態(tài)或動(dòng)態(tài)地運(yùn)行在任何時(shí)間,最好的功率效率通過Xmesh-LP到達(dá)。在這種模式下,所有的motes是在±1mesc上是時(shí)間同步的。Motes一般是每秒喚醒8次,時(shí)間同步,對(duì)一個(gè)非常短的interval,去查看radio是否檢測(cè)任何操作信號(hào)在有噪聲的背景下。如果是這樣,radio正在保持接收信號(hào),這一操作將導(dǎo)致當(dāng)前80uA的。當(dāng)前的總能量依賴于收到和傳輸?shù)膱?bào)文數(shù)量。當(dāng)傳輸?shù)臄?shù)據(jù)在每3分鐘這個(gè)通常的功率在一個(gè)有50個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)。當(dāng)前獲得平均的傳感器數(shù)據(jù)將會(huì)增加這個(gè)。XMesh-LP可被配置成很低的功耗通過減少活動(dòng)時(shí)間和在一個(gè)很低的功率上傳送。Route的最新的間隔也被設(shè)置在一個(gè)很低功率以維護(hù)電量。這也導(dǎo)致一個(gè)更長的mesh信息時(shí)間。4.1.3XMesh-ELPELP模型是僅為葉節(jié)點(diǎn)和運(yùn)行著XMesh-HP的父節(jié)點(diǎn)通信時(shí)而使用。一個(gè)葉節(jié)點(diǎn)被定義為一個(gè)節(jié)點(diǎn),它不能參與mesh,他也不能將信息從孩子結(jié)點(diǎn)轉(zhuǎn)發(fā)到父節(jié)點(diǎn)。ELP版本結(jié)果是非常低的能量因?yàn)閙ote不需要使用時(shí)間同步活動(dòng)的節(jié)點(diǎn)來檢查radio報(bào)文。這個(gè)mote能睡眠很長的一段時(shí)間。這個(gè)模型里,mote維持了一張到鄰居的的列表來記錄它可選擇的父節(jié)點(diǎn)。當(dāng)他到達(dá)父節(jié)點(diǎn)的時(shí)候沒有一個(gè)連接確認(rèn),它將尋找另一個(gè)父節(jié)點(diǎn)。這個(gè)會(huì)非??斓陌l(fā)生或者或一些時(shí)間,如果RF環(huán)境或mesh確認(rèn)機(jī)制有了很大的變換。4.2構(gòu)造多跳Mesh網(wǎng)絡(luò)構(gòu)建和維持一個(gè)Mesh網(wǎng)絡(luò),下面的平行進(jìn)程將被包含一個(gè)節(jié)點(diǎn)首先在它鄰居中偵聽并用那些信息來更新一個(gè)鄰居的列表,他檢測(cè)通過一個(gè)序列號(hào)它是否能很好的偵聽到一個(gè)鄰居在一個(gè)多跳的首部,并運(yùn)行一個(gè)EWMA算法來理順那樣的估計(jì)。鄰接表的大小是被一個(gè)宏定義,通常是16的來預(yù)置。如果一個(gè)mote能聽到16個(gè)鄰居,它將從表中將質(zhì)量最低的一個(gè)刪除,基站mote的鄰接表被設(shè)置成一個(gè)更大的值40來處理更多的鄰居。因?yàn)榛就ǔ2粫?huì)運(yùn)行一個(gè)會(huì)限制孩子mote的應(yīng)用。2父節(jié)點(diǎn)選擇節(jié)點(diǎn)搜索他所有的鄰居并從中選擇一個(gè)能承擔(dān)最低的能量代價(jià)來作為他的父節(jié)點(diǎn)。一個(gè)鄰居被認(rèn)為是一個(gè)父親的候選者如果他具有:已經(jīng)進(jìn)入XMesh不是一個(gè)descendant節(jié)點(diǎn)對(duì)最后3個(gè)間隔。這打算避免循環(huán)是一個(gè)ELP節(jié)點(diǎn)一個(gè)XMesh網(wǎng)絡(luò)是網(wǎng)絡(luò)中所有的motes定期廣播路由更新信息,這將包含以下信息:1父節(jié)點(diǎn)號(hào):如果節(jié)點(diǎn)沒有進(jìn)入mesh這塊是0xFFFF2cost:它告訴其他節(jié)點(diǎn)向上發(fā)送給基站一個(gè)報(bào)文需要多少的代價(jià)3Hopcount:發(fā)送到基站報(bào)文的跳數(shù)4一個(gè)正確的列表和估計(jì)值。鑒于TinyOS數(shù)據(jù)包的大小,每一個(gè)路由更新消息將包含五個(gè)鄰居。一個(gè)合格的鄰居是他收到一個(gè)估計(jì)比一個(gè)threshold大(100高能量,10是低的)。默認(rèn)狀態(tài)下,鄰居表的大小,對(duì)遠(yuǎn)處節(jié)點(diǎn)是16,基站是40,如果有超過5個(gè)合格的鄰居。節(jié)點(diǎn)將會(huì)按序通過鄰接表并把這些信息放在一個(gè)多跳、有序、可更新的route信息中。這個(gè)route更新信息將會(huì)廣播每一個(gè)RUI為了更好的理解這個(gè)進(jìn)程,我們將首先定義一些相關(guān)的指標(biāo):RE:接收估計(jì),radio接受來自一個(gè)特定鄰居計(jì)算機(jī),通過應(yīng)用EWMA算法得出收到數(shù)據(jù)包的百分比New_Estimate=255*received/(received+missed)RE=(1-alpha)*RE+alpha*New_EstimateAlpha是EWMA的因素,他是一個(gè)介于0和1之間定義一個(gè)新的估計(jì)值的權(quán)重SE:發(fā)送估計(jì)值,radio將質(zhì)量傳送給一個(gè)特定的鄰居,它從一個(gè)鄰居的更新報(bào)文里獲得。當(dāng)一個(gè)節(jié)點(diǎn)廣播一個(gè)路由更新信息,他也將鄰居的RE放在包里,因此鄰居知道這個(gè)節(jié)點(diǎn)的SE是什么注意:SE和RE是被歸在[0,255]的一個(gè)值里,因?yàn)?55很好的質(zhì)量LC:到一個(gè)特殊鄰居的鏈路代價(jià)。只要知道了一個(gè)到特殊節(jié)點(diǎn)的SE和RE,LC就是這樣來計(jì)算:LC=(1<<18)/(SE*RE)注意:如果鏈路質(zhì)量很好,即意味著SE和RE都是255,LC是4,假定鏈路質(zhì)量很好,這個(gè)傳輸每條消耗的代價(jià)是4NC:鄰居代價(jià),一個(gè)值來自一個(gè)特殊的鄰居的一個(gè)特殊的路由更新消息OC:向基站發(fā)送報(bào)文的代價(jià)值。他通過如下計(jì)算:OC=LC+NC路由將會(huì)用最低的OC挑揀鄰居作為它的父親注意:運(yùn)輸?shù)交舅璧哪芰吭蕉?,代價(jià)越高。XMesh然后使用MT成本配置。這個(gè)配置的目的是將傳輸?shù)交镜目偝杀咀钚』T趍esh網(wǎng)絡(luò)里的每一個(gè)節(jié)點(diǎn)將會(huì)廣播它的成本價(jià)值。這個(gè)基站在他的路由更新報(bào)文里廣播“0”。XMesh,每8RUIs執(zhí)行一個(gè)父節(jié)點(diǎn)選擇,它假定一個(gè)節(jié)點(diǎn)需要這個(gè)duration有足夠長度來獲取關(guān)于它的鄰居的信息并基于這些信息做一個(gè)好的決定。XMesh通過引入一個(gè)快速的信息mote加塊Mesh的信息時(shí)間。一旦一個(gè)新節(jié)點(diǎn)進(jìn)入這個(gè)模型,他將執(zhí)行快速信息算法得到一個(gè)次優(yōu)的父節(jié)點(diǎn)以便于快速地進(jìn)入這個(gè)mesh,然后再挑選到最好的父節(jié)點(diǎn)上。因?yàn)橐粋€(gè)次優(yōu)的父節(jié)點(diǎn)有Mesh的一部分,被認(rèn)為是一個(gè)父節(jié)點(diǎn)的候選者,對(duì)一個(gè)節(jié)點(diǎn)連接到Mesh是一個(gè)RUI的功能和跳計(jì)數(shù)。作為一個(gè)thumb規(guī)則,節(jié)點(diǎn)一個(gè)離開基站將會(huì)進(jìn)入在1RUI的Mesh,節(jié)點(diǎn)2跳將會(huì)加入在2RUI2的Mesh,等等如此繼續(xù),需要8RUIs到達(dá)穩(wěn)定。第五章發(fā)送和接受XMesh報(bào)文這部分討論怎么通過XMesh網(wǎng)絡(luò)從一個(gè)應(yīng)用發(fā)送和接收?qǐng)?bào)文。她包括:XMesh多跳信息的描述XMesh信息API使用XMeshAPI5.1TinyOS多跳報(bào)文XMesh報(bào)文是TinyOS報(bào)文加上額外的關(guān)于報(bào)文路由的信息構(gòu)成…….注意:最大數(shù)據(jù)值典型被限制到55bytes,擴(kuò)展數(shù)據(jù)增加了SRAM的使用歸于多跳TOSbuffers的創(chuàng)立。短數(shù)據(jù)長度的報(bào)文能在任何時(shí)候被發(fā)送。TOSH_DATA_LENGTH僅決定最大報(bào)文長度。5.2XMesh報(bào)文的APIXMesh能向上、向下傳送報(bào)文。向下傳送通信將使能有效地從XMsh網(wǎng)絡(luò)上的一個(gè)基站到一個(gè)節(jié)點(diǎn)。向下的路徑同向上的路徑一樣由向上的路由器通過一個(gè)來自節(jié)點(diǎn)的包決定。只有當(dāng)基站已經(jīng)收到一個(gè)來自其他mote的向上的報(bào)文重要:對(duì)于向下通信,基站必須接收到來自其他節(jié)點(diǎn)的至少一個(gè)向上的報(bào)文。報(bào)文可以被QOS層:鏈路層確認(rèn)這個(gè)QOS提供傳輸退休在一個(gè)發(fā)送和接收Mote節(jié)點(diǎn)之間,如果一個(gè)確認(rèn)報(bào)文沒有被發(fā)送者收到。這個(gè)QOS并不能保證一個(gè)多跳路由信息能成功從源傳送到基站,或向下傳送。使用鏈路層的確認(rèn)機(jī)制對(duì)低能量來說是最好的QOS,并對(duì)適合于需要最低能量的系統(tǒng),并不需要100%的數(shù)據(jù)傳輸2點(diǎn)對(duì)點(diǎn)的確認(rèn)這個(gè)QOS使用一個(gè)點(diǎn)對(duì)點(diǎn)的確認(rèn)來組合一個(gè)鏈路層的確認(rèn)。對(duì)于向上的信息,基站將要返回給源一個(gè)確認(rèn)。對(duì)向下的信息,基站將會(huì)從一個(gè)既定的源接受和確認(rèn)。XMeshAPI允許用戶決定這個(gè)報(bào)文是否應(yīng)該被發(fā)送。這個(gè)QOS消耗了比鏈路層確認(rèn)更多的能量,也消耗了更多的RF帶寬。用戶可以使用任何鏈路層或是點(diǎn)對(duì)點(diǎn)的確認(rèn)。XMesh提供一套的TinyOS的數(shù)據(jù)和接口,允許用戶將TinyOS的組件導(dǎo)通并把他們從應(yīng)用中調(diào)出了。用戶可以做到如下:從終端節(jié)點(diǎn)發(fā)送向上和向下報(bào)文,允許或不允許使用點(diǎn)對(duì)點(diǎn)確認(rèn)。在網(wǎng)絡(luò)里攔截處理比如數(shù)據(jù)聚集和壓縮轉(zhuǎn)發(fā)Snooptraffic對(duì)各種語言的聽目的5.2.1多跳收發(fā)接口這個(gè)多跳收發(fā)接口使用應(yīng)用id來為這些命令設(shè)置參數(shù)。用戶被推薦使用這些接口(反之發(fā)送窗口被描述如下。這個(gè)接口包含以下3個(gè)命令):接口:commandvoid*getBuffer(TOS_MsgPtrmsg,uint16_t*length);描述:給定一個(gè)TinyOS報(bào)文的緩沖,提供一個(gè)數(shù)據(jù)指針payloadsection以此一個(gè)應(yīng)用可以能使用像它的長度那樣。如果一個(gè)無意識(shí)的協(xié)議應(yīng)用是發(fā)送一個(gè)帶有接口的包,它必首先調(diào)用getBuffer()來得到一個(gè)指向有效數(shù)據(jù)區(qū)的指針,這允許應(yīng)用來發(fā)送一個(gè)特殊的緩沖區(qū)而不是要求包結(jié)構(gòu)的知識(shí)接口:commandresult_tsend(TOS_MsgPtrmsg,uint16_tlength);描述:這個(gè)發(fā)送端口用AM類型來設(shè)置參數(shù)。它提供了維持后端-臨時(shí)能力使用先前的XMesh用AM類型來區(qū)分不同的應(yīng)用。新的應(yīng)用不應(yīng)該使用這些接口。發(fā)送端將使用一個(gè)特定長度的輸入隊(duì)列發(fā)送一個(gè)報(bào)文緩沖,這個(gè)緩沖應(yīng)該有他的已經(jīng)設(shè)定好的協(xié)議棧,或者通過一個(gè)協(xié)議組件或getBuffer()接口:eventresult_tsendDone(TOS_MsgPtrmsg,result_tsuccess);描述:信號(hào)當(dāng)一個(gè)包發(fā)送使用send()完成5.2.2Receive()和ReceiveAck()接口5.2.3P這個(gè)接口允許應(yīng)用控制/幀聽所有的radio報(bào)文包括廣播報(bào)文,而不管應(yīng)用id和地址5.3使用的報(bào)文API5.3.1活動(dòng)的報(bào)文和應(yīng)用IDTinyOS一直在TOS報(bào)文中使用AM參數(shù)作為一個(gè)服務(wù)器/應(yīng)用的標(biāo)識(shí),當(dāng)AM類型被用在XMesh里(radio層,路由層和傳輸層)。應(yīng)用ID允許應(yīng)用使用相同的AM類型的服務(wù)給不同用戶提供多元化的服務(wù)。用戶僅僅處理應(yīng)用IDs并通過MhopSend/receive接口來收發(fā)報(bào)文。XMesh為報(bào)文決定選擇哪種AM的類型,AM類型對(duì)XMesh是一個(gè)外部變量,當(dāng)前網(wǎng)絡(luò)中有16種預(yù)先定義的XMesh,這些是用戶不該用作其他的目的的。5.3.2向上發(fā)送報(bào)文簡單地調(diào)用這些發(fā)送命令CallMhopSend.send(BASE_STATION_ADDRESS,MODE_UPSTREAM,&gMsgBuffer,sizeof(bfr));使下面發(fā)送sendDone事件eventresult_tSend.sendDone(TOS_MsgPtrpMsg,result_tsuccess){returnSUCCESS};5.3.3使用點(diǎn)對(duì)點(diǎn)確認(rèn)向上發(fā)送報(bào)文為了接受到確認(rèn)包,應(yīng)用需要連線:AppM.RcvAck->XMeshRouter.ReceiveAck[appID];appID應(yīng)該同樣在MhopSend里的一樣,然后應(yīng)用使用ReceiveAck事件eventTOS_MsgPtrRcvAck.receive(TOS_MsgPtrpMsg,void*payload,uint16_tpayloadLen){reu//heserscansetthestatetostartsendingnextpacket}一個(gè)普通的模型是發(fā)送一個(gè)報(bào)文后啟動(dòng)一個(gè)短的定時(shí)器。如果在時(shí)間到之前,端到端的確認(rèn)沒有被接收到,應(yīng)用就決定時(shí)候重新發(fā)送報(bào)文。建議的時(shí)間間隔是10s對(duì)一個(gè)XMesh-LP和20ms對(duì)一個(gè)XMesh-HP一個(gè)典型的例子是:在一個(gè)發(fā)送任務(wù)中,發(fā)送報(bào)文并啟動(dòng)定時(shí)器:if((callSend.send(BASE_STATION_ADDRESS,MODE_UPSTREAM_ACK,&gMsgBuffer,sizeof(UpStream_t)))==SUCCESS){callTimerAck.start(TIMER_ONE_SHOT,20);//forhighpowerstackbAckWait=TRUE;}當(dāng)定時(shí)器到期時(shí),就決定是否在重新分組的基礎(chǔ)上重新發(fā)送報(bào)文eventresult_tTimerAck.fired(){if(NUM_RETRY!=num_retry++){postsendTask();}else{//reachretrylimitnum_retry=0;bAckWait=FALSE;}returnSUCCESS;}如果端到端的確認(rèn)被收到在定時(shí)器到期前,取消時(shí)鐘:eventTOS_MsgPtrRcvAck.receive(TOS_MsgPtrpMsg,void*payload,uint16_tpayloadLen){if(bAckWait){callTimerAck.stop();num_retry=0;bAckWait=FALSE;}returnpMsg;}注意:沒有全局的XMesh序列號(hào)(這個(gè)在XMesh中的序列號(hào)多跳路由的首部是在每一跳的基礎(chǔ)上,用于鏈路質(zhì)量計(jì)算)所以最終的確認(rèn)不進(jìn)行序列編號(hào)的確認(rèn)數(shù)據(jù)包,用戶應(yīng)用程序不應(yīng)該發(fā)出一個(gè)新的確認(rèn)數(shù)據(jù)包,如果對(duì)先前報(bào)文的確認(rèn)沒有收到5.3.4向下發(fā)送報(bào)文有2中情景用來向下發(fā)送報(bào)文:直接從基站發(fā)送從PC機(jī)或其他連接到主機(jī)上的基站如果從基站發(fā)送,就使用下面的命令:callMhopSend.send(downstream_node_id,MODE_DOWNSTREAM,&gMsgBuffer,length);//andimplementthesendDoneevent:eventresult_tSend.sendDone(TOS_MsgPtrpMsg,result_tsuccess){returnSUCCESS;}如果向下發(fā)送的報(bào)文來自PC機(jī)或其它通過運(yùn)行AMeshBase基站的主機(jī),PC代碼需要:將向下的節(jié)點(diǎn)號(hào)傳遞給TOSMsg首部地址把放在TOSMsg首部的類型區(qū)域把socket號(hào)放在socket區(qū)域計(jì)算CRC不改變多跳首部,是XMesh的內(nèi)部。XMesh在向下發(fā)送前將余下的空間填滿5.3.5用端對(duì)端的確認(rèn)發(fā)送向下報(bào)文如果從基站發(fā)送,調(diào)用下面的發(fā)送命令:callMhopSend.send(downstream_node_id,MODE_DOWNSTREAM_ACK,&gMsgBuffer,length);//andimplementthesendDoneevent:eventresult_tSend.sendDone(TOS_MsgPtrpMsg,result_tsuccess){returnSUCCESS;}如果向下的包從一個(gè)PC機(jī)或其他通過運(yùn)行XMeshBase基站的主機(jī)發(fā)送,除了類型領(lǐng)域,其他的一樣PC的代碼應(yīng)該也能檢查一個(gè)對(duì)AM247類型的回滾,這是一個(gè)從節(jié)點(diǎn)到基站的段對(duì)端的確認(rèn)。第六章XMesh路由控制有時(shí)用戶需要基于網(wǎng)絡(luò)狀態(tài)給出些應(yīng)用層的決定,為了適應(yīng)這一需要,XMesh提供一個(gè)路由控制接口(MoteWorks/interfaces)接口:commanduint16_tgetParent()描述:返回父節(jié)點(diǎn)地址接口:commanduint16_getDepth()描述:返回節(jié)點(diǎn)的深度,深度被定義為離開基站的跳數(shù)….…..第七章XMesh-LP(LowPower)這章討論XMesh中的低功能節(jié)點(diǎn)。也將討論:低功耗的操作是什么低功率策略7.1低功耗操作處理器功耗模式XMeshmote可以被配置成2種方式來接受數(shù)據(jù),高功率和低功率。在高功率中,節(jié)點(diǎn)使得XMesh網(wǎng)絡(luò)總在工作。這個(gè)Mote的處理器和radio一直地消耗功率。Radio是正常的接收mode有哪次能在任何時(shí)候偵聽到所有鄰居的通信。這是mode向基站傳輸報(bào)文的最高帶寬。一個(gè)典型的處理器有幾種操作modes來消耗不同數(shù)量的能量。對(duì)一個(gè)完全活躍的mode。處理器消耗最大量的能量,通常在8mA的范圍內(nèi),最低功耗消費(fèi)的mode,一些構(gòu)成了深度睡眠的mode處理器只能按順序消耗15Amps處理器間的不同時(shí)處理器的具體模式。用戶應(yīng)該查閱用戶手冊(cè),…..典型地,最淺睡眠的mode將會(huì)沒有運(yùn)行的外設(shè),并為SRAM提供保留,通常需要一個(gè)外部中斷來喚醒進(jìn)程,在大多數(shù)應(yīng)用中,額外的32kHz時(shí)鐘被用來喚醒信號(hào)源在TintOS,用戶并不知道能量的管理。沒有任何更長的明確的被OS調(diào)用的能量管理,這樣將使得處理器進(jìn)入睡眠。相反,因?yàn)門inyOS是一個(gè)基于任務(wù)的OS事件驅(qū)動(dòng),一旦隊(duì)列空了,調(diào)度就將處理器睡眠包含在決定睡眠mode的處理進(jìn)程是一系列處于活動(dòng)狀態(tài)的處理外設(shè)。能量管理模塊將確保睡眠modeset將會(huì)是最低功耗的,將會(huì)適應(yīng)當(dāng)前正確的活動(dòng)設(shè)備。TinyOS的設(shè)計(jì)者認(rèn)為,既然檢驗(yàn)?zāi)軌蜓舆t睡眠操作,實(shí)際的檢驗(yàn)在睡眠命令調(diào)用的之前發(fā)生,因此,底層的驅(qū)動(dòng)有責(zé)任在開始和結(jié)束之后調(diào)用檢驗(yàn)和。詳細(xì)的課查閱scheduler.candHPLPowerManagement.ncsourcefiles.RadioPowerModesRsdio傳感器典型地有2個(gè)操作模式,它有一個(gè)傳送和接收的狀態(tài)?;谔厥獾膔adio傳感器,theTX(Transmit)andRX(Receive)操作的消耗在10to20mA.的范圍內(nèi),對(duì)額外的TX、RX,radio傳感器有一系列的低功率狀態(tài)。當(dāng)傳感器完全停電的時(shí)候,它消耗大約3μW.7.1.1低功耗策略既然OS已經(jīng)接管了處理器的能量管理工作,焦點(diǎn)也就轉(zhuǎn)向低功率的即時(shí)通信。需要被標(biāo)記,大多數(shù)的傳感器網(wǎng)絡(luò)應(yīng)用有很低的數(shù)據(jù)速率而不需要持續(xù)的處理或網(wǎng)絡(luò)行為。任何試圖減小能量的策略應(yīng)該能利用典型的傳感器網(wǎng)絡(luò)低循環(huán)的應(yīng)用要求。然而,當(dāng)發(fā)送報(bào)文的時(shí)候,它沒有足夠來斷電,一個(gè)radio必須能從他的peers中接收?qǐng)?bào)文,并知道什么時(shí)候打開接受的radioPowerCycling網(wǎng)絡(luò)中的一些節(jié)點(diǎn)在先前就被邊界設(shè)備所獲之,就不需要再加入路由。這些設(shè)備能在需要傳送數(shù)據(jù)的時(shí)候用低功耗策略傳送,在傳送完畢的時(shí)候斷電。假設(shè)這些邊界設(shè)備能連到一個(gè)節(jié)點(diǎn)上處理通過網(wǎng)絡(luò)來自邊界設(shè)備的報(bào)文。PowerCycling在一個(gè)已知的隊(duì)列PowerCyclingonaKnownSchedule廣播電臺(tái)在一個(gè)特定的時(shí)間間隔中向一個(gè)網(wǎng)絡(luò)中的所有節(jié)點(diǎn)廣播。每一個(gè)使用這一策略的節(jié)點(diǎn)將定期功率無線電偵聽活動(dòng)。這個(gè)監(jiān)聽時(shí)間的一個(gè)節(jié)點(diǎn)是固定的間隔,每個(gè)通道的監(jiān)控也是固定的。信道間的監(jiān)控是通過網(wǎng)絡(luò)的。因此,如果任何節(jié)點(diǎn)希望與其鄰居通信,它將在傳送報(bào)文前的喚醒時(shí)間傳遞一個(gè)喚醒序列,轉(zhuǎn)遞前的實(shí)際信息。以這種方式,如果任何鄰國節(jié)點(diǎn)發(fā)現(xiàn)任何無線電活動(dòng),在其渠道的監(jiān)測(cè),將繼續(xù)進(jìn)行,直至該郵件完全接受。這一戰(zhàn)略使節(jié)點(diǎn)斷電大多數(shù)的時(shí)間是斷電的,只有在信道監(jiān)聽和報(bào)文傳送的時(shí)候是上電的。PowerCycling在一個(gè)同步隊(duì)列中在先前的策略中,網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn)在一個(gè)特定的間隔在他的radio上power。如果一個(gè)節(jié)點(diǎn)每秒監(jiān)聽信道8次,然后在每個(gè)信道上監(jiān)聽的時(shí)間間隔是125ms。當(dāng)一個(gè)基點(diǎn)要發(fā)送數(shù)據(jù),他就必須首先發(fā)送一個(gè)125ms的喚醒序列或這個(gè)較長的時(shí)期。這樣即時(shí)在向其鄰居節(jié)點(diǎn)發(fā)送簡單的提示的時(shí)候都會(huì)消耗大量的能量。喚醒序號(hào)必須掃描整個(gè)的間隔是因?yàn)楣?jié)點(diǎn)不是同步的。不同步的節(jié)點(diǎn)不會(huì)知道鄰居節(jié)點(diǎn)偵聽信道時(shí)候精確地外部值在一個(gè)同步序列上,每一個(gè)節(jié)點(diǎn)都會(huì)通過相同的window定期監(jiān)控信道,然后喚醒隊(duì)列將動(dòng)態(tài)減少,這個(gè)時(shí)間窗口如果在鄰接點(diǎn)的1ms之內(nèi)的話,就能確保每一個(gè)節(jié)點(diǎn)將會(huì)監(jiān)聽彼此之間在1ms內(nèi)的活動(dòng)。因此喚醒隊(duì)列僅需要2ms7.1.2低功耗性能測(cè)量技術(shù)Period長2次連續(xù)的監(jiān)聽操作的總長。如果一個(gè)節(jié)點(diǎn)每秒監(jiān)聽8次,則這個(gè)長度是125ms帶寬由Period長度決定,如果長度是15ms,帶寬是每秒8個(gè)包延遲延遲由監(jiān)聽period的持續(xù)時(shí)間決定的。如果持續(xù)時(shí)間是125ms,則每一個(gè)鏈路的延遲是125ms能量檢測(cè)每一個(gè)節(jié)點(diǎn)的能量一定是花在定期信道檢測(cè)的活動(dòng)上。傳輸能量:每一個(gè)包傳輸?shù)哪芰堪瑔拘殃?duì)列接收能量:每一個(gè)包的接收能量7.1.3低功耗技術(shù)分析Period長VS帶寬和延遲Period長與延遲正比,與貸款成反比。增加period長會(huì)降低帶寬而提高延遲Period長VS能量消耗這個(gè)Period長在傳輸和接收能兩反面起作用,當(dāng)監(jiān)聽periods是非同步的活著包需要用一個(gè)喚醒隊(duì)列發(fā)送出去,必須擴(kuò)展整個(gè)的period長度Period越長,喚醒隊(duì)列就必須掃描更大的period長。如果接收者假定不同步,則接收者將在period長的中期上電。因此接收能量總是平均增加傳輸能量的一半。7.1.4時(shí)間無線同步棧和定期喚醒檢查無線電棧使用有時(shí)間Synchronization服務(wù)提供的同步時(shí)鐘,來對(duì)定期喚醒檢查排隊(duì)通過發(fā)送RSSI,這個(gè)通過以下到達(dá):一個(gè)定期的檢查被初始化,當(dāng)時(shí)鐘的低7位全0或128ms,一個(gè)時(shí)鐘時(shí)間對(duì)每一個(gè)喚醒檢查必須是很好的排列。當(dāng)一個(gè)喚醒檢查需要被排隊(duì)的時(shí)候,無線棧就獲取當(dāng)前的時(shí)間,直到最低位為0,時(shí)鐘節(jié)拍一直計(jì)數(shù),然后計(jì)算一個(gè)將來喚醒檢查的隊(duì)列。這個(gè)方法允許時(shí)鐘向前向后移動(dòng)而不引起不必要的時(shí)鐘打斷合適的同步之前,節(jié)點(diǎn)依賴于時(shí)鐘位同步的值,這將導(dǎo)致定期抽樣的128ms間隔7.1.5無線棧和包傳輸為喚醒檢查排隊(duì)無線棧也基于同步時(shí)鐘檢測(cè)包傳輸,有3種類型的傳輸?FullExtendedPreamble?ShortExtendedPreamble?StandardPreamble不同類型的包傳輸和時(shí)間同步是基于接收表列的FullExtendedPreamble:與所有的鄰居節(jié)點(diǎn)通信而不管當(dāng)前的時(shí)間同步。包傳輸在喚醒檢查后15ms開始通信,因此節(jié)點(diǎn)以最小代價(jià)同步傳輸ShortExtendedPreamble:只用在已經(jīng)同步的節(jié)點(diǎn)間通信。這個(gè)包傳輸被排列成先前的傳遞,當(dāng)其他的節(jié)點(diǎn)作為傳輸樣本的時(shí)候,節(jié)點(diǎn)將會(huì)探測(cè)即將到來的傳輸并在實(shí)際數(shù)據(jù)包到來之前打開radioStandardPreamble:被用在高能量節(jié)點(diǎn)間的通訊,包傳輸沒有包含額外的bytes并安排在定期喚醒檢查之間傳輸。它可以在不引起周圍節(jié)點(diǎn)喚醒的時(shí)候傳輸包的傳輸類型網(wǎng)絡(luò)棧使用不同包傳輸類型依賴于應(yīng)該發(fā)出的包長度節(jié)點(diǎn)的平均能量消耗可以由傳輸和接收到的包傳輸類型和數(shù)量計(jì)算出,這個(gè)期望的節(jié)點(diǎn)生命期可使用itheRXcost,TXcost,andRFWake-up檢測(cè)代價(jià)等參數(shù)計(jì)算就如由每一種接收和發(fā)送的包類型序號(hào)。第八章XMesh-ELP8.1ELP是什么?XMesh-ELP到達(dá)了最低的操作功耗,因?yàn)樗械膍ode都處于睡眠狀態(tài)。只是位于網(wǎng)絡(luò)邊界的節(jié)點(diǎn)工作。這些節(jié)點(diǎn)不向上、向下或向其他的mode傳世報(bào)文。他們只能是其他mode的孩子而不可能是父節(jié)點(diǎn)。如圖示:這些節(jié)點(diǎn)被用在數(shù)據(jù)的立即發(fā)送。這種類型的設(shè)備通常睡眠從幾分鐘、幾個(gè)小時(shí)或幾天不等。一些使用ELP設(shè)備的例子是:低交換,每天僅發(fā)送幾次報(bào)文。在這個(gè)應(yīng)用中,設(shè)備必須快速喚醒并發(fā)送報(bào)文電池操作一天用幾次。這種類型的應(yīng)用需要使得機(jī)器上電并啟動(dòng)通信部分一段時(shí)間,然后繼續(xù)睡眠ELP通過如下進(jìn)入mesh的:掛在到父節(jié)點(diǎn)。持續(xù)上電直到他加入到mesh進(jìn)入睡眠狀態(tài)。ELP同時(shí)保存鄰居表,下次使用相同將節(jié)點(diǎn)啟動(dòng),如果不成功,它將使用表中的另外的父節(jié)點(diǎn)。他周邊的上電并傳輸健狀的報(bào)文使用端對(duì)端的確認(rèn)機(jī)制。如果接到一個(gè)確認(rèn),他們將睡眠,沒有接到確認(rèn),則需要試幾次在放棄前。ELPmode傳輸更新但是最終才報(bào)告他的代價(jià),即其他的mode不能把他們當(dāng)做父節(jié)點(diǎn)。ELPmode假定網(wǎng)絡(luò)協(xié)議與他們的父節(jié)點(diǎn)是靜態(tài)的。如果鄰居經(jīng)歷極端變化,如所有的節(jié)點(diǎn)斷電。然后ELPmode將會(huì)啟動(dòng)一個(gè)快速地信息處理,從而在它再次睡眠之前獲得新的父節(jié)點(diǎn)。這通常意味著ELP節(jié)點(diǎn)總為2-3個(gè)外部路由更新。8.2ELP的操作理論啟動(dòng)mode需要進(jìn)入mesh。這個(gè)通過條用ElpI.route_discover(rui).完成,服務(wù)器等待rui*(ROUTE_UPDATE_INTERVALS)來加入mesh。ElpI.route_discover_done(success,parent)這個(gè)事件信號(hào)的結(jié)果是:如果是True,則ELP節(jié)點(diǎn)成功加入到mesh并且父節(jié)點(diǎn)參數(shù)將包含父節(jié)點(diǎn)的id。失敗的,就沒有加入到mesh,父節(jié)點(diǎn)保留廣播地址。用戶需要決定是否再試一次或是睡眠。ELPMote加入到mesh后,ElpI.sleep()將被觸發(fā),而ELP是睡眠節(jié)點(diǎn)時(shí),健康報(bào)文將被發(fā)送到基站并按預(yù)期從基站接收到一個(gè)確認(rèn)。如果預(yù)期確認(rèn)在既定時(shí)間沒有收到,將再試一次,之后,因失敗返回sleepdone()并不再嘗試。直到被喚醒。如果收到確認(rèn),服務(wù)器將停止XMesh啟動(dòng)時(shí)鐘并把radio睡眠。如此重復(fù)。用force_sleep()參數(shù)控制行為,工作模式如下:構(gòu)建XMesh-ELPELP的應(yīng)用需要如下代碼,外部中斷喚醒用戶應(yīng)用,應(yīng)用調(diào)用ElpI.wake()——打開radio并加入meshasynceventresult_tFireDetect.alert(){callElpI.wake();//turnontheradioandrejointheMesh}TheapplicationwaitsuntilElpI.wakedone()andthensendsradiomessages.eventresult_tElpI.wake_done(result_tss){callMhopSend.send(…);}Aftertheradiomessagehasbeensenttheapplicationcallsmode.;NOTE:ElpI.sleep()returnsSUCCESSifthemotehasreturnedtoELPsleepmode.ElpI.sleeptoretu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論