APP下载

ARINC429总线协议转换器的设计与实现

2014-02-03薛红琳贵虹云洪学寰吴钊君

自动化仪表 2014年5期
关键词:驱动程序实时性中断

薛红琳 贵虹云 洪学寰 吴钊君 王 强

(哈尔滨工业大学航天学院,黑龙江 哈尔滨 150001)

ARINC429总线协议转换器的设计与实现

薛红琳 贵虹云 洪学寰 吴钊君 王 强

(哈尔滨工业大学航天学院,黑龙江 哈尔滨 150001)

为了解决虚拟航空验证系统中航电设备仿真数据协议帧兼容性和实时入库的问题,设计了一种工作于RTX实时环境下的ARINC429总线协议转换器。硬件设计采用FPGA+DM642结构,使用FPGA对ARINC429总线信号进行驱动,采用DM642对协议进行编码和解码,并将数据返回到PC端;在PC端使用RTX实时驱动完成上位机数据的交互,以保证协议转换的实时性。经测试,该设计方案能够得到正确的协议转换结果,并满足了虚拟验证系统对实时性的要求。

ARINC429总线 协议转换器 DM642 实时性 编码 解码

0 引言

在航空虚拟验证中,需要将不同的航电设备连接到系统中,并对航空系统进行半实物仿真[1]。ARINC429总线是美国航空电子工程委员会提出并制定的一种航空电子总线,为航电系统之间数字数据的传输定义了航空工业标准,是各系统间或系统与设备间数字信号传输的主要路径。

当虚拟试验验证系统中的航电设备进行数据传输时,除了遵循ARINC429总线标准外,通常还会根据各设备的特点,将数据打包成不同的协议帧形式。不同协议帧的设备间进行数据交互时,需要对协议帧进行转换[2]。此外,传统的 ARINC429总线通常工作在Windows环境下,由于Windows系统的时钟精度低[3],存在航电设备仿真数据难以实时入库的问题。

针对以上问题,设计了基于RTX实时环境的ARINC429总线协议转换器。详细介绍了协议转换器的软硬件设计,并通过试验对协议转换器进行了测试。测试表明,该设计方案可以很容易拓展到类似的对实时性有较高要求的应用场合,具有很高的工程应用参考价值。

1 协议转换器总体方案

航空虚拟验证系统通常运行在工业控制计算机中,航电设备经过协议转换器后可通过串口、并口、USB接口或PCI接口与工控机进行数据交互。相对于另外三种接口,PCI总线接口在速率和稳定性方面都有极大的优势。本文设计的协议转换器将通过PCI总线与工控机进行数据交互。在协议转换过程中,需要进行大量数据的处理,包括协议的编码和解码,这要求协议转换器具有较强的运算能力。DSP处理器在对大量数据做运算时,相对于ARM和传统单片机都具有很大优势,因而设计的协议转换器将采用DSP作为主控核心,完成协议的编码和解码工作,并负责与PCI接口的数据交互。外围功能芯片的电气驱动则通过FPGA来实现,由于FPGA出色的可编程能力,即便是对系统进行升级或者外围芯片的更换,也可以通过FPGA的再编程轻易实现。

传统的航空虚拟验证系统工作在Windows环境,具有良好的人机界面,但实时性难以满足。美国Ardence公司在不改变Windows内核的前提下,提供了一个附加的实时内核模块RTX。RTX能够与Windows内核一起工作,进行实时任务的调度和执行[4]。本设计采用了Windows+RTX的开发模式,一方面可充分利用Windows提供的丰富的图形接口,最小限度地改变已有的虚拟验证系统;另一方面,利用RTX提供的高精度时钟,实现数据的实时入库,以满足虚拟验证系统对实时性的要求。

ARINC429航空总线协议转换器总体方案如图1所示。

图1 协议转换器总体方案Fig.1 Overall program of the protocol converter

2 协议转换器硬件设计

在设计过程中,采用了模块化设计思想,将协议转换器分为母板和子板两部分,并通过双排插针相连,分别对子板和母板进行设计和调试。

母板是协议转换器的核心部分,采用DSP+FPGA的设计方式,实现方案如图2(a)所示。协议转换器子板实现了独立的四通道ARINC429总线接口,其设计方案如图2(b)所示。

图2 协议转换器硬件设计图Fig.2 Hardware design of protocol converter

选用TI公司的C6000系列高速 DSP——DM642作为主控芯片[5],其集成了32位的PCI接口。设计的工作主频为600 MHz,以确保协议转换器对运算能力的要求。FPGA选择Altera公司的EP2C35F672C8,其LE单元、储存单元、可用I/O均能够满足协议转换器的要求。设计了32 MB的SDRAM用于运行DSP程序,64 MB的Flash用于储存DSP程序、FPGA配置信息和用户通过协议转换器进行配置的协议转换集信息。FPGA的I/O口与DM642的EMIF接口相连,并映射到DM642的CE1内存空间。在DM642中,通过对CE1空间的读写实现对FPGA的访问。

