一种基于数字虚拟技术的星载嵌入式数据通讯故障动态注入系统及方法

文档序号:9687349阅读:426来源:国知局
一种基于数字虚拟技术的星载嵌入式数据通讯故障动态注入系统及方法
【技术领域】
[0001]本发明涉及一种基于数字虚拟技术的星载嵌入式数据通讯故障动态注入系统及方法,应用于星载嵌入式计算机软件系统的底层通讯容错机制评测,适用于不同芯片架构的星载嵌入式计算机内置软件通讯功能的可靠性验证与容错测试,以及动态条件下的通讯故障复现与快速定位。
【背景技术】
[0002]随着计算机系统应用到航天领域,对于软件系统的容错和可靠性评价成了整个航天系统研制的重要环节。通过对软件系统容错机制的测试和评估,可以得到其容错算法和机制的正确性和有效性,以此判断系统是否达到了宇航级的高可靠性设计要求。当前,容错评价的方法很多,但主要有三种方法:分析模型法、现场错误数据分析法和故障注入方法。分析模型法需要对目标系统进行必要的化简和假设,对可靠性缺乏定量分析,因而无法真实准确地对系统的可靠性进行评估;现场错误数据分析法需要大量的实验数据积累,时间成本上难以接受;故障注入技术作为能加速系统失效的方法,可以较精确地得出系统覆盖率和错误潜伏期等参数,已经被广泛地应用于容错机制检测。通过对注入故障后加速系统发生故障和失效的过程进行监测和分析,可大大缩短对目标软件系统可靠性和容错特性的评测结果获得周期。
[0003]目前,实现故障注入的方法有硬件故障注入、软件故障注入和仿真故障注入三种。软件故障注入根据一定的故障模型,通过修改目标系统内存单元或处理器内部的寄存器值来模拟硬件故障的发生。其主要优点是无需复杂的实验装置,实现成本低、可在编译阶段和程序运行时注入故障等。主要不足是对目标程序的运行时间、占用空间等造成影响。硬件故障注入是以物理手段直接将故障注入到目标系统的硬件中,通过附加硬件对目标系统的作用,使目标系统的正常硬件环境受到影响,从而产生故障。目前硬件实现的故障注入的研究大多集中于芯片管脚级,采用向管脚级施加电压、重粒子辐射或电磁干扰等手段将故障引入目标系统。该方法的主要优点是注入的故障接近实际情况,能够较好地模拟实际的硬件故障,实验过程中无需专门开发故障注入模型。其主要不足是实验装置复杂、费用高,对目标系统硬件容易造成损伤等。仿真故障注入是通过利用某种标准硬件描述语言(如常用的VHDL)为测试系统建立硬件仿真模型,然后在模拟模型中增加故障注入机制,其优点是不需要任何特殊的硬件,对注入的故障可以精确地监控,不足是开发工作量大,需要对原始系统进行完整仿真模型的建立。基于仿真故障注入方法虽然存在一定的不足,但是对于航天星载计算机在轨维护和可靠性增长具有较好的实施性和时效性。针对航天这类要求高可靠性的领域,仿真故障注入能够快速实现某些特定故障场景的重建,不存在对目标系统可访问性的限制,可以精确监控所注入的故障位置和时间,尤其是在星载计算机动态运行下的动态过程下故障注入后能全面观测系统内部状态变化,这是其它现有故障注入方法难以实现的。
[0004]面向实物系统的物理故障注入目前依然是软件系统可靠性评估的重要手段,然而当代嵌入式芯片的高集成度、多种芯片混合电路、封装严密等特点限制了这类物理故障注入方法的可访问性。此外,传统基于实物的故障注入测试过程均采用物理时间,难以进行加速测试,尤其是当故障频繁激发则更显得无能无力;测试过程中的状态保存、恢复,以及特定测试场景的重建都较为困难,对包含硬件内部状态设置的特定场景复现将变现得异常困难,这非常不利于星上在轨故障的地面快速复现和定位,以及事后的异常分析,造成可靠性分析和增长在某些场合下难以开展。此外,采用实物方式的故障注入过程中很难了解系统内部行为,也不利于及时发现和定位被测系统中系统级和底层错误。

【发明内容】

