第1章 绪论
军用标准数据总线1553B(MIL-STD-1553B)是定义串行多路数据总线特性的标准,该标准涵盖了一套完整的串行数据总线从机械到电气和功能等方面的要求。1553B总线旨在通过一个单一的媒介与航空电子子系统互联,该标准的初稿由美国汽车工程师学会(SAE)于1968年出版,美国空军于1973年通过,MIL-STD-1553A版本于1975年发布,MIL-STD-1553B版本作为美三军(空军、陆军和海军/海军陆战队)标准于1978年发布。此后MIL-STD-1553B标准在美国武器系统中得到了广泛的应用。起初1553B是飞机上使用的公共总线,但不久之后,它的应用扩展到航空航天等其他领域,如美国空军的B-1B、B-2、B-52、F-15、F-16、F-117、F-5、T-38、C-130、C-17、KC-135、F-22、预警机等;美国海军的F-14、F-18、E-2C/D、P-3、P-8、舰载通信系统、舰上控制系统、ESSM(海雀导弹)、RAM(滚转机身导弹)、Lamps直升机、EA-6B、AV-8B、LCAC、V-22、CH-53海种马直升机、H1直升机等;美国陆军的AH-64阿帕奇直升机、CH-47直升机、AH-1眼镜蛇直升机、H-60黑鹰直升机、M1A2坦克、M2A3布拉德利战车、A-10攻击机等。
1981年,该标准作为北约标准化协议(STANAG 3838)发布,并在欧洲许多武器系统中得到应用,包括欧洲台风战斗机、旋风战斗机、JAS战斗机、虎式武装直升机、NH-90战术运输直升机、T1教练机、猞猁直升机、风暴装甲车、PAAMS(主要防空导弹系统)、阵风战斗机、美洲虎地面攻击机、幻影战斗机、Aermacchi M-346/MB-339教练机、SAK57自动加农炮、豹2主战坦克等。与此同时,该标准也被东欧国家接受,如俄罗斯的苏-27、米格-29、MSSR-JAC二级监视雷达和土耳其的T-129 ATAK攻击直升机均有应用。
1985年,MIL-STD-1553B标准被选定为MIL-STD-1760中定义的智能炸弹的主要通信总线,并在许多导弹中得到应用,包括美国的JDAM、JSOW、AIM-9X、Paveway、AMRAAM、风力修正导弹、HARM导弹,欧洲的云母导弹、AASM精确制导空对地导弹、ASMP中程空对地导弹、风暴阴影巡航导弹、Aster地空导弹、流星导弹等。
1553B总线广泛使用在武器系统中的同时,其在太空中的应用也开始了高速的发展,如国际空间站;美国的航天飞机、德尔塔运载火箭、阿特拉斯运载火箭、半人马座运载火箭,以及许多军事和商业卫星计划(包括全球定位系统(GPS)、SBIR)等;欧洲和南美洲的国际卫星、赫歇尔空间天文台、普朗克航天器、盖亚卫星、丽莎探路者空间探测器、阿根廷微波观测卫星、中巴地球资源卫星、全球导航卫星系统、亚马尔-300电信卫星、联盟-TM;日本的H2运载火箭(空间)、HTV(无人补给飞船的H-II运载火箭)、日本国际空间站实验舱、高级陆地观测卫星;印度的月球探测器、地球卫星通信卫星等。
21世纪初,一些高端的无人机和商用飞机也开始转向应用1553B总线,如捕食者、全球鹰、猎人、MQ9收割者等无人机,现已知的应用1553B总线的商用飞机如空客的A350。
1553B总线在20世纪80年代中美“蜜月期”,随J-8战斗机的升级项目进入我国,并开始被我国的研发人员所熟知。1553B总线的应用减轻了战斗机的重量,推进了国内装备的信息化发展。因此,1553B总线在国内各系统平台中也得到了广泛的应用。
尽管确切的数字很少,但有人估算1553B总线在世界各国的地面、海上、空中和空间平台上至少有1亿小时的服役时间。它还拥有强大的供应商基础,在航空航天界得到普遍的认可,并为大量技术人员和工程师所熟知。
飞机和其他平台上的航空电子系统性能的提高,对1553B总线的需求可能会减少,一些业内权威人士预计,1553B总线很快就会被载入史册。然而,这样的预测已经做了很多年,1553B总线不仅“存活”了50多年,而且还表现得越来越繁荣。1553B总线提供了相对简单、模块化、双冗余和高可靠性的组合,而且近年来针对1553B总线更高带宽的传输技术也在不断开发和推出,如100Mbit/s总线带宽的1553B总线技术以及基于光纤通信的1553B总线技术等。因此,有充分的理由相信,即使面临千兆位以太网、光纤通信和其他高性能网络的挑战,多年后,1553B总线技术仍将是一些航天平台的“首选”。
本书从嵌入式系统开发人员的角度对1553B总线通信进行软、硬件介绍,内容涵盖基础协议讲解、硬件电路设计、软件代码编写等,阅读本书需要具备C语言基础知识、熟悉硬件电路设计、了解DSP和FPGA的开发过程,*好是具有相关项目的开发经验,限于篇幅全书在进行这些内容编写时,不再向读者讲解这些基础内容。
在正文开始前对本书的编写习惯做如下约定:
(1) 书中所涉及的芯片寄存器地址以字母R加具体地址的形式表示,如寄存器地址03将写为R03H,H表示十六进制。
(2) 存储器地址以M字母开头,如存储器地址03写为M03H。
(3) 为了和地址区分开,操作数统一以0x开头,如0x0003表示的是数而不是寄存器或存储器的地址。
(4) 寄存器若使用英文缩写,则其缩写的英文由附表1.2确定,例如,CFG1_REG表示配置寄存器1,若要访问寄存器中的某一具体位,则用“.”操作符表示,如CFG1_REG.1表示配置寄存器1的Bit1位。
(5) 1553B命令字根据实际含义使用缩写表示,例如,命令RT1_Tx_Sa1_Cn1表示BC发送命令字的RT地址域为1、T/R位为Tx、子地址域(subaddress)为1、数据长度(Cn)为1(含义为BC向RT1的子地址1取1个数);又如,RT2_Rx_Sa5_Cn10表示BC发送命令字的RT地址域为2、T/R位为Rx、子地址域为5、数据长度为10(含义为BC向RT2的子地址5发送10个数);对于模式码,则将子地址域和数据域更改为模式码即可,如模式码RT1_Tx_Sa0_MC2即表示BC发送模式码命令字的RT地址域为1、发送模式码MC2即二进制表示为“00010”,查模式码表(附表3.1)即可知BC向RT1发送了“发送状态字”模式码。
第2章 1553B标准
2.1 总线拓扑
1553B总线是基于屏蔽双绞线电缆的终端传输总线,MIL-STD-1553B定义了三种总线节点,统称为终端,它们分别是总线控制器(bus controller, BC)、远程终端(remote terminal, RT)和总线监视器(bus monitor, MT)。
BC充当“主机”、“服务器”或“主控”的作用,在总线传输消息中启动所有事务,执行对总线节点的控制和遥测功能。RT受BC指挥,响应BC的命令、接受BC的控制,提供1553B总线和相关单元/子系统之间的接口。MT是被动的,不响应任何命令,只监控和记录总线上的命令和数据。
BC和RT以及MT通过短截线和耦合器(bus coupler)连接到总线上,总线上的数据传输速率固定为1Mbit/s,波形编码方式为曼彻斯特码,采用奇校验方式,通常应用为双总线互为备份的冗余架构。一条1553B总线上可以容纳1个BC、31个RT(去除31号的广播地址为31个)及多个MT。标准1553B总线拓扑关系如图2.1所示。总线A和总线B互为备份,分时复用,可以在传输时由软件设置主动切换,也可以由芯片协议发起控制切换,但任何时刻只有一条总线上有消息传输。需要指出的是,1553B在单总线下依然能正常工作,双总线不是通信的必需配置,仅是为了在系统上做到冗余备份,提高可靠性。总线两端的终端匹配电阻Z是必不可少的,阻值大小依据线缆的特征阻抗
图2.1 标准1553B总线拓扑关系(Z为总线终端匹配电阻)
而定,通常在70~85Ω,它的作用是在传输波形时维持总线的压差,使信道上的阻抗相互匹配,吸收总线能量,防止波形反射。
1553B总线上传输信息的*小单位为消息,1553B支持单消息传输,也支持多消息组帧传输。总线上完成一次符合1553B协议的消息传输的前提条件是:消息必须合法。1553B协议规定,总线上的事务属于命令/响应类型,任何消息均是由BC发起命令,RT和MT均不具备发起命令的能力,只能响应BC命令;并且同一时刻挂接在同一条总线节点上的终端只允许存在一个BC,但可以存在多个RT(不同地址)和MT。总线上的RT必须被分配了相应的节点地址才能有效使用,该地址由5位二进制数表示,称为RT地址,且每个RT地址只能分配给**的RT,不可重复。一条总线理论上*多能容纳32个RT,由于RT地址31被分配给广播使用,实际上一条总线可容纳的RT个数为31个,BC和MT不分配地址。
典型的1553B总线通信回路拓扑细节如图2.2所示(当然这只是1553B通信回路的一种拓扑细节,针对不同的1553B协议芯片还有其他类型的拓扑细节)。从信息流的角度看,当BC发送的信息流经过隔离变压器调压,并经过短截线后,波形输出到耦合器的端口中,耦合器内部将波形整形到峰峰值7V左右耦合到总线上,总线向其挂接的所有节点输出接收到的波形,总线挂接的节点(RTs)将根据自身地址号以及相关的设置来选择响应或屏蔽该消息。从消息内容看,每条1553B的消息都至少包含一个命令字,该命令字直接在总线上传输,命令字由BC发出用来指示RT完成相关操作。举例来说,在总线节点上的BC若要发送消息给总线节点中的RT1,则在硬件连接均正确无误的情况下,其必须发送符合RT1终端节点的有效命令字,该消息才能被RT1识别、接收和处理,RT1只响应合法的总线命令字。总线通信的具体细节将在后续章节中介绍,在此不做展开。
图2.2 典型1553B总线通信回路拓扑细节(Z为总线终端匹配电阻)
1553B总线实物如图2.3所示。总线全长从一端终端电阻至另一端终端电阻应尽量小于100m,对于使用间接耦合方式连接至总线耦合器的节点线路,其节点电缆(短截线)长度不大于6m,对于直接耦合方式连接至总线的节点线路,其节点电缆长度应小于0.3m,关于“直接/间接”的耦合方式在4.1.4节进行详细介绍。1553B总线使用的线缆实物如图2.4所示。
图2.3 典型1553B总线通信回路拓扑实物
图2.4 1553B总线所用电缆实物
2.2 消息格式
1553B协议规定了十种消息格式,使用频率*高的有三种,分别为BC到RT消息传输(BC→RT)、RT到BC消息传输(RT→BC)和BC到RTs广播消息传输(BC→RTs)。下面着重介绍这三种消息格式,其他消息格式将在后续章节中讲解。
1553B协议处理的内存(RAM)单元、寄存器(REG)单元以及总线上传输的有效字内容均由16位二进制数组成,用十六进制表示,如0x1234、0xAA55等,因此构成1553B消息的*小单元就是这16位二进制的1553B字(双字节)。1553B单条消息中1553B字之间的关系如图2.5所示,消息中包含了多个1553B字,每个字之间由时间间隔或同步头隔开,后面将会介绍这些1553B字的具体内容及其所代表的含义。
图2.5 单条消息中1553B字之间的关系
为了更详细地介绍不同1553B消息的格式,在此做如下规定:
(1) 用矩形方框表示由BC发出的1553B字;
(2) 用圆角矩形表示由RT发出的1553B字;
(3) 在框内对每个1553B字做功能解释。
针对BC→RT的消息传输,从消息内容的角度看,它的消息格式如图2.6所示。总线在传输BC→RT的消息时,
展开