采用了HOLT公司的HI3585专用协议芯片[6-9]。该芯片拥有(32×32)B的接收FIFO和发送FIFO,可避免传输大量突发数据时发生的丢包问题。HI3585具有单独的一发一收通道,并内置模拟驱动器和接收器,省去了单独设计模拟驱动和接收电路的麻烦,也避免了模拟电路设计不当对数字电路产生的干扰。HI3585的SPI总线接口通过双排插针连接到母板FPGA I/O口,在FPGA中实现SPI控制逻辑,便可完成对HI3585的控制。

3 协议转换器软件设计

3.1 协议转换基本思路

ARINC429总线规定一次传输的数据长度为32 B,若需要在一次传输中的数据位数大于32 B,则必须将数据编码成协议帧后进行传输。在航空虚拟验证系统中,常见的协议帧由帧头、帧长、数据元素、校验和帧尾五个部分组成。数据元素一般都具有具体的物理含义,如飞行器的三维姿态信息、航空发动机工作状态信息。由于不同的航电设备传输的数据元素通常表示不同的物理含义,数据类型和数据编码格式也不一致,因此在对设备的协议帧进行转换时,通常需要对协议帧中的数据元素进行偏移或系数放大等操作。在进行协议转换时,根据帧头的不同,对不同的协议帧进行匹配,并根据帧头所对应的协议帧的物理含义,对协议帧中表示物理信息的数据元素段进行相应的偏移或放大等操作,以完成不同设备间协议的转换。

3.2 DSP程序设计

DSP程序在CCS2编程环境中开发。DSP需处理的数据流可归结为两种。一种是下行数据流,由Win32上层应用通过RTX驱动程序,将数据传送到协议转换器经过转换后发送到ARINC429总线上。另一种是上行数据流,协议转换器从ARINC429总线上接收到数据并经过转换后,返回到Win32上层应用中。在DSP程序设计时,下行数据流在PCI中断服务函数中完成处理,上行数据流在DSP外部中断服务函数中进行处理。

在DSP程序中,以CSL_API形式调用DM642的库函数。使用PCI_intEnable()初始化PC机对DM642的PCI中断,使用IRQ_enable()将FPGA对DM642的中断配置到DM642的外部中断5;接着使用IRQ_setVecs()对DM642的中断向量表进行配置,并开启全局中断使能,DM642进入空闲模式,等待PC机对DM642的PCI中断或FPGA对DM642的外部引脚中断。在中断函数中会动态加载Flash中的协议集配置信息,并据此完成编码和解码工作。处理的流程如图3所示。

图3 协议转换器中断处理流程图Fig.3 Interrupting processing of protocol converter

3.3 RTX实时驱动设计

RTX实时驱动程序通过PCI总线完成对底层硬件的操作,同时需要与Win32环境下的上层应用软件进行数据交互。在Visual Studio2005中,利用RTX提供的“RTX Driver Wizard”建立PCI设备驱动程序构架,得到总体设计思路如图4所示。

图4 RTX驱动构架图Fig.4 Framework of RTX driver

在RTX驱动程序中,首先根据设备的Vendor ID和Device ID,对PCI总线进行查询,成功匹配后将获得设备总线号,然后通过初始化函数获得设备的硬件资源,如内存范围、中断信息等,最后将其存储到PciData类型的结构体中。根据获得的PciData信息,依次利用RtTranslateBusAddress()和RtMapMemory()两个函数,将DSP的内存空间转换为PC端可以访问的虚拟内存空间。RTX驱动就可以根据基地址加上偏移地址的形式,对DSP中的内存空间进行访问。利用RTX提供的ATTACH_INTERRUPT_PARAMETERS结构体,对中断资源进行配置,并注册中断服务函数。最后,在完成对设备的所有操作后需要释放硬件资源,并彻底退出RTX驱动进程。

RTX驱动程序要实现Win32进程与RTX进程间的通信,主要通过事件(Event)同步和共享内存(Shared Memory)机 制 实 现[6,10]。在 RTX 驱 动 中,使 用RtCreateEvent()函数创建同步事件,使用RtCreateSharedMemory()函数从RTX的非分页内存区中申请共享内存。在Win32进程中,则通过RtOpenEvent()和RtOpenSharedMemory()对同步事件和共享内存进行操作,以实现RTX进程与Win32进程间数据的交互。设计流程如图5所示。

图5 RTX数据共享流程图Fig.5 Data sharing of RTX

3.4 上层应用软件设计