[0005]本发明技术解决问题:克服现有技术的不足,提供一种基于数字虚拟技术的星载嵌入式数据通讯故障动态注入系统及方法,解决嵌入式星载计算机数据通讯可靠性评测,是一种简单、经济、可控的多类型的故障注入技术,且兼具软件故障注入和仿真故障注入二者的优点。
[0006]本发明技术解决方案:一种基于数字虚拟技术的星载嵌入式数据通讯故障动态注入系统,包括:星务模拟单元、底层硬件通信接口虚拟单元和故障注入单元;
[0007]星务模拟单元:分别读取不同外部单机系统的通讯传输协议的属性描述配置文件,以获取协议的名称、帧头、帧长和接收对象等约定信息。按照协议名称再各自读取相应的单机字节流转化协议配置文件,获取传输物理量在字节流中的位置、字节长度和字节流操作码。基于既定的通讯传输协议配置文件,首先在宿主机上对实际通讯配置文件中读取到的物理量进行存储空间动态生成,该存储空间地址连同它的物理量名称构成通讯变量查询链表,实现了对具体通讯过程中所有物理量的查询和赋值等数据管理功能。另外,星务模拟单元还对被控对象进行数学模型仿真,通过接受外部控制指令计算得到仿真变量结果值。将上述数学模型输出变量的地址和它的物理量名称一起构成模型变量查询链表,实现对模型输出变量的查询和遍历赋值等数据管理功能。对前述所得到的通讯变量查询链表和模型变量查询链表,进行物理量名称索引匹配操作,实现通讯物理量与数学模型输出量的存储地址关联,形成新的关系映射表而使得数学模型计算结果能实时刷新通讯过程中物理量;最后,所得到的关系映射表将输入给底层硬件通信接口虚拟单元;
[0008]底层硬件通信接口虚拟单元:接收来自于星务模拟单元输出的关系映射表,遍历上述关系映射表中所有物理量,按照既定的通讯打包协议对上述物理量进行字节流转化,将所得到的信息字节流按照正确读写时序传输给外部控制系统;同时,也将接收外部控制系统传送进来的信息字节流,按照通讯解包协议进行物理量的正确解析;
[0009]故障注入单元:通过与外部控制系统共享内存能对来自底层硬件通信接口虚拟单元输入的信息字节流进行读写操作。首先,经外部控制系统对底层硬件通信接口虚拟单元传输信息字节流的解析,故障注入单元接收到按照解包协议正确提取出物理量。如果在外部控制系统动态运行过程中满足故障激发条件将会触发软中断,在中断处理过程中故障注入单元调用用户定制的回调故障函数,从而在物理信息流上叠加故障响应,实现预定类型故障的准确激发;接着,将叠加有故障行为的物理信息流回送给外部控制系统中,进而改变或影响外部控制系统的正常通讯行为;最后,对字节流解析后叠加有故障响应的物理变量进行显示,以确定故障注入前后的行为影响。
[0010]所述星务模拟单元包括:协议传输变量管理模块、模型计算模块、模型输出变量管理模块和数据池模块;其中:协议传输变量管理模块负责在宿主机上动态生成协议传输的物理变量存储空间,然后连同其物理名构建通讯变量查询映射链表;模型计算模块数值负责模拟被控对象的运行状态,并实时接收外部控制指令仿真计算得到数值结果,而模型计算模块的输出仿真变量将作为模型输出变量管理模块的输入;模型输出变量管理模块负责将模型计算模块输出变量的地址连同其物理量名,构成模型变量查询映射链表;数据池模块分别接受协议传输变量管理模块形成的通讯变量查询映射链表和模型输出变量管理模块生成的模型变量查询映射链表,完成上述变量查询映射链表的索引匹配计算,实现模型计算模块输出量与协议传输物理变量在物理存储空间上的关联,计算模型仿真结果将能够实时刷新协议传输物理量的数值,并能够满足不同通讯协议的数据传输需求。
[0011 ]所述底层硬件通信接口虚拟单元包括:通讯数据打包与解包操作模块和外围通讯接口数据读写控制模块。通讯数据打包与解包操作模块接收来自于星务模拟单元输出的关系映射表,遍历上述关系映射表中物理量,并按照打包协议进行字节流转换处理;或者接收外部控制系统回送的控制字节流信息,按照解包协议将字节流信息提取出实际物理控制量,并赋值给关系映射表中对应的物理量;外围通讯接口数据读写控制模块则基于通讯过程的主被动模式,按照正常时序将通讯数据打包与解包操作模块中生成的字节流发送到外部控制系统;另外,也可接收外部控制系统输出的控制信息字节流,经协议解包后发送给星务模拟单元,控制模型计算模块的数值仿真运算过程,构成数据信息回路的闭环;最终,实现了外部控制系统与外围分系统之间的数据通讯双向传输模拟。
[0012]所述故障注入单元包括:故障事件分发模块、回调函数注册与激发控制模块、结果输出模块;回调函数注册与激发控制模块将用户定制的故障描述函数进行注册,形成故障函数调用索引表而作为故障事件分发模块的输入,一旦故障触发条件满足便会通过软中断实现外部控制系统控制跳转,进入到事先预定好的软中断处理过程中;故障事件分发模块将在软件中断处理函数中取得故障函数调用表控制权,正确计算出回调故障函数的入口处位置,然后执行用户定制的回调故障函数;由于故障注入单元与外部控制系统基于共享内存机制,对底层硬件通信接口虚拟单元传输进来的通讯信息流拥有相同的控制权;最终,通过执行回调故障函数将在通
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1