捷联惯导中的航姿计算机实现数字平台导航,需要在复杂运算的同时还能够高速、准确地完成多种传感器测量数据的采集以及航姿结果和系统状态的传送。通常的做法都是用一片或多片 DSP 芯片来完成,但是当数据接口较多而且数据传输频率较高时,这类系统的实时性就难以得到保证;而 FGPA 具有丰富的硬件资源,能够真正实现多模块并行工作,而且可以达到较高的工作频率。另外,用 FPGA 设计航姿计算机,还具有以下突出的优点:低成本、低功耗、小体积、可重新编程、升级方便、VHDL 设计电路可复用等。本文详细介绍了在接口较多的航姿计算机中,怎样设计 FPGA 使得多种通讯接口功能都能实时可靠地实现,具有实际工程意义。


1、系统总体设计

图 1 为该捷联航姿系统的硬件结构框图。该系统需要高速、实时地采集多种传感器(包括大气传感器、IMU、磁罗盘)的测量数据,以及一些有关的模拟量,用于 DSP 中高精度的航姿解算,同时也需要将航姿信息和系统信息发往多个设备(包括飞参记录仪、显示仪表和 DS)发送。采集数据需要同时用到的接口包括 ARINC429、RS422、SPI、与 DSP 并行接口等多种接口;如此多数量、多种类的接口的完成还必须保证准确性和实时性。这整个系统的时序、逻辑控制都是由 FPGA 完成的,DSP(选用 TI 公司的 TMS320C6713)作为从处理器专门用于航姿解算。本系统中选用的 FPGA 芯片为 ACTEL 公司 PA 系列中的 APA300 芯片,用 VHDL 语言在 LibroIDE 环境下对该芯片进行开发。

 

 

2、多种工业接口的 FPGA 实现

(1)RS422 通讯接口。RS422 标准是利用差分传输方式提高通信距离和可靠性的一种通信标准。该航姿计算机需要用 RS422 接口与 IMU、大气传感器、磁罗盘、无线电航表等六个外部设备通讯。由于 RS422 可以支持双工工作模式,为了充分利用资源,因此设计了四个完全相同的并行的接口模块,其中每一个接口模块都是通过 FPAG 控制 MAX3140 芯片得以实现(如图 2);同时出于设计效率的考虑,只设计了一个通用的实体,而让每一个控制模块都作为该实体的一个实例。这样,虽然这四个模块的结构完全相同,但是在顶层实体中施加不同的控制,就实现了两个单工和两个双工的工作模式。该通用的实体按照 MAX3140 的工作时序图,通过控制和监测 UART 的五个管脚(SCLK 数据接收时钟、CS 片选信号、DIN 控制数据输入、IRQ 中断、DOUT 数据输出),完成对芯片的上电自检和对信号的接收发送;顶层实体并行地控制四个实体的工作,从而互不影响地实现了上述多路信号的接收和发送。

 

 

(2)ARINC429 通讯接口。ARINC429 协议规定了航空运输工业、航空电子系统等系统间的数字数据传输标准,是航空系统电子通讯中一种重要的接口。本系统需要通过 ARINC429 接口接收主惯导的测量数据,同时通过 ARINC429 接口将飞行参数发送给记录仪。出于对通讯可靠性的要求,本设计中同样采用控制接口制芯片的方式实现;通过对市面上为数不多的 429 芯片进行长期的试验验证,最终采用美国 HARRIS 公司的 HI-3584 和 HI-8585 芯片组合的形式。该芯片也支持双工模式。在 FPGA 中按照 HI-3584 的工作时序图,设计了一系列并行进程,用于控制和监测 HI-3584 的复位信号、发送接收时钟信号、读写控制信号和 16 位的数据信号(如图 3)。从而完成对 HI-3582 的上电自检、一个通道 429 信号的接收和一个通道 429 信号的发送。

 

 

(3)SPI 接口。SPI 接口是一种高速、串行、全双工、同步传输方式。一般由一个主设备和一个或多个从设备通过中断、时钟、输入数据、输出数据和片选信号等 5 个管脚实现。本设计需要用 AD 采样芯片采集模拟量,所选的 AD 芯片就是以 SPI 方式与 FPGA 通讯的。该 AD 采样芯片为 TI 公司的 TLV2548 芯片,8 通道、12 位、采样频率 200ksps。在 FPGA 中按照 TLV2548 的工作时序图,设计了一系列并行进程,用于控制和监测 TLV2548 的中断信号、接收时钟信号、片选信号、数据输入信号和数据输出信号(如图 4)。从而完成对 8 路模拟量的采集。本设计最初选用外部参考,发现用于分压的精密可调电阻会随时间改变阻值,较严重影响精度,因此最后使用内部参考,真正确保了模拟量的可靠性。另外,所用的内部晶振提供高频采样,使得数据更新率高于 1M,从而保证了数据的实时性。

 

 

(4)与 DSP 的并行接口。并行接口是最常用的一种通讯方式之一。FPGA 和 DSP 之间的数据通讯通过 16 位并行接口完成(原理图如图 5)。首先,根据 DSP 的时序,系统上电后需要对 DSP 进行不小于 200ms 的复位。在系统正常工作时期,当 WE=0 写有效、CE1=0 片选有效、 a21=1 数据有效时,FPGA 从总线上读取 DSP 的数据,当 OE=0 读有效, CE1=0 片选有效, a21=1 数据有效时,FPGA 将数据放在总线上等待 DSP 读取。FPGA 读、写数据都根据 DSP 的 EA 信号来标识所操作的数据地址。虽然系统中的数据量比较大,但是为了提高实时性和可靠性,在 FPGA 中没有使用 FIFO 或者 RAM 来存储数据,而只是用 FPGA 中的变量来临时存储,本设计中也最终证明了该设计的可用性,这样也让 FPGA 的硬件资源更合理利地得以使用。

 

 

3、整体时序的实现

本系统的实时性和复杂性对于正确实现总体时序和工作逻辑提出了比较大的挑战。现从以下几个方面说明本设计的实现方法:

 

1 高速实时性:总体的并行设计,各个通讯模块几乎完全独立地工作,互不占用资源,从而使得高效性和实时性的要求得到了极大地满足。

 

2 总体时序有序:该航姿计算机的整体时序和整体逻辑都是让 FPGA 中的顶层实体来控制实现的。系统大致时序和逻辑如下:上电后,FPGA 控制系统完成各部件的上电自检后,各接口开始并行工作,按照自己的工作时序接收、发送数据。其中,IMU 数据大约每 10ms 发送一次,FPGA 每次接收完 IMU 数据后,与 DSP 通过并行接口进行一次通讯。FPGA 将最新的传感器测量值发送给 DSP,而 DSP 将最新的航姿信息回传给 FPGA,最终 FPGA 通过 ARINC429 接口传给外部。这样的设计保证了系统时序稳定、逻辑可靠。

 

3 数据准确性:数据的准确也要求考虑到具体硬件上的问题。由于 FPGA 中的逻辑门是有时间延迟的,在这样实时的系统中就必须严格考虑门电路的延时,否则,很容易出现如下类似的一些问题,例如,把刚接收到一组测量数据赋给变量是需要几纳秒到十几纳秒的时间来稳定的,如果此时正好遇上操作改变量的时钟触发,偶尔就会引起野值数据,这些不确定的野值随时可能造成整个航姿结算的错误,因此需要根据具体时序修改,以保证杜绝这类问题。

 

该系统的 FPGA 设计已经经过模拟数据仿真试验、跑车试验得以验证,在数据准确性、实时性方面都得到了较好的满足。