在虚拟航空验证系统中,上层应用软件主要用于人机交互。为了对虚拟航空验证系统进行模拟,编写了Win32环境下的控制台程序,用于接收用户的信息输入,并将返回数据进行回显。设计时采用多线程技术,开辟了两条独立的线程。其中一条用于监控用户的输入命令;另一条用于与RTX驱动程序进行事件同步,完成数据交互,并监控底层硬件返回突发情况报警信息。

4 协议转换器测试

协议转换器上有四路独立ARINC429总线接口,可构成回环测试线路。参照哈尔滨工业大学研制的单轴串口转台协议格式,制定了基于ARINC429航空总线的单轴转台协议,用于模拟飞机的偏航角。单轴转台的部分协议描述如表1所示。表1中,C9、C3、C2和C4是字符格式的数据,分别为对应转台协议的帧头。

表1 单轴串口转台协议描述Tab.1 Protocol description of uniaxial serial turntable

本文使用了多次回环测试的方法,循环次数N取多组不同的值,并求取一次回环平均时间。测试流程如图6所示。

图6 实时性测试流程图Fig.6 Test process for real-time performance

使用本文设计的上层应用软件对协议转换器进行测试。以第一路ARINC429接口作为发送设备,通过控制台将速率指令发送到第二路ARINC429接口中,同时使用控制台将第二路数据回读并显示,得到正确的结果。本文同时对单轴转台的另外12条协议进行了测试,结果正确,满足预计的设计要求。与此同时,利用RTX提供的高精度时钟,可精确测量一个处理流程所占用的时间。多次测试得到平均一次的回环时间为0.25 ms。

5 结束语

本文所提出的利用DSP、FPGA和RTX实时环境实现ARINC429航空总线协议转换的方法,充分利用了FPGA和DSP的高速数据处理能力,并结合RTX内核的实时处理能力,使得协议转换器能够满足高实时性要求的场合。一方面,协议转换器的主要数据处理部分由DSP和FPGA实现,具有极高的实时性,减轻了PC端上位机的运算量;另一方面,通过Windows系统中嵌入的RTX实时内核,使得在Windows环境下进行实时系统的开发变得更加容易。本文所提出的设计方案可以很容易拓展到类似的对实时性有较高要求的应用场合,具有很高的工程应用参考价值。

[1]支超有,唐长红.现代飞机系统虚拟试验验证技术发展研究[J].航空科学技术,2010(6):25-28.

[2]黄敬礼.基于DM642的实时多协议转换器设计[J].现代电子技术,2011,34(22):147-161.

[3]时未东,杜承烈,宋翠叶.Windows实时扩展技术研究[J].计算机工程,2011,37(23):63-68.

[4]李伟英,吴成富,王亮,等.基于RTX实时环境ARINC429航空通信总线驱动设计与实现[J].测控技术,2011,30(1):79-86.

[5]陈建平,吴国庆.TMS320C6000系列DSP的最新进展[J].南开大学学报:自然科学版,2006,5(4):67-70.

[6]张蓓蕾,夏伟杰,周建江.基于RTX的舵机控制系统研制[J].电子科技,2011,24(11):77-79.

[7]李辉,黄敬礼.一种PCI总线ARINC429通信卡实现方法[J].自动化技术与应用,2010,29(7):73-75.

[8]胡志强.基于FPGA的ARINC429总线接口芯片的设计与实现[J].测控技术,2002,21(1):65-69.

[9]李寰宇,王勇,刘安.基于PCI的多通道ARINC429总线接口卡设计[J].光电与控制,2009,16(2):12-15.

[10]孙继红.RTX技术在半实物仿真中的应用及开发[J].计算机仿真,2010,27(8):83-86.

Design and Implementation of the ARINC429 Bus Protocol Converter

In order to satisfy the frame compatibility of protocol and storage in real time of simulation data for avionics equipment in virtual aviation verification system,the ARINC429 bus protocol converter working under RTX real time environment has been designed.In hardware design,FPGA+DM642 structure is adopted,FPGA is used for driving the ARINC429 bus signals,and DM642 is used for protocol encoding and decoding,and returning the data to PC.In PC,to guarantee real time performance for data exchange,RTX real time driving is used.Through tests,it is found that the design scheme can provide correct protocol conversion result,and meet the real time requirement for virtual verification system.

ARINC429 bus Protocol converter DM642 Real time performance Encoding Decoding

TN919+.3

A

修改稿收到日期:2013-09-10。

薛红琳(1990-),女,现为哈尔滨工业大学自动化专业在读硕士研究生;主要研究方向为嵌入式硬件开发与测试。

猜你喜欢

驱动程序实时性中断
“单片机中断概述”微课教学设计
阻止Windows Update更新驱动程序
基于FPGA的中断控制器设计*
Linux中断线程化分析及中断延时测试
计算机硬件设备驱动程序分析
跟踪导练(二)(5)
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
可编程控制器的实时处理器的研究
妙用鼠标驱动