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