APP下载

基于FPGA的MIL-STD-1553B总线控制器的设计

2012-04-29李鹏郑宾

电脑知识与技术 2012年1期
关键词:曼彻斯特时钟总线

李鹏 郑宾

摘要:在深入理解MIL-STD-1553B总线协议的基础上,设计了一种基于FPGA技术的总线控制器BC模块。采用自顶向下的方法使用VHDL语言书写总线控制器程序代码,通过FPGA平台对发送器进行了测试;结果表明,接收器的逻辑功能达到了设计要求,时序指标完全符合协议规范,实现了总线控制器的功能。

关键词:MIL_1553B;FPGA;总线控制器

中图分类号:TP336文献标识码:A文章编号:1009-3044(2012)01-0207-04

Design of BC Module for MIL-STD-1553B Based on FPGA

LI Peng,ZHENG Bin

(North University of China,Taiyuan 030051, China)

Abstract: This thesis proposed a design of the BC(bus controller ) module for MIL-STD-1553B on the base of deeply understand the mechanism of MIL-STD-1553B.The BC designed with the top-down method based on FPGA , It had been proved effective on the FP? GA. The result indicated that the design had met the timing requirements of the bus standard.

Key words: MIL_1553B; FPGA; bus controller

MIL-STD-1553B是美国军方在20世纪80年代为军用飞机、车辆等制定的一种军用总线标准,现已经广泛运用与各种军用、民用飞机以及船舶车辆等领域。

由于其高速、高可靠性、实时性等特点,已经被国际社会认可,发展成为了国际公认的数据总线标准[1]。总线处理器是1553B总线系统的最关键的组成部分,而总线控制器BC作为总线系统的核心,就成为设计1553B数据总线的重点。

1553B是一种时分制指令/响应式多路传输数据总线,包括串行传输电缆、总线控制器BC、远程终端RT、总线监控器MT。总线上的所有消息传输都由总线控制器(BC)发起,远程终端(RT)对发出的指令应给予回答(响应)并执行相关操作。一个通信总线上最多可以挂32个远程终端,传输介质采用屏蔽双绞线,对噪声等干扰有很好的抑制能力。1553B总线的数据传输率为1 Mb/s,在一次消息传输中最多可以传送32个字,所有单次传输的时间较短,具有很好的实时性[2]。

国内应用1553B总线协议的通信模块的解决方案多采取基于进口1553B总线协议芯片来开展相关设计,如UT公司的UTl553B协议芯片、DDC公司的高级协议处理芯片BU-61580等,虽然这些芯片能够完成协议功能,但价格昂贵、灵活性差,这些弱点在一定程度上限制了设计能力。随着1553B总线得在各个领域的广泛应用,为了满足低成本,高灵活性的要求,提出一种新的基于FPGA技术来实现的1553B数据总线控制器的方法。

1系统的总体设计方案

本文采用ALTERA公司的cycloneII系列FPGA芯片作为协议处理核心器件。1553B总线接口的每一种类型的终端的设计都包括模拟收发器、总线接口模块、总控制模块、处理机接口模块四部分,都需要完成字处理和消息处理,而BC是线上唯一被安排为执行建立和启动数据传输任务的终端,被指派启动数据总线信息传输任务的终端。针对BC功能,其FP? GA部分的逻辑结构如图1所示。BC功能模块主要包括:数字收发器、命令字发送器、地址控制器、数据译码器、数据发送控制器、检错控制器和存储模块组成。

1.1数字收发器

数字收发器主要由数字发送模块、数字接收模块和发送超时检测模块成。

数字发送器模块在BC模式下的主要功能是从子系统接口单元接收16位的1553B数据(指令字和状态字),并以1Mbps曼彻斯特II编码串行数据发送到模拟发送器进而传输到1553B总线上。该部分即为曼彻斯特码编码,它是将单极性不归零码(NRZ)转换为单极性的曼彻斯特码,而且实现对同步头的编码,以及奇偶位的产生,并对数据进行并/串转换[3]。其工作状态图如图2所示。当系统接收到发送数据的指令时,系统首先判断要发送的数据类型,并产生相应的同步头,同时,将要发送的16位数据进行并串转换,并产生相应的校验位数据。最后将同步字、数据字校验位按照1553B的标准格式进行曼彻斯特码编码。

