MIL-STD-1553B总线
MIL-STD-1553B总线(以下简称1553B总线)是美国定义的一种军用串行总线标准,国内对应为GJB289A-97,全称《数字式时分制指令/响应型多路传输数据总线》,它规定了数字式时分制指令/响应型多路传输数据总线及其接口电子设备的技术要求,同时规定了多路传输数据总线的工作原理和总线上的信息流及要采用的电气和功能格式。
1553B总线网络由终端、子系统和总线传输介质组成,结构如图1所示。终端是使数据总线与子系统相连接的电子组件。子系统为从多路数据总线上接收数据传输服务的装置或功能单元。总线控制器(BC)是总线系统组织信息传输的终端。总线监控器(BM)是总线系统中指定作接收且记录总线上传输的信息并有选择地提取信息以备后用的终端。远程终端(RT)是总线系统中不作为总线控制器或总线监控器的所有终端。
1553B总线的传输速度是1Mb/s,采用曼切斯特Ⅱ型编码,半双工工作方式。1553B总线有10种消息格式,每个消息至少包含两个字,每个字包含有16个信息位、一个奇偶校验位和3个位长的同步头,适用于变压器耦合的曼切斯特II型编码的通过双绞线可靠传输的长度可以超过30米。
1553B通信系统可分为应用层、驱动层、传输层、数据链路层和物理层。应用层和驱动层在子系统实现,传输层、数据链路层和物理层均在1553B总线通信接口(MBI)实现。对于RT来说,根据和BC之间的通讯表决定RT在总线中的地址,按照接口控制文件(ICD)设计对应的应用层软件完成和MBI卡的通讯接口。
BU-61580
目前在机载设备RT的设计中,广泛使用了MBI卡,国内外MBI卡普遍使用了美国DDC公司的1553B总线协议芯片BU-61580,该协议芯片包含微处理器和1553B总线之间完备的接口,集BC、RT、BM三种工作模式为一身,封装为70引脚的DIP,传输时使用1.41:1的变压器。BU-61580内部集成了双收发器逻辑、编解码器、协议逻辑、内存管理和中断控制逻辑,还提供了一个4K字(16bit)的内部共享静态RAM和与处理器总线之间的缓冲接口,BU-61580的软件接口包括17个内部操作寄存器、8个测试寄存器以及64K字的共享存贮器地址空间。
目前机载MBI卡一般使用BU-61580完成传输层、数据链路层和物理层的接口,MBI卡中控制逻辑及数据传输利用一片MCU实现,MBI卡和机载设备之间的接口一般为串口,MBI卡的生产厂家利用特定的机载设备的通讯表和接口控制文件(ICD)为机载设备定制MBI卡,同时提供串口驱动程序和编写串口通讯协议,机载设备利用串口驱动程序和串口通讯协议完成数据的交换。
处理器MSC1210Y5与BU-61580的硬件接口
MSC1210Y5是德州仪器公司的基于8051内核的高性能系统级单片机,具有两个串口,支持在系统编程,内部有32K的FLASH。本设计利用BU-61580支持8位处理器的特点,利用MSC1210Y5的总线接口和16位的BU-61580完成数据的交换,数据接收和发送由INT外中断完成,内部数据交换通过串口1与系统内部单片机完成。为了便于在飞机上对软件升级,MSC1210Y5的串口0通过RS-232电平驱动后,用于程序的下载。电路框图示于图2。
图2中,MSC1210Y5与BU-61580为8位总线接口,61580的“16/8_BIT”、“BUFFED”、“POLAR”接为低;使用了0等待控制,“ZW”接为低;使用了BU-61580内部的RAM,“TRIGG”接为低;不使用外部时钟标签,“TAGCLK”接为低。
远程终端的地址“RTAD0_RTAD4”可构成25个远程终端地址,使用中连同奇偶校验设置位“RTADP”用拨码开关连接,便于更改RT的设计。
注意图2中单片机的“P0”端口和“P2”端口与BU-61580的接口关系,由于处理器是8位,而且处理器的数据端口与地址端口是复用的,所以连接关系较为复杂。
译码采用两个与门完成。其中一个与门将“P2.6”和“P2.7”的信号通过与逻辑后与“SELECT”相接,“WR”和“RD"通过与逻辑后与“STRBD”相接用于选择BU-61580。“P2.5”端口与“MEM/REG”相接用于选择BU-61580内部寄存器或存储器。单片机的地址锁存信号“ALE”与“ADDR_LAT”相连,提供数据锁存信号。选取12MHz晶振同时为单片机和BU-61580提供时钟信号。
从图2中可以看出双绞线、变压器、BU-61580构成了1553B通信系统的传输层、数据链路层和物理层,单片机MSC1210Y5和BU-61580的接口及其单片机软件构成了应用层、驱动层;作为一个RT,当接收BC命令后,通过串口1将命令发送给系统内的单片机,按控制系统的要求工作,同时将测量数据通过串口1传送出来,放到总线上已备BC使用。这样就完成了RT和BC之间的通讯。
用BU-61580设计远程终端的流程
BU-61580的复位及初始化
使用1553B协议芯片BU-61580最主要的工作是初始化,初始化包括初始化寄存器,初始化存储器等。电路上电后,单片机首先将复位引脚P1.5置低,复位BU-61580,延时后再置高,完成软件复位的过程。
对于RT编程,首先初始化相应的寄存器,然后设置非法指令区、初始化相应子地址的查询表及子地址控制字,此时应该设置“忙”位,设置配置寄存器使设备处于RT模式。当通过串口1接收的数据表明系统开机自检结束后,将“忙”位清零,此后该设备就处于在线,只要BC发送一条消息命令与该设备相关,那么该设备就会做出反映。
BU-61580的数据发送过程
BU-61580发送数据时,将对应的子地址的数据字送到初始化设定的查询表地址中,同时将该子地址对应的矢量字置为“1”,表明RT的数据已有更新。因为子地址控制字位设置了发送和接收产生中断,所以在中断处理程序中,当命令字与发送子地址相同时,表明BU-61580已将需要发送的数据发送到1553B网络中,此时,在中断服务程序中将该发送子地址的矢量字清“0”。BC周期性的查询矢量字,只有对应子地址的矢量字为“1”,BC才从RT中将数据取走。矢量字更新机制是1553B最有特色的地方。
BU-61580的数据接收过程
当总线上传输从BC到RT的命令时,若系统设置为合法指令,则产生接收中断,接收中断中判断命令字是否符合ICD接口控制文件,若符合则在中断程序中设置接收标志位为“1”。主程序中判断此接收标志为“1”后,将此标志清“0”,同时将BC发送的数据从缓冲区中取出,按ICD接口控制文件的要求处理。
机内串行通讯的实现
单片机MSC1210Y5和BU-61580完成了1553B数据的通讯接口任务,而1553B通讯的最终畅通还需系统的配合。本RT设计中,串口1担当了此任务。串口1的发送程序将系统的当前工作状态发送出去,串口1的接收程序负责将BC的控制命令接收进来。这种异步收/发过程,完成了内外数据的交换。