方峰 張睿 楊麗君 周波 王向暉 郝維寧
(北京空間飛行器總體設計部,北京 100094)
航天器1553B總線控制器RAM故障自主診斷與處理方法
方峰 張睿 楊麗君 周波 王向暉 郝維寧
(北京空間飛行器總體設計部,北京 100094)
在航天器中,1553B總線控制器(BC)作為總線信息交互的管理中樞,其可靠性直接關系航天器的系統(tǒng)安全。近年來,受單粒子事件的影響,多個航天器在軌發(fā)生總線芯片RAM損壞的故障。文章針對此問題,結合總線芯片BC模式的典型應用場景進行分析,提出RAM故障診斷的策略和自主分區(qū)故障處理的方法。該方法能夠使BC端軟件通過診斷自主發(fā)現故障,定位故障區(qū)域,并通過替換、隔離等手段排除故障,消除故障對航天器的影響。通過軟件仿真,對故障診斷和處理的性能進行了試驗驗證,結果表明:采用該方法的軟件能夠自主發(fā)現故障區(qū)域并完成隔離和替換,且其處理的準確性和時效性都明顯優(yōu)于傳統(tǒng)依賴地面遙控的方法。
航天器1553B總線;總線控制器;RAM故障;自主診斷與處理
MIL-STD-1553B總線(以下簡稱1553B總線)是美國定義的軍用標準串行通信總線,是一種中央集權式的時分復用型串行總線,由于其具有可靠性高、實時性好、擴展性強的特點,在航天器上已經得到了非常廣泛的使用[1]。一般,航天器的總線由1個總線控制器(BC)、多個遠置終端(RT)及雙總線電纜組成[2-3]。目前,航天器上大多數綜合電子系統(tǒng)、數管分系統(tǒng)等,都采用1553B總線進行遙測數據采集及遙控指令分發(fā)。BC端設備,如中央控制單元(CTU)等,多使用CPU和總線芯片(BU-61580等)[4-6]組合完成總線BC端控制。
航天器在軌運行所處的空間環(huán)境較為惡劣,近年來,國內外航天器發(fā)生了多起由空間環(huán)境引起的故障,其中包括多起總線芯片受空間環(huán)境影響造成RAM區(qū)損壞的故障。當總線芯片RAM區(qū)部分損壞時,總線通信過程依然可以完成,但BC接收或發(fā)送的數據均不正常,嚴重時容易引起航天器功能異常,甚至影響航天器正常飛行。航天器在軌發(fā)生此類故障后,一般情況下,都會先啟用冗余備份設備替代故障設備[7],再對設備的故障區(qū)域進行定位,通過由地面發(fā)送遙控指令的方法重構軟件的部分模塊[8],以完成對芯片故障區(qū)域的隔離。但是,這種處理方法無論是診斷的時效性還是處理的準確性,都難以達到令人滿意的效果。
本文以BU-61580總線芯片BC模式為典型(其他總線芯片的工作方式及內存組織形式幾乎都與其相同),提出一種通用的RAM故障自主診斷與處理方法,能夠使BC端軟件通過診斷自主發(fā)現故障,定位故障區(qū)域,并通過替換、隔離等手段排除故障,消除故障對航天器的影響。
BU-61580總線芯片(以下簡稱芯片)是一款由美國DDC公司(Data Device Corporation)生產的符合1553B總線協(xié)議的接口芯片。該芯片集成了雙收發(fā)器、協(xié)議邏輯、內存及中斷管理、處理器接口控制,另外還能提供4 Kbit大小的內部共享RAM。當芯片工作在BC模式時,其RAM內存組織采用以下組織形式(表1中第1、2列)。為了便于分類處理,把BC的RAM區(qū)劃分成3大部分,A區(qū)、B區(qū)和消息塊區(qū),每個部分里又包含一些子部分,具體劃分如表1第3、4列所示。
操作芯片進行總線通信、發(fā)送或接收數據時,都要設置以下RAM區(qū)。①A或B棧區(qū)(寫入待發(fā)送消息塊的片內地址)。②A或B棧區(qū)指針(發(fā)送的起始位置)。③A或B區(qū)待發(fā)消息計數(本次發(fā)送的消息個數)。④消息塊(待發(fā)送的數據、命令字、控制字,如果本消息用于接收數據,則無需寫入數據)。設置完畢后,啟動發(fā)送,芯片按照設置開始工作。舉例說明一次典型的BC發(fā)起通信設置如圖1所示。本例中,待發(fā)送的消息個數為32,因此要設置32個棧區(qū)描述符和32個消息塊,將棧區(qū)指針指向所設置的第1個描述符的片內地址,啟動發(fā)送后,芯片開始逐個按照描述符和消息塊的設置發(fā)送消息。
總結BC端芯片RAM區(qū)使用的特點如下:①32個棧區(qū)描述符的片內地址是連續(xù)的,中間不能出現間斷的情況;②32個消息塊可以是不連續(xù)的(跳躍或交叉,但不能重復);③要設置棧區(qū)指針和待發(fā)送消息個數。
圖1 BC發(fā)起通信設置實例Fig.1 An instance of setup when BC starts transmission
3.1總體思路
RAM故障自主診斷與處理方法通過軟件對芯片所有片內地址進行遍歷診斷,對發(fā)現故障的片內地址所在的區(qū)域(具體參見表1)進行記錄,根據不同的區(qū)域選用不同的故障處理策略進行處理,最后保證軟件收發(fā)數據的正確性。自主診斷與處理方法流程如圖2所示。其中,故障自主診斷和故障處理策略是要重點描述的內容。
圖2 自主診斷與處理方法流程Fig.2 Flow of autonomous diagnosis and recovery method
3.2故障診斷模塊設計
對于棧區(qū)而言,其特點是必須連續(xù)使用。A、B棧區(qū)1次通信最多可以支持64個消息塊,也就是4 Kbyte字長度的通信過程。目前,在航天器上使用的1553B通信協(xié)議基本通信長度都不超過2 Kbyte字(最大的業(yè)務數據量一般發(fā)生在數管分系統(tǒng)的重要數據保存與恢復過程中),因此,模塊把A、B棧區(qū)分別劃分為上半部分和下半部分。這樣的劃分能提高系統(tǒng)的冗余備份,增強系統(tǒng)的可靠性。故障診斷模塊輸入為片內地址,輸出為該片內地址對應子部分的健康狀態(tài)。軟件應當力爭可以周期性檢測并給出所有子部分是否正常的標識。
診斷故障時,每次檢測1個片內地址,每個片內地址分別寫入0x5555和0xAAAA,并讀取、判斷是否與寫入一致。一致,則該片內地址正常;不一致,則表示該片內地址可能有故障;連續(xù)3次檢測錯誤,則認為該片內地址故障,并將該片內地址對應的子部分健康標識設置為不健康。故障診斷流程如圖3所示。經過診斷流程后,可以得到各個分區(qū)的健康狀態(tài)表,輸出如表2所示。
圖3 檢測故障流程Fig.3 Flow of fault diagnosis
表2 健康狀態(tài)表
3.3故障處理模塊設計
對于故障處理模塊,其輸入即為故障診斷模塊輸出的子部分健康狀態(tài)表。故障處理模塊將RAM故障按區(qū)劃分為3大類:①A區(qū)故障,包括A棧區(qū)指針,以及A區(qū)待發(fā)消息計數、A棧區(qū);②B區(qū)故障,包括B棧區(qū)指針,以及B區(qū)待發(fā)消息計數、B棧區(qū);③某消息塊故障,包括94個消息塊。故障處理模塊對3個區(qū)域的故障設計了不同的處理策略,具體如下。
3.3.1 A或B區(qū)故障處理
由于A或B棧區(qū)指針、A或B區(qū)待發(fā)消息計數是芯片內部固定發(fā)送邏輯使用的控制變量,因此其故障只能通過切換備份的策略進行隔離。例如,當A棧區(qū)指針或A區(qū)待發(fā)消息計數故障時,只能使用B棧區(qū)指針或B區(qū)待發(fā)消息計數,此時通過設置芯片配置寄存器1的BIT13位來切換使用。
對于棧區(qū)而言,使用時,要將A棧區(qū)指針(假設默認使用A區(qū)進行通信)指向通信使用棧區(qū)的首個內片地址,棧區(qū)中連續(xù)設置本次通信每條消息的描述符。其替換策略如下:①默認使用A棧區(qū)上半部分進行通信描述符的寫入;②當A棧區(qū)上半部分不健康時,使用A棧區(qū)下半部分;③當A棧區(qū)下半部分也不健康時,使用B棧區(qū)上半部分;④當B棧區(qū)上半部分同樣不健康時,使用B棧區(qū)下半部分。這樣,棧區(qū)擁有4個完全獨立的區(qū)域,可以相互備份使用,大大提高了系統(tǒng)應對故障的能力。
3.3.2 消息塊故障處理
芯片在BC模式下共提供94個消息塊進行收發(fā)數據的存儲。針對94個消息塊,要設計相應的數據結構對其進行管理。根據設計的實用性,這里選擇最常見的雙向隊列結構,共設計2個隊列分別對健康和不健康的消息塊進行管理,其隊列組織形式如圖4所示。
故障處理模塊初始化時,將所有消息塊設置為健康,每塊插入健康消息塊管理隊列,成為隊列的1個節(jié)點。當有消息塊被檢測確定為不健康時(如圖4的消息塊1,2,4,…,35,77),將該消息塊從健康消息塊管理隊列中移除,作為1個節(jié)點插入非健康消息塊管理隊列中。具體每次通信時,按照通信字長,從健康消息塊管理隊列中獲取相應個數的消息塊,將待發(fā)送的數據寫入消息塊中(或通信結束后從這些消息塊中讀取數據),并將這些消息塊片內地址順序寫入上文中提到的棧區(qū)描述符中,然后設置A或B棧區(qū)指針,以及A或B區(qū)待發(fā)消息計數,啟動發(fā)送即可完成本次通信過程。
圖4 消息塊管理結構Fig.4 Structure of message block management
3.4應用建議
在實際應用本文提出的RAM故障自主診斷與處理方法時,現有總線通信軟件模塊要考慮故障診斷的時機、頻度及對整個通信過程的影響。由于每次總線通信均由BC端主動發(fā)起,因此RAM故障診斷的過程只要與芯片收發(fā)數據的過程不發(fā)生沖突即可,因此建議故障診斷的時機為每次發(fā)起總線通信之前。
故障診斷需要針對所有片內地址開展,片內地址一共4096個,每個故障診斷過程完成對1個片內地址的檢測,連續(xù)3次錯誤則確認故障。本文建議系統(tǒng)確認故障的時間最長不超過10 s,這樣每秒需要對410個片內地址進行檢測。根據航天器總線設備的配置情況及協(xié)議設計,RT一般不少于5個,每秒訪問RT的次數(通信過程次數)不少于20次。因此,結合上文建議的診斷時機,建議BC端在每次啟動總線通信之前完成16~32個片內地址的故障診斷,具體可以根據航天器的配置及協(xié)議情況進行變化。
整個故障診斷的過程經軟件代碼實現后,對其運行性能進行仿真測試。仿真系統(tǒng)處理器采用BM3803平臺,主頻設置為30 MHz。仿真結果如圖5(a)所示,表明檢測單個片內地址的時間不超過0.05 ms,1次檢測的片內地址越多,平均檢測單個片內地址的時間越短,這與關閉中斷、進行全局變量存取等操作少有關。選擇每次對16個片內地址進行檢測,仿真結果表明,檢測最長需要0.576 ms,即每次通信過程時延增加0.576 ms,該時延幾乎不會對系統(tǒng)性能帶來影響。
仿真系統(tǒng)采用某型衛(wèi)星總線通信配置對故障發(fā)現的時間進行測試,其配置為通信37次/秒,每次通信檢測16個片內地址。仿真中通過軟件造錯的方法對某個固定片內地址進行故障注入,測試結果如圖5(b)所示??梢?,故障發(fā)現時間最長不超過7 s,短于本文建議的故障發(fā)現時間要求。
圖5 仿真結果Fig.5 Results of simulation
根據本文方法及仿真結果,與傳統(tǒng)通過地面遙控指令修改軟件模塊進行故障處理的方法進行對比,如表3所示。經過比較可知,本文方法對故障診斷定位精確到每個片內地址,診斷時效性顯著優(yōu)于傳統(tǒng)方法,診斷后對故障的處理有效性和時效性都大幅領先傳統(tǒng)方法。
表3 兩種故障診斷與處理方法比較
BC端作為航天器1553B總線通信的發(fā)起節(jié)點,擔任航天器內部數據管理的核心角色,自身的可靠性對整個航天器的安全至關重要。本文針對芯片的結構,根據當前航天器BC端軟件設計的特點,提出了一種RAM故障自主診斷與處理方法。該方法通過對BC端芯片RAM區(qū)進行故障檢測,并按照使用特點進行劃分,對不同區(qū)域采用不同的處理策略,使BC端軟件具備脫離地面干預、自主完成RAM故障自主診斷與處理的能力,提高了系統(tǒng)的可靠性和安全性。
References)
[1] 郭堅,付連芳,王海濤.基于8051單片機的1553B總線接口設計[J].計算機測量與控制,2006,14(7):946-949
Guo Jian, Fu Lianfang, Wang Haitao. Interface design of 1553B bus based on 8051 singlechip [J]. Computer Measurement & Control, 2006, 14(7): 946-949 (in Chinese)
[2] 中國航空工業(yè)總公司第301所.GJB289A-94 數字式時分制指令/響應型多路傳輸數據總線[S].北京:國防科學技術工業(yè)委員會,1997
301 Institute,Aviation Industry Corporation of China. GJB289A-97 Digital time division command/response multiplex data bus [S]. Beijing: Commission of Science,Technology and Industry for National Defence,1997 (in Chinese)
[3] 國防科學技術工業(yè)委員會.GJB/Z 209-2002. 數字式時分制指令/響應型多路傳輸數據總線應用手冊[S].北京:國防科學技術工業(yè)委員會,2002
Commission of Science,Technology and Industry for National Defence. GJB/Z 209-2002. The handbook of digital time division command/response multiplex data bus [S].Beijing: Commission of Science,Technology and Industry for National Defence, 2002 (in Chinese)
[4] Data Device Corporation. ACE/Mini-ACE series BC/RT/MT advanced communication engine integrated 1553 terminal user’s guide [Z]. New York: Data Device Corporation,1999
[5] 謝栓勤,史軍芳.基于SOPC的1553B總線通用接口設計[J].計算機測量與控制,2008,16(5):727-730
Xie Shuanqin,Shi Junfang. Design of 1553B universal interface based on SOPC [J].Computer Measurement & Control, 2008,16(5): 727-730 (in Chinese)
[6] 史國慶,高曉光,吳勇,等.基于DSP的1553B總線接口卡設計與實現[J]. 計算機工程,2005,13(12):1392-1393
Shi Guoqing, Gao Xiaoguang, Wu Yong, et al. Design and realization of 1553B bus interface board based on DSP [J]. Computer Engineering,2005,13(12): 1392-1393 (in Chinese)
[7] 吳海超,欒家輝,張亮,等.航天器綜合電子系統(tǒng)在軌重構容錯技術研究[J]. 航天器工程,2016,25(4):120-126
Wu Haichao, Luan Jiahui, Zhang Liang, et al. Research of on-orbit reconfigurable fault-tolerant technology for spacecraft avionics system [J].Spacecraft Engineering, 2016, 25(4): 120-126 (in Chinese)
[8] 李磊霞,王宇,林寶軍,等.基于宏定義動態(tài)鏈接的模塊化星載軟件升級方法研究[J].空間科學學報,2010,30(2):180-184
Li Leixia, Wang Yu, Lin Baojun, et al. Research of software updating for micro-satellite in the orbit based on dynamic link with macros [J]. Chinese Journal of Space Science, 2010, 30(2): 180-184 (in Chinese)
Autonomous Diagnosis and Recovery Method for RAM Fault of 1553B Bus Controller on Spacecraft
FANG Feng ZHANG Rui YANG Lijun ZHOU Bo WANG Xianghui HAO Weining
(Beijing Institute of Spacecraft System Engineering, Beijing 100094, China)
In a spacecraft,1553B BC (bus controller) is the management center of 1553B bus,and its reliability is directly related to the safety of the whole system. In recent years,due to the influence of the space environment,single event will happen to the RAM of the bus chip when the spacecraft is on-orbit. The affection of the problem according to characteristics of different applications is analyzed in the paper. Based on the analysis,the RAM fault autonomous diagnosis and recovery method is proposed. The BC software based on this method can detect fault, locate fault section and isolate or replace fault automatically,so the spacecraft can be recovered from the fault. The results show that the processing is completely in line with expectations through software implementation for diagnosis and recovery method. Its accuracy and timeliness are obviously better than the traditional method depended on the ground telecommand.
spacecraft 1553B bus; bus controller; RAM fault; autonomous diagnosis and recovery
V443
A
10.3969/j.issn.1673-8748.2017.04.012
2017-05-12;
2017-06-21
國家重大航天工程
方峰,男,碩士,工程師,研究方向為星間網絡技術及星載軟件設計。Email:ff4255@126.com。
(編輯:夏光)