微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于FPGA的1553B总线接口设计

基于FPGA的1553B总线接口设计

时间:12-20 来源:互联网 点击:

MIL-STD-1553总线是美国20世纪80年代制定的第一个军用数据总线标准,它是一种串行的数据总线。该总线标准自制定后广泛应用于军用飞机、车辆、船舶中,并鉴于其高可靠性和灵活性,逐渐应用在许多其他机动平台上。

1553B是一种时分制指令/响应式多路传输数据总线,总线上的所有消息传输都由总线控制器发起,远程终端对发出的指令应给予回答(响应)并执行相关操作。这种方式非常适合集中控制的分布式处理系统。1553B总线通信系统是由总线控制器、远程终端、总线监控器三部分组成。一个通信总线上最多可以挂32个远程终端,传输介质采用屏蔽双绞线,对噪声等干扰有很好的抑制能力。1553B总线的数据传输率为1Mb/s,在一次消息传输中最多可以传送32个字,所有单次传输的时间较短,具有很好的实时性。

在MIL-STD-1553总线通信系统中,总线接口板是系统的关键部分,其中核心部分的接口电路是总线应用中的主要制约因素。在1553B总线得到广泛应用的今天,国内应用1553B总线协议的通信模块的解决方案多采取基于进口1553B总线协议芯片来开展相关设计,如UT公司的UTl553B协议芯片、DDC公司的高级协议处理芯片BU-61580等,虽然这些芯片能够完成协议功能,但价格昂贵、灵活性差,这些弱点在一定程度上限制了设计能力,因此提出一种新的基于嵌入式方法实现的1553B数据总线接口逻辑。

1 系统总体设计方案

本文采用Xilinx公司的FPGA芯片作为协议处理核心器件,选用TI公司的TMS320C5510作为主处理器负责接收FPGA处理过的数据和调度FPGA的具体操作。总体方案的系统结构如图1所示。

图1 系统结构图

1.1 模拟收发部分电路设计

由于1553B总线上传输的是双极性的差分信号,主处理器不能直接接收来自总线上的数据,所以需要信号调制解调及电平转换电路。

电平转换部分一方面将总线上传输的电平信号转换成标准的CMOS电平供处理器使用,另一方面将处理器发出的CMOS信号变成总线标准进行传输。模拟收发器部分简单地说就是将单极性曼彻斯特编码和双极性曼彻斯特编码相互转换。本文采用HOLT公司的HI -1567PSI,它是一款专门为MIL-STD-1553开发的模拟收发器,供电电压为3.3V,通过隔离变压器连接到总线上。HI-1567PSI是双通道收发器结构,因此要有两个隔离变压器与其相连接。

1.2 总线接口的数字通信部分

数字通信部分是1553B总线接口模块的核心,完成协议数据的收发处理,由可编程逻辑器件Virtex系列芯片和DSP芯片组成。FPGA芯片在模块中起到1553B通道的作用,接收总线上送来的数据并根据协议进行处理之后送给处理器。FPGA模块中开辟了足够空间的FIFO存储处理后的数据,当达到一定数量后,主处理器采用中断的方式读取FIFO中的数据。在本文的设计中,为了便于观察实验结果,将DSP接收到的数据送到串口上进行显示。同样地,DSP将要发送的数据送到FPGA开辟的另一个FIFO中,当每个数据编码结束后通过状态机程序产生FIFO信号的时钟读取下一个数据进行编码,所以这里的FIFO采用的是异步的工作方式。

2 核心模块功能分析

总线接口模块最主要的部分是FPGA实现的功能,其总体功能如图2所示。

图2 FPGA功能图

FPGA中最重要的部分是发送器和接收器,现将这两部分的工作过程做简要分析。

2.1 数字发送器

(1)DSP将要发送的数据依次送到发送FIFO中进行存储,硬件将根据状态机运行情况产生FIFO读时钟读取数据并送到同步头产生器。

(2)根据要发送的是状态/命令字或数据字在同步头产生器中加上相应的同步头,若是状态/命令字则在有效数据前加上3个二进制位,先正后负,正负电平各占1.5bit ,数据字则相反。

(3)奇偶校验器通过将有效数据位的各位进行异或即可实现。

(4)硬件将经过奇偶校验器的数据送到曼彻斯特编码器进行编码,编码器的实现相对较简单。编码时钟采用2MHz,有效数据位和奇偶校验位都采用曼彻斯特码的形式发送,加上同步头共40bit二进制位,使用2MHz的时钟发送到1553B数据总线上。

在数字发送部分控制状态机是保证时序的关键所在,状态机不仅控制发送FIFO的时钟,同时也有效地输出编码的触发信号。状态机的状态转移如图3所示。

图3 状态转移图

FPGA中最重要的部分是发送器和接收器,现将这两部分的工作过程做简要分析。

2.1 数字发送器

(1)DSP将要发送的数据依次送到发送FIFO中进行存储,硬件将根据状态机运行情况产生FIFO读时钟读取数据并送到同步头产生器。

(2)根据要发送的是状态/命令字或数据字在同步头产生器中加上相应的同步头,若是状态/命令字则在有效数据前加上3个二进制位,先正后负,正

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top