1553B 协议详解之二字的组成

时间:2024-02-25 19:58:33
  1. 1553B简介
    本设计文档将在SylixOS下设计一个1553B设备驱动的抽象层,从而进一步解除用户层与驱动层的耦合。
    MIL-STD-1553B总线是美国空军电子子系统联网的标准总线,是一种*集权式的串行总线, 总线组成包括一个总线控制器,负责总线调度、管理,是总线通讯的发起者和组织者;若干(最多不超过31个)远程终端,另外还可以有一种设备即总线监视器,用于监视总线的运行。该总线采用指令应答方式实现系统通讯,采用冗余通道和奇校验以及相应的错误处理来提高系统通讯的可靠性。1553B 是总线接口规律和信号特性的标准,它在物理层上对硬件部件所产生的电信号特性作了严格的规定,在数据链路层和网络层对错误监测的方法和指令响应的格式也作了严格的定义。由于1553B总线具有极高的可靠性,因而在航空、航天、军事等领域的电子联网系统中得到广泛应用。
    1553B 总线采用异步数据传输方式,码速率1Mbps(现已出现支持4Mbps的板卡),即每秒106位,数据编码采用曼彻斯特II型码,差分传输,一般下采用屏蔽双绞线作为传输介质。
  2. 1553B软件结构
    2.1 消息组成
    1553B协议规定消息组成的最小单位为字。每个在1553B总线上传输的消息都是由一个个单独的字组成。
    2.2 字的组成
    字是一个信息系列。1553B协议规定每个字由连续的20bit组成,它包括同步头、 16 位信息段及一个奇偶校验位。如图 2.1所示这些字分成3类:指令字、数据字和状态字。下面会针对这几类字进行一一介绍。

图 2.1 15533B字组成
2.3 指令/命令字

图 2.2 指令/命令字格式
如图 2.2所示指令字应由同步头、远程终端地址字段、发送/接收位(T/R)、子地址/方式字段、数据字计数/方式代码字段及奇偶校验位(P)组成。指令字由BC端发出,对应的RT端口接收到指令字做出指令字要求的操作实现数据交互。
2.3.1 同步头
数据字同步头应是一个无效的曼彻斯特波形,其宽度为三个位时,前1.5位时的波形为负,后1.5位时的波形为正。如果该同步头的前后位为逻辑 1,那么同步头的表观宽度将增加到四个位时。
2.3.2 远程终端地址段
紧跟同步头后的5位应为远程终端地址段。每个远程终端被指定为一个专有地址,从十进制地址0到十进制地址30均可采用,但尽量不采用十进制地址0作为远程终端的专有地址。还指定十进制地址31(11111)为所有远程终端的公用地址,供系统采用广播操作时使用。
2.3.3 发送接收位
紧接远程终端地址后的一位应为发送/接收位。它应表示要求远程终端作的操作,逻辑0指定远程终端作接收操作,逻辑1指定远程终端作发送操作。
2.3.4 子地址/方式字段
紧接发送/接收位后的五位,用来区分远程终端的子地址,或者用作总线系统进行方式控制时的标记(00000和11111)。该字段为00000或11111时的,表示此指令字为方式控制指令,若该字段不为00000或11111则表示为RT终端的子地址。所以BC可以通过配置次段来决定指令字的方式,能访问对应RT0x01—0x1E子地址的数据。
2.3.5 数据字计数/方式代码字段
紧接子地址/方式字段后的五位,用来指定远程终端应发送或应接收的数据字的个数,或者就是配置可任选的方式代码。在任何一个消息块内最多可以发送或接收32个数据字,全1表示十进制记数31,而全0表示十进制记数32。故如果指令字的9-14位为RT子地址,那么此段就表示为发送或者接收消息的个数,否则表示为方式代码。相关的方式代码在1553B协议中已经做了规定,后续会做详细介绍。
2.3.6 奇偶校验位
字的最后一位应用作为前16位的奇偶校验。1553B采用奇校验的方式来确保数据准确。
2.4 数据字


