一种1553B中消息刷新机制的设计与实现

2019-07-08 02:23曾晓东武瑞欢
电脑知识与技术 2019年13期
关键词:命令矢量消息

曾晓东 武瑞欢

摘要:该文先介绍了1553B总线协议,然后基于矢量字消息刷新机制提出了一种双矢量字设计,通过实验验证该设计达到了提升总线网络带宽传输效率的要求。该设计已在某项目中成功应用。

关键词:1553B总线;双矢量字;消息刷新;BC;RT

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2019)13-0058-02

MIL-STD-1553B是美军研制的一种数据总线通信协议,简称1553B。经过多年的改进和完善,1553B协议凭借实时性和可靠性在航空和航天等领域占据了重要的地位。在总线网络中总线控制器通过循环查阅总线表来组织通信,实际应用中并非总线表中所有消息都要按照其预先定义的周期进行传输,只有数据更新时才需要进行调度。1553B总线网络使用矢量字消息刷新机制了解终端数据更新情况。传统使用的单个矢量字只能标志部分子地址的新数据,为实现消息数量激增的情况下网络带宽的有效利用,现使用某国产1553B协议芯片,并结合双矢量字的消息刷新机制,提出一种通信接口模块(MBI)解决方案。

1 1553B总线介绍

1553B是航空机载设备间数据通信的一种标准,整个总线系统采用分布式架构,最多允许32个终端通过总线进行数据交互,总线系统结构见图1。这些终端依据功能划分为三种类型:总线控制器(BC)、远程终端(RT)和总线监控器(BM)。总线控制器控制总线上所有消息的传输,远程终端接收指令执行后将结果返回给BC,BM负责监控总线上所有的消息。1553B总线技术成熟,采用BC备份、看门狗计时器和双通道冗余机制等保证了高可靠性[1]。

2 硬件设计

2.1 芯片介绍

该MBI模块使用国产某型号的1553B协议芯片采用SOC的设计模式,集成了协议处理器、主处理器、双口存储器等,是一款通用化、智能化和小型化的1553B通信处理芯片。协议处理器具备GJB289A规定的BC和RT方式多消息处理能力。芯片配置了64K的双口存储器(DPRAM),可根据需求编程为8k×16bit、16k×16bit 或者32k×16bit,支持两个端口独立的异步读写操作。还提供 12MHz 到120MHz 可配置的1553B 协议处理器工作时钟,32位实时时钟计数器、16位的WDT和8位时间间隔计时器等片上资源[2]。

2.2 硬件设计

模块硬件架构图见图2。硬件主要包括:主处理器、协议处理器、双通道收发器、隔离变压器、实时时钟电路等[3]。

3 软件设计

MBI通信软件分为两个部分:驱动软件和传输层软件。驱动软件为主机提供标准的接口供主机的调用,传输层软件负责控制总线上的数据传输,主要的功能包括数据收发处理、通道切换、同步、错误检测和上报等。驱动软件和传输软件通过使用双口存储器实现数据的交互[4]。整个MBI通信软件的结构图见图3。

3.1 矢量字的消息刷新

1553B总线的消息格式有:BC->RT,RT->BC和RT->RT(RT->RTS)。在整个系统中总线控制器负责每一次的消息传输。在BC->RT的消息传输中,BC直接组织消息的传输。因为RT不具备主动发起消息的能力,所以RT有消息更新需要上报的过程相对复杂,协议规定利用BC发送矢量字的方式命令取回矢量字,再结合查询总线表来判断该RT是否需要发送数据。发送矢量字的消息格式为发送矢量字方式指令+状态字+数据字,矢量字就是由远程终端回复给BC的这个16位的数据字。约定矢量字中的每一个BIT对应该RT的一个发送子地址, BIT15~BIT0对应的发送子地址为16~1。当某一BIT被置位“1”时,表示对应的子地址有更新的数据块需要发送,如果置位“0”则没有新数据。一个矢量字中可以同时有多个BIT被置位“1”,可以指定处理时的优先级。BC通过使用矢量字更新机制,了解随后可能多条消息的传输条件并组织传输,达到节省总线带宽,提升传输效率的目的[5]。

3.2 双矢量字的消息刷新

1553B总线系统中每个远程终端都有32个子地址,去除子地址0和子地址31被用作总线系统中标志方式命令,还有30个子地址。一个矢量字16位,最多能表示16个发送子地址是否有数据更新。则17~30子地址的消息只能通过周期性的查询总线表进行传输。

现在设计双矢量字刷新消息的管理机制,利用2个16位的矢量字来关联一个RT中1~30发送子地址,则本RT中的子地址都可利用矢量字来通知BC进行数据传输。为了在BC端识别代表不同子地址的矢量字,使用两种矢量字分别为矢量字1和矢量字2。矢量字1和矢量字2区别标志位为BIT0,令矢量字1中的BIT15~BIT1对应子地址15~1,BIT0=0,矢量字2中的BIT15~BIT1对应子地址30~16,BIT0=1,具体对应关系见图4。

3.2.1 BC端实现

1553B协议规定了方式命令只用于硬件和信息的管理,不用于数据的传输,BC使用发送矢量字命令后最多获得一个矢量字,现在为了得到一个RT上所有子地址的新数据信息BC需要发送两次发送矢量字命令。应用需要在通信表設置相邻的两条发送矢量字命令,BC在发送一条矢量字命令后,在设定的消息间间隔后再次给同个RT发送一条矢量字命令。BC收到矢量字后利用最后一位判断该字为矢量字1或矢量字2,然后根据矢量字内容清除该RT对应ISBC消息的SKIP位。总线控制器通过两条发送矢量字命令后就可以了解该RT上所有子地址数据更新情况并组织消息传输。

3.2.2 RT端实现

RT在使用双矢量字刷新消息进行数据上报的过程为:

(1)远程终端主机在某发送子地址写入新数据后,根据发送子地址的范围设置矢量字1或矢量字2,如果该子地址大于等于1且小于等于15,则设置矢量字1,否则设置矢量字2;

(2)该终端接收到BC端发送矢量字的命令后发送矢量字,在发送矢量字1或矢量字2后,清除矢量字位,切换方式指令描述符中矢量字地址,令其指向矢量字2或矢量字1;

(3)终端接收到下一条BC端发送矢量字的命令后,将发送矢量字2或矢量字1,发送结束后清除矢量字位并再次切换矢量字地址。

4 总结

本文提出了一种双矢量字消息刷新机制,并使用国产1553B协议芯片搭建了硬件环境。本接口模块经过验证已经达到了预期的要求,并已在某项目上稳定应用。

参考文献:

[1] 数字式时分制指令/响应型多路传输数据总线,国防科学技术工业委员会1997:11.

[3] 范详辉,杨寒.一种1553B 总线多功能接口模块设计与实现[J].信息通信,2017(2).

[4] 安百俊,吕冰,李新民.基于SM61864 的GJB289A 通信接口开发和应用[J].微处理机,2015(6).

[5] 朱希.1553B总线介绍及ICD设计[J].科技应用,2016(4).

【通联编辑:代影】

猜你喜欢
命令矢量消息
只听主人的命令
移防命令下达后
基于矢量最优估计的稳健测向方法
这是人民的命令
消息
消息
消息
色料减色混合色矢量计算
对卢沟桥事变期间一份“作战命令”的考析