趙性頌,董曉剛,楊曉龍,牛和明,高 猛
(北京控制工程研究所,北京 100190)
?
執行機構驅動單元軟件的設計與分析*
趙性頌,董曉剛,楊曉龍,牛和明,高 猛
(北京控制工程研究所,北京 100190)
介紹執行機構驅動單元軟件(ADU)的功能設計和時序設計.從總線消息時序沖突、臨界資源訪問沖突等方面分析軟件外部接口時序設計約束、內部接口時序設計約束的滿足性,對時序設計有效性進行驗證.軟件可靠性設計方面,采用軟件失效模式及影響分析(SFMEA)方法識別軟件中的關鍵變量/器件,對其采取單粒子效應防護措施,并驗證了措施的有效性.
執行機構驅動單元;時序;1553B;中斷;單粒子.
國產新一代通信衛星平臺采用綜合電子設計理念,以中心管理單元(CMU)為核心,綜合業務單元為終端,通過1553B[1-3]總線相連,構建了一套分布式網絡系統.執行機構驅動單元(ADU)作為綜合業務單元終端之一,集成了衛星控制系統推進線路、太陽帆板驅動線路、反作用輪線路等模塊.
ADU軟件與上位機(CMU)軟件獨立運行,兩者時序異步.ADU軟件運行于80C32E單片機之上,系統不具備設EDAC(error detection and correction)功能.軟件設計過程中需要重點解決如何避免時序沖突、減小空間環境干擾等問題.時序設計方面,文獻[3]總結了1553B總線使用過程中的時序約束,文獻[4]給出了衛星控制系統的時序建模分析方法.可靠性設計方面,文獻[5]重點介紹了軟件失效模式及影響分析(SFMEA,software failure modes and effects analysis)方法在系統中的應用,文獻[6]介紹了航天嵌入式軟件常用的單粒子效應軟件防護技術.文本文首先介紹ADU單機軟件總體設計,然后分析了外部總線時序接口、內部時序接口的設計思路,以及時序設計過程中如何避免數據訪問沖突,最后給出了軟件抗干擾設計方法及驗證結果.
ADU系統構成如圖1所示,系統的核心是CIP(control and interface part)模塊,CIP模塊集成了80C32單片機的最小系統、A/D、D/A、ASIC(application specific integrated circuit)、1553B接口芯片等,與推力器、太陽帆板驅動線路和反作用輪相連接.ADU軟件通過AISC與硬件交互,通過1553B接口芯片與中心管理單元CMU交互.

圖1 ADU系統結構圖Fig.1 System architecture of ADU
ADU軟件無系統軟件的支持,采用主循環加中斷的程序結構,設計有1個主任務,1個32 ms內部定時中斷,1個外部1553B中斷(未使用).主任務流程如圖2所示,完成以下功能:部件數據采集、模擬量采集、1553B消息處理(部件數據發送、部件控制量輸出、重要數據存取等).32 ms定時中斷中完成脈沖指令(屬于控制量)的輸出.

圖2 ADU主任務流程Fig.2 Flow chart of ADUtask
軟件時序設計的目的是在系統功能正確性的前提下,滿足系統的實時性要求.ADU軟件時序設計需要滿足以下3個約束:(1)總線消息無時序沖突,即對于某個子地址而言,消息的處理完成時間為消息下周期到來之前;(2)脈沖指令寬度為128 ms±10 ms;(3)主任務與中斷之間無共享變量等臨界資源[7]沖突.其中設計約束1、3屬于公共設計約束,設計約束2屬于ADU軟件的特殊設計約束.
上位機控制周期為64 ms,任務調度時序及運行時間如圖3所示.上位機共有4個任務,其中1553B總線任務實現了與ADU的通信接口.總線任務有4個子地址與ADU通信,4個子地址消息功能依次為:部件數據采集、控制量發送、模擬量采集、重要數據存取,消息產生周期依次為:64 ms、64 ms、448 ms、64 s.

圖3 上位機單周期運行時序圖Fig.3 Time sequence of position machine
ADU軟件運行周期設計為32 ms,運行時序如圖4所示.每個運行周期首先執行32 ms定時中斷,之后執行主任務,主任務依次進行部件數據采集、模擬量采集、1553B消息響應,1553B消息處理.中斷處理程序完成脈沖指令的輸出.

