两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種適用于傳感器網(wǎng)絡(luò)協(xié)議的Beacon協(xié)調(diào)機(jī)制的制作方法

文檔序號(hào):11254578閱讀:1551來源:國知局
一種適用于傳感器網(wǎng)絡(luò)協(xié)議的Beacon協(xié)調(diào)機(jī)制的制造方法與工藝

本發(fā)明涉及無線傳感器網(wǎng)絡(luò)。更具體地,涉及一種適用于傳感器網(wǎng)絡(luò)協(xié)議的beacon協(xié)調(diào)機(jī)制。



背景技術(shù):

近年來,隨著無線通信技術(shù)和微電子技術(shù)的發(fā)展,無線傳感器網(wǎng)絡(luò)wsn(wirelesssensornetwork)已經(jīng)被列為21世紀(jì)最有影響力的技術(shù)之一。wsn是一種分布式傳感網(wǎng)絡(luò),它的末梢是可以感知和檢查外部世界的傳感器。wsn中的傳感器通過無線方式通信,因此網(wǎng)絡(luò)設(shè)置靈活,設(shè)備位置可以隨時(shí)更改,還可以跟互聯(lián)網(wǎng)進(jìn)行有線或無線方式的連接,通過無線通信方式形成的一個(gè)多跳自組織網(wǎng)絡(luò)。wsn具有節(jié)點(diǎn)移動(dòng)性小,節(jié)點(diǎn)密度大,傳輸距離短以及數(shù)據(jù)通信速率較低,通信鏈路的工作狀態(tài)相對不穩(wěn)定等特點(diǎn)。無線傳感器網(wǎng)絡(luò)的媒體控制接入(mediaaccesscontrol,mac)層設(shè)計(jì)相對于傳統(tǒng)無線自組網(wǎng)(mobilead-hocnetwork,manet)最大的不同在于節(jié)點(diǎn)的能量有限。因此wsn的研究主要集中在其mac協(xié)議即ieee802.15.4協(xié)議。近年來對于協(xié)議中的csma機(jī)制研究較多,而對于節(jié)點(diǎn)數(shù)較多情況下的beacon碰撞問題分析較少。以下對于csma的現(xiàn)有研究進(jìn)行簡要介紹。

針對ieee802.11中的csma算法,2001年giuseppebianchi提出了csma算法的馬爾科夫鏈模型,其后許多學(xué)者基于這個(gè)模型對wlan中的csma算法進(jìn)行了理論研究。但由于ieee802.11中的csma算法與ieee802.15.4中有所不同,因此這個(gè)模型對ieee802.15.4并不適用,并且由于無線傳感器網(wǎng)絡(luò)速率較低,bianchi模型提出的基礎(chǔ)條件——信道飽和也并不合理。

基于bianchi提出的模型,sofiepollin等人注意到了ieee802.15.4中的csma機(jī)制與ieee802.11中的csma機(jī)制并不相同,他們通過在模型中在每次發(fā)包結(jié)束后添加相同數(shù)量的時(shí)隙等效為非飽和信道,試圖將模型推廣至非飽和信道的情況。但在ieee802.15.4的csma/ca機(jī)制中,由于在實(shí)際的低速網(wǎng)中數(shù)據(jù)包的到達(dá)一般是poisson過程,因此這種做法并不是很切合實(shí)際。

j.misic等人又在前人的模型基礎(chǔ)上提出了更切合實(shí)際的模型,并在模型中加入了delayline的狀態(tài)和用“0”表示的buffer為空的狀態(tài)。但他們的模型計(jì)算所得的數(shù)據(jù)與仿真結(jié)果相差甚遠(yuǎn)。

mustafae.等研究人員主要研究時(shí)隙(slotted)和非時(shí)隙(unslotted)兩種csma/ca對網(wǎng)絡(luò)的影響,提出了采用凸優(yōu)化方法選取占空比的算法。

可以看到,近年來有大量針對csma機(jī)制的研究,無論是對基礎(chǔ)機(jī)制的研究,還是針對應(yīng)用的優(yōu)化,都有了一定的進(jìn)展,且出現(xiàn)了許多具有新機(jī)制、新想法的mac協(xié)議。但是,很少有研究人員對于節(jié)點(diǎn)數(shù)較多的網(wǎng)絡(luò)場景中的不同級節(jié)點(diǎn)的beacon碰撞問題進(jìn)行分析,由于傳統(tǒng)的幀結(jié)構(gòu)中,每個(gè)節(jié)點(diǎn)的beacon的發(fā)送時(shí)序都一樣,當(dāng)節(jié)點(diǎn)數(shù)增多時(shí),就會(huì)引起beacon的嚴(yán)重碰撞,因此需要設(shè)計(jì)新的機(jī)制來解決節(jié)點(diǎn)beacon發(fā)送的碰撞問題。

