<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 嵌入式多節(jié)點(diǎn)的無線批量程序更新系統(tǒng)設(shè)計(二)

          嵌入式多節(jié)點(diǎn)的無線批量程序更新系統(tǒng)設(shè)計(二)

          作者: 時間:2018-08-31 來源:網(wǎng)絡(luò) 收藏

           3.2 可靠數(shù)據(jù)分發(fā)協(xié)議的設(shè)計

          本文引用地址:http://www.ex-cimer.com/article/201808/388162.htm

            在闡述具體的設(shè)計思路之前,先提出以下應(yīng)用場景的假設(shè)。

            假設(shè)一:網(wǎng)絡(luò)節(jié)點(diǎn)不支持高級的操作系統(tǒng)。可以理解為必須考慮節(jié)點(diǎn)處理和通信能力有限,而且通信協(xié)議要從底層(如MAC層)實(shí)現(xiàn)。

            假設(shè)二:大部分待燒錄節(jié)點(diǎn)分布在數(shù)據(jù)基站的通訊范圍之內(nèi)??梢岳斫鉃橥ㄐ艆f(xié)議不需要實(shí)現(xiàn)復(fù)雜的多跳通信和流水線,可以充分利用數(shù)據(jù)基站第一次數(shù)據(jù)廣播,這一點(diǎn)下文會詳細(xì)闡述。

            基于以上兩點(diǎn)假設(shè),可靠性數(shù)據(jù)分發(fā)協(xié)議的具體設(shè)計如下。

            考慮到不同平臺的無線收發(fā)模塊提供的服務(wù)接口和通信質(zhì)量的差異以及程序更新對網(wǎng)絡(luò)可靠性的要求,通信協(xié)議選擇在網(wǎng)絡(luò)層實(shí)現(xiàn)可靠數(shù)據(jù)分發(fā)的機(jī)制,協(xié)議只需要硬件平臺在MAC層提供收發(fā)數(shù)據(jù)幀的應(yīng)用接口即可。協(xié)議中,數(shù)據(jù)分發(fā)分為兩個階段:第一輪發(fā)送階段和節(jié)點(diǎn)間交流階段。圖4.2為兩個階段通信方式示意圖。

            (實(shí)線代表發(fā)送完整數(shù)據(jù)文件,虛線表示發(fā)送數(shù)據(jù)頁)

            1、第一輪發(fā)送階段。

            數(shù)據(jù)基站(如PC)在接收節(jié)點(diǎn)準(zhǔn)備好后不間斷廣播數(shù)據(jù)幀,直至數(shù)據(jù)發(fā)送結(jié)束;接收節(jié)點(diǎn)盡力接收數(shù)據(jù),并記錄自己已有數(shù)據(jù)幀的id信息,期間不向源節(jié)點(diǎn)發(fā)送反饋信息。

            在原始的Deluge協(xié)議中沒有這一階段,因?yàn)镈eluge協(xié)議中可能無線傳感器網(wǎng)絡(luò)龐大,分布范圍也較廣,所以數(shù)據(jù)分發(fā)一旦啟動,所有接收到數(shù)據(jù)的節(jié)點(diǎn)都參與到數(shù)據(jù)發(fā)送中來;而本設(shè)計中,網(wǎng)絡(luò)充分利用了假設(shè)二中的節(jié)點(diǎn)分布條件,通常情況下,在第一輪發(fā)送結(jié)束后,相當(dāng)大比例的節(jié)點(diǎn)就已經(jīng)接收到了大部分的數(shù)據(jù),而這個過程中因?yàn)橹挥袛?shù)據(jù)基站在發(fā)送廣播,網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)男适亲罡叩?。?dāng)然,這種節(jié)點(diǎn)分布條件不滿足的情況也不會明顯降低數(shù)據(jù)分發(fā)效率。

            節(jié)點(diǎn)間交流階段。

            交流階段參考了trickle算法的“polite gossip”策略,所有節(jié)點(diǎn)(包括數(shù)據(jù)基站)都參與到交流中去。每個節(jié)點(diǎn)的交流的目的都是相同的,即將自己擁有的數(shù)據(jù)包發(fā)送給需要的節(jié)點(diǎn)和請求并接收自己需要的數(shù)據(jù)包。

            第2階段是保證可靠性的關(guān)鍵,協(xié)議中讓源節(jié)點(diǎn)也參與到交流中來,這是為了防止網(wǎng)絡(luò)狀況極差以至在第一輪發(fā)送結(jié)束之后所有節(jié)點(diǎn)接收數(shù)據(jù)的總和都不構(gòu)成完整數(shù)據(jù)文件的極端情況。這一步中,節(jié)點(diǎn)長時間處于“維護(hù)”狀態(tài)標(biāo)志數(shù)據(jù)分發(fā)結(jié)束。

            節(jié)點(diǎn)首先廣播廣告,每一個廣告包含一個摘要(φ),摘要(φ)由兩部分組成:(1)本節(jié)點(diǎn)的IP標(biāo)識v。(2)本節(jié)點(diǎn)的最大可用頁號p,即φ(v,p)??捎庙撎杙的定義:頁p所包含的包被節(jié)點(diǎn)全部接收,稱頁p完成。頁p被完成并且它之前的所有的頁(0,p)也被節(jié)點(diǎn)全部接收,稱頁p可用。節(jié)點(diǎn)通過廣告來了解對方擁有的數(shù)據(jù)信息,繼而向比自己數(shù)據(jù)更完備的節(jié)點(diǎn)發(fā)送數(shù)據(jù)頁請求。協(xié)議中將時間分成時間片(round),在每一個時間片中,節(jié)點(diǎn)來決定是否廣播一個廣告。假設(shè)時間片的長度由Tm,i來表示,它的上下界由Tl和Th來表示,則有取Tl

            交流階段中,節(jié)點(diǎn)擁有“維護(hù)”、“請求”和“發(fā)送”中的人一個狀態(tài)。節(jié)點(diǎn)在“維護(hù)”狀態(tài)廣播廣告并聽取其他節(jié)點(diǎn)的廣播;在請求階段向其他節(jié)點(diǎn)發(fā)送數(shù)據(jù)頁請求,并接收對方發(fā)來的數(shù)據(jù);在發(fā)送狀態(tài)廣播被請求的數(shù)據(jù)頁。圖4.3為狀態(tài)轉(zhuǎn)換示意圖。主要的交流規(guī)則如下。

            (1)“維護(hù)”狀態(tài)規(guī)則

            M1: 假設(shè)時間片i的開始時間為ti,節(jié)點(diǎn)在ti+ri的時間段內(nèi),若接收不到廣告φ'=φ,則廣播廣告φ;若收到與φ不一致的廣告(包括φ'=φ、廣告幀和數(shù)據(jù)幀等),則調(diào)整時間片為Tl,并立即重新開始時間片;若接收到廣告φ'=φ,則調(diào)整時間片為min(2*Tm,i ,Th )。

            M2: 節(jié)點(diǎn)在收到廣告φ'(v',p')中p'大于自身的最大可用頁p時,轉(zhuǎn)向“請求”狀態(tài),向節(jié)點(diǎn)v'發(fā)送數(shù)據(jù)頁請求;節(jié)點(diǎn)收到請求幀,則轉(zhuǎn)向“發(fā)送”狀態(tài),廣播被請求數(shù)據(jù)頁。

            規(guī)則1能控制冗余廣告的發(fā)送,節(jié)約網(wǎng)絡(luò)資源,并且根據(jù)網(wǎng)絡(luò)狀況動態(tài)調(diào)整時間片長度,從而是網(wǎng)絡(luò)資源得到有效的利用。

            規(guī)則2實(shí)現(xiàn)從“維護(hù)”狀態(tài)到“請求”和“發(fā)送”狀態(tài)的轉(zhuǎn)換。

            (2)“請求”狀態(tài)規(guī)則:

            M3:若節(jié)點(diǎn)在向源節(jié)點(diǎn)發(fā)出數(shù)據(jù)頁請求后節(jié)點(diǎn)在時間t(t為自定義時間長度,是經(jīng)驗(yàn)值,根據(jù)網(wǎng)絡(luò)狀況而定)內(nèi)沒有收到數(shù)據(jù),則再次發(fā)送請求,若累計請求次數(shù)大于k(k為自定義次數(shù)),則認(rèn)為請求失敗,返回“維護(hù)”狀態(tài);若節(jié)點(diǎn)接收到數(shù)據(jù)頁,則在接收結(jié)束后返回“維護(hù)”狀態(tài)。

            規(guī)則3中考慮到網(wǎng)絡(luò)的質(zhì)量因素,定義了等待時間t和最大請求次數(shù)k。

            (3)“發(fā)送”狀態(tài)規(guī)則:

            M4:節(jié)點(diǎn)進(jìn)入“發(fā)送”狀態(tài)立即廣播被請求的數(shù)據(jù)頁,廣播結(jié)束后返回“維護(hù)”狀態(tài)。

            規(guī)則4中要注意的是,節(jié)點(diǎn)以廣播的方式發(fā)送數(shù)據(jù),這意味著處于“請求”狀態(tài)的節(jié)點(diǎn)可以接收任何節(jié)點(diǎn)(不一定是它請求的指定節(jié)點(diǎn))發(fā)送的符合其需要的數(shù)據(jù)包,這也是協(xié)議中避免網(wǎng)絡(luò)冗余的一個體現(xiàn)。

            以上是本設(shè)計中可靠數(shù)據(jù)分發(fā)協(xié)議的全部內(nèi)容,本文在下一節(jié)中將詳細(xì)論述協(xié)議的軟件設(shè)計實(shí)現(xiàn)。

            3.3 可靠數(shù)據(jù)分發(fā)協(xié)議的軟件設(shè)計實(shí)現(xiàn)

            協(xié)議的軟件設(shè)計在網(wǎng)絡(luò)層實(shí)現(xiàn),涉及到MAC層接口的調(diào)用。本節(jié)先簡單介紹本設(shè)計實(shí)驗(yàn)平臺上網(wǎng)絡(luò)模塊提供的MAC層應(yīng)用接口,然后詳細(xì)論述軟件的設(shè)計和實(shí)現(xiàn)。

            3.3.1 MAC層接口簡介

            首先做兩點(diǎn)說明。

            第一,設(shè)計中使用的MAC層接口不提供絕對可靠的網(wǎng)絡(luò)通信。一方面是因?yàn)樵O(shè)計使用實(shí)驗(yàn)室自制的硬件平臺主要用于做群體實(shí)驗(yàn),而群體實(shí)驗(yàn)不需要可靠的網(wǎng)絡(luò)通信,所以平臺的通信模塊也沒有能實(shí)現(xiàn)可靠通信的機(jī)制;另一方面要求MAC層提供可靠通信也不是必要的。

            第二,網(wǎng)絡(luò)層只使用了MAC層提供的數(shù)據(jù)幀發(fā)送和數(shù)據(jù)幀接收兩個接口,網(wǎng)絡(luò)層的幀結(jié)構(gòu)包含在MAC數(shù)據(jù)幀的數(shù)據(jù)域中。

            從第一點(diǎn)可以看到,協(xié)議在網(wǎng)絡(luò)層實(shí)現(xiàn)可靠數(shù)據(jù)傳輸?shù)臋C(jī)制,降低了對MAC層通信質(zhì)量的要求,而第二點(diǎn)說明協(xié)議僅僅需要MAC層提供兩個最基本的應(yīng)用接口。本設(shè)計中的可靠數(shù)據(jù)分發(fā)協(xié)議對底層通信的要求很低,具有較好的魯棒性和可移植性。

            本設(shè)計實(shí)驗(yàn)平臺上提供的MAC層數(shù)據(jù)幀發(fā)送命令結(jié)構(gòu)如圖4.4所示,其中區(qū)域3為數(shù)據(jù)域,包含網(wǎng)絡(luò)層的幀結(jié)構(gòu),另外節(jié)點(diǎn)在MAC層以廣播的方式通信,所以命令中不包含源節(jié)點(diǎn)和目的節(jié)點(diǎn)的地址信息。MAC層接收到數(shù)據(jù)幀后,將數(shù)據(jù)域分離出來存儲到接收緩存區(qū);發(fā)送數(shù)據(jù)時,將發(fā)送緩存區(qū)中的數(shù)據(jù)加上MAC層數(shù)據(jù)幀的頭部和尾部并發(fā)送出去,網(wǎng)絡(luò)層只關(guān)心發(fā)送和接收緩沖區(qū)中的數(shù)據(jù)。這里規(guī)定以下章節(jié)中提到的各種幀結(jié)構(gòu)均指網(wǎng)絡(luò)層幀結(jié)構(gòu)。

            3.3.2 可靠數(shù)據(jù)分發(fā)協(xié)議的數(shù)據(jù)結(jié)構(gòu)設(shè)計

            網(wǎng)絡(luò)層數(shù)據(jù)要經(jīng)過緩存,解析再到存儲或者執(zhí)行三步操作,并且不同種類的幀要區(qū)別處理,因此一個好的數(shù)據(jù)結(jié)構(gòu)設(shè)計方案對簡化數(shù)據(jù)處理操作和提高數(shù)據(jù)處理效率是非常有必要的。圖4.5為網(wǎng)絡(luò)層數(shù)據(jù)流圖,數(shù)據(jù)幀的流向?yàn)椋?/p>

            從MAC層讀入后放入原始數(shù)據(jù)緩沖區(qū);

            經(jīng)解析后得到幀結(jié)構(gòu);

            將幀結(jié)構(gòu)作相關(guān)處理后僅提取頁號(p)、幀號(id)和數(shù)據(jù)(data)放到寫flash緩沖區(qū);

            寫flash。

            注意以上是數(shù)據(jù)幀的流向,除數(shù)據(jù)幀以外的其他類型幀(如請求幀,結(jié)束幀等)只執(zhí)行第(1)、(2)步操作。下面著重論述圖中每個階段涉及到的數(shù)據(jù)結(jié)構(gòu)。


          上一頁 1 2 下一頁

          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();