本设计文档将在SylixOS下设计一个1553B设备驱动的抽象层,从而进一步解除用户层与驱动层的耦合。网络
MIL-STD-1553B总线是美国空军电子子系统联网的标准总线,是一种中央集权式的串行总线, 总线组成包括一个总线控制器,负责总线调度、管理,是总线通信的发起者和组织者;若干(最多不超过31个)远程终端,另外还能够有一种设备即总线监视器,用于监视总线的运行。该总线采用指令应答方式实现系统通信,采用冗余通道和奇校验以及相应的错误处理来提升系统通信的可靠性。1553B 是总线接口规律和信号特性的标准,它在物理层上对硬件部件所产生的电信号特性做了严格的规定,在数据链路层和网络层对错误监测的方法和指令响应的格式也做了严格的定义。因为1553B总线具备极高的可靠性,于是在航空、航天、军事等领域的电子联网系统中获得普遍应用。异步
1553B 总线采用异步数据传输方式,码速率1Mbps(现已出现支持4Mbps的板卡),即每秒106位,数据编码采用曼彻斯特II型码,差分传输,通常下采用屏蔽双绞线做为传输介质。测试
1553B协议规定消息组成的最小单位为字。每一个在1553B总线上传输的消息都是由一个个单独的字组成。编码
字是一个信息系列。1553B协议规定每一个字由连续的20bit组成,它包括同步头、 16 位信息段及一个奇偶校验位。如图 2.1所示这些字分红3类:指令字、数据字和状态字。下面会针对这几类字进行一一介绍。设计
图 2.1 15533B字组成blog
图 2.2 指令/命令字格式接口
如图 2.2所示指令字应由同步头、远程终端地址字段、发送/接收位(T/R)、子地址/方式字段、数据字计数/方式代码字段及奇偶校验位(P)组成。指令字由BC端发出,对应的RT端口接收到指令字作出指令字要求的操做实现数据交互。文档
数据字同步头应是一个无效的曼彻斯特波形,其宽度为三个位时,前1.5位时的波形为负,后1.5位时的波形为正。若是该同步头的先后位为逻辑 1,那么同步头的表观宽度将增长到四个位时。同步
紧跟同步头后的5位应为远程终端地址段。每一个远程终端被指定为一个专有地址,从十进制地址0到十进制地址30都可采用,但尽可能不采用十进制地址0做为远程终端的专有地址。还指定十进制地址31(11111)为全部远程终端的公用地址,供系统采用广播操做时使用。it
紧接远程终端地址后的一位应为发送/接收位。它应表示要求远程终端做的操做,逻辑0指定远程终端做接收操做,逻辑1指定远程终端做发送操做。
紧接发送/接收位后的五位,用来区分远程终端的子地址,或者用做总线系统进行方式控制时的标记(00000和11111)。该字段为00000或11111时的,表示此指令字为方式控制指令,若该字段不为00000或11111则表示为RT终端的子地址。因此BC能够经过配置次段来决定指令字的方式,能访问对应RT0x01—0x1E子地址的数据。
紧接子地址/方式字段后的五位,用来指定远程终端应发送或应接收的数据字的个数,或者就是配置可任选的方式代码。在任何一个消息块内最多能够发送或接收32个数据字,全1表示十进制记数31,而全0表示十进制记数32。故若是指令字的9-14位为RT子地址,那么此段就表示为发送或者接收消息的个数,不然表示为方式代码。相关的方式代码在1553B协议中已经作了规定,后续会作详细介绍。
字的最后一位应用做为前16位的奇偶校验。1553B采用奇校验的方式来确保数据准确。
图 2.3 数据字格式
如图 2.3所示数据字由3位的同步字段、16位的数据字段以及1位的奇偶校验位组成。数据字由BC或者RT其中一端发出用来实现两终端之间的数据交互。
数据字同步头应是一个无效的曼彻斯特波形,其宽度为三个位时,前1.5位时的波形为负,后1.5位时的波形为正。若是该同步头的先后位为逻辑 1,那么同步头的表观宽度将增长到四个位时。
紧接同步头的后16位为数据存储位,用户可经过填充这16位来实现数据的传输。
字的最后一位应用做为前16位的奇偶校验。1553B采用奇校验的方式来确保数据准确。
图 2.4 状态字格式
如图 2.4所示状态字由3位的同步段、5位的远程终端地址段、1位的消息出错位、1位的测试手段位、1位的服务请求位、3位的备用段、1位的广播指令接收位、1位的忙位、1位的子系统标志位、1位的动态总线控制接收位、1位的终端标志位和1位的奇偶校验位组成。状态字是由RT端发送给BC端用来表示消息以及RT自身状态的字,同时状态字也做为RT的应答字用来判断1553B总线或者RT设备是否正常工做。
数据字同步头应是一个无效的曼彻斯特波形,其宽度为三个位时,前1.5位时的波形为负,后1.5位时的波形为正。若是该同步头的先后位为逻辑 1,那么同步头的表观宽度将增长到四个位时。
紧跟同步头后的5位应为远程终端地址段。每一个远程终端被指定被指定为一个专有地址,从十进制地址0到十进制地址30都可采用,但尽可能不采用十进制地址0做为远程终端的专有地址。
该位在状态字的第9位,用来表示远程终端在已收到的消息中,有一个字或多个字没有经过规定的有效性测试。逻辑1表示消息有差错,逻辑0表示消息无差错。全部的终端应提供消息差错位。
状态字的第10位做为测试手段位。它在全部条件下总置为逻辑0。该位为可选位,若是使用,指令字中的相应位置为逻辑1,用来区分指令字和状态字。
状态字的第11位置是服务请求位。表示本远程终端须要服务。要求总线控制器启动与本远程终端或子系统有关的预约操做。当与单一远程终端相连的多个子系统分别请求服务时,远程终端应将它们各自的服务请求信号逻辑“或”成状态字中的单一服务请求。逻辑“或”完成后设计者必须准备好一个数据字,并以相应位置1来标志具体的请求服务子系统。状态字中的“服务请求位”,应维持到几个请求信号都处理完为止。该位仅用来激发随机发生的数据传输操做。
状态字的第十二、1三、14位是备用的状态位。应将它们置为逻辑0,这些位留做从此使用。
状态位的第15位置为逻辑1,表示本远程终端接收到的上一有效指令字是广播指令字。当系统中未采用广播方式,置该位为逻辑0。
状态字的第16位时置位为逻辑1表示远程终端处于忙状态,表示它不能按照总线控制器的指令要求将数据移入子系统或从子系统取数据。若是远程终端在响应发送、指令时置忙位,那么只发出它的状态字。该位为可选位,逻辑0表示空闲状态或者非忙状态。
状态字的第17位用来向总线控制器指出子系统故障状态,且警告总线控制器本远程终端提供的数据可能无效。若是与一个远程终端相连的几个子系统都呈现故障状态时,应将它们各自的信号逻辑“或”,造成状态字中的子系统标志位,并将事先准备好的一个数据字中的相应位置1,记录它们的故障报告,用于进一步检测、分析。该位为可选位。逻辑1表示有标志,逻辑0表示无标志。
状态字的第18位时若置为逻辑 1,用来表示本远程终端接受符合协议自己规定的动态总线控制的授命。逻辑 0 表示不接受。该位为可选位。
状态字的第19位时留做终端标志功能。逻辑1表示本远程终端内部存在故障,请求总线控制器干预。逻辑0表示不存在故障。该位为可选位。
字的最后一位用于前16位的奇偶校验。1553B采用奇校验的方式来确保数据准确。