1553B总线FPGA的编解串实现方法

(整期优先)网络出版时间:2019-10-11
/ 2

1553B总线FPGA的编解串实现方法

李作军

珠海优特智厨科技有限公司广东珠海519075

摘要:1553B最早作为一种通用的军事标准协议[1],它对数据总线的电气和协议特性进行了严格的规范和约束,广泛运用于航电综合系统。因其优秀的总线特性,在汽车领域和船机领域也有相关应用。

本文主要介绍1553B数据总线协议相关原理,着重介绍使用FPGA实现1553B总线的编串和解串方法。

关键词:1553B总线协议;1553B电路;1553B的编解串

1MIL-STD-1553简介

1.11553B协议基本简介

MIL-STD-1553总线是设备时分制命令/响应式多路复用数据总线,具有串行、半双工特点。

1.1.11553B的三种工作模式

总线控制器(Buscontroller):对1553B总线的控制和管理,是所有信息传输动作的发起者。总线上只能有一个总线控制器,负责发送命令、参与数据传输、接收状态响应和监测总线系统。

远程终端(Remoteterminal):远程终端(RT),从总线接收有效命令,并作出响应,回送状态字,完成设定动作。

总线监控器(Busmonitor):顾名思义,在线接收和记录总线上传输的命令和数据的终端,它受BC控制,但并不参与任何总线传输[2]。

1.1.21553B的传输方式

首先1553B总线的信息传输是以消息的形式,调制成曼彻斯特码进来行的。消息最长由32个字组成,其中包括三类:命令字、数据字和状态字。每类字的长20位,有效信息位是16位,每个字的前3位为单字的同步字头,而最后1位是奇偶校验位。所谓的位即,传输一位的时间为1μS(码速率为1MHz)。

数据在总线上传输的时,低数据位在先,依次发送高位。在总线上传输的数据码为曼切斯特II型双相电平码。传输时为不归零码,此处区别于429总线。逻辑1为双极编码信号1/0(即一个正脉冲继之以一个负脉冲)。逻辑0位双极编码信号0/1(即一个负脉冲继之以一个正脉冲)。过零跳变发生在每一位时的中点[3]。见图1.1。

图1.1数据编码及同步头

总线传输速率速率是1Mb/s,时钟的长期稳定性为±0.1%(即±1000Hz)。短期稳定性不低于0.01%。字长描述如下图,为同步头3位,加16位有效位,加奇偶校验位。

同步头描述如图1.1中所示形式,同步头是一个无效的曼彻斯特波形。其宽度为3,前1.5位时的波形为负(正),后1.5位时的波形为正(负),此处根据所发送数据为状态字或数据字决定。此处在测试波形时需注意,如果紧跟同步头后的一位是逻辑0,那么同步头的后半部分将多半个位时的负电平。

1.2MIL-STD-1553物理层收发电路

因为1553B使用的是曼彻斯特Ⅱ型双相电平码,所以在数据接入可编程器件前需要物理层电平转接,这里采用HI-1573低功率收发器和PM-DB2725耦合变压器电路实现电平转接功能。具体实现电路可以参照HI-1573相关手册[4],此处不做过多叙述。

21553B编解串功能实现及仿真结果

2.1FPGA逻辑方案介绍

要实现1553B数据的编解串工能,至少要求具备如下四个模块:

2.1.11553b通信控制模块:该模块实现的功能包括:提供要发送数据接口,提供从解码模块中接收的数据接口,提供控制物理层电路芯片的接口,以及数据接口。下述的时钟模块、1553b解串模块、1553b编串模块均作为该功能的子功能模块被使用。

2.1.2时钟模块产生编解串所需的时钟。

2.1.3解串模块即1553B总线的接收模块,将串行数据进行解析为并行数据,发送给通信控制模块使用。

2.1.4编串模块即1553b总线的发送模块,将系统中需要发送的并行数据,依据协议进行编串以1553b数据形式进发出。

a)如何实现MIL-STD-1553B解串功能

在上文中已经介绍过1553B通信的格式,包括同步头、数据位,校验位以及各个位的位宽。分析1553B的解串方法,由上文中图1.1不难看出,数据位为0时,出现的波形是0向1变化,如果数据位1时,出现的波形就是数据由1向0变化,如果能判断先出现的信号为高还是为底就可以准确的读取数据。又可以认为如果能够判断信号沿变后,为低或为高,也可以确认此时传输位的逻辑电平,注意此处为理解方法二的关键点。

根据1553B的通信原理,首先判断何时开始接收1553B数据,在总线上出现1553B数据时,接收端一定会出现信号由低电平变为高电平(命令字和状态字时,数据线正发生变化;数据字时,数据线负发生变化)。所以可以编写FPGA程序捕捉物理层芯片输出的电平变化,如果信号由低变为高,就可以使能解串模块开始解串数据接收。

方法一:在开启接收电路后,利用分频电路产生一个1MHZ的时钟,并将该时钟进行延迟0.01us到0.06us,因为HI-1573芯片在电平转接中做了消抖处理,导致HI-1573芯片输出的接收正端产生的高电平时间小于低电平,所以此值不易大过。此时利用延迟后的1MHZ时钟沿,读取接收端的电平,就是总线上真实传输的数据。这里注意在第一个时钟上升沿捕捉的就是1553B同步头的第1位,在第三个上升沿捕捉的就是第2位。而后依此读取的是数据,最后读取奇偶校验位。

方法二:此处我们可以通过正负总线和曼彻斯特码的变化关系,提取数据上的时钟信号,实现方法是将负线进行一个有效延迟,可取0.05us到0.08us。而后将延迟后的负线和正弦进行同或计算,此时我们产生了一个脉冲时钟,我们在每个时钟的上升沿读取正线数据,如读取的是0则1553B真实传输数据位1,相反读取为1则真实数据位0.这里注意,第一个读取的数据为同步头第1位,第二个读取的数据为同步头第2位,而后依此读取的是数据,最后读取奇偶校验位。

b)如何实现MIL-STD-1553B编串功能

分析发送MIL-STD-1553B的编串方法,第一步发送同步头,这里我们可以生成一个2MHZ时钟,设计思路如下:

第一个到第三个时钟周期上升沿发送同步头的第1位,第四个到第六个时钟上升沿发送同步头第2位,而后第七个上升沿发送数据位第1位,第八个上升沿发送数据为第1位,第九个上升沿和第十个上升沿发送数据位第2位。依此类推。直至数据位全部发送成功,而后发送奇偶校验位。

在实现中建议使用状态机,在起始状态将总线挂起,输出固定电平。当接受到发送使能,进入状态1根据时钟信号的变化进行同步头的发送,在同步头发送结束后进入状态2,进行数据发送,当数据为最高位发送结束后,进驻状态3,发送校验位同时跳转状态进入起始状态,等待使能信号。

2.2仿真及验证

按照先发送1553B数据,在接收1553B数据的顺序,仿真波形图如下:

参考文献:

[1]陈晓东,田利华.我国航空航天产业转型升级:背景、现实与展望[J].南京财经大学学报,2012(4):14-21.

[2]MIL-STD-1553B数字式时分制指令/响应型多路传输总线简介.

[3]张豫容1553B总线原理及其应用现代电子工程2004

[4]HI-1575DATASHEETHOLT公司