因此,需要提供一種適用于傳感器網(wǎng)絡(luò)協(xié)議的beacon協(xié)調(diào)機(jī)制。



技術(shù)實(shí)現(xiàn)要素:

為了克服上述缺陷,針對多跳傳感器網(wǎng)絡(luò)中不同級別的ffd(full-functiondevice)節(jié)點(diǎn)發(fā)送beacon的碰撞問題,本發(fā)明提出一種starttime運(yùn)行機(jī)制來有效降低beacon的碰撞概率。

為達(dá)到上述目的,本發(fā)明采用下述技術(shù)方案:

一種適用于傳感器網(wǎng)絡(luò)協(xié)議的beacon協(xié)調(diào)機(jī)制,包括以下步驟:

建立并重組pan網(wǎng)絡(luò);

進(jìn)行beacon發(fā)送;

設(shè)備的入網(wǎng)與斷連;

進(jìn)行beacon同步;

基于starttime運(yùn)行原則,協(xié)調(diào)beacon的發(fā)送時(shí)序。

優(yōu)選地,建立pan網(wǎng)絡(luò)包括以下步驟:

ffd發(fā)送setdefaultpib為true的mlme-reset.request原語重啟mac層;

active信道掃描,選取合適的pan標(biāo)識(shí)符;

ffd設(shè)置macshortaddress<0xffff;

ffd發(fā)送pancoordinator參數(shù)為true的mlme-start.request原語;

mac層更新幀結(jié)構(gòu)設(shè)置和信道選項(xiàng);

mac層返回狀態(tài)為success的mlme-start.confirm原語。

優(yōu)選地,重組pan網(wǎng)絡(luò)包括以下步驟:

協(xié)調(diào)器接收coordrealignment參數(shù)為true的mlme-start.request原語;

協(xié)調(diào)器重組pan網(wǎng)絡(luò),更新設(shè)置;

判斷設(shè)備是否正在發(fā)送beacon,若是,則激活間接傳輸并確認(rèn)下次使用新的設(shè)置進(jìn)行發(fā)送;若否,則設(shè)備立即發(fā)送重組命令;

判斷重組命令是否發(fā)送成功,若是,則在beacon中放置新的幀結(jié)構(gòu)設(shè)置和信道設(shè)置進(jìn)行發(fā)送,同時(shí)mac層發(fā)送狀態(tài)為success的mlme-start.confirmprimitive原語;若否,則發(fā)送狀態(tài)為信道接入失敗的mlme-start.confirm,上層選擇重新發(fā)送mlme-start.request原語。

優(yōu)選地,進(jìn)行beacon發(fā)送包括以下步驟:

判斷設(shè)備短地址macshortaddress是否為0xffff,若是,則ffd不能發(fā)送beacon;若否,則ffd能夠發(fā)送beacon;

當(dāng)信標(biāo)指數(shù)bo不為15時(shí),ffd設(shè)備使用mlme-start.request原語進(jìn)行beacon發(fā)送;

基于對ffd的判斷進(jìn)行不同的beacon發(fā)送,包括以下情況:

1)、判斷ffd是否為協(xié)調(diào)器,若是,則進(jìn)行beacon發(fā)送;若否,則須與協(xié)調(diào)器進(jìn)行通信后發(fā)送beacon;

2)、判斷ffd是否為全網(wǎng)協(xié)調(diào)器,若是,則ffd忽略strattime并立即發(fā)送beacon;若否,則ffd基于strattime計(jì)算發(fā)送時(shí)間。

進(jìn)一步優(yōu)選地,基于strattime計(jì)算發(fā)送時(shí)間包括以下步驟:

若starttime為0,則ffd立即發(fā)送beacon;

若starttime不為0,則:

1)、若ffd未接收到小于amaxlostbeacons個(gè)連續(xù)的beacon包,則根據(jù)ffd的macbeaconorder繼續(xù)發(fā)送beacon;

2)、若ffd收到了來自協(xié)調(diào)器的beacon,則根據(jù)收到的信息重新設(shè)置beacon發(fā)送設(shè)置;

3)、若ffd沒有收到來自協(xié)調(diào)器的beacon,則發(fā)送mlme-sync-loss.indication原語至上層并立即停止發(fā)送beacon;

上層收到原語后發(fā)送mlme-start.request原語以重啟beacon的發(fā)送;

收到mlme-start.request后,mac層重新設(shè)置macpanid并將其放入beacon包的sourcepanidentifier區(qū);

