楊 璋
(中國西南電子技術(shù)研究所,四川 成都 610036)
現(xiàn)場總線在分布式控制系統(tǒng)和實時控制系統(tǒng)中的應用非常廣泛,CAN總線作為現(xiàn)場總線中的重要代表,最早由Bosch公司提出并成功應用在汽車領(lǐng)域[1-2],CAN總線的組網(wǎng)簡單、性能可靠、實時性好及功耗較低,并自帶校驗機制和糾錯機制,使其逐漸在航天領(lǐng)域得到廣泛應用,國內(nèi)成熟的小衛(wèi)星平臺上普遍采用CAN總線作為數(shù)據(jù)通信的主要手段[3-4]。
地球輻射帶、銀河宇宙射線及太陽質(zhì)子等空間環(huán)境因素產(chǎn)生的輻射會對星載設(shè)備工作有較大影響[5],其中單粒子翻轉(zhuǎn)是造成星載設(shè)備故障的主要因素[6-7]。國內(nèi)小衛(wèi)星主要選用工業(yè)級器件SJA1000作為CAN總線控制器,本身抗輻照指標不高,進行防翻轉(zhuǎn)設(shè)計非常必要。目前,小衛(wèi)星平臺已提出了一些防翻轉(zhuǎn)的整體方法[8],并進行了一些試驗驗證[9-13],但載荷仍需要根據(jù)其自身特點設(shè)計總線故障自動恢復方法,以減輕衛(wèi)星平臺設(shè)計的壓力,提高通信穩(wěn)定性。載荷主控計算機(以下簡稱載控機)作為衛(wèi)星平臺和載荷分系統(tǒng)數(shù)據(jù)交換的樞紐,又是載荷分系統(tǒng)的設(shè)備控制中心,是載荷發(fā)揮作用的關(guān)鍵設(shè)備,其CAN總線出現(xiàn)故障會導致整個載荷分系統(tǒng)無法正常工作,嚴重時可能干擾衛(wèi)星通信總線,影響平臺安全,所以載控機的總線翻轉(zhuǎn)自動恢復功能設(shè)計成為載荷設(shè)計的重點。本文首先分析了空間單粒子效應對總線寄存器的影響,結(jié)合載荷CAN總線結(jié)構(gòu)和工作特點,設(shè)計了載荷CAN總線翻轉(zhuǎn)故障自動恢復方法,最后通過實驗驗證了方法的有效性。
小衛(wèi)星載荷的CAN總線采用分層多區(qū)的多級網(wǎng)絡(luò)結(jié)構(gòu),每一級CAN總線都采用熱備份的雙冗余總線形式,包括A、B兩條總線互為備份,由星務(wù)主機和各種類型的下位機組成第一層CAN總線節(jié)點,下位機和各種類型的載荷主控機組成第二層CAN總線節(jié)點,每類載荷分系統(tǒng)組成第三層CAN總線節(jié)點,網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖1所示。
圖1 載荷CAN總線網(wǎng)絡(luò)結(jié)構(gòu)
載控機負責管理載荷分系統(tǒng)的總線通信,與2個級別的CAN總線存在數(shù)據(jù)交互,主控計算機通過二級CAN總線與下位機通信,接收星務(wù)主機下發(fā)的數(shù)據(jù)包、控制指令和遙測輪詢,并將載荷分系統(tǒng)的遙測數(shù)據(jù)上報;主控計算機通過三級CAN總線與分系統(tǒng)內(nèi)部設(shè)備通信,下發(fā)指令、任務(wù)參數(shù),并查詢、收集載荷設(shè)備的遙測數(shù)據(jù)。國內(nèi)成熟的小衛(wèi)星平臺二級CAN總線普遍采用BasicCAN模式,載荷分系統(tǒng)內(nèi)部的三級CAN總線一般采用PeliCAN模式,以獲得更好的節(jié)點擴展性。
空間單粒子主要影響CPU寄存器、SRAM、總線控制器的數(shù)據(jù)緩沖區(qū)和寄存器等具有數(shù)據(jù)存儲能力的部件,造成其邏輯狀態(tài)翻轉(zhuǎn),導致工作狀態(tài)為非期望值,從而影響正常工作[14-17]??偩€異常后不僅自身不能正常工作,還會干擾其他節(jié)點工作,最終導致總線癱瘓,根據(jù)載荷CAN總線網(wǎng)絡(luò)結(jié)構(gòu),按照總線故障影響范圍對翻轉(zhuǎn)進行分類,如圖2所示。
圖2 寄存器翻轉(zhuǎn)異常類別
載控機在二級和三級CAN總線上承擔的節(jié)點任務(wù)不同,在二級CAN總線上作為下位機類型節(jié)點,受星務(wù)控制,接收星務(wù)下發(fā)的數(shù)據(jù),一般采用BasicCAN模式工作;在三級CAN總線上作為上位機類型節(jié)點,控制其他載荷設(shè)備,是數(shù)據(jù)的發(fā)起節(jié)點,一般采用PeliCAN模式工作,需要針對二級和三級CAN總線特點,設(shè)計總線故障自動恢復方法。
影響單次數(shù)據(jù)收發(fā)的故障,此類型故障發(fā)生時會導致載控機需要接收的數(shù)據(jù)丟失或收到錯誤數(shù)據(jù),下次通信寄存器重新置位能自動恢復正常,載控機無需啟動故障恢復措施,但要使上位機知曉本次通信失敗,解決措施為:載控機與上位機之間設(shè)計握手機制,未收到合法數(shù)據(jù)時不響應上位機的握手信息,接收上位機在備份總線上重發(fā)的數(shù)據(jù)。另外,上位機可在A,B總線上皆發(fā)送相同信息,降低通信故障的概率(A,B總線同時翻轉(zhuǎn)概率很小)。
長期影響數(shù)據(jù)收發(fā)的故障,此類型故障發(fā)生后不能自動恢復,需要載控機采取相應措施恢復故障,否則有拉垮總線的風險,一般來說,通過復位CAN總線控制器即可解決翻轉(zhuǎn)導致的故障。故障恢復的策略為:載控機定期查詢CAN總線狀態(tài)寄存器,若長時間連續(xù)出現(xiàn)總線錯誤標識則對相應的控制器進行復位操作。對于波特率及濾波器錯誤等沒有指示的故障,需利用系統(tǒng)工作特點設(shè)計故障恢復方法,衛(wèi)星平臺的遙測指令和廣播數(shù)據(jù)在二級CAN總線上是長期存在且定時發(fā)送的,若載控機在長時間內(nèi)都無法接收到正確的信息幀,則認為載控機的總線控制器可能出現(xiàn)故障,需進行復位操作。二級總線故障自動恢復流程如圖3所示。
圖3 二級總線故障自動恢復流程
影響單次數(shù)據(jù)收發(fā)的故障,此類型故障發(fā)生時會導致載控機需要發(fā)送的數(shù)據(jù)丟失或發(fā)送錯誤數(shù)據(jù),同二級總線類似,故障在下次通信時重置恢復,只需在載控機與載荷設(shè)備之間設(shè)計握手機制,由載控機根據(jù)握手情況決定重發(fā)數(shù)據(jù)或切換備份總線發(fā)送數(shù)據(jù),確保通信數(shù)據(jù)不丟失。
長期影響數(shù)據(jù)收發(fā)的故障,作為控制端載控機不但要恢復自身故障,還需協(xié)助其他載荷設(shè)備恢復故障,對于自身總線故障可通過復位總線控制器恢復,對于總線其他節(jié)點的故障恢復只能通過對故障設(shè)備復位解決。故障恢復策略為:載控機定期查詢RX/TX錯誤計數(shù)寄存器,若總線發(fā)送或接收錯誤計數(shù)超過閾值,則對控制器進行復位操作,防止故障影響擴大;載控機與某節(jié)點通信時若出現(xiàn)握手失敗,首先對自身總線控制器進行復位,若與該節(jié)點通信連續(xù)多次皆失敗,則認為該節(jié)點總線故障且不可自動恢復,對此節(jié)點進行復位重啟操作,并記錄節(jié)點故障,若總線上所有節(jié)點均出現(xiàn)節(jié)點故障,則認為總線被拉垮,需重啟所有節(jié)點。三級總線故障自動恢復流程如圖4所示。
圖4 三級總線故障自動恢復流程
小衛(wèi)星二級、三級總線故障自動恢復方法驗證在載荷分系統(tǒng)測試網(wǎng)中執(zhí)行,星務(wù)主機采用PC機替代,載荷設(shè)備故障通過仿真器運行錯誤注入代碼進行,實驗連接框圖如圖5所示。
實驗1:二級總線單次故障模式,針對可改寫寄存器翻轉(zhuǎn),通過載控機執(zhí)行錯誤注入代碼,修改寄存器值造成接收數(shù)據(jù)錯誤。載控機在故障情況下能丟棄錯誤數(shù)據(jù),并正確接收星務(wù)重發(fā)的數(shù)據(jù),且不影響后續(xù)數(shù)據(jù)的接收和發(fā)送。
實驗2:二級總線長期故障模式,在載控機運行過程中執(zhí)行錯誤注入代碼,重新初始化相關(guān)寄存器為錯誤值,模擬翻轉(zhuǎn)后不能正常接收數(shù)據(jù),模擬翻轉(zhuǎn)后波特率錯誤。載控機在故障情況下能自動復位故障總線,恢復總線正常通信;
實驗3:三級總線單次故障模式,針對可改寫寄存器翻轉(zhuǎn),通過載控機執(zhí)行錯誤注入代碼,修改寄存器值造成發(fā)送數(shù)據(jù)錯誤,與其他節(jié)點握手失敗。載控機在故障情況下能自動重發(fā)數(shù)據(jù),并能切換到備份總線通信。
實驗4:三級總線長期故障模式,在載荷節(jié)點1運行過程中執(zhí)行錯誤注入代碼,重新初始化總線控制器寄存器為錯誤值,模擬翻轉(zhuǎn)節(jié)點故障,載控機在故障情況下能自動復位總線控制器和節(jié)點1。使節(jié)點1長時間故障,拉垮總線,造成所有節(jié)點通信故障,載控機能復位所有節(jié)點,最終恢復總線正常通信。
圖5 總線故障恢復驗證實驗框圖
本文分析了空間單粒子翻轉(zhuǎn)對小衛(wèi)星載荷主控機CAN總線的影響,單粒子主要造成總線控制寄存器值翻轉(zhuǎn),從而造成總線節(jié)點之間數(shù)據(jù)通信失敗,嚴重時會拉垮整條總線,導致所有節(jié)點無法正常通信。針對載荷CAN總線單次和長期2種故障模式,結(jié)合載控機CAN總線組網(wǎng)和工作特點,分別設(shè)計了二級CAN總線和三級CAN總線翻轉(zhuǎn)自動恢復方法,在總線故障發(fā)生后無需地面操作,載控機能自主恢復單粒子翻轉(zhuǎn)導致的CAN總線故障,提高載荷總線恢復效率,降低載荷在軌維護的壓力。本故障自動恢復方法便于工程實現(xiàn),且通過實驗驗證了方法的有效性,已成功應用到小衛(wèi)星平臺工程項目中。