星务1553B总线仿真板卡指令执行的高实时性设计
2016-09-07李树业贺庚贤李俊霖葛欣宏
李树业,贺庚贤,李俊霖,葛欣宏,孙 武,2
(1.中国科学院 长春光学精密机械与物理研究所,长春 130033;2.中国科学院大学,北京 100049)
星务1553B总线仿真板卡指令执行的高实时性设计
李树业1,2,贺庚贤1,李俊霖1,葛欣宏1,孙武1,2
(1.中国科学院 长春光学精密机械与物理研究所,长春130033;2.中国科学院大学,北京100049)
为实现对某新型卫星总体1553B总线新的“1秒20帧,1帧50条消息”的“帧消息模式”的仿真,研究并实现了一种在满足“帧消息模式”的基础上,使1553B总线仿真板卡的指令执行时间延迟小于1 ms的新方法;在分析原星务仿真系统实现机制的基础上,改进软件的整体设计,并在VxWorks下位机中设计了高精度时间获取模块与板卡控制模块等,实现了高精度、短消息传输执行时间的星务1553B总线仿真系统;结果表明:该系统不仅满足对“帧消息模式”的仿真,且将1553B板卡指令执行最大延迟时间缩短为0.713 ms,相对于原星务仿真系统中4.5 ms的最大延迟,指令执行精度提高了6.5倍以上,为被测设备的故障排查、问题定位提供准确的时间数据支持。
星务仿真;1553B;实时性;帧消息模式;VxWorks
0 引言
MIL-STD-1553B是在1978年提出的一种串行数据传输总线标准,具有分布式处理、集中式控制和实时性响应的特点。1553B 总线采用双冗余的通道,能够提高整个系统的可靠性。由于1553B总线具有可靠性高、实时性好、使用灵活等优点,广泛应用于飞机、卫星, 甚至国际空间站等航空航天领域。
随着卫星技术的发展,某新型卫星总体使用了“1秒20帧,1帧50条消息”的1553B“帧消息模式”,在该“帧消息模式”下,1秒内1553B总线仿真板卡(后文中简称为“1553B板卡”)理论上最多可执行1000条指令,指令执行时间为整ms时间点。由于文献1中的星务系统1553B板卡1秒内只执行一条指令,指令执行时间为整秒时间点,指令执行的最大延迟时间为4.5 ms,不能满足新型卫星的仿真测试需求。
文献1中对星务仿真系统硬件架构及时间同步设计的硬件实现进行了描述。星务仿真系统由上位机管理子系统、监控子系统、下位机数据收发子系统组成,系统间使用TCP/IP协议实现数据交互。系统在硬件设计上使用GPS秒脉冲授时板卡作为时钟源,实现上位机系统与下位机系统、被测设备与仿真测试系统、下位机系统板卡间的时间同步[2]。为了满足1553B“帧消息模式”的仿真测试需求,需要在原星务仿真系统硬件结构及Windows+VxWorks框架的基础上,设计满足“帧消息模式”,且保证1553B总线仿真板卡执行指令延迟的时间小于1 ms的1553B总线仿真软件。进而保证全测试过程在时间上严格受控,为系统故障的排查、问题的定位提供更严格的时间数据支持[3]。
1 1553B“帧消息模式”
图2 系统软件功能架构图
在原有的某型号卫星总体的需求中,1553消息传输都是在整秒时间点完成的,且每秒只传输1条1553B消息(Message)。因此,原系统是根据“整秒单指令”的模式设计的,即每一整秒时间里1553B板卡只执行一条1553B指令,发送一条1553B消息。在原上位机管理软件设计中,设计了“秒中断效应模块”,该模块实现对GPS秒脉冲每1 s的中断响应,实现上位机系统与GPS秒脉冲授时卡的时间同步。上位机软件中的“测试用例配置读取模块”实现对测试用例的各信息读取功能,测试用例的信息包括各指令的名称、执行时间等信息。当管理软件发现当前时间与用例中最近一条指令执行时间相同时,则将该指令下发至下位机的缓冲区;下位机中的控制程序一旦检测到缓冲区中有1553B指令信息,经过解析后,立刻驱动1553B板卡进行相应动作。
某新型号卫星总体使用了新的1553B“1秒20帧,1帧50条消息”的“帧消息模式”,本文中将1整秒内的1553B板卡需要执行的指令的总和称为一条1553B“整秒批指令”;如图1所示,一条1553B“整秒批指令”由20帧1553B帧消息(Frame)组成,每帧所占用的时间为50 ms;而一个1553B帧消息(Frame)最多又可包含50条1553B消息(Message),每条1553B消息最多由32个字(Word)组成,每个字由20个位(bit)组成[4]。即在“帧消息模式”下,1秒内要求1553B板卡执行多条指令,发送多条1553B消息(最多可包含1 000条1553B消息(Message)),每条1553B消息发送时间为整ms量级。显然,原有基于“整秒单指令”的设计已经不能满足“帧消息模式”的需求。而且原有1553B板卡指令执行时间精度为不大于4.5 ms,新的帧消息模式下1553B消息传输时间为整ms量级,因此需要将1553B总线消息传输执行精度控制在1 ms以内,进而保证全测试过程在时间上严格受控,为被测设备的排故检查提供精确的数据支持。
图1 1553B整秒批指令格式示意图
2 1553B板卡指令执行的高实时性设计
2.1软件框架设计
在对原有系统的设计进行深入分析之后,可在保持原有硬件架构不变的基础上,重新设计软件实现的框架,以满足“帧消息模式”的需求。
星务仿真系统1553B总线仿真软件使用层次化、模块化思想设计实现其具体功能,并综合考虑了代码重用、可扩展性等原则[5]。图2是系统软件功能架构图,由图2可以看出,对应于系统的硬件架构,将软件分为监控软件、管理软件、控制软件。监控软件主要实现系统当前传输数据的实时显示、异常报警、历史数据回放等功能,原系统的监控软件部分可在“帧消息模式”下继续使用,无需修改。管理软件和控制软件的各功能以模块的方式实现,上位机管理软件实现1553B“整秒批指令”的编辑、配置、下发工作,而下位机控制软件实现对1553B板卡指令执行的控制。
2.2软件的新执行机制
为满足“帧消息模式”的需求,提高1553B板卡指令执行的实时性,将系统软件执行的机制设计如下:上位机管理软件通过响应GPS秒脉冲授时卡1 s一次的中断,获取GPS秒脉冲卡的时间信息,实现上位机管理软件与GPS秒脉冲授时卡时间的同步。在测试用例运行之前,上位机管理软件预先读取用户配置的所有1553B“整秒批指令”的执行时间信息,比对当前系统时间。测试用例运行时,上位机管理软件提前1 s将下1秒要执行的1553B“整秒批指令”下发至下位机中。这样的设计带来两个方面的好处:一方面,将1553B板卡指令执行的控制权转让给了下位机,且保证了下位机有足够的时间来解析“整秒批指令”,为下位机软件的设计奠定了时间基础;另一方面,一条预执行的1553B“整秒批指令”的数据量不大,可保证下位机缓存空间足够,使得下位机有足够的缓存空间去进行其它工作,进而保证程序运行的高效性和稳定性[6]。下位机取出缓冲区中的“整秒批指令”并根据设定好的通信协议进行解析,主要包括整秒批指令中1553B消息的拆解、解析指令的执行时间、指令内容等。将解析结果存入自己的缓冲区中,通过响应GPS秒脉冲守时卡每1 ms产生的中断以获取系统高精度时间信息,当执行消息时间与当前时间相同时,驱动板卡完成相应的动作。
3 软件实现的关键技术研究
3.11553B “整秒批指令”编辑和拆解的逐层细化设计
一个测试用例由多条1553B“整秒批指令”组成,1条1553B“整秒批指令”由20帧(Frame)消息组成,每个帧由最多由50条消息(Message)组成,每条消息最多由32个字(word)组成,每个字又由20位(bit)组成。为实现每个帧、每个字、每个位都可定义的通用性设计,管理软件中“整秒批指令”的编辑和拆解采用自顶向下,逐层细化的方法[7]。具体实现如下:1553B消息编辑模块实现在1553B协议框架下,1553B消息格式的编辑、命令字的编辑、数据字的编辑、消息字长的编辑等功能;框架编辑模块实现一秒钟内20帧、每帧50条消息的整体框架的编辑,具体包含每一帧的总消息条数、有效消息条数、有效消息所在位置及无效消息等消息内容的编辑;1553B消息填充模块,在整体框架上实现对有效消息所在位置进行1553B消息的填充,生成1553B“整秒批指令”;“整秒批指令”用例编辑模块实现测试用例的组建功能。各功能模块所生成的信息均存入数据库中供管理软件读取调用。用例运行模块将用例中的每条整秒批指令进行拆解分析,并将对应的1553B消息的各项基本信息进行提取、根据与下位机的通信协议进行报文的组织,在软件设定的时刻通过以太网将报文下发至下位机。
3.2Vxworks多任务程序设计
下位机控制软件分为多个任务并行运行,为保证1553B板卡指令执行的实时性,采用基于优先级抢占调度的算法[8],首先,高精度时间获取任务通过响应GPS秒脉冲每1 ms的中断的方式获取系统高精度毫秒级时间信息,精简的中断处理程序保证系统的实时性;其次,板卡控制任务享有最高的优先级以保证1553B板卡执行指令的实时性;再次,报文解析任务享有次高的优先级可保证对报文的实时解析;最后,对实时性要求不高的数据接收任务和数据发送任务享有最低的优先级。合理的任务优先级设计和中断程序的精简保证1553B板卡执行指令的高实时性。
3.3 管理软件中的多线程技术
多线程技术的特点是保证多个任务多个线程并行执行,缩短作业的周期时间,保证程序执行的高效性[9]。在上位机管理软件设计中,采用多线程技术以提高软件执行的速率和实时性。管理软件中的时间设置及获取模块中通过中断响应的方式获取系统时间。为此,开辟一个新的线程来获取系统时间,保证程序运行的实时性;在“测试用例运行模块”中,为保证用例报文下发的工作能快速完整,专门开辟一个新的线程完成报文下发任务。软件实现时采用MFC封装线程函数实现线程的创建及调用功能。
3.4上位机管理软件的兼容性设计
为保证星务仿真系统能实现原有的仿真功能,对于“帧消息模式”的需求,采用在原有软件构架的基础上,添加新工程的方式对系统进行改进。兼容性设计体现在以下几个方面:首先,用户在使用时,如果需要运行新模式下的测试用例,只需点击界面中的“切换到帧消息模式”按钮,而对原有功能没有任何不良影响;其次,在新功能的实现时,大多调用系统原有的接口函数,以增强代码的可重用性;最后,在“帧消息模式”下的接受及处理模块对数据的解析、判读、处理、转发、存储都采用原系统的格式,确保在不升级监控软件前提下,监控计算机也能对“帧消息模式”下的数据进行实时监控和回放,缩短了软件的开发周期[10]。
4 测试结果及分析
为验证升级后的星务仿真系统功能,以某型号空间相机控制器为被测对象,构建了测试平台[11]。为实现星务仿真系统的功能全覆盖测试,在“帧消息模式”下构建了10个不同的测试用例,每个测试用例中的1553B整秒批指令均包含重复发送指令、服务请求指令及响应服务请求指令,均设置了与秒脉冲下降沿的间隔时间等信息。界面显示的信息中包含了下位机当前时间、指令预计执行时间、指令名称、指令类型、附加信息等信息。1553B接口将收发的一切数据与μs级时间戳打包进行存储,星务仿真系统监控软件将将这些信息进行回放。
通过对1553B“整秒批指令”中的1553B消息进行拆解,对比监控软件所得执行信息,对1553B板卡指令执行时间进行分析,将测试用例中各“整秒批指令”中延时最大的指令执行时间进行统计,见表1。
表1 消息发送时间延时统计
从表1 中可以看出,该系统1553B板卡指令执行的实际时间相对于用户设置的理想执行时间,最大延时为0.713 ms,较之原星务仿真系统最大4.5 ms的延时[1],延时精度提高6.5倍以上。在实际卫星总体的仿真测试中,1553B“整秒批指令”中所含1553B消息一般为几十条,远远不会达到满负荷1 000条消息的状态,该系统0.713 ms的最大延时完全能满足仿真需求,保证全测试过程在时间上严格受控,为被测设备的排故检查提供精确的数据支持。
5 结论
该系统在保持原有星务仿真系统硬件结构框架的基础上,设计了星务1553B仿真软件,满足“帧消息模式”的任务需求,充分发挥了VxWorks多任务实时操作系统的优点;采用基于优先级抢占调度算法,提升了1553B板卡的指令执行时间精度,将指令执行的最大延迟优化至0.713 ms;满足对新型卫星总体“1秒20帧,1帧50条消息”的“帧消息模式”的全面仿真,为被测设备故障的定位排查提高数据支持。目前该系统已使用在某型号空间相机控制器调试过程中,满足仿真测试需求。
[1]贺庚贤, 李俊霖, 宁飞. 星务仿真系统高精度时标设计[J]. 电子测量与仪器学报, 2014, 28(8):827-835.
[2]康凤举, 段晓军, 吴成富,等. 基于VxWorks的无人机飞控计算机快速启动导引技术研究[J]. 计算机测量与控制, 2010, 18(6):1446-1448.
[3] 周精华, 翟正军. 航电1553B总线监控系统的设计与实现[J]. 测控技术, 2009, 28 (1):58-61.
[4] 支超有, 杨强, 李霞. 1553B数据总线仿真检测技术研究及应用[J]. 计算机测量与控制, 2013, 21(10):2632-2633.
[5] 李珅, 罗翠华, 李昕. 基于CAN总线星务仿真系统的设计与实现[J]. 测控技术, 2011, 30(12):58-60.
[6] 吴传贵, 陈海牛, 黄明俊,等. 基于多线程技术的1553B总线测试系统的设计与实现[J]. 测控技术, 2012, 31(10) :85-87.
[7] 胡君, 宋启昌, 陈茂胜,等. 空间相机集成测试系统的时钟同步[J]. 光学精密工程, 2010, 18(6):1436-1443.
[8] 支超有, 杨强, 李霞. 1553B数据总线仿真检测技术研究及应用[J]. 计算机测量与控制, 2013, 21(10):2632-2633.
[9] 王蒙, 张强成, 李耀军. 高速1553B总线通讯控制器测试验证系统研究[J]. 计算机测量与控制, 2014, 22(10):3253-3255.
[10] 颜昌翔, 赵昶宇, 于平. 1553B总线上消息的实时调度[J]. 光学精密工程, 2010, 18(3):732-740.
[11] 马昕晖, 杜胜, 姚静波. 基于PCI总线的动态测试系统软件设计研究[J]. 测试技术学报, 2010, 24(6):491-496.
High Real-time Design of 1553B Bus House-keeping Simulation System
Li Shuye1,2, He Gengxian1, Li Junlin1, Ge Xinhong1, Sun Wu1,2
(1.Changchun Institute of Optics,Fine Mechanics and Physics,Chinese Academy of Sciences,Changchun130033, China;2.University of Chinese Academy of Sciences,Beijing100049, China)
To realize the simulation of a new type of satellite system’s "frame message model" of 1553B bus, a new 1553B bus house-keeping simulation system is designed and established. Through the analysis of the original implementation mechanism, changing the design of the simulation software and adding the high-precision time acquisition module and 1553B board control module to VxWorks computer, a high real-time 1553B bus simulation systems is designed. It is showed that: The system can not only meet the "frame message mode" simulation, but the 1553B board execution maximum delay time is reduced to 0.713 ms, which is shorter 6.5 times than the original house-keeping simulation system maximum delay 4.5 ms, and provides accurate time data support for the device under test.
house-keeping simulation; 1553B; real-time; frame message module; VxWorks
2015-07-20;
2015-08-27。
国家自然科技基金项目(60506014);吉林省科技发展计划(20120331)。
李树业(1990-),男,贵州六盘水市人,硕士研究生,主要从事航天有效载荷仿真测试系统方向的研究。
1671-4598(2016)01-0168-03
10.16526/j.cnki.11-4762/tp.2016.01.047
TP311.5
A