在macbeacontxtime中記錄最后一次發(fā)送beacon幀的時(shí)間。

優(yōu)選地,設(shè)備的入網(wǎng)具體包括以下步驟:

mac層重啟;

選取pan網(wǎng)絡(luò)后,上層發(fā)送mlme-associate.request原語,獲取phy和macpib參數(shù);

對macassociationpermit進(jìn)行判斷,若為true,則協(xié)調(diào)器允許節(jié)點(diǎn)入網(wǎng);若為false,則協(xié)調(diào)器忽略設(shè)備發(fā)來的入網(wǎng)請求。

優(yōu)選地,設(shè)備的斷連具體包括以下步驟:

設(shè)備發(fā)送斷連命令;

對txindirect進(jìn)行判斷,若為true,則協(xié)調(diào)器通過間接的方式向設(shè)備發(fā)送斷連命令;若為false,則協(xié)調(diào)器將直接發(fā)送斷連命令;

判斷設(shè)備是否收到斷連命令,若是則設(shè)備回復(fù)ack;若否,則判斷設(shè)備已經(jīng)離開網(wǎng)絡(luò);

設(shè)備斷連完成后,移除關(guān)于本pan網(wǎng)絡(luò)的所有參數(shù)。

優(yōu)選地,進(jìn)行beacon同步包括以下步驟:

設(shè)備開啟接收器并在至多[abasesuperframeduration*(2n+1)]內(nèi)進(jìn)行搜尋匹配pan標(biāo)識(shí)符的beacon,其中n=信標(biāo)指數(shù)bo;

判斷搜索結(jié)果,若搜索成功,則設(shè)備將mac頭中的源地址與源pan進(jìn)行匹配;若搜索失敗,則設(shè)備重復(fù)搜索,若達(dá)到最大嘗試次數(shù)amaxlostbeacons仍搜索失敗,則向上層發(fā)送mlme-sync-loss.indication原語;

判斷beacon包中的信息是否等于本地保存的協(xié)調(diào)信息,若是則進(jìn)行下一步判斷;若否,則丟棄該beacon包;

對macautorequest進(jìn)行判斷,若為false,則通知上層;若為ture且beacon中有數(shù)據(jù)負(fù)載,則設(shè)備通知上層并對比包中addresslistfield的地址;

判斷是否有本設(shè)備16位短地址或者64位擴(kuò)展地址且macpanid相同,若是則設(shè)備開始提取間接數(shù)據(jù);若否,則重復(fù)上述過程。

優(yōu)選地,starttime運(yùn)行原則包括:

通過網(wǎng)絡(luò)規(guī)模確定需要支持的鄰節(jié)點(diǎn)數(shù);

基于鄰節(jié)點(diǎn)數(shù)確定超幀指數(shù)so與信標(biāo)指數(shù)bo的差值;

根據(jù)數(shù)據(jù)周期要求確定幀長的大致范圍并進(jìn)一步確定信標(biāo)指數(shù)bo的值和超幀指數(shù)so的值;

若以時(shí)隙為單位進(jìn)行偏移,starttime取偏移量的整倍數(shù);

節(jié)點(diǎn)根據(jù)接收beacon的時(shí)間并與starttime相加得到發(fā)送beacon的時(shí)間。

本發(fā)明的有益效果如下:

多跳無線傳感器網(wǎng)絡(luò)中,不同級別的ffd發(fā)送beacon時(shí),容易發(fā)生beacon碰撞問題,本發(fā)明通過引入starttime機(jī)制來對beacon的發(fā)送時(shí)序進(jìn)行協(xié)調(diào),可以有效降低beacon的碰撞概率,增強(qiáng)網(wǎng)絡(luò)的魯棒性。

附圖說明

下面結(jié)合附圖對本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)的說明。

圖1示出pan網(wǎng)絡(luò)建立過程示意圖。

圖2示出pan網(wǎng)絡(luò)重組過程示意圖。

圖3示出基本入網(wǎng)過程示意圖。

圖4示出基本斷連流程示意圖。

圖5示出同步過程示意圖。

圖6示出starttime位置示意圖。

圖7示出starttime選取原則原理圖。

具體實(shí)施方式

為了更清楚地說明本發(fā)明,下面結(jié)合優(yōu)選實(shí)施例和附圖對本發(fā)明做進(jìn)一步的說明。附圖中相似的部件以相同的附圖標(biāo)記進(jìn)行表示。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下面所具體描述的內(nèi)容是說明性的而非限制性的,不應(yīng)以此限制本發(fā)明的保護(hù)范圍。

