鄭歡歡,戴 航,張慧翔
(西北工業大學自動化學院,西安710072)
隨著對空間技術研究、開發和應用水平的不斷提升,各國相繼研制并發射了大量面向各種任務的航天器。由于空間環境惡劣,部分航天器在未完成任務時,發生部分功能故障,導致了整個任務失敗,因此,可更換模塊化設計就應運而生[1]。可更換模塊化設計把模塊的內部組件集成分裝,通過標準總線接口連接。系統功能分散到一系列獨立的單元功能模塊中,當遇到模塊故障,立即進行模塊更換。通過設計可更換模塊單元,可有效提高系統的可靠性和可用性[2]。
CAN總線[3]具有可靠性高、實時性好、靈活性強的突出特點,已經越來越多的應用于航空領域[4]。針對航空領域的CAN總線應用需求,德國Stock航空系統公司還專門在CAN總線基本規范的基礎上設計了一種 CANaerospace[5-6]高層應用協議。因此,應用CAN總線作為高可用數據通信的標準接口具有可行性。
航天器系統中包含有大量的計算機模塊,用于完成各種計算和檢測任務。為保證系統可持續運行,本文設計了一種基于冗余CAN總線、支持可更換操作的高可用計算機系統。該系統設計包括計算機系統組成和更換模式,以及通信系統設計,最后通過實驗進行該系統的功能驗證。
高可用計算機系統包含計算機工作模塊、計算機溫備模塊、計算機冷備模塊和計算機外部存儲模塊,各個模塊構成一種分布式的計算平臺,如圖1所示。各個計算機模塊具有相同的硬件結構和配置。計算機外部存儲模塊為所有的計算機模塊提供可靠、持久的外部存儲能力。各個模塊之間通過CAN 總線進行命令和數據交互。

圖1 高可用計算機系統的組成
計算機模塊的定義如下:①計算機工作模塊:處于工作狀態的計算機模塊,執行一定的任務;②計算機溫備模塊:指處于待命狀態的計算機模塊,該模塊在邏輯上與整個系統斷開。溫備模塊中存在一個系統后臺任務,只接收特定的指令;③計算機冷備模塊:指處于斷電狀態的計算機模塊,該模塊未上電加載軟件系統,在物理上與整個系統斷開。
基于以上高可用計算機系統組成,可更換計算機系統更換模式如圖2所示。計算機系統中的每個節點可在四種狀態之間轉換。各種狀態描述如下:①工作狀態:節點計算機模塊正常執行系統任務;②溫備狀態:已加電的正常計算機模塊,但未執行系統任務;③冷備狀態:未加電的正常計算機模塊,處于備份狀態;④可更換狀態:節點出現永久故障,無法繼續執行任務,已被監控節點斷電,標記為可更換狀態。

圖2 高可用計算機系統的更換模式
整個可更換計算機系統中的節點在監控節點的控制下進行調度和狀態轉換。應該說明,監控節點并不屬于中心控制節點,只是一個分布式節點,執行系統監控的任務。為了增強系統的可靠性,可能有多個節點同時執行監控任務。
典型的CAN總線電路可分為3個環節,即微處理器、總線控制器、總線驅動器。因此,CAN總線的典型冗余方法[7]包括驅動器級冗余,控制器級冗余和系統級冗余。其中,系統級冗余的可靠性最高,但系統構成相對比較復雜,成本最高。相比之下,在大多數應用中采用控制器級的冗余設計即可滿足要求,即采用兩套獨立的總線電纜、總線驅動器、總線控制器,如果其中一套發生故障,另一套仍能維持系統的正常運行。本文采用CAN總線控制器級冗余方式,總線冗余結構如圖3所示。

圖3 控制級CAN總線冗余結構
根據圖3控制器級冗余結構,設計了高可用計算機模塊。模塊由核心板和底板組成,核心板上集成MPC8313處理器,256M的SDRAM以及16M的FLASH,可擴展NAND FLASH為256M。2個千兆以太網 PHY芯片,分別連接 MPC8313的 TSEC1和TSEC2接口;1個RS232串口作為系統監控串口,直接控制系統;2路CAN總線控制器,實現基于控制器級總線冗余。
CAN控制器采用Philips公司獨立的CAN總線控制器SJA1000,它支持BasicCAN和PeliCAN兩種工作模式,是64字節的FIFO結構,具有擴展的接收緩沖器,支持CAN2.0協議,位速率可達1M bit/s,可自動完成鏈路層以下的收發工作。
CAN總線收發器選用PCA82C250,它提供了CAN控制器與物理總線之間的接口。
支持更換過程的熱插拔控制器是Maxim公司的MAX4271,它采用了集成限流方案,簡化了浪涌抑制設計,為更換過程中帶電熱插拔提供了電路保護和支持。
系統采用含有29位標識符的擴展幀格式,通過設置標識符[8]的內容,實現不同功能。具體幀ID分配表見表1所示。

