基于國產(chǎn)CPU的嵌入式醫(yī)療電子無線網(wǎng)絡(luò)設(shè)計(一)
ST 和SS 從零開始計數(shù),節(jié)點(diǎn)每發(fā)送一次數(shù)據(jù)( 包括重傳) ,近期發(fā)送數(shù)據(jù)包總數(shù)ST 就會加1,而近期發(fā)送數(shù)據(jù)包成功數(shù)SS 則是每成功發(fā)送一次數(shù)據(jù)就加1.這兩個值會在RTIMER 定時器到期之時更新完長期發(fā)送數(shù)據(jù)包總數(shù)LT 和長期發(fā)送數(shù)據(jù)包成功數(shù)LS 之后清零。長期發(fā)送數(shù)據(jù)包總數(shù)LT 和長期發(fā)送數(shù)據(jù)包成功數(shù)LS 在RTIMER 定時器到期之時更新,更新的規(guī)則是將當(dāng)前長期發(fā)送數(shù)據(jù)包總數(shù)LT 加上近期發(fā)送數(shù)據(jù)包總數(shù)ST 作為新的長期發(fā)送數(shù)據(jù)包總數(shù)LT,將長期發(fā)送數(shù)據(jù)包成功數(shù)LS加上近期發(fā)送數(shù)據(jù)包成功數(shù)SS 作為新的長期發(fā)送數(shù)據(jù)包成功數(shù)LS,如果此時長期發(fā)送數(shù)據(jù)包總數(shù)LT 大于0XF000,那么將長期發(fā)送數(shù)據(jù)包總數(shù)LT 和長期發(fā)送數(shù)據(jù)包成功數(shù)LS 右移一位。這樣做有兩個好處:
?。?1) 避免長期發(fā)送數(shù)據(jù)包總數(shù)LT 和長期發(fā)送數(shù)據(jù)包成功數(shù)LS 無限增大到無法存儲。
?。?2) 離當(dāng)前時間越遠(yuǎn)的統(tǒng)計值對計算鏈路代價的影響越小,符合自然規(guī)律。
本地鏈路代價的計算公式如下:
節(jié)點(diǎn)會在收到鄰居節(jié)點(diǎn)的路由廣播包和RTIMER定時器到期的時候更新路由表鏈路代價信息。
2. 2 網(wǎng)絡(luò)節(jié)點(diǎn)的加入
當(dāng)節(jié)點(diǎn)1 要加入網(wǎng)絡(luò)中時首先要發(fā)送一個路由請求包,申請加入無線網(wǎng)絡(luò)??刂破鹘邮盏竭@個請求之后,向節(jié)點(diǎn)1 發(fā)送一個路由廣播包。節(jié)點(diǎn)1 接收到該路由廣播包之后,將網(wǎng)絡(luò)地址前綴加上自己的節(jié)點(diǎn)ID 組成自己的網(wǎng)絡(luò)地址,并且將控制器加入自己的路由表。此時節(jié)點(diǎn)1 的默認(rèn)路由是控制器。
同時,節(jié)點(diǎn)1 會立即啟動TTIMER 和RTIMER 兩個定時器,當(dāng)TTIMER 到期時,節(jié)點(diǎn)1 就會向控制器發(fā)送路由匯報包,控制器收到該包及時更新網(wǎng)絡(luò)拓?fù)洹?/P>
而控制器的RTIMER 到期之時,也會給節(jié)點(diǎn)1 發(fā)送路由廣播,節(jié)點(diǎn)1 立即更新路由表。
網(wǎng)絡(luò)運(yùn)行的過程中,有新的節(jié)點(diǎn)要加入這個網(wǎng)絡(luò),且該節(jié)點(diǎn)能夠直接同控制器通信,此時的情況比第一個節(jié)點(diǎn)加入網(wǎng)絡(luò)的情況復(fù)雜些。節(jié)點(diǎn)2 啟動時,首先發(fā)送一個路由請求包,控制器和節(jié)點(diǎn)1 接收到該包后會先后發(fā)送路由廣播包,節(jié)點(diǎn)2 收到這些包之后修改自己的網(wǎng)絡(luò)地址,并且將控制器和節(jié)點(diǎn)1 都加入自己的路由表中。當(dāng)RTIMER 定時器到期時,會發(fā)送路由匯報包給控制器,經(jīng)過一段時間穩(wěn)定之后,路由匯報包的內(nèi)容應(yīng)該包括節(jié)點(diǎn)1 和控制器。
之后節(jié)點(diǎn)1 的RTIMER 定時器到期,發(fā)送路由廣播包,控制器和節(jié)點(diǎn)2 都能收到,節(jié)點(diǎn)2 更新其路由表,節(jié)點(diǎn)2 的RTIMER 定時器到期也會發(fā)送路由廣播包,此時節(jié)點(diǎn)1 將節(jié)點(diǎn)2 加入自己的路由表。
如果新加入的節(jié)點(diǎn)無法直接同控制器通信,即節(jié)點(diǎn)1 已經(jīng)存在于網(wǎng)絡(luò)中,節(jié)點(diǎn)2 無法同控制器通信。節(jié)點(diǎn)2 啟動的時候也會發(fā)送路由請求包,這個包只有節(jié)點(diǎn)1 可以收到,于是節(jié)點(diǎn)1 給節(jié)點(diǎn)2 回復(fù)一個路由廣播包,節(jié)點(diǎn)2 和控制器都可以收到。節(jié)點(diǎn)2 收到這個包之后,會設(shè)置好自己的網(wǎng)絡(luò)地址,同時將節(jié)點(diǎn)1 加入自己的路由表中。此時節(jié)點(diǎn)2 的路由表只有節(jié)點(diǎn)1 這一項,因此節(jié)點(diǎn)2 的默認(rèn)路由是節(jié)點(diǎn)1.節(jié)點(diǎn)2 的TTIMER 定時器到期時會向默認(rèn)路由,即節(jié)點(diǎn)1 發(fā)送路由匯報包,節(jié)點(diǎn)1 收到路由匯報包之后將其轉(zhuǎn)發(fā)給控制器。節(jié)點(diǎn)1 的RTIMER 定時器到期,發(fā)送路由廣播包,節(jié)點(diǎn)2 更新其路由表。
節(jié)點(diǎn)2 的RTIMER 定時器到期之時發(fā)送路由廣播包,節(jié)點(diǎn)1 接收到該包之時更新路由表。
2. 3 網(wǎng)絡(luò)的維護(hù)與更新
網(wǎng)絡(luò)運(yùn)行過程中,信道都是隨時變化的。為了使整個網(wǎng)絡(luò)工作正常,必須要及時更新網(wǎng)絡(luò)參數(shù)。
評論