基于DSP和FPGA的ARINC429机载总线接口板的硬件设计
机载数据总线 ARINC429在当代的运输机和相当数量的民航客机 (如A310、A300、A600、B757、B767)中有着广泛的应用。
1 ARINC429总线简介
在现代民用飞机上,系统与系统之间、系统与部件之间需要传输大量信息。ARINC规范就是为了在航空电子设备之间传输数字数据信息而制定的一个航空运输的工业标准。
ARINC429(以下简称429)总线采用双绞屏蔽线传输信息,通过一对双绞线反相传输,具有很强的抗干扰能力。而调制方式则采用双极归零制的三态码方式,即信息由“高”、“零”和“低”状态组成的三电平状态调制。429电缆上的信号及经电平转换后的信号如图1所示。429总线每一个字为32位,它的字同步是以传输周期至少4位的时间间隔也就是4位码字为基准的。
图1 429信号及电平转换后的波形
2 系统总体方案
429总线接口板的主要功能是在429信号及相关外设之间起到桥梁作用,它既能接收双极归零制的429信号并将其转换为数字信号送入计算机或其它设备,又可将计算机或其它设备发出的数字信号转换为429信号输出。本文介绍的总线接口板采用FPGA和DSP实现四路429信号接收通道和四路429信号发送通道,且每路通道之间相互独立。在这个接口板中,每两个数据字之间的时间间隔可调,每一个收发通道能单独定义字间隔长度,每个通道校验方式可单独定义为奇校验或偶校验,数据发送可以选择单帧发送或自动重复发送(重复发送某一帧)。
整个接口板由调制电路、解调电路、FPGA、DSP和双口RAM组成,如图2所示。
图2 接口板硬件结构图
3 硬件电路设计
3.1 调制解调电路设计
429信号进入接口板后,首先要把429信号转换为数字电路可以识别的TTL电平。这里采用HOLT公司的HI-8482实现信号的解调,将标准的429总线信号转换成5V TTL数字信号。为了降低干扰,在429总线信号的四个输入管脚分别接入39pF的高精度军品电容;采用HOLT公司的HI-8585芯片实现信号的调制,将TTL数字电平转换为标准的429信号。
3.2 FPGA内部逻辑设计
按照429信号的编码格式、特点、传输规则以及协议要求,选用一片ALTERA公司的ACEX1K型的FPGA发送和接收四路数据。每一路分为接收部分和发送部分。
接收部分的主要作用是通过串/并转换将串行数据转换为32位并行数据,并对收到的数据自动实行差错控制。对于字间隔、位间隔出错等错误能进行自动检测,若无错误,则将数据分两次送至DSP的16位数据总线上,以供读取。接收模块结构框图如图3所示。
图3 接收模块结构框图
发送部分的主要功能是将DSP送入的数据暂存在FPGA内部的FIFO中,等待发送命令。一旦接到发送控制指令,FIFO输出数据并通过并/串转换将并行数据转换为串行数据,同时加入预先设定的间隔。用户可通过写控制寄存器选择发送模式(即单帧发送或自动重复发送)、发送通道延迟设定、发送通道字间隔设定,还可通过读取状态位检查它的工作状态(发送缓冲器空、发送缓冲器满和是否正在发送)。发送模块结构框图如图4所示。
图4 发送模块结构框图
以上介绍的只是一路发送通道和接收通道,由于本系统共有四路独立的发送通道和四路独立的接收通道,故在FPGA中需设置四个接收模块和四个发送模块,通过DSP的地址线来选取其中的一路发送通道或接收通道。
FPGA内部结构是基于SRAM的,因此需要一片配置芯片固化内部逻辑。为了便于调试,采用JTAG模式和被动串行模式(PS)两种配置模式,调试时使用JTAG模式直接将逻辑写入FPGA内部,调试好后再用PS模式将程序写入配置芯片。通过对FPGA和配置芯片上的引脚进行跳线,可选择不同的配置方式。跳线电路如图5所示。
图5 FPGA配置跳线设置
FPGA作为DSP的一个I/O外设,必然要对它的寄存器地址统一编址。在此将FPGA编址在DSP的I/O空间。由于FPGA的接收通道和发送通道是共用DSP的16位数据线的,故接收通道和发送通道的数据寄存器可以占用一个地址。表1是FPGA各通道寄存器分配的地址。
表1 FPGA内部各通道寄存器地址地址 | 00H | 01H | 02H | | 04H | 05H | 06H | | 08H | 09H | 0AH | | 0CH | 0DH | 0EH | 1
通道 | 低字
寄存器 | 控制
寄存器 | 高字
寄存器 | 2
通道 | 低字
寄存器 | 控制
寄存器 | 高字
寄存器 | 3
通道 | 低字
寄存器 | 控制
寄存器 | 高字
寄存器 | 4
通道 | 低字
寄存器 | 控制
寄存器 | 高字
寄存器 |
3.3 DSP与FPGA及外部设备的通信
在整个系统的设计中,DSP主要用于控制FPGA工作、数据中转、与外设主机通信。DSP是整个系统的中枢,控制各个部分协调工作。利用DSP向FPGA写控制字,其中包含帧间隔长度大小等信息,可对FPGA进行控制;另外,根据FPGA的反馈状态,可做出相应的控制调整。考虑到用于控制FPGA的I/O口比较多,选用的DSP是TI公司的TMSLF2407A。TMSLF2407A的复用外围I/O口多达39个,图6是DSP与FPGA之间的具体连接。
图6 DSP与FPGA的连接示意图
DSP提供I/O操作信号/IS、读写选定信号R/W、读使能信号/RD、写使能信号/WE以及地址线低四位A0、A1、A2、A3。通过这些控制逻辑信号可区分四路通道及每路通道的高低字。
DSP和FPGA提供的其它辅助的控制和状态信号还包括:四路发送使能信号/ENTX[0..3],低电平有效;四路发送停止信号/TXT[0..3],低电平有效;四路接收通道清零信号/CHACLRN[0..3],低电平有效;接收数据到达信号/RER[0..3],用于告知DSP准备接收某一路通道已经到达的数据;发送数据准备好信号/TXR[0..3]信号,用于告知各个发送通道中是否还有未发出的数据暂存在FIFO里,低电平表示没有数据;发送通道FIFO满信号FUL[0..3],高电平有效;GLOBCLRN信号,用于FPGA初始化时对其内部进行全局清零;TESTREQ信号,用于对整个系统的自检。
整个电路板是通过双口RAM与外设主机进行通信的,双口RAM负责暂存外设要发送的数据和暂存FPGA处理过的数据。可把它大致分为8个区,每一个区负责存放四路接收通道和四路发送通道中的一路数据及控制字。利用双口RAM左右两中断的信箱可指挥接口板进行相应的操作。
4 软件设计
软件的设计主要是DSP编程,DSP程序的主要任务就是初始化、管理DSP外围电路、控制FPGA的收发数据以及与外设交互。DSP的主程序流程图如图7所示。
整个接口电路板调试通过后,经过测试可以同时接收和发送四路ARINC429信号。这就解决了以往接口电路板通道数太少的瓶颈。利用FPGA密度高、结构灵活、设计时间短和可编程的优点,实现了对某路ARINC429信号的独立处理,再加上TI公司2000系列DSP丰富的I/O接口和较普通单片机更快的速度,实现了对FPGA的控制管理及与外设的通信。因此本系统对当今民用飞机机载数据通信总线互联提供了一种新型、先进的方法,具有相当普遍的实用意义。
图7 DSP主程序流程图
|