摘要:为降低成本,提高设计灵活性,提出一种基于FPGA的1553B总线接口方案;采用自顶向下的设计方法,在分析1553B总线接口工作原理和响应流程的基础上,完成了接口方案各FPGA功能模块设计;对关键模块编写VHDL代码,并采用AcTIve⁃HDL软件进行了仿真;以Virtex⁃5 FPGA 开发板和PC机为验证平台,在FPGA中分别模拟BC与RT,在PC机指令下进行了BC与RT功能模块间的收发测试,结果表明系统能在协议规定的1 MHz数据率下稳定运行;同时,为提升接口性能,采用光纤代替传统电缆传输介质,利用FPGA内嵌RockeTIO内核进行了传统1553协议数据的光纤传输,速率可达3 Gb/s以上。
0 引言
MIL⁃STD⁃1553B(数字式时分制命令/响应型多路传输数据总线)由美国国防部于20世纪70年代末提出,它采用曼彻斯特编码方式和冗余的总线型拓扑结构,具有非常好的时钟同步能力及容错机制,极大地简化了电子设备之间的互联,因而被广泛应用于对可靠性要求较高的军事、航空、航天等领域。
随着1553B总线优越性能不断体现,我国相关领域的应用需求不断增多,其关键地位也日益突出。但由于1553B协议本身较为复杂、国内技术相对落后,在1553B总线的设计中大多采用国外的协议接口芯片,典型如DDC公司的BU⁃61580等。一方面,这类芯片不仅价格昂贵,而且容易受国外限制;另一方面,在实际应用中,芯片许多功能略显多余,不能进行灵活设计。
现场可编程门阵列FPGA 可将大量逻辑集成在单片IC中,其内部资源丰富,相应EDA开发工具功能强大,是理想的片上系统设计与实现平台。FPGA 具有开发周期短、成本低、灵活性高等诸多优点,基于对协议规范的分析,通过FPGA来实现MIL⁃STD⁃1553B总线接口是可行的。本文提出了一种基于FPGA的1553B总线接口设计方案,并编写VHDL代码进行仿真,最后在FPGA上完成了设计验证,实现了传统1553B协议数据的1 Mb/s电缆传输和3 Gb/s以上光纤传输。
1 MIL⁃STD⁃1553B总线介绍
MIL⁃STD⁃1553B 是一种命令/响应型多路传输总线,它采用冗余的总线结构,在当前传输线发生故障时可立刻切换到冗余传输线上,防止通信中断。同时,1553B协议严格规定了消息格式,限定了每条消息的最大传输数据量及总线单元的最大响应时间,并规范了总线耦合方式、电缆电气特性等,从各个方面确保总线传输的高可靠性。
1553B总线包含三种总线单元:总线控制器BC、远程终端RT 和总线监视器MT,各单元在总线控制器BC的调度下有序地进行通信。总线上数据以字为基本单位进行传输,分为命令字、状态字和数据字,每个字包含20 位。总线单元间每一次数据的交换称为一条消息,1553B协议规定了10种消息格式,除此之外其他格式的消息均为非法消息。总线采用曼彻斯特编码方式,方便接收端提取同步时钟,简化了总线结构。
2 1553B总线接口整体设计方案总线接口是外部系统与总线之间的数据交换媒介,其主要功能是完成总线协议的处理。根据1553B 协议的特点,总线接口整体设计方案如图1所示。
图1 总线接口整体设计方案
由图1 可知,总线接口包括模拟收发器、曼彻斯特编解码器和协议处理逻辑三大模块。其中,模拟收发器完成FPGA输出信号与总线信号之间的电平转换,可由专用转换芯片完成,而曼彻斯特编解码器和1553B协议处理逻辑是接口的主要组成部分,完成数据编解码和协议处理,通过FPGA 实现。总线接口通过一定的地址、数据和握手信号与外部系统相连。
3 曼彻斯特编解码器模块设计3.1 1553B总线数据格式信号编解码的设计方案由总线传输层特性决定,1553B消息字格式和曼彻斯特码型如图2所示。
图2 1553B消息字格式和曼彻斯特码型
1553B总线以字为单位进行数据传输,每个字包含20位,其中前3位为同步头,后17位为数据位和奇偶校验位,如图2(a)所示。总线数据传输速率为1 Mb/s,采用曼彻斯特Ⅱ双相码编码方式,每位数据中间均有一个跳变沿,由正到负的跳变表示逻辑‘1’,由负到正的跳变表示逻辑‘0’,其码型对应关系如图2(b)所示。
3.2 编码器设计
编码器的设计相对简单,主要完成对待发送消息字的曼彻斯特编码,并将其并串转换后输出。由于曼彻斯特码每位数据中间均有跳变,故发送时需将每一位分割成两位,分别发送。其工作过程为:
(1) 同步头编码,若为数据字同步头,则编码为“111000”(由高位到低位,下同),若为状态字或命令字
同步头,则编码为“000111”;
(2)数据和奇偶校验位编码,若为‘0’,则编码为“10”,若为‘1’,则编码为“01”;
(3)按由低到高的顺序将编码后的40位数据串行输出。
FPGA采用16 MHz主时钟,由于编码后每位数据对应0.5 μs,故将主时钟分频后产生2 MHz时钟来控制编码器发送40 位数据,每个时钟沿发送一位,正好满足1553B总线1 Mb/s的速率要求[5]。
3.3 解码器设计
解码器主要完成消息字的解码,并将其串并转换后输出,其工作过程为:
(1)检测到总线上有效电平,解码器开始工作;
(2)同步头解码,检测到指令字和状态字同步头用“011”表示,检测到数据字同步头用“100”表示;
(3)16位数据位和1位奇偶校验位解码;
(4)将解码后的消息字(20位)并行输出。
同步头和数据位检测示意如图3所示。
图3 同步头和数据位检测
由1553B协议可知,同步头包含三个位时,在1.5个位时处有跳变。如图3(a)所示,同步头到来后,解码器连续采集48 个数,理论上,采用16 MHz 时钟,如果检测到24个‘0’和24个‘1’,则表示收到有效同步头,但考虑到信号上升时间及下降时间等因素,实际若检测到22个或者23个‘0’和‘1’,就可以判定同步头有效,进行下一步数据的接收。
数据位包含一个位时,在0.5个位时处有跳变。如图3(b)所示,在每个数据中间部位,若前一时钟采样到‘0’,后一时钟采样到‘1’,则表示当前数据位为‘0’,反之则是‘1’。另外,如果采到的数没有跳变,为全‘0’或者全‘1’,则产生错误标志,通知协议处理逻辑或子系统进行相应的错误处理。
4 协议处理模块设计4.1 协议处理模块响应流程
协议处理模块实现BC,RT,MT三种总线终端的协议处理,在FPGA模块设计之前,根据1553B协议对协议处理模块三种工作模式下的响应流程分别进行分析设计。
4.1.1 BC模式
BC(总线控制器)是1553B 总线的核心,总线上任何类型的数据交换都由它发起。BC模式下接口响应流程设计如图4所示。
图4 BC模式下接口响应流程
MIL⁃STD⁃1553B 协议规定的总线指令可分发送指令、接收指令和方式指令三种,共能实现四种类型的功能:RT 到BC 的数据传输、BC 到RT 的数据传输、RT 到RT 的数据传输和总线管理。根据图4,BC 模式下接口主要工作过程为:
(1)根据外部系统需求发送相应命令字,发起总线传输;
(2)根据指令类型的不同,进入不同响应流程,主要包括数据字发送、数据字接收和状态字接收等;
(3)消息完成后进行消息结束处理,主要包括消息结束标志的产生,差错处理,以及根据收到的RT状态字判断总线终端状态等。
需要注意的是,BC 如果在规定的时间内没有收到RT状态回复,则需重新发送命令字进行重试(Retry)。
4.1.2 RT模式
RT(远程终端)是1553B 总线上的指令/响应型终端,它响应BC发送的指令,按要求接收或发送数据,在规定时间内回送状态字,并服从BC的总线管理。RT模式下接口响应流程设计如图5所示。
图5 RT模式下接口响应流程
根据图5,RT模式下接口主要工作过程为:
(1)收到命令字后进行指令分析,根据指令类型进入相应的响应流程;
(2)按照流程进行数据字接收、发送,并回复状态字;
(3)消息完成后进行消息结束处理,主要包括消息结束标志的产生,差错处理,以及特殊方式指令下方式标志的产生等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)