一种fc-ae-1553协议报文通讯处理系统

文档序号:195625 发布日期:2021-11-02 浏览:50次 >En<

阅读说明:本技术 一种fc-ae-1553协议报文通讯处理系统 (FC-AE-1553 protocol message communication processing system ) 是由 赵昶宇 黄庆海 刘振业 于 2021-06-18 设计创作,主要内容包括:本发明涉及一种FC-AE-1553协议报文通讯处理系统,属于FC-AE-1553总线和MIL-STD-1553总线通讯技术领域;主控制器主机模块接收上位机控制指令并存储在消息队列中,每次从消息队列中将实际接收到的上位机控制指令存储到主控制器可编程逻辑模块的堆栈中,并建立接收的控制指令序号和堆栈中控制指令序号的映射关系;可编程逻辑模块将该控制指令发送给桥接器模块,桥接器模块通过MIL-STD-1553总线向终端模拟器设备发送,避免出现控制指令被覆盖现象,节省了硬件资源开销,并显著提高了处理上位机控制指令的实时性和可靠性,尤其适用于上位机每次发送的控制指令中涉及到的RT地址和RT子地址不多,但是上位机控制指令的发送频率较快的情形。(The invention relates to a FC-AE-1553 protocol message communication processing system, belonging to the technical field of FC-AE-1553 bus and MIL-STD-1553 bus communication; the host module of the main controller receives the control instruction of the upper computer and stores the control instruction in the message queue, stores the actually received control instruction of the upper computer into the stack of the programmable logic module of the main controller from the message queue each time, and establishes the mapping relation between the sequence number of the received control instruction and the sequence number of the control instruction in the stack; the programmable logic module sends the control instruction to the bridge module, the bridge module sends the control instruction to the terminal simulator equipment through the MIL-STD-1553 bus, the phenomenon that the control instruction is covered is avoided, hardware resource expenditure is saved, the real-time performance and the reliability of processing the control instruction of the upper computer are obviously improved, and the method is particularly suitable for the situation that the RT addresses and the RT sub-addresses related to the control instruction sent by the upper computer each time are not large, but the sending frequency of the control instruction of the upper computer is high.)

一种FC-AE-1553协议报文通讯处理系统

技术领域

本发明属于FC-AE-1553总线和MIL-STD-1553总线通讯技术领域,涉及一种FC-AE-1553协议报文通讯处理系统。

背景技术

1553B总线是MIL-STD-1553总线的简称,它是飞机内部时分制命令/响应式多路复用数据总线,有三种终端类型:总线控制器、远程终端和总线监视器,其主要特点是分布处理、集中控制和实时响应。

FC-AE-1553总线是MIL-STD-1553B总线在带宽、地址空间和数据传输量上的扩展,其目的是更好地支持航电系统中各元素之间的通信。FC-AE-1553总线协议定义了一种命令/响应式的总线,采用光纤通道技术,一般由网络控制器、网络终端、光纤通道网络自身、FC-AE-1553总线桥以及MIL-STD-1553总线组成。

在航电测试系统的桥接器中将FC-AE-1553协议与MIL-STD-1553进行相互转换。上位机通过以太网发送上位机控制指令给主控制器主机模块,主控制器主机模块通过以太网接收上位机发送的上位机控制指令,对上位机控制指令进行解析处理,生成FC-AE-1553控制指令,将生成的FC-AE-1553控制指令通过DMA方式发送给主控制器可编程逻辑模块。主控制器可编程逻辑模块接收主控制器主机模块发送的FC-AE-1553控制指令,并将FC-AE-1553控制指令经过光纤交换机发送给桥接器模块。

桥接器模块将FC-AE-1553控制指令经过MIL-STD-1553协议转换后生成MIL-STD-1553数据指令,并将生成的MIL-STD-1553数据指令通过MIL-STD-1553总线发送给终端模拟器设备。

终端模拟器设备将自身生成的MIL-STD-1553反馈数据通过MIL-STD-1553总线向桥接器模块发送。

桥接器模块接收终端模拟器设备发送的MIL-STD-1553反馈数据,将MIL-STD-1553反馈数据经过FC-AE-1553协议转换后生成FC-AE-1553反馈数据,并将生成的FC-AE-1553反馈数据通过光纤交换机发送给主控制器可编程逻辑模块。主控制器可编程逻辑模块将FC-AE-1553反馈数据通过DMA方式发送给主控制器主机模块。

主控制器主机模块接收到FC-AE-1553反馈数据后,对FC-AE-1553反馈数据按照以太网报文进行组包处理,生成上位机反馈指令,将生成的上位机反馈指令通过以太网发送给上位机。

