1553B通信项目开发笔记(一)协议概述

最近接了个项目,需要用1553B协议通信,仅作为RT端口进行通信,控制器采用ARM

使用芯片为国产的BU61580芯片,功能和引脚和DDC的61580完全一致。

系统组成

        MIL-STD-1553B时分制指令/响应多路传输数据总线采用半双工传输方式。MIL-STD-1553B数据总线上的节点分为三种不同的终端类型:总线控制器BC( Bus controller)、 远程终端RT ( Remote Terminal) 及监视器MT ( MonitorTerminal),典型拓扑结构见图

        总线控制器BC:1553B 总线上的重要组成部分,唯一且不可或缺。一个1553B总线网络上只能有一个终端工作于BC模式,它用来启动和控制数据的传输。总线控制器按功能可分为普通模式和增强模式两种。其中,增强模式还提供了帧自动重复、自动重试及由处理器编程设置消息时间间隔等功能。

        远程终端RT:各个子系统与整个1553B 总线网络的接口,不同的RT地址代表了不同的RT终端, 一个1553B总线网络最多有31个终端工作于RT模式。RT地址一共由六位组成,其中5位为地址位,一位为奇偶校验位(这里要注意,地址也有校验位,未必太严谨了点)。只有当总线控制器向某个RT发出指令后,才能启动1553B总线_上的数据传输,该RT才能 进行数据传输。远程终端按功能也分为普通模式和增强模式。在增强模式下,其提供了双缓冲模式、循环缓冲模式等存储器管理模式。后续项目设计是使用RT的增强模式。 这里的缓冲模式,是类似于FIFO的东西,设计是为了信息处理的不同步问题。有缓冲还不止一个,那就会存在对缓冲区编号的需要,这个有个重要概念后面会提到,这里不多说。

        总线监控器MT:监控和记录总线上各类状况的终端,它同样是由总线控制器进行控制,但其不参与任何1553B 总线网络的传输。总线监控器有3种工作模式:字监控模式、可选择消息监控模式和同步RT/何选择消息监控模式。

协议规范

1 传输格式和方法

        MIL-STD- 1553B数据总线的传输速率为1Mb/s, 以命令/响应方式进行数据消息的传输,传输字的长度为20位,其通信方式采用的是半双工方式。同时,对于故障容错采用了双冗余系统,在实际中第2条通道处于热备份状态。总线控制器启动并控制1553B数据总线上所有数据消息的传输。1553B 数据总线有10 种消息传输格式,每条消息由许多字构成,所有消息字在1553B总线上是以序列脉冲码调制形式传输的,数据编码采用ManchesterII双极性码,所有不用的位都视为0。这种编码的特点是每个码位中间有一个跳变,“1”信号的跳变是由高电平到低电平的负跳变;而“0”信号是由低电平到高电平的正跳变,信号的过 零点在中间。如图所示。

        双冗余:就是AB两条线进行传输,A这边如果断开就去B线传输。

        这个什么什么编码方式,简单来说:上升沿代表0,下降沿代表1,这样相对于高低电平的编码方式,会降低一半的数据带宽,不过会更严谨,容错率会更高。

传输字格式

        1553B消息由三种类型的字组成:命令字、数据字和状态字。每个字有20位,前3位是同步字头,紧跟的16位是信息有效位,之后还有1位奇偶校验位。

         1)命令字由3位同步字头位、5位RT地址位、1位发送/接收位、5位子地址/方式位、5位数据字计数1方式码位,以及1位奇偶校验位构成。

这里前三个字节不是标准的那什么斯特码,拉俩字节高,然后拉低就表示命令字

        这里涉及到两个重要概念:终端地址和子地址。

        我的理解:终端地址是每个终端的特有编号,通过终端地址可以对应找到系统中的某个终端。子地址就相当于这个终端内部的子功能,可以理解成多个FIFO缓冲区被编号了,需要读写哪个FIFO就写对应子地址。

        还有一个重要的T/R位,当T/R=1时,代表命令字以后传输的字是需要由RT来发送,BC接收。当T/R=0时,代表命令字以后传输的字是需要又BC来发出,RT来接收。

        然后是数据计数/方式字区域,这部分有两个复用的作用:如果接下来需要传输数据,这一区域可以代表接下来传输数据的长度(后续会传输多少次数据字),如果接下来不需要传输数据,只是进行方式设置,那就是代表的方式字(相当于控制命令,不需要数据传输的情况)。

        方式字的话就按照表对应就行,我这个项目需要着重看 00011这个启动自测试方式字。

        最后一位:奇偶校验位,这个就不多说了。

        介绍完了最难理解的命令字,接下来数据字和状态字就好理解了。

        需要强调的一点就是,命令字只能由BC发送的,而状态字只能由RT来发

       介绍完了3种字代表什么意思之后,我们来看整个传输流程。

消息格式

        消息格式分为:广播和非广播模式

         图上前六种为非广播模式,就是点对点传输,基于命令和响应的传输机制。都有一个共性,由BC发出命令字后才开始后续传输(状态字或是数据字)。这里就有一个1553B的协议特性:大多数情况只能有BC来启动传输。这样做的好处是避免多头传输的时候不知道听谁的。在非广播模式下,就算是RT需要传输数据到另一个RT,也需要由BC进行中转。

        BC- RT的传输是由BC向要接受消息的RT发送一一个命令字,命令字中5位RT地址位指明接收消息的RT的地址。T/R位设置为“0”表示RT是接收数据,子地址指向该RT接收数据的存储空间位置,数据字计数规定了此命令要求该RT接收的数据字字数。在RT接收到此消息后,向BC返回一个状态字以此告知BC此次传输的状况,至此完成了BC到RT的传输。
        RT- -BC的传输是由BC向要发送消息的RT发送一个命令字,指示该RT发送由命令字的子地址所指定的存储空间里的内容,发送的数据字个数由5位数据字计数位规定。RT在收到BC命令字后,返回BC一个状态字并且其后紧接着是规定数目的数据字,随后BC将确认返回的消息,至此完成了RT到BC的传输。

        剩下的非广播模式就好理解了,不经过BC直接由RT传输到RT。

        我这个项目主要是RT和BC直接的传输,不存在RT到RT和广播模式,就不深究别的过程了。

  • 34
    点赞
  • 283
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值