圖4 ADU單周期運行時序圖Fig.4 Time sequence of ADU
ADU軟件采用查詢方式響應1553B消息,記子地址i消息響應時間為ti0,消息處理時間為ti1,則消息的截止完成時間Tend=ti0+ti1.記消息產生的最小時間間隔為ti2,消息的傳輸時間為ti3,若滿足設計約束1,只需滿足式(1).
Tend (1) 對于子地址i消息而言,ti1、ti2、ti3取值固定,消息的截止完成時間Tend取決于消息響應時間ti0.進一步,由式(1)可以得出式(2) ti0 (2) 對于ADU的4個子地址而言,式(2)均需要滿足,當i取值為2時(子地址2),ti2+ti3-ti1的值最小,其值為64 ms.下面分析消息響應時間ti0取值最大時(最壞情況),式(2)的滿足性情況分析. 由時序圖4可以看出,“1553B消息響應模塊”為子地址響應的公共模塊,對于4個子地址而言,消息響應時間ti0的可能取值范圍相同,記為t0.要使得ADU的4個子地址滿足式(2),僅需要i取值為2時滿足即可. 當消息在“1553B消息響應模塊”之后到來時,消息響應時間t0取值最大,即對于子地址i而言,軟件在圖4中的t4時刻,即“1553B消息響應模塊”后收到子地址i消息.這種情況下,子地址i消息在下一個主任務周期才能得到響應及處理.t4的取值取決于程序的運行分支,假設t4的最大值為t4_max,最小值為t4_min,中斷處理程序的執行時間為tint,則響應時間t0的最大值為t0=T-t4_min+tint+t4_max.由于T-t4_min<32 ms,tint+t4_max<32 ms,因此t0<64 ms(t22+t23-t21=64 ms).當i取值為2時,ti2+ti3-ti1的值最小,仍滿足式(2)的要求,因此ADU軟件滿足外部接口時序設計要求. 2.1 軟件內部接口時序分析 設計約束2、設計約束3屬于內部接口時序設計約束.ADU軟件內部接口包含1個主任務、1個32 ms內部定時器中斷.根據圖4,定時器的溢出時間為32 ms,中斷處理時間小于0.1 ms,定時器溢出4次的時間為128 ms,在32 ms定時中斷中實現脈沖指令的輸出,可以保證脈沖寬度誤差小于 0.1 ms,滿足設計約束2的要求. 對于設計約束3,定時中斷與主程序的優先級不同,不同優先級的任務或者中斷在程序動態運行過程中,可能產生共享變量等臨界資源的數據訪問沖突.ADU軟件通過合理設計主任務與定時中斷之間的時序調度關系,避免主任務與中斷同時訪問臨界資源,解決了臨界資源訪問沖突問題. 從時序圖4可以看出,除去空閑任務外,主任務最長執行時間為23 ms,小于定時器0溢出時間32 ms;圖2流程圖顯示,主任務在判斷到定時中斷到來之后執行,軟件實現了定時中斷與主任務順序執行的時序邏輯,避免了主程序與中斷同時訪問臨界資源,因此滿足設計約束3. 2.2 時序驗證 軟平臺測試環境下對軟件運行時序進行驗證.軟平臺基于Keil公司的Keil μVision2環境開發,外圍接口芯片(1553B、ASIC等)和外圍部件等使用軟件模擬. (1)采用握手協議驗證外部接口時序的正確性.記上位機子地址消息i發送計數為Si,下位機子地址i消息接收計數為Ri,比較兩者的一致性,當Si≠Ri時,設置報警標志有效.實際測試過程中,軟平臺連續運行6 000個周期,報警標志始終處于無效狀態,實驗結果與設計一致. (2)采用程序插樁的方式驗證內部接口時序的正確性.在主程序和中斷的起始位置、結束位置分別設置監視哨,軟件平臺環境下監視每個周期主程序、中斷的運行時間.ADU軟件的運行時間圖5~6所示. 圖5 主程序運行時間圖Fig.5 Execution time of ADU task 從圖5~6可以看出,程序持續運行6 000個周期,ADU主程序的運行時間小于23 ms,中斷運行時間小于0.1 ms,ADU主程序的運行時間小于定時器溢出時間,實驗結果與設計一致. 圖6 定時器中斷運行時間圖Fig.6 Execution time of ADU interrupt handing ADU系統不具備EDAC功能,軟件可靠性設計過程中,除完成任務規定的可靠性安全性要求外,還需要考慮單粒子等空間環境的干擾.為降低空間單粒子效應給系統帶來的危害,在單機層面開展ADU軟件抗干擾設計. 3.1 關鍵變量/器件的識別方法 ADU軟件使用SFMEA[5]方法識別關鍵變量/器件.SFMEA是一種軟件可靠性分析技術,其基本思想是首先確定系統中每個層面軟件產品的失效模式,評價失效模式對系統行為的影響,之后分析失效原因,并提出改進措施. 與一般SFMEA方法采用自頂向下分析方式不同的是,本文僅針對單粒子翻轉(SEU,single-event upset)這一失效原因,按照自底向上的方法,以軟件中的全局變量、硬件器件為對象,展開SFMEA分析. 具體過程為:分析ADU軟件單個變量/器件的可能取值,分析每一個全局變量/器件發生翻轉后故障傳播路徑以及給系統帶來的最嚴重危害,以此確定軟件失效模式,根據失效模式確定是否關鍵變量/器件,最終建立“SEU故障-失效模式-關鍵變量”分析表.分析過程中,只考慮變量發生單錯(僅有一位發生翻轉)故障,表1為ADU軟件的“SEU故障-失效模式-關鍵變量”分析表,最終識別出的關鍵變量見表2. 表1 SEU故障-失效模式-關鍵變量 3.2 單粒子效應防護措施及驗證 識別出軟件的關鍵變量/器件后,制定相應的單粒子效應防護措施,在軟平臺環境下模擬單錯故障,驗證所采取的措施是否有效.ADU軟件關鍵變量/器件、SEU故障防護措施、驗證方式、驗證結果如表2 所示. 表2 防護措施及驗證 本文給出了ADU軟件的功能及時序設計,分析了特定約束條件下的時序設計思路及約束條件的滿足性.軟件可靠性設計方面,使用SFMEA方法識別軟件中的關鍵變量/器件,在此基礎制定了單粒子效應防護措施.本文對單片機軟件的設計具有參考意義,后續工作的研究重點是無系統軟件支持下的單片機軟件時序設計方法、無EDAC功能下的系統抗干擾設計方法. [1] Data Device Corporation. ACE/Mini-ACE SeriesBC/RT/MT Advanced Communication Engine Integrated 1553 Terminal User’s Guide[S]. New York: Data Device Corporation, 1999. [2] Data Device Corporation. MIL-STD-1553 designer’s guide[M]. New York: Data Device Corporation, 2003. [3] 中國航空工業總公司第301所.GJB289A-97 數字式時分制指令/響應型多路傳輸數據總線[S].北京:國防科學技術工業委員會,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 Defense, 1997. [4] 王磊,袁利,戴居峰. 衛星控制系統時序建模分析方法研究[J].空間控制技術與應用,2014,40(3):31-35. WANG L, YUAN L, DAI J F. Timemodeling and analysis method for satellite control system[J].Aerospace Control and Application,2014,40(3):31-35. [5] REIFER D J. Software failure modes and effects analysis[J]. IEEE Transactions on Reliability, 1979, R-28(3):247-249. [6] 郭向英,趙雷,沈沛. 面向單粒子效應的航天嵌入式軟件軟防護技術研究[J].質量與可靠性,2013(1):54-58. GUO X Y, ZHAO L, SHEN P.Research on software mitigation technique for single event effect in space[J].Quality and Reliability,2013(1):54-58. [7] 湯子瀛, 哲鳳屏, 湯小丹. 計算機操作系統[M]. 西安:西安電子科技大學出版社,1996:61-95 Design and Analysis of ADU Software ZHAO Xingsong, DONG Xiaogang, YANG Xiaolong, NIU Heming, GAO Meng (BeijingInstituteofControlEngineering,Beijing100190,China) The design procedure of ADU(actuator drive unit)software is introduced. The outer and inner time sequence restriction, such as 1553B message order and critical resource accessing order, are analyzed. The valid confirmation is presented. On software reliability, the key variables or system parts are recognized by SFMEA(software failure modes and effects analysis). Protection of single-event upset of them is given. The validation of protection measure is validated. actuator drive unit; time sequence; 1553B; interrupt; SEU *國家自然科學基金資助項目(9118007). 2015-05-16 TP311 A 1674-1579(2015)05-0053-04 10.3969/j.issn.1674-1579.2015.05.011 趙性頌(1983—),男,工程師,研究方向為嵌入式軟件設計;董曉剛(1974—),男,高級工程師,研究方向為嵌入式軟件技術;楊曉龍(1987—),男,工程師,研究方向為嵌入式軟件設計;牛和明(1983—),男,工程師,研究方向為嵌入式軟件測試;高 猛(1982—),男,工程師,研究方向為嵌入式軟件測試.

3 軟件抗干擾設計


4 結 論