航电测试系统的主控制器模块由主机模块和可编程逻辑模块构成,若上位机和主机模块通讯时涉及的RT地址和RT子地址较多(RT地址最多有32个,RT子地址最多32个),且主机模块和上位机通讯前无法获悉上位机控制指令中包含的RT地址和RT子地址个数信息,则主机模块向可编程逻辑模块发送的控制指令个数就无法确定(主机模块向可编程逻辑模块发送的每条控制指令均包含1个RT地址和1个RT子地址信息)。为了保证上位机和终端模拟器设备正常通讯,主机模块在初始化时需要向可编程逻辑模块配置理论上最多的控制指令个数,即32*32*2个(包括NC->NT和NT->NC两种类型控制指令,控制指令序号不重复,RT地址最多有32个,RT子地址最多32个)。由于可编程逻辑模块的堆栈中能够容纳的控制指令个数为N(0<N<256,且远小于32*32*2个),因此,按照上述方法进行配置,可编程逻辑模块就会丢失大部分FC-AE-1553控制指令,最终导致上位机和终端模拟器设备通讯失败。

发明内容

本发明解决的技术问题是:克服现有技术的不足,提出一种提高橡胶与纤维织物粘接强度的方法。

本发明解决技术的方案是:

一种FC-AE-1553协议报文通讯处理系统,包括上位机、主控制器主机模块、主控制器可编程逻辑模块、光纤交换机、桥接器模块和终端模拟器设备;

上位机:生成控制指令,通过以太网将控制指令发送至主控制器主机模块;每个控制指令包含一个RT地址信息,且该RT地址信息只对应的一个RT子地址信息;接收主控制器主机模块传来的上位机反馈指令,实现上位机与终端模拟器设备的通讯;

主控制器主机模块:接收上位机传来的控制指令,对控制指令进行解析处理,每处理一个RT地址对应的RT子地址信息时,将该RT子地址对应的控制指令在初始化时分配的序号保存在以接收控制指令计数为下标的数组A中,将接收控制指令计数加一,并生成一条FC-AE-1553控制指令;将生成的一条或多条FC-AE-1553控制指令、接收控制指令计数和数组A通过DMA方式发送给主控制器可编程逻辑模块;接收主控制器可编程逻辑模块传来的FC-AE-1553反馈数据,对FC-AE-1553反馈数据按照以太网报文进行卒保处理,生成上位机反馈指令,将上位机反馈指令通过以太网发送至上位机;

主控制器可编程逻辑模块:接收主控制器主机模块传来的FC-AE-1553控制指令、接收控制指令计数和数组A;将FC-AE-1553控制指令保存到堆栈中;将接收控制指令计数作为堆栈中控制指令的个数;将数组A的下标作为每条控制指令在堆栈中的序号;并将FC-AE-1553控制指令经光纤交换机发送至桥接器模块;接收桥接器模块传来的FC-AE-1553反馈数据,将FC-AE-1553反馈数据通过DMA的方式发送至主控制器主机模块;

桥接器模块:接收主控制器可编程逻辑模块传来的FC-AE-1553控制指令,将FC-AE-1553控制指令经IL-STD-1553协议转换后生成MIL-STD-1553数据指令;并将MIL-STD-1553数据指令通过MIL-STD-1553总线发送给终端模拟器设备;接收终端模拟器设备传来的MIL-STD-1553反馈数据,将MIL-STD-1553反馈数据经FC-AE-1553协议转换后生成FC-AE-1553反馈数据,将FC-AE-1553反馈数据通过光纤交换机发送至主控制器可编程逻辑模块;

终端模拟器设备:接收桥接器模块传来的MIL-STD-1553数据指令,生成MIL-STD-1553反馈数据,并将MIL-STD-1553反馈数据发送至桥接器模块。

在上述的一种FC-AE-1553协议报文通讯处理系统,所述报文通讯处理系统工作前,对主控制器主机模块进行初始化处理,具体为:动态申请一块内存空间,用于存储32*32*2条控制指令;每个控制指令包含一个RT子地址信息,初始化接收控制指令计数为0,并初始化每条控制指令的序号。

在上述的一种FC-AE-1553协议报文通讯处理系统,所述控制指令序号从0开始递增,所有序号不重复。

在上述的一种FC-AE-1553协议报文通讯处理系统,报文通讯处理系统工作前,主控制器主机模块动态申请一块内存空间,用于存储上位机传来的不同RT地址和不同RT子地址的控制指令;RT地址种类最多有32个,每个RT地址对应RT的子地址的种类最多32个;则RT子地址对应的控制指令在初始化时分配的序号原则为:

RT地址0且RT子地址0的序号为0,RT地址0且RT子地址1的序号为1,RT地址0且RT子地址2的序号为2,...,RT地址0且RT子地址31的序号为31,RT地址1且RT子地址0的序号为32,RT地址1且RT子地址1的序号为33,RT地址1且RT子地址2的序号为34,...,RT地址1且RT子地址31的序号为63,...,RT地址31且RT子地址0的序号为992,RT地址31且RT子地址1的序号为993,RT地址31且RT子地址2的序号为994,...,RT地址31且RT子地址31的序号为1023。

在上述的一种FC-AE-1553协议报文通讯处理系统,所述上位机控制指令的格式为指令标识+信源标识+信宿标识+指令序号+指令长度+指令有效字段内容+校验和;其中,控制指令的最后一个字的内容为校验和,将控制指令中除了校验和的其余内容按照CRC16校验算法计算出校验和。

在上述的一种FC-AE-1553协议报文通讯处理系统,主控制器主机模块对控制指令进行解析处理的具体方法为:

