谢前进,张梅梅,张 俊,汪高峰,王利祥
(中航工业洪都,江西南昌330024)
在航电系统地面联试中,由于航电系统顶层设计经常需要修改和完善,因而航电系统也需要进行相应的修改和调试。一般而言,对航电系统的修改和调试需要相应的航电系统设备配合才能完成。但是,在型号试验前期,通常只有部分航电成件参与航电系统的调试、试验,因此,为了保证试验中航电系统的完整性,需要使用各种航电系统设备仿真器来替代真实成件,仿真各种相关的总线信号。现阶段,国内各飞机总体所开发的航电系统设备仿真器都是根据某个具体航电设备的要求“量身定做”的,一般是直接用软件代码描述被仿真对象的行为和属性等信息,再配合一些底层硬件接口来实现的。这样的方法有两个缺点,一个是缺乏通用性,不同航电设备的仿真系统不能通用;再一个是缺乏灵活性,因为它直接将被仿真对象的信息描述于软件代码中,而这些信息在航电系统的设计过程中可能经常需要改变,这时就要频繁地修改仿真软件。按照软件工程的要求,软件的每次修改都要经过严格的测试,这就使得仿真系统难以维护。
为了克服现有航电系统仿真器的不足,该仿真平台通过建立仿真数据库,从待仿真的航电系统设备中的接口信息抽象出属性和行为,然后用数据库的方式来描述。仿真软件的主要功能是在接收到激励数据时通过对仿真数据库分析,进行相应的数据处理,返回合理的响应数据。该仿真平台采用“仿真软件+仿真数据库”的系统结构,通过数据库来描述待仿真的航电设备总线接口信息的抽象属性和行为,实现仿真软件和仿真对象的分离,从而使该仿真平台具备了通用性和可扩展性。
图1 通用仿真平台和非通用仿真设备比较
参照图1,与非通用的仿真设备(图1a)相比,通用仿真平台(图1b)的主要变化是增加了仿真数据库,将原来用代码实现的被仿真设备接口的信息抽象出来用仿真数据库描述。在仿真时,仿真软件根据所接收到的激励数据对仿真数据库进行分析和相应的数据处理,返回符合设计要求的响应数据。这种结构实现了仿真软件与仿真对象的分离,使得仿真软件不再只是针对某个航电设备专用,而是针对总线式航电系统的通用仿真软件。同时,由于仿真数据库的填写和修改都很容易,所以该仿真平台具有很好的灵活性。该仿真平台中还增加了网络接口卡,用于连接航电系统中飞行数据源,仿真设备可以从飞行数据包中取出相关的参数来更新自身状态,实现动态仿真。总线接口卡为该仿真平台提供所需的电气接口和物理特性,根据目前航电系统所使用的总线类型,选用的接口卡包括1553总线卡、422总线卡和429总线卡。这就使该仿真平台具备3种常用的接口卡,能够对不同的航电设备进行仿真,实现了总线接口仿真。
在实际工作中,设计人员用接口控制文件和详细设计需求文件来定义航电设备的行为。其中,详细设计需求文件主要用来描述设备接收到总线数据或指令后的行为、状态切换和响应,而接口控制文件用来描述接收和响应的数据块的格式,两种文件结合在一起就可以作为航电设备的设计要求。为了用软件描述航电设备,可将航电设备的行为抽象为一个接收到特定激励并返回特定响应的激励响应体,并根据接口控制文件的描述,将数据块的描述要点抽象出来,在软件中设定设备的激励响应行为和数据。基于以上的考虑,本平台将对航电系统各功能组成部件进行抽象,将航电系统各部件的总线行为归纳为各种数据库表格,完成航电部件的建模过程。
仿真平台需要对航电系统的422设备、429设备、1553总线设备进行仿真,根据该仿真平台要实现的功能以及各功能之间的关系,将仿真系统软件分为以下3个主要部分:初始化模块、网络数据处理模块、主仿真模块。
初始化模块主要是将仿真数据库中的各个表格加载到内存中,并按照各表之间的联系重新链接,另外提供对仿真数据完整性的检查。初始化模块会按照硬件资源表中的信息对硬件进行初始化。初始化模块也会检测网络连接情况、初始化网络接口,此外初始化用户界面和建立仿真数据记录文件的工作也是在该部分完成的。
网络数据处理模块主要负责处理飞行数据源送出的动态飞行数据包,实现动态仿真。飞行数据源利用UDP协议定时发出动态飞行数据包。UDP协议只规定了接收端的端口号而不指定IP地址,所以网络上的多台计算机可以用同一端口号同时接收通过UDP协议传送来的数据,从而保证了多台仿真计算机动态仿真的同步性。仿真软件接收到网络数据包后,即查找网络数据映射表,根据源数据和目的数据间的对应关系依次转换,刷新目的数据的值。这就使得仿真设备的状态跟随飞行数据源上虚拟飞机的飞行过程变化,从而实现了动态仿真。
主仿真模块是仿真软件的核心,主要负责接收总线上传来的激励数据块,然后按照仿真数据库的要求对激励数据进行处理并返回对应的响应数据。在仿真过程中,系统接收到外部的激励数据后,仿真软件将按照激励数据的来源及内容并配合其它辅助的检索词在激励响应表及数据块表中检索。在检索到相应的记录后,仿真软件首先将接收到的数据按照数据元素表中的处理方式进行处理,并将处理结果更新到数据元素表中,仿真软件将按照激励响应表填写的返回块名称和返回块标识到数据块表中检索响应数据块,组织返回响应,比如确定系统响应的次数,响应的周期以及通过哪一子地址返回等。全部响应数据块返回完毕后,仿真软件会将这个激励响应过程中的数据保存到仿真记录文件中以备回放之用。
系统对实时性要求较高,一般的数据刷新都在50ms以内,在软件实现上,采取了以下两点措施以提高仿真的实时性。
1)在软件初始化时,将仿真数据信息加载到内存,仿真运行过程中不再检索硬盘上的仿真数据信息,由于计算机访问内存的速度远远高于访问硬盘的速度,因而仿真速度大大提高;
2)使用多线程技术,将处理底层板卡事件和响应用户事件的代码置于不同线程。实际测试表明,这些措施极大地提高了软件的实时性,满足了仿真平台对实时性的要求。
仿真平台硬件采用计算机结合接口板卡的结构,计算机是仿真系统软件运行平台,而接口板卡是各种被仿真设备接口的硬件实现。系统硬件由一台4U工控机插入429卡、422卡组成429、422仿真计算机。429卡和422卡均为8入8出的PCI总线卡,由一台2U工控机插入1块双通道1553B总线卡组成1553设备接口仿真器。采用以上硬件结构可保证对各种航电系统设备仿真的硬件支持。
仿真数据库是通用仿真平台的一个设计重点,因为它要描述被仿真对象的行为和属性等方面信息。为了确定仿真数据库的结构,对仿真航电设备可能需要的信息进行抽象:
1)硬件信息:
航电设备接口部分的硬件信息,包括了各种接口类型及其相关参数,如1553总线设备的RT号、422总线设备的波特率以及429总线设备的通讯速率等信息;
2)激励响应信息:
航电设备接口仿真过程中的数据、行为以及激励响应处理方式;
3)设备状态信息:
仿真设备所有的自身状态信息,比如传感器数据,这些状态应该显示在仿真界面上并容易被修改;
4)网络数据映射信息:
飞行数据源发出的网络数据包中含有多种设备的参数,由于每个航电设备所使用的参数只是该网络数据包的一部分,因此需要为仿真设备从中选出和该设备有关的参数,并指定这些参数与设备信息之间的映射关系。
图2 仿真数据库设计原理
根据上述要求,提出了如图2所示的仿真数据库的组成结构。它是由硬件资源表、网络数据映射表、激励响应表、数据块表、条件表、数据元素表和设备状态表共7类表格组成。硬件资源表和网络数据映射表在仿真数据库中是唯一的,而另外5类表格的个数由用户所需仿真设备的个数决定,并且格式也因设备的总线类型不同而略有不同。硬件资源表主要用于记录仿真设备的硬件接口信息,它包括设备名称、设备类型和相关的几个参数 (如1553设备的RT号、422设备的通道号和波特率等)。每个仿真设备在硬件资源表中必须有且仅有一条记录。激励响应表、数据块表和数据元素表组合起来用于描述航电设备接口的行为。因为设备的激励响应数据多表现为数据块的形式,所以用数据块表来描述所有数据块的信息。而数据块又是由多个数据元素组成,所以用数据元素表进一步描述数据块的内部信息。激励响应表主要用来记录仿真设备所有激励响应的对应关系。以1553总线设备为例,它的激励响应表主要由以下3部分组成:激励数据块的来源及内容(包括激励数据分地址、激励数据块名称)、响应数据块的去向及内容(包括响应数据分地址、响应数据块名称)、返回响应的行为描述(包括是否返回响应、返回次数、返回周期、返回延迟、下一响应块等)。激励响应表通过数据块名称与数据块表连接。数据块表记录了激励响应表中的所有数据块,它包括数据块名称、数据块描述、包含的数据元素数及其组成结构。1553总线设备数据块的组成结构一般为控制字(0~M个)+数据字(0~N个)。控制字的内容是不变的,可直接填于表中配合激励响应表中的其它信息用于激励数据的检索;数据字内容是变化的,所以将它们的索引码填于表中,根据索引码到数据元素表中查找每一个数据字的内容和处理方法等。数据块表通过元素的索引码与数据元素表连接。数据元素表用于描述数据块中所有数据元素的处理方法。处理方法多是将总线上传输的二进制数值转换成具有物理意义的十进制数值或反之,这种转换通常具有线性关系,所以数据元素表主要描述数据元素的线性处理方法,它主要包括两部分:元素描述(包括元素名、索引码)和处理方法描述(包括是否处理、符号位、数据高位、数据低位、比例和偏移等)。设备状态表中包含所有跟设备自身状态信息有关的数据元素,它包括元素名、元素索引码和元素默认值。在仿真过程中这些元素被显示在界面上,使用户可以随时修改这些状态。修改后通过索引码更新数据元素表中相应的数据元素。网络数据映射表主要用于描述网络数据包的数据(源数据)与仿真设备的状态(目的数据)之间的映射信息,它包括设备名称、源数据的个数、源数据偏移、源数据类型、目的数据索引号以及处理函数等信息。目的数据通过索引码与数据元素表的数据相连。
该仿真平台在某型机航电系统地面联试中得到了应用。在试验中,本仿真平台对多个航电系统设备进行了仿真,有力的支持了航电系统试验,大大缩短型号研制周期,节省研制成本,方便了软件开发调试和航电系统试验验证。
本仿真平台采用仿真数据库描述航电系统设备的接口信息,以填表的方法,用户可以通过在仿真数据库中填写不同的仿真要求来仿真不同的设备,将航电设备的接口特性输入到该仿真平台中。在此平台上,不同的设备只需填写不同的仿真数据库表即可构建相应的仿真器,不需要修改软件代码,因此具有通用性和灵活性。由于对仿真数据库的填写和修改都很简单,因此使用本平台构建和修改航电系统仿真器方便快捷,大大加快了航电设备仿真器的开发速度,减少了开发工作量和时间。该仿真平台已经在某型机的航电系统地面联试中得到应用,取得了良好的效果。
[1]饶学军,陈红林.惯导仿真系统的设计 [J].系统仿真学报,2005,17(3):617-619.
[2]张健东,高晓光,吴勇.综合航电显控仿真系统的设计与实现 [J].火力与指挥控制,2006,31(2):40-43.
[3]李海鸥,张忠亭,姜守达.基于VXI总线的通用测试软件研究[J].高技术通讯,2000,10(2):75-77.