本發(fā)明是針對多跳傳感器網(wǎng)絡(luò)中,不同級別的ffd(full-functiondevice)節(jié)點(diǎn)發(fā)送beacon的碰撞問題,提出的一種starttime運(yùn)行機(jī)制來有效降低beacon的碰撞概率,通過引入starttime機(jī)制來對beacon的發(fā)送時(shí)序進(jìn)行協(xié)調(diào),可以有效降低beacon的碰撞概率,增強(qiáng)網(wǎng)絡(luò)的魯棒性。

本發(fā)明的目的通過以下技術(shù)方案來實(shí)現(xiàn):

starttime運(yùn)行機(jī)制:starttime的含義如圖6所示,starttime相當(dāng)于一個(gè)偏移量,節(jié)點(diǎn)根據(jù)自己接收beacon的時(shí)間,并與starttime相加得到自己發(fā)送beacon的時(shí)間。

同步方法:beacon-enabled模式下的所有設(shè)備必須通過beacon同步,這樣才能進(jìn)行間接傳輸和追蹤beacon。設(shè)備只能在beacon中含有具體pan標(biāo)識(shí)符macpanid的網(wǎng)絡(luò)中進(jìn)行beacon同步,若macpanid=0xffff,那么設(shè)備將不會(huì)嘗試beacon同步。收到mlme-sync.request原語后,設(shè)備將嘗試進(jìn)行beacon同步,設(shè)備會(huì)嘗試通過周期性激活接收器跟蹤beacon包。如果不允許跟蹤,但是上一次的同步允許跟蹤,那么設(shè)備還是將檢測一個(gè)周期然后再停止跟蹤。為了達(dá)到beacon同步,設(shè)備需要開啟它的接收器并在至多[abasesuperframeduration*(2n+1)]內(nèi)進(jìn)行搜尋,其中n=信標(biāo)指數(shù)bo(beaconorder)。如果在此期間未收到匹配pan標(biāo)志符的beacon,設(shè)備會(huì)重復(fù)搜尋直到達(dá)到最大嘗試次數(shù)amaxlostbeacons,此時(shí)設(shè)備將向上層發(fā)送mlme-sync-loss.indication原語,此時(shí)loss原因?yàn)閎eacon_loss。設(shè)備需要在macsyncsymboloffset參數(shù)中記錄每次收到beacon幀的時(shí)間邊界,這個(gè)時(shí)間戳必須與自己本身發(fā)送的beacon幀相一致,該beacon保存在macbeacontxtime中,同時(shí)也必須與本地始終一致。時(shí)間戳根據(jù)設(shè)置不同可以是相對的也可以是絕對的。收到beacon幀后,設(shè)備將匹配mac頭中的源地址與源pan標(biāo)識(shí)符,如果beacon包中的這些信息不等于本地保存的協(xié)調(diào)器信息,設(shè)備將直接丟棄這個(gè)beacon包。

當(dāng)beacon包正確接收后,如果macautorequest選項(xiàng)為false,設(shè)備需要通知上層,具體為mlme-beacon-notify.indication原語。若為ture且beacon中有數(shù)據(jù)負(fù)載,那么設(shè)備還是先會(huì)通知上層,具體為mlme-beacon-notify.indication原語,然后設(shè)備會(huì)對比包中addresslistfield的地址,如果有本設(shè)備16位短地址或者64位擴(kuò)展地址,并且macpanid相同,那么設(shè)備將開始提取間接數(shù)據(jù)的過程。如果beacon追蹤被激活,設(shè)備必須在下一個(gè)beacon可能出現(xiàn)的時(shí)間之前打開接收器。

beacon發(fā)送:只有當(dāng)設(shè)備短地址macshortaddress不為0xffff時(shí),設(shè)備才能夠發(fā)送beacon。當(dāng)信標(biāo)指數(shù)bo不為15時(shí),一個(gè)ffd設(shè)備將使用mlme-start.request原語以開始發(fā)送beacon。無論是不是協(xié)調(diào)器節(jié)點(diǎn),ffd設(shè)備都可以發(fā)送beacon。但是如果不是協(xié)調(diào)器節(jié)點(diǎn),此ffd設(shè)備必須跟協(xié)調(diào)器進(jìn)行過通信才能發(fā)送beacon。根據(jù)pancoordinator選項(xiàng)是否為true判斷設(shè)備是否為全網(wǎng)協(xié)調(diào)器,如果ffd設(shè)備是全網(wǎng)協(xié)調(diào)器那么strattime將被忽略,設(shè)備將立即發(fā)送beacon。對于非全網(wǎng)協(xié)調(diào)器的ffd設(shè)備,發(fā)送beacon的時(shí)間由starttime決定,如果strattime=0,那么此設(shè)備同樣也會(huì)立即發(fā)送beacon,若starttime不為0,那么發(fā)送時(shí)間計(jì)算方式如下:

如果設(shè)備未接收到小于amaxlostbeacons個(gè)連續(xù)的beacon包,他將根據(jù)自己的macbeaconorder繼續(xù)發(fā)送自己的beacon。如果設(shè)備收到了來自協(xié)調(diào)器的beacon,即沒有失去同步,那么他將根據(jù)收到的信息重新設(shè)置自己的beacon發(fā)送設(shè)置。如果失去同步了,那么設(shè)備將發(fā)送mlme-sync-loss.indication原語到上層并立即停止發(fā)送beacon,一旦上層收到原語,將立即發(fā)送mlme-start.request原語以重啟beacon的發(fā)送。

收到mlme-start.request后,mac層會(huì)將重新設(shè)置macpanid并將其放入自己beacon包的sourcepanidentifier區(qū)。如果macshortaddress=0xfffe,那么beacon幀中必須包含aextendedaddress,否則可以只包含macshortaddress。最后一次發(fā)送beacon幀的時(shí)間將會(huì)被記錄在macbeacontxtime中。

本發(fā)明中,beacon幀的發(fā)送有優(yōu)先權(quán),即先于所有發(fā)送與接收操作。下面,結(jié)合一個(gè)具體實(shí)施例對本發(fā)明的協(xié)調(diào)機(jī)制進(jìn)行說明。

1、建網(wǎng)與重組:

(1)建立pan網(wǎng)絡(luò)

由ffd發(fā)起,需要完成的工作如圖1:發(fā)送setdefaultpib為true的mlme-reset.request原語重啟mac層,active信道掃描,選取合適的pan標(biāo)識(shí)符。該ffd設(shè)備必須將macshortaddress設(shè)為小于0xffff的值。此ffd將負(fù)責(zé)組建pan網(wǎng)絡(luò)通過發(fā)送pancoordinator參數(shù)為true的mlme-start.request原語。收到此原語后,mac層更新幀結(jié)構(gòu)設(shè)置和信道選項(xiàng),完成操作后mac層會(huì)返回一個(gè)狀態(tài)為success的mlme-start.confirm原語,此設(shè)備正式成為一個(gè)pan協(xié)調(diào)器開始工作。

(2)重組pan網(wǎng)絡(luò)

如果協(xié)調(diào)器接收到一個(gè)coordrealignment參數(shù)為true的mlme-start.request原語,則協(xié)調(diào)器將嘗試改變panid,邏輯信道并重組網(wǎng)絡(luò)如圖2。如果設(shè)備正在發(fā)送beacon,那么下次發(fā)送會(huì)使用新的設(shè)置進(jìn)行發(fā)送,但是間接傳輸要被激活。如果設(shè)備此時(shí)沒在發(fā)送beacon,那么此時(shí)設(shè)備將立即發(fā)送重組命令。如果重組命令由于信道問題沒有發(fā)送成功,那么將發(fā)送一個(gè)狀態(tài)為信道接入失敗channel_access_failure的mlme-start.confirm,那么上層可以選擇重新發(fā)送mlme-start.request原語。

成功發(fā)送重組命令之后,新的幀結(jié)構(gòu)設(shè)置和信道設(shè)置將被放進(jìn)beacon中進(jìn)行發(fā)送,如果正在發(fā)送beacon,等待下一個(gè)周期的beacon,若沒有發(fā)送,立即發(fā)送beacon,mac層會(huì)發(fā)送一個(gè)狀態(tài)為success的mlme-start.confirmprimitive原語。

2、beacon發(fā)送:只有當(dāng)設(shè)備短地址macshortaddress不為0xffff時(shí),設(shè)備才能夠發(fā)送beacon。

