时间:2024-05-04
吴结根 杨 俊
摘 要:介绍了用FPGA设计实现MIL-STD-1553B总线远程端点的数据链路层协议,整个设计采用自顶向下的方式,实现程序分为4个模块,每个模块独立完成相关功能,最后通过顶层模块完成信号连接。该设计采用VerilogHDL编写,通过Modelsim和Quartus Ⅱ完成仿真和综合,最后在Altera公司Cyclone系列的FPGA上进行了实现,并通过实际应用对整个设计进行了验证。
关键词:1553B;总线接口;通信协议;FPGA;实现
中图分类号:TN915.05文献标识码:B
文章编号:1004-373X(2009)03-163-04
Realization of 1553B Bus Remote Terminal′s Data Link Layer Protocol
WU Jiegen YANG Jun2
(1.Jiangxi Branch Co.,China Netcom Group,Nanchang,330025,China;2.Jiangxi Co.Ltd.,China Mobile Group,Nanchang,330009,China)
Abstract:The design and realization of MIL-STD-1553B bus remote terminal′s data link layer protocol through FPGA is introduced.The design realized by top-down mode is divided into four modules.Each module achieved some functions and final achieved the signal connection by the top module.The design is programmed by VerilogHDL,emulated by Modelsim,synthesized by QuartusII and final realized on the Altera′s Cyclone series FPGA is validated by practical application.
Keywords:1553B;bus interface;communication protocol;FPGA;realization
0 引 言
用于车辆、舰船、飞机等机动平台上的电子设备越来越多,并且越来越复杂。将电子设备加以有效的综合,使之达到资源和功能共享已成为必然趋势。电子综合的支撑技术是联网技术,而机动平台上的联网技术不同于一般的局域网技术,它特别强调网络的可靠性和实时性。1553B总线是在20世纪70年代末为适应飞机的发展,由美国提出的飞机内部的电子系统联网标准;其后由于它的高可靠性和灵活性而在其他机动平台上得到了广泛应用。国内上世纪80年代中期已开始接触这类技术,目前它的研究与应用范围正在迅速扩大。
1553B总线标准由美国军方制定。支持该标准的协议芯片有DDC公司的BU-6517X,BU-615XX系列;HOLT公司的HI-61XX系列;UTMC公司的BCRTM等。这些芯片都集成了BC,RT,BM的功能,但是这些芯片都由美国公司生产,价格非常昂贵。为了能低成本地使用这种可靠性非常好的数据总线,采用FPGA设计并实现远程端点的数据链路层协议,通过外接一个总线收发器完成1553B远程端点协议芯片功能。
在电子设计领域,可编程逻辑器件的广泛应用为数字系统的设计带来极大的灵活性,1片FPGA芯片可代替上百个IC电路。Altera公司开发的Cyclone系列FPGA芯片价格便宜,功能强大,而且配套的开发软件Quartus Ⅱ更是集成了时序仿真、编译、综合、优化等功能,这为实现1553B总线远程节点通信协议提供了有利条件。文中所实现的1553B总线远程端点数据链路层协议采用VerilogHDL语言编写;采用ModelSim仿真;采用Quartus Ⅱ编译、综合、优化,并在Altera 的EP1C6系列FPGA上实现。
1 1553B总线及其接口功能
1553B的全称是:飞机内部时分制指令/响应式多路传输数据总线。它对物理层,如:传输介质、屏蔽条件、耦合方式、阻抗匹配以及输入输入兼容性等都做了严格规范。1553B总线是以串行数据脉冲的形式进行传输的,其数据用双相曼彻斯特码的形式来表示,其传输速率为1 Mb/s。1553B数据总线上连接有3种类型的节点:
(1) 总线控制器(BC):控制总线上的数据传输;
(2) 远程终端(RT):响应BC命令,执行相关操作;
(3) 总线监视器(BM):有选择地接收数据总线上的信息并保存。
飞机上的每个子系统可以通过1553B总线连接到任何一个系统中并与其通信。
在总线上传输字有3种类型:命令字、状态字和数据字。每种字的字长为20位,有效信息位为16位,每个字的前三位为同步字头,最后一位为奇偶校验位。有效信息(16位)及奇偶校验位在总线上以曼彻斯特码的形式进行编码,每位占的时间为1 μs。同步字头占3位,或先正后负(命令字、状态字)或先负后正(数据字),正、负电平各占1.5 μs,即占同步头位场的50%。由于系统类型的不同,可辨别出命令字和状态字,命令字由总线控制器发出,而状态字由远程终端RT发出。
作为1553B总线的远程端点,应完成以下功能:
(1) 将总线上的串行信息流转换成微控制器可以处理的并行信息或者与之相反;
(2) 接收或者发送信息时,能够识别或生成标准的1553B信息字;
(3) 完成与微控制器之间的信息交换,包括1553B信息地址的分配、命令字的译码或返回状态字、发送数据字等。
1553B远程端点数据链路层协议需要完成上述的1553B远程端点的大部分功能,包括同步头添加与检测,曼彻斯特码编解码,命令字译码与接收数据字,状态字反馈与收发数据字,数据缓冲以及与微控制器之间的接口等。整个数据链路层协议内部采用寄存器控制的方式进行操作,上层微控制器通过读写实现程序的寄存器,以完成对协议的控制,而内部操作也是根据相关寄存器的状态来进行的,因此设计时,首先定义相关寄存器,根据数据线的宽度,所有寄存器都定义为16位。
(1) 控制寄存器:它完成内部时钟、总线端口选择、节点状态设定、状态字保留位、节点ID以及全局复位等状态的设置和操作。
(2) 错误寄存器(ER):当通信协议中出现了奇偶校验错误,数据不连续错误,接收数据个数错误,接收FIFO错误,发送FIFO错误时就会置位其相关位,上层微控制器通过读取ER就知道错误的类型。
(3) 状态寄存器(SR):SR中反映了当前数据链路层协议的状态,包括接收数据状态、接收FIFO长度、发送FIFO长度、接收错误状态、中断信号状态nINT和nINTD。
(4) 接收命令字寄存器(RCR):RCR用于保存当前接收到的命令字。
(5) 发送矢量字寄存器(SVWR):该寄存器用于存放总线控制器要求的矢量字,这个矢量字由微控制器写入。
(6) 接收同步字寄存器(SYNDR):用于存放接收到的带数据字同步命令中的数据字。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!