执行机构驱动单元软件的设计与分析*
2015-06-09赵性颂董晓刚杨晓龙牛和明
赵性颂,董晓刚,杨晓龙,牛和明,高 猛
(北京控制工程研究所,北京 100190)
执行机构驱动单元软件的设计与分析*
赵性颂,董晓刚,杨晓龙,牛和明,高 猛
(北京控制工程研究所,北京 100190)
介绍执行机构驱动单元软件(ADU)的功能设计和时序设计.从总线消息时序冲突、临界资源访问冲突等方面分析软件外部接口时序设计约束、内部接口时序设计约束的满足性,对时序设计有效性进行验证.软件可靠性设计方面,采用软件失效模式及影响分析(SFMEA)方法识别软件中的关键变量/器件,对其采取单粒子效应防护措施,并验证了措施的有效性.
执行机构驱动单元;时序;1553B;中断;单粒子.
0 引 言
国产新一代通信卫星平台采用综合电子设计理念,以中心管理单元(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单机软件总体设计,然后分析了外部总线时序接口、内部时序接口的设计思路,以及时序设计过程中如何避免数据访问冲突,最后给出了软件抗干扰设计方法及验证结果.
1 总体设计说明
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
2 软件运行时序设计
软件时序设计的目的是在系统功能正确性的前提下,满足系统的实时性要求.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 结 论