趙性頌,董曉剛,楊曉龍,牛和明,高 猛
(北京控制工程研究所,北京 100190)
?
執(zhí)行機(jī)構(gòu)驅(qū)動單元軟件的設(shè)計與分析*
趙性頌,董曉剛,楊曉龍,牛和明,高 猛
(北京控制工程研究所,北京 100190)
介紹執(zhí)行機(jī)構(gòu)驅(qū)動單元軟件(ADU)的功能設(shè)計和時序設(shè)計.從總線消息時序沖突、臨界資源訪問沖突等方面分析軟件外部接口時序設(shè)計約束、內(nèi)部接口時序設(shè)計約束的滿足性,對時序設(shè)計有效性進(jìn)行驗證.軟件可靠性設(shè)計方面,采用軟件失效模式及影響分析(SFMEA)方法識別軟件中的關(guān)鍵變量/器件,對其采取單粒子效應(yīng)防護(hù)措施,并驗證了措施的有效性.
執(zhí)行機(jī)構(gòu)驅(qū)動單元;時序;1553B;中斷;單粒子.
國產(chǎn)新一代通信衛(wèi)星平臺采用綜合電子設(shè)計理念,以中心管理單元(CMU)為核心,綜合業(yè)務(wù)單元為終端,通過1553B[1-3]總線相連,構(gòu)建了一套分布式網(wǎng)絡(luò)系統(tǒng).執(zhí)行機(jī)構(gòu)驅(qū)動單元(ADU)作為綜合業(yè)務(wù)單元終端之一,集成了衛(wèi)星控制系統(tǒng)推進(jìn)線路、太陽帆板驅(qū)動線路、反作用輪線路等模塊.
ADU軟件與上位機(jī)(CMU)軟件獨(dú)立運(yùn)行,兩者時序異步.ADU軟件運(yùn)行于80C32E單片機(jī)之上,系統(tǒng)不具備設(shè)EDAC(error detection and correction)功能.軟件設(shè)計過程中需要重點解決如何避免時序沖突、減小空間環(huán)境干擾等問題.時序設(shè)計方面,文獻(xiàn)[3]總結(jié)了1553B總線使用過程中的時序約束,文獻(xiàn)[4]給出了衛(wèi)星控制系統(tǒng)的時序建模分析方法.可靠性設(shè)計方面,文獻(xiàn)[5]重點介紹了軟件失效模式及影響分析(SFMEA,software failure modes and effects analysis)方法在系統(tǒng)中的應(yīng)用,文獻(xiàn)[6]介紹了航天嵌入式軟件常用的單粒子效應(yīng)軟件防護(hù)技術(shù).文本文首先介紹ADU單機(jī)軟件總體設(shè)計,然后分析了外部總線時序接口、內(nèi)部時序接口的設(shè)計思路,以及時序設(shè)計過程中如何避免數(shù)據(jù)訪問沖突,最后給出了軟件抗干擾設(shè)計方法及驗證結(jié)果.
ADU系統(tǒng)構(gòu)成如圖1所示,系統(tǒng)的核心是CIP(control and interface part)模塊,CIP模塊集成了80C32單片機(jī)的最小系統(tǒng)、A/D、D/A、ASIC(application specific integrated circuit)、1553B接口芯片等,與推力器、太陽帆板驅(qū)動線路和反作用輪相連接.ADU軟件通過AISC與硬件交互,通過1553B接口芯片與中心管理單元CMU交互.
圖1 ADU系統(tǒng)結(jié)構(gòu)圖Fig.1 System architecture of ADU
ADU軟件無系統(tǒng)軟件的支持,采用主循環(huán)加中斷的程序結(jié)構(gòu),設(shè)計有1個主任務(wù),1個32 ms內(nèi)部定時中斷,1個外部1553B中斷(未使用).主任務(wù)流程如圖2所示,完成以下功能:部件數(shù)據(jù)采集、模擬量采集、1553B消息處理(部件數(shù)據(jù)發(fā)送、部件控制量輸出、重要數(shù)據(jù)存取等).32 ms定時中斷中完成脈沖指令(屬于控制量)的輸出.
圖2 ADU主任務(wù)流程Fig.2 Flow chart of ADUtask
軟件時序設(shè)計的目的是在系統(tǒng)功能正確性的前提下,滿足系統(tǒng)的實時性要求.ADU軟件時序設(shè)計需要滿足以下3個約束:(1)總線消息無時序沖突,即對于某個子地址而言,消息的處理完成時間為消息下周期到來之前;(2)脈沖指令寬度為128 ms±10 ms;(3)主任務(wù)與中斷之間無共享變量等臨界資源[7]沖突.其中設(shè)計約束1、3屬于公共設(shè)計約束,設(shè)計約束2屬于ADU軟件的特殊設(shè)計約束.
上位機(jī)控制周期為64 ms,任務(wù)調(diào)度時序及運(yùn)行時間如圖3所示.上位機(jī)共有4個任務(wù),其中1553B總線任務(wù)實現(xiàn)了與ADU的通信接口.總線任務(wù)有4個子地址與ADU通信,4個子地址消息功能依次為:部件數(shù)據(jù)采集、控制量發(fā)送、模擬量采集、重要數(shù)據(jù)存取,消息產(chǎn)生周期依次為:64 ms、64 ms、448 ms、64 s.
圖3 上位機(jī)單周期運(yùn)行時序圖Fig.3 Time sequence of position machine
ADU軟件運(yùn)行周期設(shè)計為32 ms,運(yùn)行時序如圖4所示.每個運(yùn)行周期首先執(zhí)行32 ms定時中斷,之后執(zhí)行主任務(wù),主任務(wù)依次進(jìn)行部件數(shù)據(jù)采集、模擬量采集、1553B消息響應(yīng),1553B消息處理.中斷處理程序完成脈沖指令的輸出.
圖4 ADU單周期運(yùn)行時序圖Fig.4 Time sequence of ADU
ADU軟件采用查詢方式響應(yīng)1553B消息,記子地址i消息響應(yīng)時間為ti0,消息處理時間為ti1,則消息的截止完成時間Tend=ti0+ti1.記消息產(chǎn)生的最小時間間隔為ti2,消息的傳輸時間為ti3,若滿足設(shè)計約束1,只需滿足式(1).
Tend (1) 對于子地址i消息而言,ti1、ti2、ti3取值固定,消息的截止完成時間Tend取決于消息響應(yīng)時間ti0.進(jìn)一步,由式(1)可以得出式(2) ti0 (2) 對于ADU的4個子地址而言,式(2)均需要滿足,當(dāng)i取值為2時(子地址2),ti2+ti3-ti1的值最小,其值為64 ms.下面分析消息響應(yīng)時間ti0取值最大時(最壞情況),式(2)的滿足性情況分析. 由時序圖4可以看出,“1553B消息響應(yīng)模塊”為子地址響應(yīng)的公共模塊,對于4個子地址而言,消息響應(yīng)時間ti0的可能取值范圍相同,記為t0.要使得ADU的4個子地址滿足式(2),僅需要i取值為2時滿足即可. 當(dāng)消息在“1553B消息響應(yīng)模塊”之后到來時,消息響應(yīng)時間t0取值最大,即對于子地址i而言,軟件在圖4中的t4時刻,即“1553B消息響應(yīng)模塊”后收到子地址i消息.這種情況下,子地址i消息在下一個主任務(wù)周期才能得到響應(yīng)及處理.t4的取值取決于程序的運(yùn)行分支,假設(shè)t4的最大值為t4_max,最小值為t4_min,中斷處理程序的執(zhí)行時間為tint,則響應(yīng)時間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).當(dāng)i取值為2時,ti2+ti3-ti1的值最小,仍滿足式(2)的要求,因此ADU軟件滿足外部接口時序設(shè)計要求. 2.1 軟件內(nèi)部接口時序分析 設(shè)計約束2、設(shè)計約束3屬于內(nèi)部接口時序設(shè)計約束.ADU軟件內(nèi)部接口包含1個主任務(wù)、1個32 ms內(nèi)部定時器中斷.根據(jù)圖4,定時器的溢出時間為32 ms,中斷處理時間小于0.1 ms,定時器溢出4次的時間為128 ms,在32 ms定時中斷中實現(xiàn)脈沖指令的輸出,可以保證脈沖寬度誤差小于 0.1 ms,滿足設(shè)計約束2的要求. 對于設(shè)計約束3,定時中斷與主程序的優(yōu)先級不同,不同優(yōu)先級的任務(wù)或者中斷在程序動態(tài)運(yùn)行過程中,可能產(chǎn)生共享變量等臨界資源的數(shù)據(jù)訪問沖突.ADU軟件通過合理設(shè)計主任務(wù)與定時中斷之間的時序調(diào)度關(guān)系,避免主任務(wù)與中斷同時訪問臨界資源,解決了臨界資源訪問沖突問題. 從時序圖4可以看出,除去空閑任務(wù)外,主任務(wù)最長執(zhí)行時間為23 ms,小于定時器0溢出時間32 ms;圖2流程圖顯示,主任務(wù)在判斷到定時中斷到來之后執(zhí)行,軟件實現(xiàn)了定時中斷與主任務(wù)順序執(zhí)行的時序邏輯,避免了主程序與中斷同時訪問臨界資源,因此滿足設(shè)計約束3. 2.2 時序驗證 軟平臺測試環(huán)境下對軟件運(yùn)行時序進(jìn)行驗證.軟平臺基于Keil公司的Keil μVision2環(huán)境開發(fā),外圍接口芯片(1553B、ASIC等)和外圍部件等使用軟件模擬. (1)采用握手協(xié)議驗證外部接口時序的正確性.記上位機(jī)子地址消息i發(fā)送計數(shù)為Si,下位機(jī)子地址i消息接收計數(shù)為Ri,比較兩者的一致性,當(dāng)Si≠Ri時,設(shè)置報警標(biāo)志有效.實際測試過程中,軟平臺連續(xù)運(yùn)行6 000個周期,報警標(biāo)志始終處于無效狀態(tài),實驗結(jié)果與設(shè)計一致. (2)采用程序插樁的方式驗證內(nèi)部接口時序的正確性.在主程序和中斷的起始位置、結(jié)束位置分別設(shè)置監(jiān)視哨,軟件平臺環(huán)境下監(jiān)視每個周期主程序、中斷的運(yùn)行時間.ADU軟件的運(yùn)行時間圖5~6所示. 圖5 主程序運(yùn)行時間圖Fig.5 Execution time of ADU task 從圖5~6可以看出,程序持續(xù)運(yùn)行6 000個周期,ADU主程序的運(yùn)行時間小于23 ms,中斷運(yùn)行時間小于0.1 ms,ADU主程序的運(yùn)行時間小于定時器溢出時間,實驗結(jié)果與設(shè)計一致. 圖6 定時器中斷運(yùn)行時間圖Fig.6 Execution time of ADU interrupt handing ADU系統(tǒng)不具備EDAC功能,軟件可靠性設(shè)計過程中,除完成任務(wù)規(guī)定的可靠性安全性要求外,還需要考慮單粒子等空間環(huán)境的干擾.為降低空間單粒子效應(yīng)給系統(tǒng)帶來的危害,在單機(jī)層面開展ADU軟件抗干擾設(shè)計. 3.1 關(guān)鍵變量/器件的識別方法 ADU軟件使用SFMEA[5]方法識別關(guān)鍵變量/器件.SFMEA是一種軟件可靠性分析技術(shù),其基本思想是首先確定系統(tǒng)中每個層面軟件產(chǎn)品的失效模式,評價失效模式對系統(tǒng)行為的影響,之后分析失效原因,并提出改進(jìn)措施. 與一般SFMEA方法采用自頂向下分析方式不同的是,本文僅針對單粒子翻轉(zhuǎn)(SEU,single-event upset)這一失效原因,按照自底向上的方法,以軟件中的全局變量、硬件器件為對象,展開SFMEA分析. 具體過程為:分析ADU軟件單個變量/器件的可能取值,分析每一個全局變量/器件發(fā)生翻轉(zhuǎn)后故障傳播路徑以及給系統(tǒng)帶來的最嚴(yán)重危害,以此確定軟件失效模式,根據(jù)失效模式確定是否關(guān)鍵變量/器件,最終建立“SEU故障-失效模式-關(guān)鍵變量”分析表.分析過程中,只考慮變量發(fā)生單錯(僅有一位發(fā)生翻轉(zhuǎn))故障,表1為ADU軟件的“SEU故障-失效模式-關(guān)鍵變量”分析表,最終識別出的關(guān)鍵變量見表2. 表1 SEU故障-失效模式-關(guān)鍵變量 3.2 單粒子效應(yīng)防護(hù)措施及驗證 識別出軟件的關(guān)鍵變量/器件后,制定相應(yīng)的單粒子效應(yīng)防護(hù)措施,在軟平臺環(huán)境下模擬單錯故障,驗證所采取的措施是否有效.ADU軟件關(guān)鍵變量/器件、SEU故障防護(hù)措施、驗證方式、驗證結(jié)果如表2 所示. 表2 防護(hù)措施及驗證 本文給出了ADU軟件的功能及時序設(shè)計,分析了特定約束條件下的時序設(shè)計思路及約束條件的滿足性.軟件可靠性設(shè)計方面,使用SFMEA方法識別軟件中的關(guān)鍵變量/器件,在此基礎(chǔ)制定了單粒子效應(yīng)防護(hù)措施.本文對單片機(jī)軟件的設(shè)計具有參考意義,后續(xù)工作的研究重點是無系統(tǒng)軟件支持下的單片機(jī)軟件時序設(shè)計方法、無EDAC功能下的系統(tǒng)抗干擾設(shè)計方法. [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] 中國航空工業(yè)總公司第301所.GJB289A-97 數(shù)字式時分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線[S].北京:國防科學(xué)技術(shù)工業(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 Defense, 1997. [4] 王磊,袁利,戴居峰. 衛(wèi)星控制系統(tǒng)時序建模分析方法研究[J].空間控制技術(shù)與應(yīng)用,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] 郭向英,趙雷,沈沛. 面向單粒子效應(yīng)的航天嵌入式軟件軟防護(hù)技術(shù)研究[J].質(zhì)量與可靠性,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] 湯子瀛, 哲鳳屏, 湯小丹. 計算機(jī)操作系統(tǒng)[M]. 西安:西安電子科技大學(xué)出版社,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 *國家自然科學(xué)基金資助項目(9118007). 2015-05-16 TP311 A 1674-1579(2015)05-0053-04 10.3969/j.issn.1674-1579.2015.05.011 趙性頌(1983—),男,工程師,研究方向為嵌入式軟件設(shè)計;董曉剛(1974—),男,高級工程師,研究方向為嵌入式軟件技術(shù);楊曉龍(1987—),男,工程師,研究方向為嵌入式軟件設(shè)計;牛和明(1983—),男,工程師,研究方向為嵌入式軟件測試;高 猛(1982—),男,工程師,研究方向為嵌入式軟件測試.3 軟件抗干擾設(shè)計
4 結(jié) 論