當(dāng)信標(biāo)指數(shù)bo不為15時(shí),一個(gè)ffd設(shè)備將使用mlme-start.request原語以開始發(fā)送beacon。無論是不是協(xié)調(diào)器節(jié)點(diǎn),ffd設(shè)備都可以發(fā)送beacon。但是如果不是協(xié)調(diào)器節(jié)點(diǎn),此ffd設(shè)備必須跟協(xié)調(diào)器進(jìn)行過通信才能發(fā)送beacon。如果ffd設(shè)備是全網(wǎng)協(xié)調(diào)器,那么strattime將被忽略,設(shè)備將立即發(fā)送beacon。對于非全網(wǎng)協(xié)調(diào)器的ffd設(shè)備,發(fā)送beacon的時(shí)間由starttime決定,如果strattime=0,那么此設(shè)備同樣也會(huì)立即發(fā)送beacon,若starttime不為0,那么發(fā)送時(shí)間計(jì)算方式如下:如果設(shè)備未接收到小于amaxlostbeacons個(gè)連續(xù)的beacon包,他將根據(jù)自己的macbeaconorder繼續(xù)發(fā)送自己的beacon。如果設(shè)備收到了來自協(xié)調(diào)器的beacon,即沒有失去同步,那么他將根據(jù)收到的信息重新設(shè)置自己的beacon發(fā)送設(shè)置。如果失去同步了,那么設(shè)備將發(fā)送mlme-sync-loss.indication原語到上層并立即停止發(fā)送beacon,一旦上層收到原語,將立即發(fā)送mlme-start.request原語以重啟beacon的發(fā)送。收到mlme-start.request后,mac層會(huì)將重新設(shè)置macpanid并將其放入自己beacon包的sourcepanidentifier區(qū)。如果macshortaddress=0xfffe,那么beacon幀中必須包含aextendedaddress,否則可以只包含macshortaddress。

最后一次發(fā)送beacon幀的時(shí)間將會(huì)被記錄在macbeacontxtime中。

3、入網(wǎng)與斷連:

(1)入網(wǎng)

在嘗試入網(wǎng)之前必須經(jīng)過一次mac層重啟,具體為發(fā)送mlme-reset.request原語,setdefaultpib選項(xiàng)為true,完成activechannelscan和passivechannelscan。信道掃描的結(jié)果將會(huì)用于選取合適pan網(wǎng)絡(luò)中。

如圖3,選取pan網(wǎng)絡(luò)后,上層將發(fā)送mlme-associate.request原語,獲取以下入網(wǎng)所必須的phy和macpib參數(shù):

-phycurrentchannel

-phycurrentpage

-macpanid

-maccoordextendedaddress或者maccoordshortaddress

以上參數(shù)均通過request原語獲得。

當(dāng)macassociationpermit為true時(shí),協(xié)調(diào)器才會(huì)允許節(jié)點(diǎn)入網(wǎng)。同樣設(shè)備只有在某一個(gè)pan網(wǎng)絡(luò)的協(xié)調(diào)器處于允許入網(wǎng)的狀態(tài)時(shí)(通過掃描)才會(huì)發(fā)起入網(wǎng)請求。當(dāng)macassociationpermit為false時(shí),協(xié)調(diào)器將忽略設(shè)備發(fā)來的入網(wǎng)請求。

為了優(yōu)化beacon-enabled模式的入網(wǎng)過程,設(shè)備可以優(yōu)先跟蹤想要加入的網(wǎng)絡(luò)的協(xié)調(diào)器發(fā)送的beacon包。此功能由mlme-sync.request原語(trackbeacon選項(xiàng)設(shè)為true)激活。

設(shè)備通過mlme-associate.request原語嘗試加入已經(jīng)存在的pan網(wǎng)絡(luò),不能嘗試建立自己的pan網(wǎng)絡(luò)。一個(gè)未入網(wǎng)設(shè)備的mac層將發(fā)送入網(wǎng)命令請求入網(wǎng),但如果入網(wǎng)請求命令由于信道原因失敗了(因?yàn)槿刖W(wǎng)請求命令附帶一個(gè)ackrequest,協(xié)調(diào)器將回復(fù)confirm如果收到請求),mac層將會(huì)把結(jié)果返回給上層。但是ack并不意味著設(shè)備已經(jīng)入網(wǎng)。協(xié)調(diào)器需要時(shí)間和根據(jù)資源分配情況來決定是否讓此設(shè)備入網(wǎng)。上層對這個(gè)時(shí)間進(jìn)行設(shè)置(通過macresponsewaittime),如果上層發(fā)現(xiàn)該設(shè)備已經(jīng)入過網(wǎng),那么之前關(guān)于此設(shè)備的信息均將被移除。如果資源允許,那么上層將分配一個(gè)16位短地址給這個(gè)設(shè)備并發(fā)送包含新地址(意味著允許這次入網(wǎng)請求)的入網(wǎng)回復(fù)。同樣,如果資源不允許,協(xié)調(diào)器會(huì)回復(fù)一個(gè)申請狀態(tài)為失敗的入網(wǎng)回復(fù)。如果設(shè)備的入網(wǎng)請求中capabilityinformation區(qū)被置為1,那么協(xié)調(diào)器將根據(jù)自己支持的地址模式給設(shè)備分配16位短地址。如果入網(wǎng)請求中allocateaddresssubfield為0,那么分配的短地址將為0xfffe(這是一個(gè)特殊情況,他表示設(shè)備已經(jīng)入網(wǎng)但是并未為其分配短地址,此時(shí)設(shè)備將使用64位擴(kuò)展地址工作)。

