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