图 2.3 数据字格式
如图 2.3所示数据字由3位的同步字段、16位的数据字段以及1位的奇偶校验位组成。数据字由BC或者RT其中一端发出用来实现两终端之间的数据交互。
2.4.1 同步字段
数据字同步头应是一个无效的曼彻斯特波形,其宽度为三个位时,前1.5位时的波形为负,后1.5位时的波形为正。如果该同步头的前后位为逻辑 1,那么同步头的表观宽度将增加到四个位时。
2.4.2 数据字段
紧接同步头的后16位为数据存储位,用户可通过填充这16位来实现数据的传输。
2.4.3 奇偶检验位
字的最后一位应用作为前16位的奇偶校验。1553B采用奇校验的方式来确保数据准确。
2.5 状态字

图 2.4 状态字格式
如图 2.4所示状态字由3位的同步段、5位的远程终端地址段、1位的消息出错位、1位的测试手段位、1位的服务请求位、3位的备用段、1位的广播指令接收位、1位的忙位、1位的子系统标志位、1位的动态总线控制接收位、1位的终端标志位和1位的奇偶校验位组成。状态字是由RT端发送给BC端用来表示消息以及RT自身状态的字,同时状态字也作为RT的应答字用来判断1553B总线或者RT设备是否正常工作。
2.5.1 同步头
数据字同步头应是一个无效的曼彻斯特波形,其宽度为三个位时,前1.5位时的波形为负,后1.5位时的波形为正。如果该同步头的前后位为逻辑 1,那么同步头的表观宽度将增加到四个位时。
2.5.2 远程终端地址字段
紧跟同步头后的5位应为远程终端地址段。每个远程终端被指定被指定为一个专有地址,从十进制地址0到十进制地址30均可采用,但尽量不采用十进制地址0作为远程终端的专有地址。
2.5.3 消息出错位
该位在状态字的第9位,用来表示远程终端在已收到的消息中,有一个字或多个字没有通过规定的有效性测试。逻辑1表示消息有差错,逻辑0表示消息无差错。所有的终端应提供消息差错位。
2.5.4 测试手段位
状态字的第10位作为测试手段位。它在所有条件下总置为逻辑0。该位为可选位,如果使用,指令字中的相应位置为逻辑1,用来区分指令字和状态字。
2.5.5 服务请求位
状态字的第11位置是服务请求位。表示本远程终端需要服务。要求总线控制器启动与本远程终端或子系统有关的预定操作。当与单一远程终端相连的多个子系统分别请求服务时,远程终端应将它们各自的服务请求信号逻辑“或”成状态字中的单一服务请求。逻辑“或”完成后设计者必须准备好一个数据字,并以相应位置1来标志具体的请求服务子系统。状态字中的“服务请求位”,应维持到几个请求信号都处理完为止。该位仅用来激发随机发生的数据传输操作。
2.5.6 备用状态位
状态字的第12、13、14位是备用的状态位。应将它们置为逻辑0,这些位留作今后使用。
2.5.7 广播指令接收位
状态位的第15位置为逻辑1,表示本远程终端接收到的上一有效指令字是广播指令字。当系统中未采用广播方式,置该位为逻辑0。
2.5.8 忙位
状态字的第16位时置位为逻辑1表示远程终端处于忙状态,表示它不能按照总线控制器的指令要求将数据移入子系统或从子系统取数据。如果远程终端在响应发送、指令时置忙位,那么只发出它的状态字。该位为可选位,逻辑0表示空闲状态或者非忙状态。
2.5.9 子系统标志位
状态字的第17位用来向总线控制器指出子系统故障状态,且警告总线控制器本远程终端提供的数据可能无效。如果与一个远程终端相连的几个子系统都呈现故障状态时,应将它们各自的信号逻辑“或”,形成状态字中的子系统标志位,并将事先准备好的一个数据字中的相应位置1,记录它们的故障报告,用于进一步检测、分析。该位为可选位。逻辑1表示有标志,逻辑0表示无标志。
2.5.10 动态总线控制接收位
状态字的第18位时若置为逻辑 1,用来表示本远程终端接受符合协议本身规定的动态总线控制的授命。逻辑 0 表示不接受。该位为可选位。
2.5.11 终端标志位
状态字的第19位时留作终端标志功能。逻辑1表示本远程终端内部存在故障,请求总线控制器干预。逻辑0表示不存在故障。该位为可选位。
2.5.12 奇偶校验位
字的最后一位用于前16位的奇偶校验。1553B采用奇校验的方式来确保数据准确。