收到協(xié)調(diào)器發(fā)送的入網(wǎng)請求ack后,設(shè)備將等待macresponsewaittime的時(shí)間等待協(xié)調(diào)器決定是否能夠入網(wǎng)。macresponsewaittime參數(shù)是一個(gè)基于網(wǎng)絡(luò)拓?fù)涞膮?shù),它的設(shè)置間接決定了此網(wǎng)中能夠包含多少個(gè)節(jié)點(diǎn)。如果設(shè)備正跟蹤beacon,那么它將一直嘗試從beacon包中提取入網(wǎng)回復(fù)。如果設(shè)備未跟蹤beacon,那么它將在macresponsewaittime后跟蹤入網(wǎng)回復(fù)。如果設(shè)備沒有跟蹤到入網(wǎng)回復(fù),那么它將發(fā)送一個(gè)mlme-associate.confirm(狀態(tài)為no_data),此次入網(wǎng)請求被認(rèn)為是失敗的,此時(shí),上層將停止所有beacon的跟蹤。

由于入網(wǎng)回復(fù)也包含ack請求,請求入網(wǎng)的設(shè)備也需要通過ack告知協(xié)調(diào)器已經(jīng)收到入網(wǎng)回復(fù)。如果associationstatusfield標(biāo)明入網(wǎng)成功,設(shè)備會(huì)保存16位短地址,如果原beacon通過掃描獲得入網(wǎng),那么將會(huì)有協(xié)調(diào)器的擴(kuò)展地址,同樣也要存儲(chǔ)在maccoordextendedaddress里。

如果associationstatusfield標(biāo)明入網(wǎng)未成功,那么設(shè)備的macpanid應(yīng)該設(shè)為默認(rèn)值0xffff。

(2)斷連

斷連請求由上層的mlmedisassociate.request原語發(fā)起。

當(dāng)協(xié)調(diào)器需要某個(gè)已經(jīng)在網(wǎng)內(nèi)的節(jié)點(diǎn)離開網(wǎng)絡(luò)時(shí),設(shè)備會(huì)發(fā)送斷連命令其發(fā)送方式由之前發(fā)送的txindirect選項(xiàng)決定,如圖4:如果txindirect為true,那么協(xié)調(diào)器會(huì)用間接的方式向設(shè)備發(fā)送斷連命令。例如:將設(shè)備地址加入間接傳輸?shù)刂?,由設(shè)備來提取,如果提取不成功,協(xié)調(diào)器默認(rèn)設(shè)備已經(jīng)離開網(wǎng)絡(luò)。如果txindirect為false,那么協(xié)調(diào)器將直接發(fā)送斷連命令,在此種情況下,若因信道原因無法發(fā)送,mac層需要通知上層。同樣斷連命令也包含一個(gè)ack確認(rèn),設(shè)備收到斷連命令后需要發(fā)送ack。如果直接或者間接發(fā)送都失敗,那么協(xié)調(diào)器將認(rèn)為設(shè)備已經(jīng)離開網(wǎng)絡(luò)。如果設(shè)備想離開網(wǎng)絡(luò),那么設(shè)備將向協(xié)調(diào)器發(fā)送斷連請求,即斷連命令。如果因?yàn)樾诺涝驘o法發(fā)送,同樣要通知上層。此斷連請求也包含一個(gè)ack請求,協(xié)調(diào)器再收到后要回復(fù)一個(gè)ack進(jìn)行確認(rèn)。如果ack沒有收到,設(shè)備將認(rèn)為自己已經(jīng)離開網(wǎng)絡(luò)。

如果請求中的源地址等于maccoordextendedaddress,那么設(shè)備同樣認(rèn)為自己已經(jīng)斷連。當(dāng)協(xié)調(diào)器收到一個(gè)這樣的斷連請求時(shí),首先它要確認(rèn)這個(gè)源地址是在本網(wǎng)內(nèi)的某個(gè)設(shè)備的,經(jīng)過確認(rèn)后,協(xié)調(diào)器認(rèn)為設(shè)備已經(jīng)斷連,否則忽略這個(gè)消息。

設(shè)備斷連后,必須移除關(guān)于本pan網(wǎng)絡(luò)的所有參數(shù)。macpanid,macshortaddress,macassociatedpancoord,maccoordshortaddress以及maccoordextendedaddress均需重置為默認(rèn)值。而協(xié)調(diào)器的上層只需要移除關(guān)于此設(shè)備的信息即可。