每处理某一个RT子地址信息时,主控制器主机模块在数据帧报头中设置数据帧发送的源地址、数据帧发送的目的地址、数据帧子地址和数据帧长度,将上位机指令有效字段内容填充到数据字段中,并计算数据帧报头和数据字段的CRC校验值,按照数据帧开始+数据帧报头+数据字段+CRC校验+数据帧结束的数据格式生成了一条FC-AE-1553控制指令。

在上述的一种FC-AE-1553协议报文通讯处理系统,主控制器主机模块将生成的FC-AE-1553控制指令、接收控制指令计数和数组A的内容存储在DDR数据缓冲区中,通过PCIE总线通知主控制器可编程逻辑模块准备好从DDR数据缓冲区接收数据,并将接收数据的起始地址空间、数据长度、接收数据源地址和接收数据目的地址发送给主控制器可编程逻辑模块。

在上述的一种FC-AE-1553协议报文通讯处理系统,主控制器主机模块通过PCIE总线收到主控制器可编程逻辑模块数据接收准备好信号后,启动DMA控制器,将DDR缓冲区中的数据通过DMA方式发送给主控制器可编程逻辑模块。

在上述的一种FC-AE-1553协议报文通讯处理系统,主控制器可编程逻辑模块将DDR缓冲区中的数据取走后,通过PCIE总线向主控制器主机模块发送数据接收完毕信号,并将DDR缓冲区中FC-AE-1553控制指令存储到堆栈中,DDR缓冲区中的接收控制指令计数作为主控制器可编程逻辑模块堆栈中控制指令个数;DDR缓冲区中的数组A的下标作为每条控制指令在堆栈中的序号,数组A的下标对应的数组元素内容为该条控制指令在初始化时分配的序号。

在上述的一种FC-AE-1553协议报文通讯处理系统,当主控制器可编程逻辑模块接收到光纤交换机发送的FC-AE-1553反馈数据后,将FC-AE-1553反馈数据存储在DDR数据缓冲区中,通过PCIE总线通知主控制器主机模块准备好从DDR数据缓冲区接收数据,并将接收数据的起始地址空间、数据长度、接收数据源地址和接收数据目的地址发送给主控制器主机模块;主控制器主机模块收到上述信息后,启动DMA控制器,通过DMA方式获取到主控制器可编程逻辑模块存储在DDR缓冲区中的FC-AE-1553反馈数据。

本发明与现有技术相比的有益效果是:

(1)本发明在主机模块向可编程逻辑模块配置控制指令时,避免主机模块和可编程逻辑模块访问“共享存储区”出现读写冲突的现象;

(2)本发明采用消息映射的方法进行控制指令配置,无需增加硬件内存空间,无需增加可编程逻辑模块内部硬件资源,具有程序处理简单、系统开销小、成本低等特点;

(3)本发明显著提高了接收并处理上位机控制指令的实时性和可靠性,该方法尤其适用于上位机每次发送的控制指令中涉及到的RT地址和RT子地址不多,但是上位机控制指令的发送频率较快的情形。

附图说明

图1为本发明报文通讯处理系统示意图。

具体实施方式

下面结合实施例对本发明作进一步阐述。

本发明提供的一种FC-AE-1553协议报文通讯处理系统,是为了实现上位机和终端模拟器设备之间的通讯,并且对通讯的实时性和可靠性有较高的要求。上位机的外部接口只有以太网接口,因此,上位机和主控制器模块之间采用以太网通讯。为了提高整个系统的传输效率和吞吐量,本发明中主控制器模块和终端模拟器设备之间采用“FC-AE-1553总线+协议桥接”的方式,一方面,FC-AE-1553总线能够极大的提高数据传输速度和数量;另一方面,“协议桥接”的方式使得主控制器模块不仅能够匹配不同通讯速率的终端模拟器设备,而且提高了协议转换的效率,避免了软件处理带来的系统开销。

由于主控制器主机模块和上位机通讯前无法获悉上位机控制指令中包含的RT地址和RT子地址个数信息,只有采用本发明的方案,才能不仅避免主机模块和可编程逻辑模块访问“共享存储区”读写冲突的现象,还避免因可编程逻辑模块自身资源不足导致FC-AE-1553控制指令丢失或被覆盖的现象,从而显著提高上位机和终端模拟器设备之间通讯的可靠性。

FC-AE-1553协议报文通讯处理系统,如图1所示,具体包括上位机、主控制器主机模块、主控制器可编程逻辑模块、光纤交换机、桥接器模块和终端模拟器设备。

上位机:生成控制指令,通过以太网将控制指令发送至主控制器主机模块;每个控制指令包含一个RT地址信息,且该RT地址信息只对应的一个RT子地址信息;接收主控制器主机模块传来的上位机反馈指令,实现上位机与终端模拟器设备的通讯。

报文通讯处理系统工作前,对主控制器主机模块进行初始化处理,具体为:动态申请一块内存空间,用于存储32*32*2条控制指令;每个控制指令包含一个RT子地址信息,初始化接收控制指令计数为0,并初始化每条控制指令的序号。控制指令序号从0开始递增,所有序号不重复。主控制器主机模块动态申请一块内存空间,用于存储上位机传来的不同RT地址和不同RT子地址的控制指令;RT地址种类最多有32个,每个RT地址对应RT的子地址的种类最多32个;则RT子地址对应的控制指令在初始化时分配的序号原则为:

对于NC->NT类型,RT地址0且RT子地址0的序号为0,RT地址0且RT子地址1的序号为1,RT地址0且RT子地址2的序号为2,...,RT地址0且RT子地址31的序号为31,RT地址1且RT子地址0的序号为32,RT地址1且RT子地址1的序号为33,RT地址1且RT子地址2的序号为34,...,RT地址1且RT子地址31的序号为63,...,RT地址31且RT子地址0的序号为992,RT地址31且RT子地址1的序号为993,RT地址31且RT子地址2的序号为994,...,RT地址31且RT子地址31的序号为1023。对于NT->NC类型,编号原则与NC->NT类型相同,RT地址0且RT子地址0的序号为1024,编号递增,RT地址31且RT子地址31的序号为2047。

主控制器主机模块:接收上位机传来的控制指令,对控制指令进行解析处理。主控制器主机模块对控制指令进行解析处理的具体方法为:

每处理某一个RT子地址信息时,主控制器主机模块在数据帧报头中设置数据帧发送的源地址、数据帧发送的目的地址、数据帧子地址和数据帧长度,将上位机指令有效字段内容填充到数据字段中,并计算数据帧报头和数据字段的CRC校验值,按照数据帧开始+数据帧报头+数据字段+CRC校验+数据帧结束的数据格式生成了一条FC-AE-1553控制指令。

每处理一个RT地址对应的RT子地址信息时,将该RT子地址对应的控制指令在初始化时分配的序号保存在以接收控制指令计数为下标的数组A中,将接收控制指令计数加一,并生成一条FC-AE-1553控制指令;将生成的一条或多条FC-AE-1553控制指令、接收控制指令计数和数组A通过DMA方式发送给主控制器可编程逻辑模块;接收主控制器可编程逻辑模块传来的FC-AE-1553反馈数据,对FC-AE-1553反馈数据按照以太网报文进行卒保处理,生成上位机反馈指令,将上位机反馈指令通过以太网发送至上位机。

主控制器主机模块将生成的FC-AE-1553控制指令、接收控制指令计数和数组A的内容存储在DDR数据缓冲区中,通过PCIE总线通知主控制器可编程逻辑模块准备好从DDR数据缓冲区接收数据,并将接收数据的起始地址空间、数据长度、接收数据源地址和接收数据目的地址发送给主控制器可编程逻辑模块。主控制器主机模块通过PCIE总线收到主控制器可编程逻辑模块数据接收准备好信号后,启动DMA控制器,将DDR缓冲区中的数据通过DMA方式发送给主控制器可编程逻辑模块。

主控制器可编程逻辑模块:接收主控制器主机模块传来的FC-AE-1553控制指令、接收控制指令计数和数组A;将FC-AE-1553控制指令保存到堆栈中;将接收控制指令计数作为堆栈中控制指令的个数;将数组A的下标作为每条控制指令在堆栈中的序号;并将FC-AE-1553控制指令经光纤交换机发送至桥接器模块;接收桥接器模块传来的FC-AE-1553反馈数据,将FC-AE-1553反馈数据通过DMA的方式发送至主控制器主机模块。

主控制器可编程逻辑模块将DDR缓冲区中的数据取走后,通过PCIE总线向主控制器主机模块发送数据接收完毕信号,并将DDR缓冲区中FC-AE-1553控制指令存储到堆栈中,DDR缓冲区中的接收控制指令计数作为主控制器可编程逻辑模块堆栈中控制指令个数;DDR缓冲区中的数组A的下标作为每条控制指令在堆栈中的序号,数组A的下标对应的数组元素内容为该条控制指令在初始化时分配的序号。

当主控制器可编程逻辑模块接收到光纤交换机发送的FC-AE-1553反馈数据后,将FC-AE-1553反馈数据存储在DDR数据缓冲区中,通过PCIE总线通知主控制器主机模块准备好从DDR数据缓冲区接收数据,并将接收数据的起始地址空间、数据长度、接收数据源地址和接收数据目的地址发送给主控制器主机模块;主控制器主机模块收到上述信息后,启动DMA控制器,通过DMA方式获取到主控制器可编程逻辑模块存储在DDR缓冲区中的FC-AE-1553反馈数据。

桥接器模块:接收主控制器可编程逻辑模块传来的FC-AE-1553控制指令,将FC-AE-1553控制指令经IL-STD-1553协议转换后生成MIL-STD-1553数据指令;并将MIL-STD-1553数据指令通过MIL-STD-1553总线发送给终端模拟器设备;接收终端模拟器设备传来的MIL-STD-1553反馈数据,将MIL-STD-1553反馈数据经FC-AE-1553协议转换后生成FC-AE-1553反馈数据,将FC-AE-1553反馈数据通过光纤交换机发送至主控制器可编程逻辑模块;

