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