在航空电子综合化系统中,快速、有效的数据传输对整个航空电子系统的性能有很大影响,因此数据总线被称为现代航空电子系统的“骨架”。ARINC429是航空电子系统之间最常用的通信总线之一。要在计算机上实现与机载设备的ARINC429总线数据通信,必须实现429总线与计算机总线之间的数据传输。本文设计了基于USB总线的便携式ARINC429总线通信设备,并通过实际运行测试,对该设备的可靠性和稳定性进行了验证。
1系统总体设计
1.1系统功能分析
该系统主要分为3大功能单元:中央控制单元、429数据收发单元、429电平转换单元。系统的功能结构框图如图1所示。中央控制单元与PC机进行USB通信,将USB总线转换为自定义总线,并根据PC机发来的任务指令,通过自定义总线(数据线、地址线、控制线)控制429数据收发单元完成相应的429总线数据收发任务。
1.2主要器件选择
中央控制单元负责与PC机进行USB通信,并控制429数据收发单元完成通信工作。该单元采用SiliconLabs公司推出的C8051F340单片机。它是完全集成的混合信号SoC级MCU芯片,片内集成有1个采样率为200ksps的10位ADC、1个可编程增益放大器、2个电压比较器、1个电压基准、 1个具有5个捕捉/比较模块的可编程计数器/定时器阵列(PCA)、5个通用的16位定时器、40个通用数字I/O端口,以及1个片上64 KB的Flash存储器和4 KB的RAM,支持多种总线通信接口(I
C
1.2.2 429数据收发单元
目前市面上的429通信专用芯片(如HS-3282、 DEI1016、HI-8585)只能实现1路发送或接收,要满足本设计需求就需要8组429通信专用芯片(共计16片)。无论从成本上,还是从设计本身的可行性、可靠性来考虑,都是难以实现的。本文采用Actel公司的ProASIC3型FPGA,将设备的核心部分——429通信协议模块在FPGA中实现。这样使整体设计更加简洁,充分体现了模块化设计和SoC设计思想,同时大大降低了设计成本。
Actel公司的ProASIC3型 F="PGA采用独一无二的Flash架构"。与基于SRAM架构的FPGA不同,它掉电后数据不易失,无需配置芯片,从而实现了真正意义上的单芯片设计思想。同时,它支持FlashLock、AES加密技术,安全性强;最高支持350 MHz单端翻转率和700 MHz的差分信号;支持19种I/O电平标准。
2硬件设计
C
由于C
C
2.2 429电平转换电路设计
2.2.1 429发送通道电平转换电路
429发送通道电平转换电路的功能是将ProASIC3产生的CMOS电平信号转换为429电平信号。目前有几家公司专门从事429通信芯片的生产,其中也包括429发送通道电平转换芯片。采用这种专用芯片的优点是接口电路设计简单,缺点是芯片价格昂贵。本设计的需求为8路发送通道,从成本上考虑,不易采用专用芯片,而是利用集成运放设计发送通道的电平转换电路。图3为429发送通道电平转换电路。图中的A和B是由ProASIC3产生的信号,TXA和TXB是经电平转换电路调理后形成的ARINC429信号。
表1为429发送通道电平转换电路的功能表:
该电路设计采用了Linear公司的双运放集成芯片LT1497。该芯片的最大特点为输出功率大,最大输出电流为±125 mA,完全满足ARINC429通信标准的功率要求。采用NI公司的Multisim10进行电路仿真,并实际运行测试。测试表明,仿真结果与实际运行结果一致,完全符合ARINC429通信标准要求。
429接收通道电平转换电路的功能与429发送通道电平转换电路的功能完全相反,它是将429电平信号转换为CMOS电平信号,以便让ProASIC3对其进行处理。接收通道的电平转换采用HOLT公司的HI-8448实现。HI-8448为8路429接收芯片,可负责8路429接收通道的电平转换。
3 软件设计
系统软件程序主要由ProASIC3内核、C8051F340固件程序和上位机控制界面程序3部分组成。
3.1 ProASIC3内核设计
ProASIC3 内核开发是在Actel公司提供的LiberoIDE 8.5集成开发环境下完成的。该环境集成了目前业界最权威的几大FPGA开发软件,其中综合工具采用了Synplify公司的Synthesis
C
3.3 上位机控制界面程序
上位机控制界面程序的开发在VC 6.0环境下完成。作为人机交互界面,其基本功能有:对设备进行复位;与设备进行USB通信;设置429通信的波特率、校验方式、数据长度;设置数据发送方式(手动或定时);设置定时发送时间;显示接收数据。
在上位机控制界面程序中,与设备间的USB通信是通过调用USBXpress工具提供的API函数完成的。USBXpress工具提供了10个API函数,其中最重要的就是SI_Write()和SI_Read()两个函数,它们分别实现写USB总线操作和读USB总线操作。
4 结 论
目前,该设备已投入某型机载设备的地面内场检测维护工作中。本文利用Silicon Labs公司的C