终端模拟器设备:接收桥接器模块传来的MIL-STD-1553数据指令,生成MIL-STD-1553反馈数据,并将MIL-STD-1553反馈数据发送至桥接器模块。

上位机控制指令的格式为指令标识+信源标识+信宿标识+指令序号+指令长度+指令有效字段内容+校验和;其中,控制指令的最后一个字的内容为校验和,将控制指令中除了校验和的其余内容按照CRC16校验算法计算出校验和。

1、主机模块接收上位机控制指令并向可编程逻辑模块发送握手信号

主机模块接收到上位机发送的上位机控制指令后,通过消息队列对报文中的RT地址、RT子地址、数据长度、数据内容以及报文类型进行解析处理,将报文分为NC->NT类型和NT->NC类型两种报文。主机模块通过PCIE总线向可编程逻辑模块发送握手信号,通知其准备接收FC-AE-1553控制指令。

2、主机模块完成每条FC-AE-1553控制指令的配置

为避免可编程逻辑模块的堆栈出现存储溢出现象,只需将主机模块每次从消息队列中实际接收到的上位机控制指令存储到可编程逻辑模块的堆栈中即可。这就需要在主机模块向可编程逻辑模块发送FC-AE-1553控制指令时,建立理论上可能产生的最多个数的FC-AE-1553控制指令序号(最多为32*32*2条)与每次实际存储到可编程逻辑模块堆栈中FC-AE-1553控制指令序号(个数不大于256条)的映射关系。通过这种映射方式,既有效控制了可编程逻辑模块堆栈内有效FC-AE-1553控制指令的个数,又保证了可编程逻辑模块处理堆栈的实时性和可靠性。

3、主机模块通知可编程逻辑模块消息配置完成,并启动消息发送

主机模块完成对FC-AE-1553控制指令的配置后,通过PCIE总线向可编程逻辑模块发送握手信号,通知FC-AE-1553控制指令配置完成,可编程逻辑模块可以启动对堆栈中FC-AE-1553控制指令的发送工作。

为了解决上述主机模块向可编程逻辑模块发送FC-AE-1553控制指令的问题,防止出现FC-AE-1553控制指令被覆盖或丢失的现象,并提高上位机和终端模拟器设备通讯传输的实时性和可靠性,本发明提出了一种FC-AE-1553总线协议报文通讯方法。所述方法的实施步骤如下:

S1:主机模块接收并解析上位机控制指令

主机模块在初始化时动态申请一块内存空间,将32*32*2条控制指令存储在该空间内,并初始化每条控制指令的序号(序号从0开始递增,且不重复)。

主机模块将接收到的上位机控制指令存储在消息队列中。

主机模块从消息队列中取出一条消息,对报文中的RT地址、RT子地址、数据长度、数据内容以及报文类型进行解析处理,将报文分为NC->NT类型和NT->NC类型两种报文消息。每处理上位机控制指令中某一个RT子地址信息时,将该RT子地址对应的控制指令在初始化时分配的序号保存在以接收控制指令计数为下标的数组A中,将接收控制指令计数加一,并生成一条FC-AE-1553控制指令。

S2:主机模块向可编程逻辑模块发送握手信号和FC-AE-1553控制指令

主机模块通过PCIE总线向可编程逻辑模块发送握手信号,通知可编程逻辑模块停止对当前堆栈的操作。可编程逻辑模块处理完堆栈中的所有控制指令后通过PCIE总线向主机模块反馈,主机模块收到可编程逻辑模块反馈信号后,将接收控制指令计数清零。

主机模块将生成的FC-AE-1553控制指令、接收控制指令计数和数组A的内容存储在DDR数据缓冲区中,通过PCIE总线通知可编程逻辑模块准备好从DDR数据缓冲区接收数据,并将接收数据的起始地址空间、数据长度、接收数据源地址和接收数据目的地址发送给可编程逻辑模块。主机模块通过PCIE总线收到可编程逻辑模块“数据接收准备好”信号后,启动DMA控制器,将DDR缓冲区中的数据通过DMA方式发送给可编程逻辑模块。

S3:可编程逻辑模块完成FC-AE-1553控制指令接收处理

可编程逻辑模块将DDR缓冲区中的数据取走后,通过PCIE总线向主机模块发送“数据接收完毕”信号,可编程逻辑模块根据接收控制指令计数值得到存储到堆栈中控制指令的总个数,然后根据堆栈序号值(数组A的下标,记为V堆栈)得到该条控制指令在初始化时分配的序号值(数组A的下标对应的数组元素内容,记为V指令),将序号值为V指令的FC-AE-1553控制指令存储到序号值为V堆栈的堆栈空间内。可编程逻辑模块将接收到的FC-AE-1553控制指令报文通过FC-AE-1553总线发送给终端模拟器设备。

主机模块在收到可编程逻辑模块发送的“数据接收完毕”信号后,判断主控制器模块的中断状态寄存器,若中断状态寄存器中显示当前FC-AE-1553控制指令已完成处理,此时,主机模块再从消息队列中取出下一条上位机发送的上位机控制指令,从步骤S1开始执行处理。

实施例

