摘要: 傳統(tǒng)的醫(yī)療電子設備并不具備無線功能,不能實現(xiàn)隨時隨地的醫(yī)療監(jiān)控。文中提出一個基于IPV6 的用于醫(yī)療電子無線網絡的路由協(xié)議,并基于國產CK610 CPU 和TI 公司的CC2520射頻芯片實現(xiàn)了基本無線通信,并在PC 上通過圖形界面顯示出醫(yī)療檢驗結果。
0 引言
醫(yī)療電子領域中,在嵌入式處理器方面,目前使用最廣泛和主流的象ARM.MIPS 都是國外廠商生產的CPU,而國內的具有自主知識產權的CPU 卻很少被人注意。
此外,隨著無線技術的進步和無線設備成本的降低,醫(yī)療電子無線化必將是未來發(fā)展的趨勢。目前已經有一些企業(yè)和團體在醫(yī)療電子無線化的方向上作出了研究和開發(fā),但是目前的無線醫(yī)療電子使用的網絡協(xié)議基本都是基于IPV4 的,將更加先進的IPV6 網絡運用到無線醫(yī)療電子是未來發(fā)展必須面臨的問題。
本文主要為醫(yī)療電子設計了一個基于IPV6 的網絡協(xié)議,為實現(xiàn)該協(xié)議編寫了路由協(xié)議程序和射頻適配程序,實現(xiàn)了醫(yī)療電子的無線功能。
1 系統(tǒng)概述
主要系統(tǒng)架構如圖1 所示: 單個節(jié)點由CK610開發(fā)板與醫(yī)療電子板和CC2520 射頻芯片組成,控制器為普通節(jié)點與PC 相連接.Linux 用作CK610 的操作系統(tǒng),CK610 通過操作FPGA IP 核模擬的SPI 來控制CC2520,CC2591 由CC2520 的管腳控制。
在整個醫(yī)療電子應用的網絡系統(tǒng)中,可以有多個節(jié)點,但是只有一個控制器。所有節(jié)點數(shù)據發(fā)送的終點是控制器,距離較遠的節(jié)點可以通過其他節(jié)點轉發(fā)來傳輸數(shù)據。
2 網絡協(xié)議設計
為了實現(xiàn)圖1 的系統(tǒng)架構,需要為系統(tǒng)設計一個基于IPV6 的網絡協(xié)議。
2. 1 路由算法設計
建立和維護無線網絡,必須要發(fā)送和處理三種形式的數(shù)據包,分別是路由請求包。路由廣播包和路由匯報包。
網絡中的每個節(jié)點都維護一個路由表,路由表的每項都是與本節(jié)點相鄰的節(jié)點。一個典型節(jié)點路由表內容如表1所示。
每個節(jié)點會對路由表中的每項根據總鏈路代價進行排序,總鏈路代價最小的對應的節(jié)點會被選為默認路由,只要節(jié)點有數(shù)據要發(fā)送或者轉發(fā),都會將數(shù)據發(fā)往默認路由。
總鏈路代價表示的是這條鏈路信道的質量,該值越小越好,它是本地鏈路代價和前驅節(jié)點鏈路代價兩者之和。前驅節(jié)點鏈路代價是從本節(jié)點定期發(fā)送的路由廣播包中獲取的。如果前驅節(jié)點是控制器,那么前驅節(jié)點鏈路代價是0.本地鏈路代價指的是自身節(jié)點同前驅節(jié)點之間信道的鏈路代價,表示的是通信信道質量,該值越小越好。為了計算本地鏈路代價,必須要維護長期發(fā)送數(shù)據包總數(shù)LT.長期發(fā)送數(shù)據包成功數(shù)LS.近期發(fā)送數(shù)據包總數(shù)ST 和近期發(fā)送數(shù)據包成功數(shù)SS 這四個數(shù)據。
ST 和SS 從零開始計數(shù),節(jié)點每發(fā)送一次數(shù)據( 包括重傳) ,近期發(fā)送數(shù)據包總數(shù)ST 就會加1,而近期發(fā)送數(shù)據包成功數(shù)SS 則是每成功發(fā)送一次數(shù)據就加1.這兩個值會在RTIMER 定時器到期之時更新完長期發(fā)送數(shù)據包總數(shù)LT 和長期發(fā)送數(shù)據包成功數(shù)LS 之后清零。長期發(fā)送數(shù)據包總數(shù)LT 和長期發(fā)送數(shù)據包成功數(shù)LS 在RTIMER 定時器到期之時更新,更新的規(guī)則是將當前長期發(fā)送數(shù)據包總數(shù)LT 加上近期發(fā)送數(shù)據包總數(shù)ST 作為新的長期發(fā)送數(shù)據包總數(shù)LT,將長期發(fā)送數(shù)據包成功數(shù)LS加上近期發(fā)送數(shù)據包成功數(shù)SS 作為新的長期發(fā)送數(shù)據包成功數(shù)LS,如果此時長期發(fā)送數(shù)據包總數(shù)LT 大于0XF000,那么將長期發(fā)送數(shù)據包總數(shù)LT 和長期發(fā)送數(shù)據包成功數(shù)LS 右移一位。這樣做有兩個好處:
?。?1) 避免長期發(fā)送數(shù)據包總數(shù)LT 和長期發(fā)送數(shù)據包成功數(shù)LS 無限增大到無法存儲。
?。?2) 離當前時間越遠的統(tǒng)計值對計算鏈路代價的影響越小,符合自然規(guī)律。
本地鏈路代價的計算公式如下:
節(jié)點會在收到鄰居節(jié)點的路由廣播包和RTIMER定時器到期的時候更新路由表鏈路代價信息。
2. 2 網絡節(jié)點的加入
當節(jié)點1 要加入網絡中時首先要發(fā)送一個路由請求包,申請加入無線網絡??刂破鹘邮盏竭@個請求之后,向節(jié)點1 發(fā)送一個路由廣播包。節(jié)點1 接收到該路由廣播包之后,將網絡地址前綴加上自己的節(jié)點ID 組成自己的網絡地址,并且將控制器加入自己的路由表。此時節(jié)點1 的默認路由是控制器。
同時,節(jié)點1 會立即啟動TTIMER 和RTIMER 兩個定時器,當TTIMER 到期時,節(jié)點1 就會向控制器發(fā)送路由匯報包,控制器收到該包及時更新網絡拓撲。
而控制器的RTIMER 到期之時,也會給節(jié)點1 發(fā)送路由廣播,節(jié)點1 立即更新路由表。
網絡運行的過程中,有新的節(jié)點要加入這個網絡,且該節(jié)點能夠直接同控制器通信,此時的情況比第一個節(jié)點加入網絡的情況復雜些。節(jié)點2 啟動時,首先發(fā)送一個路由請求包,控制器和節(jié)點1 接收到該包后會先后發(fā)送路由廣播包,節(jié)點2 收到這些包之后修改自己的網絡地址,并且將控制器和節(jié)點1 都加入自己的路由表中。當RTIMER 定時器到期時,會發(fā)送路由匯報包給控制器,經過一段時間穩(wěn)定之后,路由匯報包的內容應該包括節(jié)點1 和控制器。
之后節(jié)點1 的RTIMER 定時器到期,發(fā)送路由廣播包,控制器和節(jié)點2 都能收到,節(jié)點2 更新其路由表,節(jié)點2 的RTIMER 定時器到期也會發(fā)送路由廣播包,此時節(jié)點1 將節(jié)點2 加入自己的路由表。
如果新加入的節(jié)點無法直接同控制器通信,即節(jié)點1 已經存在于網絡中,節(jié)點2 無法同控制器通信。節(jié)點2 啟動的時候也會發(fā)送路由請求包,這個包只有節(jié)點1 可以收到,于是節(jié)點1 給節(jié)點2 回復一個路由廣播包,節(jié)點2 和控制器都可以收到。節(jié)點2 收到這個包之后,會設置好自己的網絡地址,同時將節(jié)點1 加入自己的路由表中。此時節(jié)點2 的路由表只有節(jié)點1 這一項,因此節(jié)點2 的默認路由是節(jié)點1.節(jié)點2 的TTIMER 定時器到期時會向默認路由,即節(jié)點1 發(fā)送路由匯報包,節(jié)點1 收到路由匯報包之后將其轉發(fā)給控制器。節(jié)點1 的RTIMER 定時器到期,發(fā)送路由廣播包,節(jié)點2 更新其路由表。
節(jié)點2 的RTIMER 定時器到期之時發(fā)送路由廣播包,節(jié)點1 接收到該包之時更新路由表。
2. 3 網絡的維護與更新
網絡運行過程中,信道都是隨時變化的。為了使整個網絡工作正常,必須要及時更新網絡參數(shù)。
網絡的維護和更新是通過每個節(jié)點的RTIMER 定時器實現(xiàn)的,每當該定時器到期,節(jié)點都會廣播路由廣播包,所有接收到該廣播包的節(jié)點都會更新自己的路由表信息,這樣整個網絡的信道信息得到了更新。
評論