請求斷連的設(shè)備需要通過mlme-disassociate.confirm原語告訴上層斷連結(jié)果。

4、同步過程如圖5所示:beacon-enabled模式下的所有設(shè)備必須通過beacon同步,這樣才能進(jìn)行間接傳輸和追蹤beacon。設(shè)備只能在beacon中含有具體pan標(biāo)識(shí)符macpanid的網(wǎng)絡(luò)中進(jìn)行beacon同步,若macpanid=0xffff,那么設(shè)備將不會(huì)嘗試beacon同步。收到mlme-sync.request原語后,設(shè)備將嘗試進(jìn)行beacon同步,設(shè)備會(huì)嘗試通過周期性激活接收器跟蹤beacon包。如果不允許跟蹤,但是上一次的同步允許跟蹤,那么設(shè)備還是將檢測一個(gè)周期然后再停止跟蹤。為了達(dá)到beacon同步,設(shè)備需要開啟它的接收器并在至多[abasesuperframeduration*(2n+1)]內(nèi)進(jìn)行搜尋,其中n=信標(biāo)指數(shù)bo。如果在此期間未收到匹配pan標(biāo)志符的beacon,設(shè)備會(huì)重復(fù)搜尋直到達(dá)到最大嘗試次數(shù)amaxlostbeacons,此時(shí)設(shè)備將向上層發(fā)送mlme-sync-loss.indication原語,此時(shí)loss原因?yàn)閎eacon_loss。設(shè)備需要在macsyncsymboloffset參數(shù)中記錄每次收到beacon幀的時(shí)間邊界,這個(gè)時(shí)間戳必須與自己本身發(fā)送的beacon幀相一致,同時(shí)也必須與本地始終一致。時(shí)間戳根據(jù)設(shè)置不同可以是相對的也可以是絕對的。

收到beacon幀后,設(shè)備將匹配mac頭中的源地址與源pan標(biāo)識(shí)符,如果beacon包中的這些信息不等于本地保存的協(xié)調(diào)器信息,設(shè)備將直接丟棄這個(gè)beacon包。

當(dāng)beacon包正確接收后,如果macautorequest選項(xiàng)為false,設(shè)備需要通知上層(mlme-beacon-notify.indication原語)。若為ture且beacon中有數(shù)據(jù)負(fù)載,那么設(shè)備還是先會(huì)通知上層(mlme-beacon-notify.indication原語),然后設(shè)備會(huì)對比包中addresslistfield的地址,如果有本設(shè)備16位短地址或者64位擴(kuò)展地址,并且macpanid相同,那么設(shè)備將開始提取間接數(shù)據(jù)的過程。如果beacon追蹤被激活,設(shè)備必須在下一個(gè)beacon可能出現(xiàn)的時(shí)間之前打開接收器。

5、stattime運(yùn)行:starttime的含義如圖6所示,starttime相當(dāng)于一個(gè)偏移量,節(jié)點(diǎn)根據(jù)自己接收beacon的時(shí)間,并與starttime相加得到自己發(fā)送beacon的時(shí)間。starttime選取原則如圖7,通過網(wǎng)絡(luò)規(guī)??梢源_定需要支持的鄰節(jié)點(diǎn)數(shù),由此可得超幀指數(shù)so(superframeorder)與信標(biāo)指數(shù)bo的差值,根據(jù)數(shù)據(jù)周期要求可以得到幀長的大致范圍,由此確定信標(biāo)指數(shù)bo的值,從而得到超幀指數(shù)so的值。另外由于beacon有可能跨時(shí)隙,若以時(shí)隙為單位進(jìn)行偏移,則需要保證starttime取偏移量的整倍數(shù)。

顯然,本發(fā)明的上述實(shí)施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實(shí)施方式的限定,對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動(dòng),這里無法對所有的實(shí)施方式予以窮舉,凡是屬于本發(fā)明的技術(shù)方案所引伸出的顯而易見的變化或變動(dòng)仍處于本發(fā)明的保護(hù)范圍之列。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
酒泉市| 兖州市| 石渠县| 攀枝花市| 伊宁市| 五寨县| 香格里拉县| 长治市| 尚义县| 海兴县| 星子县| 苏州市| 泰州市| 平定县| 康平县| 娄底市| 锡林郭勒盟| 梁平县| 河北区| 昌黎县| 凌源市| 永昌县| 青州市| 富源县| 慈溪市| 柳河县| 牙克石市| 措勤县| 礼泉县| 天祝| 青州市| 聊城市| 庄河市| 桃园市| 通河县| 德庆县| 凉山| 体育| 永仁县| 长汀县| 金川县|