表1 幀ID分配表
協議報文各字段定義如下:①報文類型編碼:不同的消息類型,區分節點間通信的基本功能;②節點編碼:源節點即發送節點,目標節點是接收節點;③SegPolo即分段標志,用于信息多幀傳輸時區分中間幀和結束幀。
論文設計的高可用計算機系統采用了兩種故障檢測[9]方法:被動檢測和主動檢測。
3.4.1 被動檢測
由于采用的是控制級的CAN總線冗余,擁有單獨的傳輸介質、總線驅動器和總線控制器,所以可以分別獨立檢測到兩條總線的故障。在每一總線單元中使用發送錯誤計數器和接收發送計數器兩種計數來進行故障界定。計數規則為:
(1)發送器/接收器直到幀末尾都沒有錯誤,則判定報文有效。如果檢測到錯誤后,就給發送接收計數累加。當然當發送或者接收的報文有效時計數值遞減,最小值為0;
(2)當錯誤計數器值大于96時,表明總線被嚴重干擾,CAN控制器置位錯誤寄存器,并發出錯誤中斷;
(3)當錯誤計數器值大于127時,節點為“錯誤認可”狀態(“錯誤認可”狀態:參與總線通信,本節點在啟動下一個發送之前處于等待狀態),從而導致了該節點發出“激活錯誤”標志;
(4)當錯誤計數器值大于或者等于256時,節點進入游離狀態,并發送出離線中斷。CPU收到錯誤中斷信號或者離線中斷信號,得知節點通訊出現故障后,切換總線通道同時清除錯誤中斷信號。如果再次出現錯誤,清除錯誤中斷信號,說明是節點總線故障。節點脫離總線。
3.4.2 主動檢測
失效檢測一般采用超時機制實現,即通過被檢測對象在規定時間T內有無應答來判斷失效,有兩種最基本的檢測方法:心跳檢測和輪詢檢測方法。
心跳檢測:被檢測進程按照一定的時間間隔,定期向失效檢測器發送心跳信息。如果失效檢測器超過某一期限沒有收到心跳消息,則認為被檢測對象失效。
輪詢檢測:失效檢測器q定時發送查詢消息,檢查被檢測對象p的狀態,被檢測對象p收到查詢消息后返回應答消息,如果失效檢測器超過一定時間間隔沒有收到應答消息,則認為被檢測對象失效。
系統中的各個節點在上電后,每隔T1時間向總線發送心跳消息。在T1時間內,監控節點沒有收到某一節點的心跳消息,就向總線廣播輪詢報文(輪詢檢測),T1時間沒有收到心跳消息,就進行總線切換;切換后再次向總線廣播輪詢消息,還是沒有收到,則認定該節點失效。
按照圖1所示模型,搭建了驗證實驗平臺,采用兩個計算機模塊,一個作為工作模塊,一個作為溫備模塊。應用兩條CAN總線,測控計算機通過周立功的USBCANⅡ模塊接入總線網絡,作為系統的外部存儲模塊。實驗過程如下:
(1)檢測是否正常工作:測控計算機向總線中各計算機工作模塊發送帶有隱藏文字的圖片,計算機工作模塊把有用的文字信息提取出來返回給測控計算機。在測控計算機監控界面上,可觀察到計算機工作模塊持續返回的文字信息。
(2)檢測總線切換功能:正常工作狀態,將工作總線從系統中拔出,從監控界面上看到總線切換的過程,稍有停頓后正常工作,測控計算機收到連貫的文字信息。
(3)檢測計算機模塊切換功能:正常工作狀態,將計算機工作模塊拔出,脫離系統。監控界面上,可以看到計算機工作模塊心跳消失,總線重新進行身份認證過程,計算機溫備模塊接替工作,稍有停頓后正常工作,測控計算機收到連貫的文字信息。
根據測試結果看出,整個系統的應用層協議簡潔實用、可靠性高、可擴展性強,達到了預期目標,較快地實現了節點和總線的切換。
設計了一種高可用可更換計算機系統,通過冗余CAN總線和控制器級的冗余硬件結構提高系統的可靠性和可用性。系統實現了被動和主動的故障檢測模式。實現了高可用可更換計算機的原型系統,驗證實驗表明系統達到了預定的設計目標,具有較好的可用性。
[1] 陳小前,袁建平,姚雯.航天器在軌服務技術[M].北京:中國宇航出版社,2009.
[2] 王大鵬,譚春林,張博楠.載人航天器在軌維修性系統設計[J].中國空間科學技術,2010,5:16-22.
[3] 饒運濤,鄒繼軍,鄭勇蕓.現場總線CAN原理與應用技術[M].北京:北京航空航天大學出版社,2003.
[4] 梁君,熊華鋼.CAN總線及其較高層網絡協議在航空航天上的可適用性探討[J].導彈與航天運載技術,2004(4):47-50.
[5] CAN aerospace interface specification for airborne CAN app lications V1.7[Z].Germany:Stock Flight Systems,2001.
[6] 任立平,周軍.CAN總線高層協議CANaerospace及其設計應用[J].測控技術,2008,27(2):59-61.
[7] 禹春來,許化龍,劉根旺,等.CAN總線冗余方法研究[J].測控技術,2003,22(10):28-41.
[8] 許航,白瑞林,嚴惠.CAN總線上層協議的設計[J].計算機工程,2007,33(24):258-266.