(1)主控制器主机模块,初始化时动态申请一块内存空间,用于存储32*32*2条控制指令,每个控制指令包含一个RT子地址信息,初始化接收控制指令计数为0,并初始化每条控制指令的序号(控制指令序号从0开始递增,所有序号不重复);通过以太网接收上位机发送的上位机控制指令,每条上位机控制指令包含一个RT子地址信息。对上位机控制指令进行解析处理,每处理某一个RT子地址信息时,将该RT子地址对应的控制指令在初始化时分配的序号保存在以接收控制指令计数为下标的数组A中,将接收控制指令计数加一,并生成一条FC-AE-1553控制指令。最终将生成的一条或多条FC-AE-1553控制指令、接收控制指令计数和数组A的内容通过DMA方式发送给主控制器可编程逻辑模块;优选方案具体如下:

优选的,采用如下方法在主控制器主机模块中初始化控制指令的存储空间并给每条控制指令编号:

主控制器主机模块初始化时调用系统malloc函数动态申请一块内存空间,用于存储不同RT地址和不同RT子地址的控制指令,每个控制指令包含一个RT地址以及该RT地址中的一个RT子地址信息。由于控制指令分为NC->NT和NT->NC两种类型,RT地址最多有32个,每个RT的子地址最多32个,因此控制指令的总个数为32*32*2条。主控制器主机模块初始化每条控制指令的序号(控制指令序号从0开始递增,所有序号不重复),控制指令的编号原则为:对于NC->NT类型,RT地址0且RT子地址0的序号为0,RT地址0且RT子地址1的序号为1,RT地址0且RT子地址2的序号为2,...,RT地址0且RT子地址31的序号为31,RT地址1且RT子地址0的序号为32,RT地址1且RT子地址1的序号为33,RT地址1且RT子地址2的序号为34,...,RT地址1且RT子地址31的序号为63,...,RT地址31且RT子地址0的序号为992,RT地址31且RT子地址1的序号为993,RT地址31且RT子地址2的序号为994,...,RT地址31且RT子地址31的序号为1023。对于NT->NC类型,编号原则与NC->NT类型相同,RT地址0且RT子地址0的序号为1024,编号递增,RT地址31且RT子地址31的序号为2047。

优选的,采用如下方法对上位机控制指令进行解析处理,并生成FC-AE-1553控制指令:

上位机控制指令的格式由“指令标识(2字节)”+“信源标识(4字节)”+“信宿标识(4字节)”+“指令序号(2字节)”+“指令长度(2字节)”+“指令有效字段内容(N字节,N>0且N是4的正整数倍)”+“校验和(2字节)”组成。其中,上位机控制指令的最后一个字的内容为校验和,将上位机控制指令中除了“校验和”字段的其余字段内容按照CRC16校验算法计算出校验和。“指令有效字段内容”的格式为:“RT地址号(2字节)”+“RT地址号对应的RT子地址个数n(n>0,2字节)”+“RT子地址号1(2字节)”+“RT子地址号1数据长度(2字节)”+“RT子地址号1数据内容(64字节)”+“RT子地址号2(2字节)”+“RT子地址号2数据长度(2字节)”+“RT子地址号2数据内容(64字节)”+…+“RT子地址号n(2字节)”+“RT子地址号n数据长度(2字节)”+“RT子地址号n数据内容(64字节)”。主控制器主机模块判断上位机控制指令的标识,若当前控制指令标识指示上位机向终端模拟器设备发送总线控制命令,则计算并判断当前控制指令的长度和校验和是否正确。若控制指令长度和校验和均正确,则从当前控制指令中提取出总线控制命令的“指令有效字段内容”。

接下来需要将“指令有效字段内容”拆分成一条或多条FC-AE-1553控制指令,使得每条FC-AE-1553控制指令中只包含一个RT子地址的信息。由于每条上位机控制指令包含一个RT地址号,并包含该RT地址号对应的一个或多个RT子地址号信息。因此,按照上述“指令有效字段内容”格式分别提取并保存每个RT子地址的子地址号、数据长度和数据内容,将每个RT子地址的数据内容记为“子地址总线数据”。

若上位机控制指令的“信源标识”为上位机,“信宿标识”为终端模拟器设备,则该条控制指令的类型为“NC->NT”;若上位机控制指令的“信源标识”为终端模拟器设备,“信宿标识”为上位机,则该条控制指令的类型为“NT->NC”。为了处理上位机控制指令中某一个RT子地址信息,主控制器主机模块从“指令有效字段内容”中提取出当前指令的RT地址号和该RT地址对应的任意一个RT子地址号,再结合当前控制指令的类型(“NC->NT”类型或“NT->NC”类型),得到当前RT地址号和RT子地址号的编号值,该编号值即为该条FC-AE-1553控制指令的序号。将该条FC-AE-1553控制指令的序号值保存在以接收控制指令计数为下标的数组A中,将接收控制指令计数加一。

