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

評論