由曼彻斯特II编码的特性可知,每位数据0或者1都编码为2位,而1553B总线的传输速率为1Mbit/s,即每个位的宽度为1ms,所以脉冲宽度最小为500ns,所以发送单元所需要的最小时钟频率为2MHZ。针对不同的时钟源可通过分频电路实现2MHz。编码器的输入时钟mclk为2MHZ,选取它的发送时钟为2MHZ,同步字头产生完成,则发出控制信号开始移位,对16位数据进行并/串转换换,位时钟是同步头生成时用的时钟两分频产生。由于发送单元采用的时钟是周期为500ns,即每位为500ns。同步头的长度为3000 ns,所以同步头要用6位来表示,每位数据采用两位,奇偶校验位采用两位,所以整个1553B总线数据要用40位表示。

20位待发送的数据(曼彻斯特Ⅱ型编码),前3位为同步头。由于同步头是无效的曼彻斯特编码,应特殊处理。为了在检测到编码允许后,正确的产生同步头,需要利用输入信号Commd/Data。这个信号既充当编码允许信号,又指示需要编码同步头的类型。Commd/Data=1表示要产生的是命令字或状态字的同步头。根据1553B协议的说明,也就是需要产生3位高电平紧跟3位低电平的6位无效码。Commd/Data=0表示要产生的是数据字的同步头。也就是需要产生3位低电平然后3位低电平的6位无效码。

if (mclkevent and mclk=1) then

if(Commd/Data=1) then

sync_bits(5 downto 0)<="000111";--产生命令同步头elsif(Commd/Data=0) then

sync_bits(5 downto 0)<="111000";--产生数据同步头end if; end if;数据的第4位到第19位是数据位,根据曼彻斯特码的编码格式,对每1比特位,通过并置其自身的取反,刚好达到曼彻斯特II型码对逻辑0和逻辑1的定义,从而实现编码。

数据的第20位是奇偶校验位,1553B采用的是奇校验。因此对16位的数据按位异或刚好就是偶校验,再取反就得到了奇校验位。

1.2数字接收器

数字接收器的主要功能就是对接收到的数据进行曼彻斯特解码,将单极性的曼彻斯特码转换为单极性的不归零码(NRZ),同时完成出同步时钟的提取,同步头检出,数据检出,曼彻斯特II码错误检出,奇偶检测,位/字计数以及数据的串/并转换功能。

接收单元的时间基准是2MHZ的输入,根据标准,同步头只可能有两种01和10。按照标准,误差范围为月150ns,同步头的前半部分脉冲宽度是1500ns士15n0s。如图3所示,用2MHZ的频率来采样计数的话,如果计数器的计数为3时就认为是收到了同步头的前半部分,否则,接收单元就继续检测同步头。同步头后半部分脉冲宽度为1500ns,如果计数器的计数为3时就认为是收到了同步头的后半部分。当接收器检测到有效同步头以后,启动数字锁相环,提取出同步时钟。同理,将曼彻斯特解码后的16位NRZ数据检出。

曼彻斯特II码的特性是在每位数据脉冲的中间时刻都有一个电压跳变,所以对数据的译码可以从跳变沿可分为前后两部分,前后两半部分可能的长度都是500士15Ons和1000士15Ons,只要在该范围内就可认为收到了一位数据,在跳变沿的后半部分把位取反就是该位数据的值。

1.3命令发生器

BC是启动数据传输任务的终端。当工作在BC方式时,命令字/状态字译码及发送命令字控制模块只是完成对于BC自身需要发送的命令字和接收到RT返回的状态字进行译码以及RT返回的数据字接收,发出相应的地址、RAM的读写控制和读写地址等控制信号。该模块的逻辑结构如图4所示。

