摘要為提升多通道發射機的可靠性和通用性,設計一種分布式信號源主控仲裁算法。在一個采用分布式架構的信號源中,各個節點通過網絡交互,選出唯一主控,統一管理所有節點的工作參數、固件版本等內容。當現有主控下線或有新節點加入時,節點通過交互選出新主控,整個系統不受影響。功能驗證符合設計要求。
關鍵詞:多通道信號源;分布式系統;主控仲裁;F28m35
《電子技術與軟件工程》(半月刊)創刊于2012年,由中國電子學會主辦。旨在全方位推廣信息時代下電氣、電力、電工科學意識;關注電子各專業技術以及最新科研成果和進展;介紹軟件工程、科技、信息技術在社會各領域的應用,關注科技傳播與公民科學文化素質的提升。
1基本框架介紹
多通道信號源是聲吶發射機架構的重要分支。它可以將實時信號產生任務分配到多個處理器中完成,實現復雜的發射任務;還可以擴充發射通道,實現多通道發射任務。多通道信號源通常被設計成為“一個主控,多個節點”的結構,如圖1所示。主控機與上位機通信,然后將工作參數下發給各個信號源節點,由各個節點單獨完成功能。多通道信號源有時也被設計成如圖2所示的結構,所有信號源節點采用相同的硬件設計,通過設定撥碼等方式,在特定位置的信號源節點上實現主控功能,省去了主控硬件。
無論是獨立主控板或是承擔主控功能的信號源板,在整個系統中都非常重要,一旦故障或下線,將嚴重影響設備正常功能。在圖2框架的基礎上,如果所有在線信號源節點都能被靈活的配置成主控節點,承擔主控任務,就能有效降低失去主控的風險。本文設計了一種主控仲裁算法,使系統中主控機可以在線進行智能變更,每個在線的信號源節點都能承擔主控任務,使系統中的主控始終保持在線。
2算法原理與設計
分布式信號源主要包含信號源節點和網絡連接。仲裁算法是在網絡連接基礎上各個信號源節點之間的交互過程,為了實現節點間交互也需要對節點進行一些設計,所以軟件設計從節點設計和算法設計兩方面考慮。
2.1節點設計
在整個網絡中,每個信號源節點具有3個屬性:信息版本號、節點地址、節點權限。節點信息是節點攜帶的可以共享給其它節點的信息,如工作參數、固件等。在本文的分布式網絡中規定,節點信息只能由主控節點分發,所有信息都有對應版本號(如工作參數的接收時戳、固件的軟件版本號等),主控節點需保證攜帶信息的版本號為全網最新。節點地址是每個節點區別于其它節點的唯一標識,因為所有節點可能采用同一固件,所以需要通過硬件或軟件方式對每個節點進行區分(如硬件撥碼、IP)設置等)。節點權限是用來控制節點行為的標志。通過節點權限設置,可以將節點分為四類:主機、備用主機、從機、新機,各個權限下可以進行的操作如表1所示。節點權限可以控制所有節點的行為,減少網內通訊量,提升仲裁算法的效率。
2.2仲裁算法設計
當多個節點同時存在時,根據“信息版本號>節點地址”的優先級規則進行節點排序,當信息版本號不同時,版本號高的節點排序靠前;當信息版本號相同時,節點地址小的節點排序靠前。仲裁過程是在一個特定初始狀態下,通過幾輪交互排序,確定網內唯一主機的過程。本設計中,主機還要推送新信息到從機,保持每個節點都攜帶最新信息。網絡達到穩定狀態:一個主機,多個備用主機。下面針對幾種常見的初始狀態說明此算法的運行方式。
(1)初始狀態。系統中所有節點都是新機。新機以廣播的方式發送節點交流報文(包含信息版本和節點地址兩個屬性),并接收其它節點的交流報文,確定自身在網絡中的權限。各個節點根據節點排序被分級為主機、備用主機、從機。
(2)分級完成狀態。當網絡中分級完成后(唯一主機確定,沒有新機),主機定時發送主機心跳報文,心跳報文中包含主機節點地址和主機信息版本號。從機接收到主機心跳報文后發出信息更新請求報文,主機對全網的從機進行信息更新。從機更新完畢后,權限變為新機,之后的過程等同于新機入網的過程。
(3)新機加入狀態。當有新節點加入時,新節點向全網發布節點交流報文并接收主機心跳。所有已在網機與新機比對信息版本號,如果都低于新機的信息版本號,則全網降級為從機,新機升級為主機。如果新機信息版本號低于主機,則新機權限變為從機。如果新機信息版本號與主機相同,則進行節點排序確認新主機。
(4)主機退出狀態。當現有主機節點退出后,主機心跳消失。所有備用主機節點開始發送交流報文,進行節點排序選出新主機節點。
(5)并網狀態。當兩個各自到達穩定狀態的網絡合并,兩個主機互相交流心跳,最終確定唯一主機。如果兩個網絡信息版本有差異,版本較低的網絡全網降級為從機并申請升級。
各個節點的權限轉換關系如圖3所示。節點與外界交互過程中,如果滿足轉換關系圖上的轉換關系時,節點權限會進行調整.
權限轉換條件:C1,新機參與節點排序,排名第一,變為主控;C2,主控與其它主控或新機信息版本相同,但節點排序非第一,變為備用主控;C3,主機下線后,備用主控重新節點排序,排名第一,變為主控;C4,主控與其它主控或新機信息版本不同,節點排序非第一,變為備用主控;C5,新機與主控節點排序,排名非第一,信息版本不同,變為從機;C6,從機進行信息更新后,變為新機;C7,新機與主控節點排序,排名非第一,信息版本相同,變為備用主機。
3功能驗證
本文選擇進行功能驗證的硬件平臺核心是TI公司的F28m35芯片,它包含ARM Cotex-m3+C2000雙核,ARM核中帶一個百兆EMac模塊,可滿足組網的需求,C2000則是工業中常用的控制芯片,可以用來產生PWM信號。通過GPIO輸入2位撥碼區別節點IP,并接到交換機實現一個4節點組網,如圖4所示(根據各節點IP末位,以下簡稱41、42、43、44節點)。預先給41號節點燒寫1.1版本程序,其它節點為1.0版本程序,所有節點在組播地址230.9..9.1中進行交流。開機后用計算機抓包監控所有組播的UDP報文,得到結果如圖5所示。報文各幀的含義解析見表2。
4結論
本文針對聯網架構的信號源設計了一種主控仲裁算法,節點間通過信息交互實現主控權限仲裁轉移。經過軟硬件開發和抓包實驗,驗證了在各種初始條件下,系統最終都能夠收斂到單主控狀態。該算法能將設備對單一主控硬件依賴性的風險分散到所有節點上,即使現有主控下線也不會影響整體功能。該方法既可為系統設計提供參考,也可廣泛用于具有類似分布式架構的系統,提升系統的可靠性。
論文指導 >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >