CN114428702A - 含有通用接口模块的信息物理测试系统 - Google Patents
含有通用接口模块的信息物理测试系统 Download PDFInfo
- Publication number
- CN114428702A CN114428702A CN202111550563.4A CN202111550563A CN114428702A CN 114428702 A CN114428702 A CN 114428702A CN 202111550563 A CN202111550563 A CN 202111550563A CN 114428702 A CN114428702 A CN 114428702A
- Authority
- CN
- China
- Prior art keywords
- data
- model
- hardware
- protocol
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种含有通用接口模块的信息物理测试系统,所述信息物理测试系统通过通用接口模块与各个不同的硬件相连,所述通用接口模块包括1553B总线,所述1553B总线采用双冗余设计,由两条冗余总线BUS‑A和BUS‑B与1553B接口通信模件连接,两条总线连接在总线耦合器上,总线耦合器采用ESI‑310‑1553B耦合器。将系统对硬件的操作,抽象出一个通用接口,系统只针对通用接口编程,每种硬件暴露给外部程序的接口是统一的。
Description
技术领域
本发明涉及信息系统,特别涉及一种含有通用接口模块的信息物理测试系统。
背景技术
信息物理测试系统需要与众多硬件进行互联互通。这些硬件的接口种类十分庞杂,有网络类硬件,例如TCP、UDP;有串口类硬件,例如RS232、RS422;有IO类硬件,例如模拟IO、数字IO;也有总线类硬件,例如CAN、FlexRay、1553B等等。这些硬件的原理和使用方式不同相同。按照传统的做法,系统需要为每种硬件单独开发一个子模块,完成对该种硬件的初始化、数据读写、关闭等功能。这样的做法有两种问题:系统需要直接操作每一种具体的硬件,随着硬件种类越来越多,系统也会随之越来越复杂。有一些种类的硬件并没有开放编程接口,程序无法直接对其操作。
发明内容
本发明所要解决的技术问题是,克服现有技术存在的上述缺陷,提供一种含有通用接口模块的信息物理测试系统。
一种含有通用接口模块的信息物理测试系统,其特征在于,所述信息物理测试系统通过通用接口模块与各个不同的硬件相连,所述通用接口模块包括1553B总线,所述1553B总线采用双冗余设计,由两条冗余总线BUS-A和BUS-B与1553B接口通信模件连接,两条总线连接在总线耦合器上,总线耦合器采用ESI-310-1553B耦合器;1553B总线具有硬件协议,硬件协议属性上包括协议编号、协议名称、协议类型和子地址方式;协议编号作为硬件协议的标志性字段,使平台配置子系统和服务器终端子系统遵循协议编号完成对数据的封装和解析;协议类型表示该协议在仿真工程中扮演的角色,角色分为1553B总线控制器(BC)模式或1553B远程终端(RT)模式;子地址传输方式包括“Deep”和“Flat”,“Deep”表示1553B总线会将仿真数据包以平铺的方式发送给RT下所有负责接收数据的子地址,“Flat”表示1553B总线将全部数据包发送至RT下负责接收数据的其中一个子地址;将1553B硬件协议应用于1553B总线系统中总线控制器(BC)和远程终端(RT)两种工作模式,在仿真工程中生成两个1553B硬件模型,分别部署在总线控制设备和远程终端设备的程序中;当1553B硬件协议创建后,平台配置子系统程序会将协议属性数据持久化保存至数据库中,FMI联合仿真系统会向平台服务器子系统程序发送获取1553B硬件协议的请求,平台服务器子系统程序在解析请求的同时,在仿真工程中生成两个属性值相同的1553B硬件模型,即BC模型和RT模型,并且每个模型中包含数据发送目标设备的IP和端口,其中BC模型对应总线控制设备,RT模型对应远程终端设备,当仿真工程启动后,总线控制设备程序按照BC模型中封装的1553B硬件协议属性将FMU模块生成的仿真数据发送至指定的远程终端中,数据传输由1553B总线实现。部署在远程终端的RT模型接收到仿真数据后,将数据回送给FMU模块,使整个传输过程形成闭环。
本发明的有益效果如下:将系统对硬件的操作,抽象出一个通用接口,系统只针对通用接口编程,每种硬件暴露给外部程序的接口是统一的。当新增加硬件时,不需要专门编写针对新硬件的程序,但系统上层的代码是保持不变。这样就可以把变化的范围尽可能地缩小,提升系统的质量和可维护性。针对不可编程的硬件,可以按照规定的接口封装成静态库或动态库,系统可以直接调用,而不用接触实际的代码。
附图说明
图1为本发明系统结构示意图;图2为1553B接口通信模件功能框图;图3为本发明平台配置子系统功能结构设计图;图4为1553B硬件模型与FMU模块间的数据交互流程图;
图5为实现1553B模型程序的三层结构关系图;图6为数据输入输出的流程图;图7为1553B硬件模型的导入程序流程图;图8为四层结构程序调用时序图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明,使本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按比例绘制附图,重点在于示出本发明的主旨。
与信息物理测试系统互联的硬件,一般都是以板卡形式存在的。板卡是一块集成了某些特定硬件功能的卡,通过PCI/PCIE/PXI等接口插在主板上。板卡上可能集成了不同功能的硬件子模块,以主板为例,主板上就集成了网卡、串口、USB等不同功能的硬件用来传输数据。同种功能的硬件子模块,还可以同时传输多路数据,比如有多个USB接口,网卡可以通过多个TCP端口传输数据。如图1所示,信息物理测试系统通过通用接口模块与各个不同的硬件相连,实现相互通信。
通用接口模块包括1553B总线,为保证数据交互功能启动时总线设计结构与1553B总线协议的同步性、一致性,在数据交互设备主板的配置搭建过程中,重要技术细节如下:
(1)多功能1553B接口通信模件安装在工控主机主板的标准32位PCI插槽中,这样该模件通过PCI控制器即可实现与CPU进行数据交互。
(2)1553B总线网络采用双冗余设计,由两条冗余总线BUS-A和BUS-B与1553B接口通信模件连接,两条总线连接在总线耦合器上,总线耦合器采用ESI-310-1553B耦合器,本发明中选择SCSI-1553专用连接线作为数据传输线缆。
(3)数据交互设备的网口与中心千兆以太网交换机相连,平台配置子系统通过Redis通道向数据交互设备中的程序发送仿真数据。
(4)数据交互设备采用Linux64位操作系统(Centos-7-x86_64-DVD-1810),能够连接键盘、鼠标、VGA显示器和硬盘,使开发人员能够在数据交互设备中部署程序控制1553B接口通信模件。
总线监测设备作为硬件模块中的配置信息输入接口,负责统一管理FMI联合仿真系统的配置信息,向各仿真终端设备下发数据信号,同时也能够作为FMU数据信息的输出接口,实时显示仿真数据,能够对历史数据进行存储和分析。
总线监测设备由PC主机作为硬件载体,主机内部搭载Windows系统,采用AltaView总线分析器作为1553B总线数据交互的可视化监测工具,AltaRTVal软件作为远程终端(RT)模式的有效性测试软件。Alta View总线分析器是一种基于互联网,采取全被动模式的数据监控与大数据分析的开发工具,其主要功能为监控向各种仿真装置传输的配置信号与遥控指令,以实现对各节点初始设置信号的截取和数据通信的集中管理。按照系统配置信息实时解析仿真数据包,同时能够控制1553B总线测试设备测试和结果显示。AltaRTVal工具属于Alta View总线分析器的子模块,负责开发人员测试运行在仿真终端设备的程序是否实现了1553B通信协议所要求的远程终端RT设备的功能,开发人员通过Alta View总线分析器配置1553B板卡属性初始化1553B接口通信模件。
在总线监测设备初始化界面中,首先指定参与数据交互的总线通道以及各数据交互设备内部搭载的1553B接口通信模件ID,同时需要配置数据交互设备的IP地址和端口号,保证每一台数据交互设备对应一个IP地址和端口。总线监测设备按照相应配置与数据交互设备建立连接,同步解析并回显数据交互设备之间传输的仿真数据,实现仿真数据的监测功能。
1553B接口通信模件的设计与实现,1553B接口通信模件是硬件模块中各物理设备的关键部件,主要实现1553B总线的信息综合、资源共享、任务调度和容错重构功能,所以对于物理模块中1553B接口通信模件的设计就显得尤为重要。本发明的数据交互设备和总线监测设备均搭载1553B接口通信模件,各设备通过其内部的1553B接口通信模件实现数据交互和数据监测功能。1553B接口通信模件功能框图如图2所示。
平台配置子系统在向数据交互设备发送仿真数据报文后,由数据交互设备首先解析仿真指令和待传输的报文数据。随后,再由服务器终端子系统程序启动Target写指令,并介入FPGA中的相关寄存器和RAM,控制器通过收发器、隔离变压器将数据报文发送至1553B总线。接收报文是发送报文的逆过程,数据交互设备首先初始化协议控制器,控制器会在接受到数据报文时向数据交互设备发出一个请求信号,数据交互设备收到请求后发动Target读指令,把数据从相应寄存器和RAM中取走。
FPGA是一种可编程门阵列芯片,开发人员可以对其进行自定义编程实现同步仿真,并且FPGA加载程序效率较高,利用重配置功能可以减少硬件的开销。本发明中使用的FPGA处理器同时支持BC、RT和BM模式,能够实现1553B总线通信协议规定的BC到RT、RT到RT、广播、方式指令的数据交互模式。该芯片属于可编程芯片,开发人员通过总线监测设备对1553B多功能板卡进行驱动和配置。1553B总线协议控制、1553B总线读写数据等操作由FPGA处理器通过数据交互设备中部署的程序完成。
平台配置子系统的设计,本发明在平台配置子系统功能的设计过程中,首先设计了1553B硬件协议字段并在平台配置子系统中具体显示。随后,根据1553B字格式设计硬件模型的数据类型,主要分为帧同步、时间同步和数据服务三部分。其次,实现配置1553B硬件协议,生成1553B硬件模型。最后实现平台配置子系统将仿真指令和仿真数据发送至服务器终端子系统。根据上述的主要功能设计,FMI联合仿真系统中平台配置子系统功能结构设计图如图3所示。
平台配置子系统的功能结构设计分为三个部分,主要实现如下:(1)在硬件列表中创建硬件目录,将目录分为两个层级,一级目录表示硬件板卡的种类,二级目录表示硬件协议,同一个板卡种类下可以配置多条硬件协议,实现将不同功能的板卡和协议分类整理。(2)在设计硬件配置过程中创建硬件模型并配置属性,每一个硬件模型都作为硬件协议来实现特定的半物理仿真数据交互功能。在硬件协议属性上设计了协议编号、协议名称、协议类型和子地址方式。协议编号作为硬件协议的标志性字段,使平台配置子系统和服务器终端子系统遵循协议编号完成对数据的封装和解析。协议类型表示该协议在仿真工程中扮演的角色,角色分为1553B总线控制器(BC)模式或1553B远程终端(RT)模式。子地址传输方式包括“Deep”和“Flat”,“Deep”表示1553B总线会将仿真数据包以平铺的方式发送给RT下所有负责接收数据的子地址,“Flat”表示1553B总线将全部数据包发送至RT下负责接收数据的其中一个子地址。当仿真工程将确定的硬件协议发送至服务器终端子系统后,系统解析协议配置并将数据包发送至指定的数据交互设备中。(3)本发明考虑硬件协议存在跨平台应用的场景,因此设计了硬件协议的导入和导出功能,实现了协议的持久化保存,使得硬件协议生成的JSON可以应用于不同仿真工程中,提高了硬件协议的复用性。
在平台配置子系统的硬件协议配置页面的实现过程中,创建与后端程序交互的接口并通过接口获取动态绑定后的节点数据,通过zTree库函数将节点数据回显至前端页面。整个实现流程通过采用JavaScript语句将动态文本嵌入静态HTML中,从而使界面变得更加灵活。实现伪代码如表1所示。
表1
如表1所示,generateTree()函数的实现过程分为三个阶段:
step1:首先通过Ajax向后端发送请求接口,后端接收到请求后将节点数据传入响应域中,前端通过response.data获取节点数据。
step2:调用init()函数将节点数据实例化为一个树形结构对象,通过idBase自增长的方式为树形结构对象中的每一个节点数据分配id值。
step3:调用dom.setAttribute()函数,根据节点id将带有节点数据的树形结构回显在硬件协议配置页面中。
硬件协议配置页面的实现方法。半物理仿真指令指在1553B总线传输过程中,总线控制器通过半物理仿真指令确定仿真数据发送的地址及发送的数据长度,根据指令信息将仿真数据发送至远程终端。基于FMI联合仿真系统的设计特点,以及本发明对数据交互页面配置的开发需求,采用了轻量级的UI类型库Knockout作为1553B硬件协议配置页面的开发框架,同时采用JSTL技术作为静态HTML的动态标签库,从而使界面更为简洁,极大的提高了代码撰写效率。基于1553B总线系统的远程终端及子地址结构,设计下拉列表并配置远程终端Id和子地址Id,实现1553B硬件协议的持久化存储。同时,在服务器终端子系统程序调用硬件接口的过程中,1553B硬件协议的数据结构是驱动1553B板卡并实现半物理仿真的重要因素。所以本发明基于1553B总线协议的结构体系,设计并实现了1553B硬件协议每个节点属性的实体类,主要作用包括以下三点:(1)负责接收平台配置子系统中提交的1553B硬件协议表单信息,并保存至MySQL数据库中。(2)仿真工程启动后,回调缓存数据库中的硬件协议数据并通过Redis发送至服务器终端子系统中。(3)调用硬件接口,并根据1553B硬件协议的属性信息,将仿真数据发送至指定的远程终端。1553B硬件协议实体类的实现代码如表2所示。
表2
在1553B硬件协议实体类的实现过程中,通道编号和通道名称字段确定了仿真数据传输的通道地址。数据类型字段表示仿真数据的类型,分为帧同步数据、时间同步数据和仿真数据三种。帧同步数据表示远程终端能够从接收到的二进制比特流中区分出每一帧的起始点与终止点,使总线监测设备能够监测每一帧仿真数据的变化。时间同步数据使总线控制器和远程终端在时间基准上保持同步状态,使其能够准确、低延迟的完成数据通信。消息类型表示为1553B总线的数据交互模式,当确定数据交互模式后,总线控制器(BC)可通过远程终端(RT)地址和RT子地址来定位接收仿真数据的远程终端,通过数据长度、起始子地址和结束子地址来确定仿真数据具体发送的位置。实体类由Lombok插件中的注解进行修饰,Data注解能够在不创建get和set函数的情况下,将1553B硬件协议实体类中的所有属性私有化,使外部程序无法直接操作其属性值,而是通过自动生成的接口进行访问,保证了协议内数据的安全性。NoArgsConstructor和AllArgsConstructor注解为实体类创建相应的无参构造器和有参构造器。同时,在平台配置子系统中实现了配置页面程序的方法,具体过程如下:
(1)针对1553B硬件协议中每个节点属性的要求,采用HTML超文本标记语言对配置页面进行描述,同时由于在一个1553B总线系统中最多存在32个远程终端,并且每个远程终端对应32个子地址,因此本发明采用JavaScript为每个协议节点的属性生成动态下拉框,实现配置协议属性的功能。
(2)采用knockout架构作为JavaScript库,能够实现仅利用一种清晰完整的基础层数据信息模式(data model)就能够产生一种富文字并具备良好的展示与编辑功能的显示界面。具体实现为将协议数据转换成一个JavaScript数组,通过遍历的方式将数组中的每个数据绑定在界面中的一个table表格,或是在某一个div中。当数组内的数据改变时,界面会自动响应和同步数据,通过这种方式保证了1553B硬件协议属性数据的一致性。1553B硬件协议配置页面的实现代码如表3所示。
表3
1553B硬件协议配置页面的核心实现步骤如下:
step1:通过ko.observable()函数监控配置页面中输入的每个1553B硬件协议属性值,通过ko.observableArray()函数监测下拉列表中的每一个选项,实现属性值的实时动态绑定。
step2:在一个1553B总线系统中,由于BC能够与31个RT实现数据交互,同时一个RT能够映射31个子地址。所以本发明采用for循环的方式为远程终端、远程终端子地址等下拉框赋属性值。使用者通过配置页面即可选择相应的地址参数,提高配置页面使用友好度的同时,降低了输入错误的概率。
step3:调用validation()函数对输入的属性值进行校验,确保使用者以正确格式填写,防止平台配置子系统程序因数据格式错误无法生成1553B硬件协议。
step4:使用if语句对step3中的校验结果进行控制,当valid()函数返回值为true时,表示通过校验,则通过context.fetchbackun()函数调用平台配置子系统程序接口,将ko.observable()中监测的所有1553B属性值进行封装,然后提交给后台程序处理。
1553B硬件模型的生成方法。在创建半物理仿真工程的过程中,FMI联合仿真系统除了搭建FMU相关模块之外,还会调用平台配置子系统中的1553B硬件协议数据,并在仿真工程中生成对应的1553B硬件模型。FMU模块表示多个FMU相连组成的集合,各FMU模块通过1553B硬件模型相连接,在仿真工程的UI显示中达到模拟半物理仿真的功能。同时在仿真数据层面,FMU模块通过1553B硬件协议将仿真数据发送至指定的服务器终端子系统中,由服务器终端子系统程序解析1553B硬件协议属性并将仿真数据发送至部署在其它远程终端的FMU模块。1553B硬件模型与FMU模块间的数据交互流程如图4所示。
如图4所示,在半物理仿真工程中,将一条1553B硬件协议应用于1553B总线系统中总线控制器(BC)和远程终端(RT)两种工作模式,即在仿真工程中需要生成两个1553B硬件模型,分别部署在总线控制设备和远程终端设备的程序中。当1553B硬件协议创建后,平台配置子系统程序会将协议属性数据持久化保存至数据库中。在半物理仿真工程搭建时,FMI联合仿真系统会向平台服务器子系统程序发送获取1553B硬件协议的请求,平台服务器子系统程序在解析请求的同时,在仿真工程中生成两个属性值相同的1553B硬件模型,即BC模型和RT模型,并且每个模型中包含数据发送目标设备的IP和端口,其中BC模型对应总线控制设备,RT模型对应远程终端设备。当仿真工程启动后,总线控制设备程序按照BC模型中封装的1553B硬件协议属性将FMU模块生成的仿真数据发送至指定的远程终端中,数据传输由1553B总线实现。部署在远程终端的RT模型接收到仿真数据后,将数据回送给FMU模块,使整个传输过程形成闭环。
本发明在1553B硬件模型的实现上采用了MVC设计模式,程序结构设计为仿真控制层(controller)、模型数据层(model)和模型视图层(view)。模型控制层主要负责处理FMI联合仿真系统中调用1553B硬件协议数据的请求接口,将具体的处理方法交由模型数据层来处理。模型数据层将平台配置子系统中的1553B硬件协议数据进行封装,生成1553B模型并回传给模型控制层。模型视图层负责将模型控制层中接收到的模型信息显示在仿真工程中。实现1553B模型程序的三层结构关系如图5所示。
在生成1553B硬件模型的过程中,程序三层结构之间的方法调用由java语言具体实现。同时1553B硬件模型对应程序中的类对象,即上节中定义的1553B硬件协议实体类,具体的协议属性数据由模型数据层访问数据库获取。当模型被实例化赋值后,模型数据在生成硬件模型到仿真工程运行期间会一直缓存在内存中,直到仿真工程搭建完成并开始仿真后,模型数据才会发送至服务器终端子系统中,生成1553B硬件模型的伪代码如表4所示。
表4生成1553B硬件模型伪代码
在表4的实现过程中,@RequestMapping("/generative/Hardware/Model")用来接收半物理仿真工程中获取1553B硬件模型的请求,与generativeHardwareModel()函数形成映射关系,表示调用具体生成硬件模型的方法,该方法存在于模型控制层中,返回值为模型数据层返回的结果,即封装后的1553B硬件协议数据。
在模型数据层中,由HardwareProtocolService接口接收模型控制层中传递的URL请求,HardwareProtocolImpl类实现于HardwareProtocolService接口,负责调用HardwareProtocolMapper接口查询数据库中保存的1553B硬件协议数据。
当有查询请求的时候,MyBatis会触发JDK动态代理机制,为HardwareProtocolMapper接口内生成与其映射的Proxy对象,而JDK动态代理的实现则采用了Java的反射机制,代理对象Proxy会通过拦截接口函数,将HardwareProtocolMapper接口内的函数名和Mapper映射文件中的select标签的id等属性值之间形成映射关联,同时将select标签中的SQL语句发送至MYSQL数据库中,然后将SQL语句的执行结果封装成1553B硬件模型对象返回给模型视图层。
当1553B模型生成后,模型文件数据就存储于平台配置子系统中,平台使用者可通过界面操作来完成1553B硬件模型文件的导入导出。以导入功能为例,平台与数据交互设备程序之间的通信过程为,在遵循HTTP协议的前前提下,将模型文件数据存储在HTTP协议的请求体中,并以二进制流的形式发送至数据交互设备中。数据交互设备程序通过httpServletRequest解析请求,同时处理请求体中的硬件模型数据,将其保存至数据交互设备的本地磁盘中,完成1553B硬件模型文件的导入。
由于1553B协议实体类属性存在字符串类型的数据,而整型数据也可以由字符串进行表示,所以本发明在实现模型导入导出的方法上引用了字符流(Stream)的机制,通过输出流将1553B硬件模型文件以字符为单位写入数据交互设备中。在获取时,通过输入流将本地1553B硬件模型以字符为单位读入程序中,程序解析字符数据后以文件的形式返回给平台。数据输入输出的流程图如图5所示。
在处理数据流的同时,需要在数据交互平台本地生成JSON格式的模型文件,所以本发明在程序实现上采用commons-fileupload和common-io组件作为生成1553B硬件模型文件的开发工具包。common-io内封装了针对IO流开发的函数库,内部集成了输入流、输出流和缓存流的类结构,能够实现文件数据的读写和复制。当数据交互设备程序接收到平台发送过来的模型文件数据时,commons-fileupload的内置函数会对该数据进行解析并处理,并在本地生成1553B硬件模型文件。
在导入方法的实现过程中,平台中模型文件数据的发送需要以form表单的形式进行提交。当有多条模型数据时,需要将form标签中enctype属性设置为multipart/form-data,HTTP协议会通过该属性值生成一串16进制的随机分隔符,并将模型数据分割为多段,数据交互设备通过isMultipartContent()函数判断接收的数据是否为有效的多段数据,由FileItem类接收每段模型数据并生成对应的模型文件。1553B硬件模型的导入程序流程图如图6所示。
由于FMI联合仿真系统平台和数据交互设备间的的数据传输遵循HTTP协议,所以本发明在导入函数代码的实现过程中由HttpServletRequest来接收模型文件数据,通过HttpServletResponse将函数处理的结果响应给平台。1553B硬件模型导入方法实现代码如表5所示。
表5
如表5所示,主要实现步骤如下:
step1:通过HttpServletRequest接收FMI联合仿真系统平台发送的HTTP请求体中的数据。由于只有当接收到的数据为多段格式时才能确定发送过来的数据为模型文件格式,所以调用isMultipartContent()函数来判断接收的数据是否为多段格式。只有当数据为多段格式时才会被解析,反之不解析。
step2:创建FileItemFactory工厂类并生成ServletFileUpload对象,同时通过ServletFileUpload解析模型文件数据,生成多个FileItem并保存至List集合中,每个FileItem对应一个模型文件。
step3:通过for循环遍历集合,将每个FileItem写入数据交互设备本地的指定路径中。随后,通过response.setStatus()函数返回状态码200,通知FMI联合仿真系统平台,成功导入模型文件。
在导出模型方法的实现过程中,首先查询数据库获取指定的1553B硬件协议数据并将其封装为1553B硬件模型,通过输出流将硬件模型回传至平台中,同时,通过HTTP响应头通知FMI联合仿真系统发送的文件类型。
导出的实现过程同导入过程类似,由于1553B模型文件数据在导出过程中也遵循HTTP协议,所以在代码实现上同样采用HttpServletRequest接收平台下发的请求,通过HttpServletResponse将函数处理的结果返回给FMI联合仿真系统。1553B硬件模型导出方法实现代码如表6所示。
表6
step1:在导出功能的数据交互过程中,FMI联合仿真系统将需要获取的模型文件名以接口的方式发送至数据交互设备中,由getUrlPath()函数接收请求并获取得到文件名称。
step2:通过servletContext.getResourceAsStream()函数将1553B硬件模型封装至InputStream输入流中。
step3:创建输出流OutputStream,调用IOUtils.copy()函数将step2步骤中InputStream内缓存的1553B硬件模型数据拷贝至OutputStream中,并通过HTTP协议的响应体返回至FMI联合仿真系统平台。
step4:在step3步骤的基础上,通过response.setHeader()函数将HTTP协议响应头中Content-Disposition属性的值设置为attement,使FMI联合仿真系统接收到响应的数据后可用于下载使用。
1553B消息的传输方法。在半物理仿真的实现过程中,1553B消息的传输过程由部署在服务器终端子系统中的程序控制实现。基于服务器终端子系统程序架构的设计特点,本发明将1553B消息的传输方法设计为四层结构,分别是设备通信层,总线控制层,消息预处理层和消息缓存层。每层结构内通过硬件函数相互控制,最终实现1553B消息的传输。四层结构程序调用时序图如图7所示。
在传输1553B消息的实现过程中,四层结构的程序调用步骤如下:
step1:通过设备通道层程序驱动1553B接口通信模件并对1553B总线通道进行安全校验,确保硬件设备可以正常工作。当校验通过后,总线控制层程序会开启总线控制设备内1553B板卡的总线控制器(BC)功能,使其能够发送1553B消息的同时调度1553B总线系统中所有的远程终端(RT),实现各终端节点之间的数据交互功能。
step2:消息预处理层程序将FMU仿真数据信息按照数据结构体(CDP)进行封装,同时将1553B硬件协议数据封装至控制结构体(BCCB)中。
step3:总线控制层程序调用硬件接口函数,从1553B总线系统中完成BCCB和CDP数据的读写,实现1553B消息的传输。
step4:当半物理仿真结束后,通过总线控制层程序停止发送1553B消息并关闭总线控制器(BC)功能,通过设备通道层程序关闭1553B相关硬件。实现1553B消息传输代码如表7所示。
表7
1553B消息传输实现步骤如下:
step1:在OpenDevice()函数的实现过程中,device_id参数表示当前指定的1553B板卡id,data参数表示参与数据交互的仿真信息。同时,由于1553B板卡的记忆功能会导致设备存储上次传输1553B消息后的缓存数据,所以通过调用ADT_L1_1553_InitDefault_ExtendedOptions()函数对1553B板卡进行初始化操作,使其能够正确发送本次1553B消息。
step2:调用ADT_L1_GetVersionInfo()函数,使1553B板卡通过1553B设备版本号和通道编号等参数信息在指定的总线通道内发送或接收1553B消息。同时调用ADT_L1_1553_INT_EnableInt(device_id)函数驱动1553B板卡,使其进入工作模式。
step3:由于一个控制结构体(BCCB)对应一条1553B消息,同时一条1553B消息又封装为一个数据结构体(CDP),所以在发送1553B消息之前,采用for循环并调用ADT_L1_1553_BC_CB_CDPAllocate()函数为每一个数据结构体(CDP)申请内存空间,并将1553B消息写入内存空间中。
step4:将控制结构体(BCCB)中的远程终端(RT)地址、RT子地址、帧同步数据和数据传输模式等配置参数表示为1553B消息中的命令字,将数据结构体(CDP)表示为1553B消息数据字和状态字,调用ADT_L1_1553_BC_CB_Write()函数和ADT_L1_1553_BC_CB_CDPWrite()函数将1553B消息写入1553B总线缓存区中
step5:调用ADT_L1_1553_BC_Start()函数,启动1553B板卡的总线控制器(BC)功能,并发送缓存区中的1553B消息,完成1553B消息的传输。
在以上描述中阐述了具体细节以便于充分理解本发明。但是以上描述仅是本发明的较佳实施例而已,本发明能够以很多不同于在此描述的其它方式来实施,因此本发明不受上面公开的具体实施的限制。同时任何熟悉本领域技术人员在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (6)
1.一种含有通用接口模块的信息物理测试系统,其特征在于,所述信息物理测试系统通过通用接口模块与各个不同的硬件相连,所述通用接口模块包括1553B总线,所述1553B总线采用双冗余设计,由两条冗余总线BUS-A和BUS-B与1553B接口通信模件连接,两条总线连接在总线耦合器上,总线耦合器采用ESI-310-1553B耦合器;
1553B总线具有硬件协议,硬件协议属性上包括协议编号、协议名称、协议类型和子地址方式;协议编号作为硬件协议的标志性字段,使平台配置子系统和服务器终端子系统遵循协议编号完成对数据的封装和解析;协议类型表示该协议在仿真工程中扮演的角色,角色分为1553B总线控制器(BC)模式或1553B远程终端(RT)模式;子地址传输方式包括“Deep”和“Flat”,“Deep”表示1553B总线会将仿真数据包以平铺的方式发送给RT下所有负责接收数据的子地址,“Flat”表示1553B总线将全部数据包发送至RT下负责接收数据的其中一个子地址;
将1553B硬件协议应用于1553B总线系统中总线控制器(BC)和远程终端(RT)两种工作模式,在仿真工程中生成两个1553B硬件模型,分别部署在总线控制设备和远程终端设备的程序中;当1553B硬件协议创建后,平台配置子系统程序会将协议属性数据持久化保存至数据库中,FMI联合仿真系统会向平台服务器子系统程序发送获取1553B硬件协议的请求,平台服务器子系统程序在解析请求的同时,在仿真工程中生成两个属性值相同的1553B硬件模型,即BC模型和RT模型,并且每个模型中包含数据发送目标设备的IP和端口,其中BC模型对应总线控制设备,RT模型对应远程终端设备,当仿真工程启动后,总线控制设备程序按照BC模型中封装的1553B硬件协议属性将FMU模块生成的仿真数据发送至指定的远程终端中,数据传输由1553B总线实现。部署在远程终端的RT模型接收到仿真数据后,将数据回送给FMU模块,使整个传输过程形成闭环。
2.根据权利要求1所述的含有通用接口模块的信息物理测试系统,其特征在于,所述硬件协议的配置包括如下步骤:
step1:通过ko.observable()函数监控配置页面中输入的每个1553B硬件协议属性值,通过ko.observableArray()函数监测下拉列表中的每一个选项,实现属性值的实时动态绑定;
step2:采用for循环的方式为远程终端、远程终端子地址等下拉框赋属性值,通过配置页面即可选择相应的地址参数;
step3:调用validation()函数对输入的属性值进行校验;
step4:使用if语句对step3中的校验结果进行控制,当valid()函数返回值为true时,表示通过校验,则通过context.fetchbackun()函数调用平台配置子系统程序接口,将ko.observable()中监测的所有1553B属性值进行封装,然后提交给后台程序处理。
3.根据权利要求1所述的含有通用接口模块的信息物理测试系统,其特征在于,在1553B硬件模型的实现上采用了MVC设计模式,程序结构设计为仿真控制层(controller)、模型数据层(model)和模型视图层(view),模型控制层主要负责处理FMI联合仿真系统中调用1553B硬件协议数据的请求接口,将具体的处理方法交由模型数据层来处理,模型数据层将平台配置子系统中的1553B硬件协议数据进行封装,生成1553B模型并回传给模型控制层。模型视图层负责将模型控制层中接收到的模型信息显示在仿真工程中。
4.根据权利要求1所述的含有通用接口模块的信息物理测试系统,其特征在于,当1553B模型生成后,模型文件数据就存储于平台配置子系统中,可通过界面操作来完成1553B硬件模型文件的导入导出。
5.根据权利要求4所述的含有通用接口模块的信息物理测试系统,其特征在于,所述导入包括以下步骤:
step1:通过HttpServletRequest接收FMI联合仿真系统平台发送的HTTP请求体中的数据。由于只有当接收到的数据为多段格式时才能确定发送过来的数据为模型文件格式,所以调用isMultipartContent()函数来判断接收的数据是否为多段格式。只有当数据为多段格式时才会被解析,反之不解析;
step2:创建FileItemFactory工厂类并生成ServletFileUpload对象,同时通过ServletFileUpload解析模型文件数据,生成多个FileItem并保存至List集合中,每个FileItem对应一个模型文件;
step3:通过for循环遍历集合,将每个FileItem写入数据交互设备本地的指定路径中。随后,通过response.setStatus()函数返回状态码200,通知FMI联合仿真系统平台,成功导入模型文件。
6.根据权利要求4所述的含有通用接口模块的信息物理测试系统,其特征在于,所述导出包括以下步骤:
step1:在导出功能的数据交互过程中,FMI联合仿真系统将需要获取的模型文件名以接口的方式发送至数据交互设备中,由getUrlPath()函数接收请求并获取得到文件名称;
step2:通过servletContext.getResourceAsStream()函数将1553B硬件模型封装至InputStream输入流中;
step3:创建输出流OutputStream,调用IOUtils.copy()函数将step2步骤中InputStream内缓存的1553B硬件模型数据拷贝至OutputStream中,并通过HTTP协议的响应体返回至FMI联合仿真系统平台;
step4:在step3步骤的基础上,通过response.setHeader()函数将HTTP协议响应头中Content-Disposition属性的值设置为attement,使FMI联合仿真系统接收到响应的数据后可用于下载使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111550563.4A CN114428702A (zh) | 2021-12-17 | 2021-12-17 | 含有通用接口模块的信息物理测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111550563.4A CN114428702A (zh) | 2021-12-17 | 2021-12-17 | 含有通用接口模块的信息物理测试系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114428702A true CN114428702A (zh) | 2022-05-03 |
Family
ID=81311510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111550563.4A Pending CN114428702A (zh) | 2021-12-17 | 2021-12-17 | 含有通用接口模块的信息物理测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114428702A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116866250A (zh) * | 2023-09-05 | 2023-10-10 | 空间液态金属科技发展(江苏)有限公司 | 基于航天器应用的局域网网络数据风暴的抑制方法 |
-
2021
- 2021-12-17 CN CN202111550563.4A patent/CN114428702A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116866250A (zh) * | 2023-09-05 | 2023-10-10 | 空间液态金属科技发展(江苏)有限公司 | 基于航天器应用的局域网网络数据风暴的抑制方法 |
CN116866250B (zh) * | 2023-09-05 | 2023-11-14 | 空间液态金属科技发展(江苏)有限公司 | 基于航天器应用的局域网网络数据风暴的抑制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106838B2 (en) | Systems, methods, and apparatus to generate an integrated modular architecture model | |
CN103178996B (zh) | 分布式包交换芯片模型验证系统及验证方法 | |
RU2430409C2 (ru) | Методология измерения покрытия в структурном состоянии взаимного соединения | |
CN112286746B (zh) | 针对axi从设备接口的通用验证平台及方法 | |
US8726298B1 (en) | Cloud-based instrument driver system | |
CN111930365B (zh) | 基于Qt的应用程序快速开发框架、开发方法及运行方法 | |
CN109783340A (zh) | SoC的测试代码烧写方法、IP测试方法及装置 | |
CN102480467A (zh) | 一种基于网络通讯协议的soc软硬件协同仿真验证方法 | |
CN116681013B (zh) | 网络芯片的仿真验证方法、平台、装置、设备及介质 | |
US20030106042A1 (en) | System and method for animating state diagram through debug connection | |
EP3982268B1 (en) | Chassis simulation method and apparatus, server, storage medium and program product | |
CN114428702A (zh) | 含有通用接口模块的信息物理测试系统 | |
CN110221867A (zh) | 一种xp系统下脉冲i/o功能卡通信驱动系统及方法 | |
CN115470152B (zh) | 测试代码生成方法、测试代码生成装置以及存储介质 | |
CN111176926A (zh) | 一种基于双口sram的ip核仿真系统及仿真方法 | |
US6892154B1 (en) | Method and apparatus for developing multiple test cases from a base test case | |
CN116340150A (zh) | 一种基于uvm的可重用的寄存器性能交互验证系统及其应用 | |
CN113609052A (zh) | 基于fpga和微处理器的芯片模拟系统及实现方法 | |
US7702764B1 (en) | System and method for testing network protocols | |
CN109947407A (zh) | 一种数据获取方法及装置 | |
Zagoździńska et al. | Selected issues of the universal communication environment implementation for CII standard | |
CN115509146B (zh) | 一种飞行维护模拟机分布式通讯资源整合方法 | |
CN113163420B (zh) | 一种用于模拟多ap上线的测试方法 | |
CN116627496B (zh) | 基于uvm的寄存器模型构建、验证方法、系统与电子设备 | |
Liu et al. | Firmware functional validation using a colored petri net model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |