文献标识码:A
DOI:10.16157/j.issn.0258-7998.2016.10.038
中文引用格式:王泉,孙海洋,邵志阳,等. 一种基于FPGA实现的ARINC659总线分析仪设计与实现[J].电子技术应用,2016,42(10):146-148,152.
英文引用格式:Wang Quan,Sun Haiyang,Shao Zhiyang,et al. A design and implementation of ARINC659 protocol analyzer based on FPGA[J].Application of Electronic Technique,2016,42(10):146-148,152.
0 引言
航空电子系统综合化的发展不断提高,对系统的安全性、容错性、实时性要求越来越高。底板总线是航空电子系统中各在线可更换模块(LRM)间数据传输不可缺少的关键部分。航空系统综合化复杂度的增加使得如何高效监控总线数据行为、实时对数据分析、进行故障诊断及定位成为航空电子系统面临的重要问题。提供能触发瞬态监控分析LRM之间通信状态的系统将会大大提升航空电子系统维护效率,减少系统故障维护时间,对提升装备维修性和可用性将发挥重大作用[1]。
本文提出了一种基于FPGA实现的ARINC659总线分析仪系统设计方案,可完成对ARINC659总线数据监测、故障注入、仿真测试等功能。
1 方案设计
1.1 传输机制
ARINC659是一种串行总线,采用4条串行总线通过半双工通信与交叉校验的通信方式,它减少了硬件电路,提高了可靠性。ARINC659是双总线组成的双双配置,总线对A、B分别有“x”“y”两条总线,每条总线都有一条时钟线和两条数据线,每次传送2个数据位,完整的总线由12条线组成。
ARINC659采用双总线交叉检测容错机制,接收到数据首先进行相应的解码,根据接收到的数据有效性及解码后的4条总线数据进行交叉(AX=AY、BX=BY、AX=BY、AY=BX)比较,比较结果根据调用可用性表或者完整性表判断数据的有效性。
命令表主要完成总线的初始化、预译码命令,对系统内各节点间的通信和节点各任务的配置。
1.2 工作原理
总线分析仪与其他LRM模块一样都是挂接在ARINC659总线上,图1为总线分析仪在系统中的应用,总线分析仪与系统中其他的LRM具有相同的总线命令表,如果总线分析仪被设置为分析模式,当系统上电总线开始进行数据通信,任何一个LRM向总线发送数据时,总线分析仪就开始全部接收总线上的数据,并将数据消息与同步消息进行分析处理,通过主机监控界面实时显示总线数据的状态,总线分析仪只接收总线上的数据,不对总线上的数据进行发送或者更改,ARINC659总线规定一个窗口只能有唯一一个发送器,或者后备发送器对总线进行数据发送,允许多个设备接收总线的数据,配置命令表配置总线分析仪只作为接收状态。总线分析仪通过总线收发器接收总线数据并对总线数据采用240 MHz的时钟频率采样,采集模块对数据做前端处理后,传送到处理器做总线协议解析与数据分析,通过以太网将总线状态传输给应用层软件,应用层对数据处理后通过GUI界面实时显示总线状态信息。当总线分析仪作为故障注入模式时,总线分析仪作为输入设备对总线的数据进行断路故障设置或者拉低故障设置对总线注入错误导致总线错误[2]。
总线分析仪上电初始化完全遵循ARINC659总线上电初始化与同步规范,上电初始化完成后处于监控总线状态,将总线上的数据实时传输给主机完成总线数据的分析与显示。
1.3 硬件设计
ARINC659总线分析仪主要由电源电路、复位电路、总线收发器电路、总线继电器电路、数据采集单元(FPGA及配置电路)、CPU数据处理单元组成。如图2功能框图,数据采集单元完成总线数据的高频数据采样;CPU数据处理单元负责总线数据的处理与实时传输总线状态到宿主主机。CPU数据处理单元要求具有一定存储器的CPU模块,具备PCI接口和以太网。
电源电路是整个系统的供电模块,提供整个系统各芯片工作所需要的工作电压。
复位电路采用手动复位、上电复位、软复位3种复位方式实现系统复位机制。
总线收发器电路主要负责数据的接收,该电路包括4路独立的总线,每个总线收发器只接收一路总线数据,目前市场上大部分的659系统都采用BTL电平,因此收发器采用TTL电平转化BTL电平功能的总线收发器,设计中BIUy控制AX、BX总线收发器的接收使能,BIUx控制AY、BY总线收发器的接收使能。
继电器电路是完成对总线状态更改的故障注入电路,继电器的状态由FPGA控制器控制。
数据采集单元是总线分析仪的关键部分,主要由一片FPGA以及外围配置电路实现,FPGA作为采集模块的核心主要完成功能如下:
(1)采样单元:采样单元采用高频时钟进行659总线数据采样,由于659总线采用大电流驱动,总线数据毛刺可能比较大,这样采样频率要求比较高,设计中采样频率是总线工作频率的8倍进行数据完整性采样。采样单元实时采样总线数据,并对采样数据打本地时标,以约定格式输出。
(2)滤波电路:采样到的数据首先进行数据恢复与去毛刺处理。
(3)检测单元:对滤波后的数据检测单元首先判断是同步信息还是数据,如果为同步信息则直接传送监控控制单元,如果为数据段则将接收到的数据解码进行数据校验,数据校验依据可用性表或者完整性表根据接收到数据的有效性及4路总线交叉比较的结果判断,校验后的数据与校验状态进行数据拼接,拼接成32 bit(一个字)再传送给监控控制单元。
(4)监控控制单元:监控控制单元主要完成数据消息、同步消息与CPU数据处理单元之间的实时数据通信,它将采样单元与检测单元采集校验的数据与检验状态实时地传输给CPU处理模块单元,以及控制故障注入的继电器电路对总线注入“0”、“1”、断开等故障。
(5)主机接口:根据总线数据的传输速率,本设计采用33 MHz×32 bit的PCI总线接口,PCI总线接口直接集成Xlinx PCI LogiCORE,其设计完全兼容33 MHz×32 bit总线协议规范,CPU数据处理单元通过采集模块的DPRAM与相关寄存器完成高速率的数据通信[3]。
CPU数据处理单元是整个分析仪的核心处理器,主要处理捕获模式与触发模式,根据应用层的约束条件进行不同模式的数据处理后通过以太网将数据传输给应用层软件。
1.4 系统软件设计
ARINC659总线分析仪软件平台开发:宿主机采用PC,系统通过以太网接口实现与宿主机的通信,分析仪软件由分析仪驱动软件、API软件包、帧描述语言编辑器、传输软件以及上位机应用软件组成。软件架构如图3所示。
应用软件主要提供一个简单的人机界面,用户通过直观统一的GUI应用软件控制其工作,提供659数据分析、659数据监控、659数据捕获、659总线故障注入等功能。
(1)数据分析功能:提供线速的659同步消息和659数据消息的接收功能;对659数据按照时标进行实时解析与同步显示。
(2)数据监控功能:可统计接收到数据的状态,数据流量监控;监控分析数据的错误状态,错误统计;数据链路中是否存在不可靠数据或者总线存在毛刺;版本号是否匹配、帧切换中接收到的不可校正的数据、发送使能是否匹配;通过对数据消息与同步消息的分析判断同步脉冲是否错误,实现对系统总线实时状态跟踪分析功能。
(3)数据捕获功能:可提供数据在线实时捕获与触发捕获,将记录数据存储到主机硬盘,数据存储由软件实现。
(4)总线故障注入功能:故障注入是通过控制器控制每路总线设计的继电器实现对总线“0”、“1”、断开等3种状态的故障注入,对于每一组信号,除了单独的信号注入故障以外,还包括相互粘连的情况,共有3种粘连情况:每一组的CK与D0粘连,D0与D1粘连,CK、D0、D1粘连。默认的情况下,所有的信号没有故障注入,处于正常连通的状态。图4所示为软件故障注入界面设计。
驱动软件是作为传输软件与应用软件的通信接口,它包括CPU系统软件驱动、PCI接口驱动、以太网驱动以及通信软件,CPU系统软件驱动提供采集模块的控制、中断服务、状态汇报、不同模式的数据处理、应用程序等服务,以太网驱动提供以太网接口的数据解析、API软件等,PCI接口驱动完成PCI接口的初始化、总线采集模块与CPU之间的通信等,通信软件实现总线数据的传输。
传输软件作为分析仪的底层软件,主要完成总线数据的传输及总线命令表的编写。ARINC659总线完全基于659总线命令表进行总线周期性活动,帧描述语言命令用于定义ARINC659总线数据帧中每个窗口操作、窗口长度、命令参数等。
2 功能验证
按照图1的环境搭建方式,对总线系统的各个节点进行不同状态的故障注入,通过总线分析仪对总线进行实时记录、捕获、监控分析[4]。总线分析仪根据主机的命令来启动或者停止不同模式的数据采集,系统采用240 MHz的采样频率对总线数据与同步消息进行实时的采用,能准确捕捉与记录初始化同步、长同步、短同步以及总线数据,并标识对应的描述符,通过命令表将描述符传输到主机,主机对传输到的数据进行统计与分析并实时显示到GUI界面。总线消息传输仿真时序如图5所示。
本设计采用CPU8245主机对不同的系统进行大量的故障注入与监控分析试验验证,验证结果与设计功能相一致,完全取代了昂贵仪器设备、人员耗时的分析,高效地解决了ARINC659总线系统出现的各种总线故障问题。
3 结束语
本文立足于航空系统领域经常出现的ARINC659总线系统故障、监控分析等问题,提出一种针对解决ARINC659总线系统现场故障问题提供的一种快速定位与分析总线状态的总线分析仪系统,同时该分析仪具备故障诊断、信息处理、实时监控、数据捕获及故障注入等功能,减少了系统的复杂度,为航空ARINC659总线系统高效、实时地分析总线状态提供一种有效的手段。
参考文献
[1] A rinc specification 659 backplane data bus[C].The Airlines Electronic Engineering Committee.Seattle:Blake Island,1993.
[2] 强新建,田泽,淮治华.基于ARINC 659的FPGA原型验证平台的构建与实现[J].计算机工程与设计,2010,31(12);2726-2728.
[3] 汪迪娜,樊晓桠,安建锋.ARINC659总线监控卡的设计与实现[J].微电子学与计算机,2010(11):168-172.
[4] 田泽,刘宁宁,郭亮,等.ARINC659底板数据总线及关键技术[J].计算机应用,2013,33(S2):49-53,56.