FC-AE-1553数据帧(FC-AE-1553控制指令)的格式由“SOF(数据帧开始)”+“数据帧报头”+“数据字段”+“CRC校验”+“EOF(数据帧结束)”几部分组成。其中,“SOF(数据帧开始)”占用4个字节,“数据帧报头”占用24个字节,“数据字段”占用2112字节,“CRC校验”占用4个字节,用于检测“数据帧报头”和“数据字段”的数据完整性,不包括“SOF”和“EOF”,“EOF(数据帧结束)”占用4个字节。主控制器主机模块在“数据帧报头”中设置“数据帧发送的源地址”、“数据帧发送的目的地址”、“数据帧子地址”(RT子地址号)和“数据帧长度”(RT子地址数据长度),将“子地址总线数据”内容填充到“数据字段”中,按照上述数据帧格式生成了一条或多条FC-AE-1553控制指令。

优选的,采用如下方法主控制器主机模块将生成的一条或多条FC-AE-1553控制指令、接收控制指令计数和数组A的内容通过DMA方式发送给主控制器可编程逻辑模块:

主控制器主机模块将生成的一条或多条FC-AE-1553控制指令、接收控制指令计数和数组A的内容存储在DDR数据缓冲区中,主控制器主机模块通过PCIE总线向主控制器可编程逻辑模块发送握手信号,通知主控制器可编程逻辑模块停止对当前堆栈的操作。主控制器可编程逻辑模块处理完堆栈中的所有控制指令后通过PCIE总线向主控制器主机模块反馈,主控制器主机模块收到主控制器可编程逻辑模块反馈信号后,将接收控制指令计数清零,然后通过PCIE总线通知主控制器可编程逻辑模块准备好从DDR数据缓冲区接收数据,并将接收数据的起始地址空间、数据长度、接收数据源地址和接收数据目的地址发送给主控制器可编程逻辑模块。主控制器主机模块通过PCIE总线收到主控制器可编程逻辑模块“数据接收准备好”信号后,启动DMA控制器,将DDR缓冲区中的数据通过DMA方式发送给主控制器可编程逻辑模块。

(2)主控制器可编程逻辑模块接收主控制器主机模块发送的FC-AE-1553控制指令、接收控制指令计数和数组A的内容,将FC-AE-1553控制指令保存到堆栈中。接收控制指令计数即为主控制器可编程逻辑模块堆栈中控制指令个数,数组A的下标即为每条控制指令在堆栈中的序号,数组A的下标对应的数组元素内容是该条控制指令在初始化时分配的序号。主控制器可编程逻辑模块将接收到的FC-AE-1553控制指令经过光纤交换机发送给桥接器模块;优选方案具体如下:

优选的,采用如下方法主控制器可编程逻辑模块将FC-AE-1553控制指令保存到堆栈中:

主控制器可编程逻辑模块根据接收控制指令计数值得到存储到堆栈中控制指令的总个数,然后根据堆栈序号值(数组A的下标,记为V堆栈)得到该条控制指令在初始化时分配的序号值(数组A的下标对应的数组元素内容,记为V指令),将序号值为V指令的FC-AE-1553控制指令存储到序号值为V堆栈的堆栈空间内。

(3)桥接器模块将FC-AE-1553控制指令经过MIL-STD-1553协议转换后生成MIL-STD-1553数据指令,并将生成的MIL-STD-1553数据指令通过MIL-STD-1553总线发送给终端模拟器设备;优选方案具体如下:

优选的,采用如下方法将FC-AE-1553控制指令经过MIL-STD-1553协议转换后生成MIL-STD-1553数据指令:

FC-AE-1553控制指令的格式由“SOF(数据帧开始)”+“数据帧报头”+“数据字段”+“CRC校验”+“EOF(数据帧结束)”几部分组成。其中,“SOF(数据帧开始)”占用4个字节,“数据帧报头”占用24个字节,“数据字段”占用2112字节,“CRC校验”占用4个字节,用于检测“数据帧报头”和“数据字段”的数据完整性,不包括“SOF”和“EOF”,“EOF(数据帧结束)”占用4个字节。

桥接器模块发送给终端模拟器设备的MIL-STD-1553数据指令包括命令字和数据字。其中,命令字为20bit,包括同步头(3bit)、远程终端地址(5bit)、T/R标志(1bit)、子地址/方式(5bit)、数据字计数/方式代码(5bit)和奇偶校验位(1bit)。数据字为20bit,包括同步头(3bit)、数据(16bit)和奇偶校验位(1bit)。将FC-AE-1553控制指令中“数据帧报头”的“数据帧子地址”填充到命令字中的“子地址/方式”中,将“数据帧长度”填充到命令字中的“数据字计数/方式代码”中,设置“T/R标志”为R(接收),并设置终端模拟器设备的“远程终端地址”即完成了终端模拟器设备的MIL-STD-1553数据指令中的命令字设置。提取FC-AE-1553控制指令中“数据字段”的有效内容,作为终端模拟器设备的MIL-STD-1553数据指令中的每个数据字的内容。通过上述FC-AE-1553协议到MIL-STD-1553协议转换,完成了FC-AE-1553控制指令到MIL-STD-1553数据指令的转换。

(4)终端模拟器设备,将自身生成的MIL-STD-1553反馈数据通过MIL-STD-1553总线向桥接器模块发送;优选方案具体如下:

(5)桥接器模块接收终端模拟器设备发送的MIL-STD-1553反馈数据,将MIL-STD-1553反馈数据经过FC-AE-1553协议转换后生成FC-AE-1553反馈数据,并将生成的FC-AE-1553反馈数据通过光纤交换机发送给主控制器可编程逻辑模块;优选方案具体如下:

优选的,桥接器模块采用如下方法将MIL-STD-1553反馈数据转换为FC-AE-1553反馈数据:

FC-AE-1553反馈数据的格式由“SOF(数据帧开始)”+“数据帧报头”+“数据字段”+“CRC校验”+“EOF(数据帧结束)”几部分组成。其中,“SOF(数据帧开始)”占用4个字节,“数据帧报头”占用24个字节,“数据字段”占用2112字节,“CRC校验”占用4个字节,“EOF(数据帧结束)”占用4个字节。桥接器模块在“数据帧报头”中设置“数据帧发送的源地址”、“数据帧发送的目的地址”、“数据帧子地址”和“数据帧长度”(该参数值为终端模拟器设备自身产生的MIL-STD-1553反馈数据的有效字段内容长度),并将终端模拟器设备自身产生的MIL-STD-1553反馈数据内容填充到“数据字段”中。按照上述数据帧格式生成了FC-AE-1553反馈数据。

(6)主控制器可编程逻辑模块将FC-AE-1553反馈数据通过DMA方式发送给主控制器主机模块;优选方案具体如下:

优选的,主控制器可编程逻辑模块采用如下方法将FC-AE-1553反馈数据通过DMA方式发送给主控制器主机模块:

当主控制器可编程逻辑模块接收到光纤交换机发送的FC-AE-1553反馈数据后,将FC-AE-1553反馈数据存储在DDR数据缓冲区中,通过PCIE总线通知主控制器主机模块准备好从DDR数据缓冲区接收数据,并将接收数据的起始地址空间、数据长度、接收数据源地址和接收数据目的地址发送给主控制器主机模块。主控制器主机模块收到上述信息后,启动DMA控制器,通过DMA方式获取到主控制器可编程逻辑模块存储在DDR缓冲区中的FC-AE-1553反馈数据。

(7)主控制器主机模块接收到FC-AE-1553反馈数据后,对FC-AE-1553反馈数据按照以太网报文进行组包处理,生成上位机反馈指令,将生成的上位机反馈指令通过以太网发送给上位机;实现了上位机与终端模拟器设备的通讯;优选方案具体如下:

优选的,主控制器主机模块采用如下方法将FC-AE-1553反馈数据按照以太网报文进行组包处理:

主控制器主机模块接收主控制器可编程逻辑模块发送的FC-AE-1553反馈数据,该反馈数据的格式由“SOF(数据帧开始)”+“数据帧报头”+“数据字段”+“CRC校验”+“EOF(数据帧结束)”几部分组成。其中,“SOF(数据帧开始)”占用4个字节,“数据帧报头”占用24个字节,“数据字段”占用2112字节,“CRC校验”占用4个字节,“EOF(数据帧结束)”占用4个字节。主控制器主机模块提取FC-AE-1553反馈数据中的“数据字段”的内容作为报文内容,按照“指令标识(2字节)”+“信源标识(4字节)”+“信宿标识(4字节)”+“指令序号(2字节)”+“指令长度(2字节)”+“指令有效字段内容(N字节,N>0且N是4的正整数倍)”+“校验和(2字节)”的格式生成上位机反馈指令,“指令长度”字段即为串口反馈数据报文中有效数据的长度,“指令有效字段内容”字段即为该FC-AE-1553反馈数据中的“数据字段”的内容,“校验和”字段由除了“校验和”字段外其余字段内容按照CRC16校验算法计算得出,将生成的上位机反馈指令通过以太网发送给上位机

按照图1搭建航电系统测试环境,上位机向主控制器主机模块发送的上位机控制指令的周期为50ms,每条控制指令中包含的RT地址个数为1个,每个RT地址中包含的RT子地址个数为10个,每个子地址中的数据长度均为64字节。上位机控制指令分为两种类型,即向终端模拟器设备发送数据和从终端模拟器设备读取数据。

通过总线分析仪监测MIL-STD-1553总线上数据传输情况,通过以太网抓包工具监测上位机发送控制指令的情况。测试结果为:上位机按照上述频率发送两种类型的控制指令,共向主控制器主机模块发送6000条控制指令,终端模拟器设备共收到60000条MIL-STD-1553控制指令。上位机发送控制指令的数据内容与终端模拟器设备接收到的数据内容完全一致,终端模拟器设备未发现有未执行的控制命令。

上述测试结果表明:按照本发明的方案进行上位机和终端模拟器设备的通讯,上位机向终端模拟器设备发送控制命令的丢包率为0,不仅完全避免了FC-AE-1553控制指令被覆盖或丢失的现象,而且避免了主机模块和可编程逻辑模块访问“共享存储区”读写冲突的现象,从一定程度上缓解了主控制器可编程逻辑模块资源紧张的情况,并显著提高了处理上位机和终端模拟器设备之间通讯的实时性和可靠性。

本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于BLVDS信号中继装置的控制系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!