1 雙機熱備份系統的硬件平臺設計 考慮到空間機器人中央控制計算機的雙機熱備份系統的特殊性,所構建的硬件平臺如圖1所示。 互為備份的中央控制計算機采用完全相同的設計,通過內部和外部的CAN總線與控制模塊和指令系統分別相連。熱備份時,主、備機從CAN總線上同時接收數據,但只有主機可以通過CAN總線向外部輸出指令及控制數據。 主備機之間通過RS485總線相連,實現雙機之間數據監測和同步等功能。在主機和備機的PIO口分別引出一條心跳線,定時發出脈沖信號,用來檢查判斷對方機是否具備基本運行能力。雙機進行切換時,通過仲裁邏輯電路改變雙機系統的當班權,完成系統的切換操作。 2 雙機熱備份策略 為保證空間機器人系統正常、穩定地運行,根據空間機器人中央控制計算機雙機熱備份系統的特點,主備雙機需要根據系統的同步數據和心跳信號對對方機的運行情況進行監測,保持主備雙機同步運行。當系統發生故障時利用系統同步數據和心跳信號,定位系統發生的故障,并對故障源進行判斷,完成切換。在切換后,系統將嘗試恢復故障,整個策略示意如圖2所示。 2.1 心跳信號 心跳信號是該中央控制計算機運行時發送的周期性脈沖信號,是中央控制計算機正常運行的判斷依據。 主備雙機可以通過對對方機心跳信號的監測,來判斷對方機是否正常運行,同時心跳信號也是裁決故障時的一種輔助判據。當發現備機無心跳信號時,主機切換到單機模式,備機由外部指令系統進行處理;當發現主機無心跳信號時,備機獲得當班權變為主機并進行輸出,主機交由外部指令系統處理。 2.2 同步監測 雙機同步是雙機熱備份系統能夠正常進行系統監測,對故障進行正確判斷的基礎。正確的同步策略是雙機系統能夠及時檢測出軟件故障并執行正確切換動作的前提,也是保證系統在故障發生之后成功恢復的關鍵要素。 為了保證雙機能夠長期、穩定地處于同步之中,維持系統正常運行,制定4項關鍵同步方法。 ①雙機時鐘周期同步。當主備雙機上電后,在主機啟動周期定時器的同時,應同時向備機發出消息,通知備機啟動周期定時器。由于空間機器人系統以生命周期為單位執行任務,所以生命周期的同步是整個系統保持同步的基礎。若該操作失敗,必須重新進行周期定時器的同步。 ②雙機任務初始化同步。為保證主備雙機任務在同一時間啟動,應在任務啟動指令傳遞到主機時,由主機向備機發出指令,啟動備機任務,使備機進人工作模式,其具體步驟如圖3所示。 ③雙機同步數據的實時監測。機器人執行任務期間,主備雙機將在每個系統生命周期的開始向對方機發送同步數據,并將收到的數據與自身數據進行比對,完成對系統同步數據的實時監測。 為保證對系統監測的全面性和判斷故障的準確性,提取任務號、任務階段號、系統周期、實際關節角度以及一個隨機碼作為系統的同步數據,如表1所列。 ④雙機再同步。當發現雙機系統的數據出現兩個周期以內的超前或滯后現象時,不認為發生系統故障而進行切換,而是直接更新備機同步數據,使備機重新與主機同步。 2.3 裁決邏輯 裁決是雙機熱備份系統中至關重要的一個環節。誘發空間機器人系統出現故障的原因很多,在其工作的空間環境中存在著大量高能粒子,極易使中央控制計算機電位發生反轉造成系統失常。通信線路的故障和隨機產生的誤碼率也很容易造成系統失常。通過分析總結,空間機器人系統最易出現3種故障類型,即雙機通信線路故障、系統任務流程故障和系統控制數據故障。為保證雙機熱備份系統及時、準確地檢測故障,判斷故障源,做出正確的切換動作,分別為3種故障制定相應的故障裁決邏輯。 (1)雙機通信線路故障 裁決邏輯:當RS485接收模塊連續3周期沒有接收到對方的同步數據時,給出故障信號。為避免計算機重復進行裁決判斷,停止同步數據發送,同時檢測備機心跳信號。若備機心跳信號停止,則由主機主動停止備機電源;若對方心跳信號正常,則由外部指令決定備機狀態。其實現流程如圖4所示。 (2)雙機任務流程故障 為有效、準確地判斷雙機任務流程故障,借助隨機碼表來對其進行輔助判斷。隨機碼表是一個32×16的二維short型數組,數組中的各個元素互不相同,查詢生成同步數據隨機碼的公式如下: 式中X為隨機碼表行號,Y為隨機碼表列號,TaskID為任務號,PhaseNum為任務階段號,ClcNum為任務周期號。 主備雙機存儲同一份隨機碼表,利用上述公式確定每周期的隨機碼作為同步數據,發送給對方機。這樣做大大簡化了裁決邏輯,也可檢測出CPU邏輯運算單元的錯誤。 裁決邏輯:主備機首先比較同步數據中隨機碼,若隨機碼不同,則進一步比較任務號、階段號、周期號。若比較結果相同,則給出計算機邏輯運算故障信號;若不同,將對方同步數據與己方前后兩周期數據比較。若發現匹配數據,進行備機與主機再同步;若失敗,給出任務流程故障信號。其實現程序流程如圖5所示。 故障源判斷: 情況1,若系統出現計算機邏輯運算故障,則查詢上一周期同步數據隨機碼,且與上一周期保存的歷史數據隨機碼相比較,并根據比較結果進行切換。 情況2,若系統出現流程故障,則將當前系統同步數據中的任務號、階段號和周期號與自身歷史數據進行比較。根據任務號、階段號、周期號是遞增并且不會發生突變這一原則進行判斷,確定故障源,如圖6所示。 (3)雙機控制數據故障 裁決邏輯:空間機器人的運動一般分為兩種模式,一種是預先規劃固定軌跡的運動,另一種是相對于目標的自主運動。主備雙機根據機器人不同的運動狀態,比較同步數據中的控制關節角度,配合誤差容忍度給出系統控制數據故障信號。 故障源判斷:在固定規劃軌跡的模式下,控制數據預先給定,可以將雙機數據與正確數據對比,確定故障源;在自主運動模式下,關節的速度和位移是平滑變化的,不可能發生突變,可以利用關節的最大角速度、最大角加速度、末端的最大速度和最大加速度等邊界值對當前數據進行邊界檢測,從而判斷出故障源,如圖7所示。 另外,當雙機系統對故障源的判斷發生矛盾時,將交由外部指令系統對其進行處理。 2.4 系統恢復 為保證空間機器人中央控制計算機能夠長期、穩定地運行,就需要使其具有從故障狀態恢復的能力。根據其故障原因,分3種情況進行制定: ①系統裁定備機故障,主機正常,此時主機切換為單機模式繼續正常執行任務,備機復位重啟并通知主機,主機切換到雙機同步模式,備機重新與主機同步,恢復系統正常運行。 ②系統裁定主機故障,備機正常,此時主機讓權,進行切換,備機得權后變為主機,并切換到單機模式繼續執行系統任務;而主機讓權后變為備機,復位重啟后與主機重新進行同步,恢復系統的正常運行。 ③系統失步,即備機周期超前或滯后于主機,這種情況并不是造成系統故障,不進行切換動作。此時主機依然正常執行系統任務,備機利用主機的同步數據更新自身狀態,與主機進行再同步。 3 雙機熱備份系統軟件設計 基于中央控制計算機雙機熱備份系統的硬件環境和策略的制定,將其軟件設計為6個模塊,并基于強實時性操作系統VxWorks進行實現。該操作系統提供的分布消息隊列機制支持系統軟件的容錯設計,其強實時性也滿足空間機器人任務的要求。首先,根據策略的制定,設計心跳任務、同步任務、故障裁決任務和系統恢復任務,另外根據雙機通信的需要設計RS485總線發送任務和RS485總線接收任務。它們的功能如下: ①心跳任務,任務名HeartBeat。周期性地檢測對方機發送的心跳信號,若發現無心跳信號,則通知故障裁決任務進行故障裁決。 ②同步任務,任務名Synchronize。根據同步策略中的初始化同步過程進行系統時鐘和任務的初始化同步,并周期性地監視系統同步數據。若發現系統同步數據異常,則通知故障裁決任務進行系統故障的裁決。 ③故障裁決任務,任務名ExecSwitch。根據不同的故障情況,依據前面敘述的裁決過程對系統故障源進行判斷,并根據結果進行切換操作,保障系統正常運行。另外,通知系統恢復任務并嘗試對系統進行恢復。 ④ 系統恢復任務,任務名Reconfigure。根據系統恢復策略嘗試對故障機進行恢復,出現“失步”現象時,依據再同步過程對備機進行再同步。 它們之間的協作關系如圖8所示。 ⑤RS485總線接收及發送任務,任務名Receive485、Send485。負責雙機的通信,主要包括控制消息的解析,同步數據的接收與發送。 在RS485總線通信任務中,通信數據格式定義如下: 其中,為RS485通信數據加入起始Start和結尾End位,保證RS485通信任務傳遞數據的正確性;Command為雙機熱備份系統的控制命令,如同步系統時鐘指令、任務同步指令等;Syn_data為雙機同步數據,它的數據結構定義如下: 其中,關節數據以double類型計算,但在雙機通信中轉化為16位整數進行傳遞,節省數據流量;Result為裁決結果,雙機將比較裁決結果。如果一致則進行相應處理,如果矛盾將由指令系統進行處理。 雙機熱備份系統的軟件由以上6個模塊組成,對系統進行監測、裁決、恢復,保證中央控制計算機長期、穩定地運行。 4 雙機熱備份系統驗證 當中央控制計算機啟動后,主機將向備機發出同步系統周期指令,同步系統周期時間;在外部指令系統啟動主機任務的同時,主機將發出指令啟動備機任務。主機從接收指令到備機同步啟動任務所需時間為1 420 ms,備機從接收指令到啟動任務所需時間為1180 ms。該雙機系統可以快速啟動并進行同步。 在運行過程中,利用錯誤注入的測試方法,預先在程序中注入錯誤,系統檢測到錯誤后,能夠快速的切換,并且備機可以及時更新系統數據,與主機進行再同步,從切換完成到重新同步的平均時間為592 ms內,滿足空間機器人任務的強實時性要求。 結語 本研究在綜合考慮空間環境及機器人任務特殊性的基礎上,實現了一種獨特的雙機熱備份系統。依據可能出現的故障類型,設計了心跳策略、同步策略、裁決切換策略和恢復策略,并基于 VxWorks操作系統實現了雙機熱備份系統的軟件。經驗證,該系統具有較好容錯能力,可增強空間機器人系統在復雜空間環境下執行任務的可靠性,適合在空間機器人系統中應用。 參考文獻 1. Machida K.Mikami T Precise EV Robot:Flight Model and Telerobotic Operation for ETS-VII 2008 2. Chen Ing-Ray.Bastani Farokh B Warm Standby in Hierarchically Structured Process-Control Programs 2008 3. 楊玲.黃海.侯穎 基于分布存儲的嵌入式系統雙機備份設計 [期刊論文] -計算機與現代化2007(2) 4. Chen C H.Ting Y.Lu W B.Wang G K Recovery Mechanism Design for Hot Standby Computer System 2008 5. 鄺堅 Tornado/VxWorks 入門與提高 2004 作者:北京郵電大學 劉喆 孫漢旭 賈慶軒 史國振 來源:單片機與嵌入式系統應用 2008 (12) |