图4逻辑结构

1.4地址控制器

地址控制器根据不同BC模式,得出不同模式的RAM读写地址信号,地址控制模块包括地址变换和地址选择两部分。其逻辑图如图5示。地址变换部分接收来自发送命令字模块的地址加载信号、数据字计数值,以及来自数字收发器的rxrdy、txrdy信号进行地址信号的变换。地址选择部分根据来自发送命令字模块的地址选择信号确定当前是BC输入的RAM的有效地址是读地址还是写地址。当SEL为01时,BC接收来自RT的数据字存入RAM中即表示写地址有效;10时BC从RAM中取出数据字向发送给RT,即表示读地址有效。

图5逻辑图

1.5检错控制器

在该总线接口设计过程中要保证电路可靠的工作,错误检测是一个至关重要的部分。在本次设计中主要从软件上进行可靠性设计,采用奇偶校验的方法对接收的数据进行编码检错,同时包括系统的时间范围要求如消息间隔和RT响应时间等,以及对消息进行字计数检测等,这样可以在增加少量硬件的基础上迅速地完成检错任务。

该模块主要由字计数部分和RT响应时间检测部分组成。字计数部分负责对发送/接收的数据进行字计数,并与相应的指令/状态中的字数比较,判断出数据字数是否正确。RT响应时间检测主要负责检测从BC发送命令到RT反馈响应之间的时间差,与正常的响应时间范围比较[4]。

1.6状态字译码控制器

当BC接收到RT发送的状态数据的时候,需要从该数据中将远程终端地址字段、消息差错位、测试手段位、服务请求位、奇偶校验位等状态信息检出。

1.7双口RAM

双口RAM是整个总线控制模块的存储空间,他是总线模块和上位机PC间通信的媒介。该存储器由调用FPGA内部的LPM功能块LPMRAM函数来实现。

2设计总结

按照系统的总体设计方案,采用自顶向下的设计方法,设计了各个功能模块,各模块之间利用信号传递信息,逻辑关系清楚,便于调试和修改。同时各复用单元可以直接调用,节省了系统的开发时间和系统资源。

3程序仿真

为了验证设计的正确性,利用Altera的开发软件Quartus9.0对程序进行仿真。

如图6所示,当commd信号为低时,BC端从RAM端口发送0X5A5A的数据,经过BC模块转换后的1553B数据如tx所示。当数据发送完成以后,发送准备信号txrdy置1,准备发送下一个数据。

图6 BC模块发送数据仿真图

图7为BC模块接收数据的仿真图,当读数据信号read置高电平时,接收器从rx口接收5A5A的串行信号,并经过串并转换从dataout口的并行数据。当一个完整的数据接收完成后,接收准备信号rxrdy信号置1,准备接收下一个数据。

图7 BC模块接收数据仿真图

由此可见设计的各项功能工作正常,能满足1553B的总线接口电路的设计要求。

4结论

MIL_STD_1553B总线的应用领域非常广泛,利用FPGA实现其功能在降低应用成本的同时,更方便了系统调试。同时,由于1553B总线的复杂性,基于FPGA的总线控制模块设计难免会存在一些漏洞,因此逐渐完善1553B总线的功能成为了FPGA技术的一个总要的研究方向。

参考文献:

[1]申志永. MIL-STD-1553B总线接收器IP核设计[J].电子测量技术,2011(5).

[2]中国航空工业总公司.GJB 289A-97数字式时分制指令/响应型多路传输数据总线[S].中华人民共和国国家军用标准,1993.

[3]周密.1553B总线协议IP核设计与实现[J].电子器件,2007(1).

[4]郭泽仁.1553B总线系统优化及可靠性设计[J].山东理工大学学报,2008(1).

猜你喜欢

曼彻斯特时钟总线
别样的“时钟”
观电影《海边的曼彻斯特》
古代的时钟
观电影《海边的曼彻斯特》
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
有趣的时钟
时钟会开“花”
多通道ARINC429总线检查仪
基于EtherCAT总线的ROV控制系统设计