摘 要: 介绍一种基于EDA技术实现ARINC429总线IP核的设计方法,并给出了在FPGA上的实现结果,以及该IP核在以PCI总线为主机接口的测试系统中的应用。与传统专用芯片相比,该IP核增加了单次或循环发送功能、深度触发主机中断接收,并可实现接收发送通道的多路扩展。经测试及实际应用证明该IP核功能设计高效合理,工作稳定可靠。
关键词: EDA; FPGA; ARINC429; IP核; PCI总线
ARINC429 数据总线是美国航空无线电公司制定的一种民用航空标准数据总线。它作为航空电子系统的主要总线,在我国民用、军用飞机上也被普遍采用。
通常ARINC429总线数据传输的接口电路设计都是采用专用芯片,但由于其价格偏高,且单片专用芯片大多只能支持一路收发,使得在应用中收发通道数量和数据缓存受到限制[1]。
现代电子技术的发展越来越趋向于基于计算机技术的电子设计自动化,即EDA技术。EDA技术的核心在于依赖功能强大的计算机,在EDA工具软件平台上,以硬件描述语言作为系统逻辑描述手段完成设计文件。因而利用EDA技术实现通道数可配置、功能更加全面和主机接口方式更加灵活的ARINC429数据总线IP核[2],可以有效地降低系统成本,减小系统体积,并有利于系统的改进和升级。
本文介绍了一种基于EDA技术的ARINC429总线IP核的设计方法,给出了该IP核在现场可编程门阵列FPGA(Field Programmable Gate Array)中的实现结果,并将该IP核应用在以PCI总线作为主机接口的ARINC429数据测试系统中。
1 ARINC429航空总线传输协议简介
ARINC429总线采用双绞屏蔽线传输信息,即通过一对双绞线(A线和B线)反相传输,具有很强的抗干扰能力。
ARINC429总线的数据调制方式采用双极归零制的三态码组成的三电平状态调制,即双绞A线和双绞B线差分信号的高电平(+10 V)为逻辑1;低电平(-10 V)为逻辑0 ;零电平(0 V)发送自身同步时钟脉冲。双绞线上的原始信号和经电平转换后的信号如图1所示,电平转换后AB或运算可提取时钟脉冲。
ARINC429的数据字为32位,由5部分组成,如图2所示: 标志位(LABEL),用于标识传输数据的信息类型;源/目的标识码(SDI),用于判断在一个多系统中的源系统;数据区(DATA);符号/状态位(SSM),用于标识数据字的特征或数据发生器的状态;奇偶校验位(P)。
2 ARINC429总线IP核设计
2.1 IP核功能分析
在实际应用中,2个或2个以上ARINC429数据字可组成一个消息,消息可以单次发送或循环发送,消息中存在字间隔,循环发送时消息间存在消息间隔。在接收端往往不是每收到一个数据字便通知主机接收该数据字,而是对当前接收到的数据字进行缓存,当数据字个数达到一个触发深度N时,接收端才触发主机中断通知主机接收数据。由以上需求和协议的要求,利用EDA技术实现的ARINC429协议的IP核应包括如下几点功能:
(1)ARINC429总线数据的并串和串并转换;
(2)接收发送通道的奇偶校验设置;
(3)接收发送通道的波特率可选择;
(4)发送通道的单次或循环发送选择;
(5)发送通道的字间隔和消息间隔配置;
(6)接收通道数据深度触发主机中断;
(7)接收通道SDI校验、LABEL过滤配置。
2.2 IP核内部逻辑设计
IP核的内部逻辑框图如图3 所示,其中对外接口模块为通用的同步CPU接口设计,提供了能与多种同步CPU接口进行交互的信号,包括系统时钟、系统复位、数据/地址线和主机中断输出。
为了便于用户的配置和管理,功能寄存器组设计采用通道完全独立思想,提供了N路(N可根据逻辑资源任意配置)ARINC429接收发送通道的功能配置寄存器和状态查询寄存器,具体寄存器名称和功能见表1。
数据缓冲区由EDA开发环境自带的IP核生成双端口随机存储器(DPRAM)和先入先出队列(FIFO)组成,分别用以完成待发送数据的缓存和当前接收数据的缓存。
以单一收发通道为例,对外接口模块、数据缓冲区和协议处理模块的内部逻辑细节框图如图4所示。
ARINC429协议处理模块包括读DPRAM模块、发送通道配置模块、发送处理模块、写FIFO模块、接收通道配置模块和接收处理模块。通道配置模块根据功能配置寄存器组的配置信息来完成对各发送和接收通道的功能配置;读DPRAM模块完成待发送并行数据从数据缓冲区的读取;写FIFO模块完成接收并行数据到数据缓冲区的存储;发送处理模块将并行数据输入到发送模块;接收处理模块等待接收模块的有效接收信号,完成接收数据;发送模块完成并行数据到串行数据的转换,并完成奇偶校验位的填充,根据波特率的设定产生A、B两路数据,按消息间隔和字间隔的设定将数据周期或单次发出;接收模块完成串行数据到并行数据的转换,并完成奇偶校验,根据功能配置设定接收A、B两路数据,并进行SDI校验字、标签过滤等,由触发深度配置字及其使能位产生主机接收中断。
2.3 IP核的验证与综合
本IP核采用硬件描述语言Verilog HDL实现,逻辑仿真采用仿真工具Modelsim完成系统验证,最终在编译综合工具quartus II上进行综合、布局布线,具有单个接收发送通道的IP核共占用逻辑单元1 675个,存储单元13 824个。
3 基于IP核的PCI测试卡设计与实现
为了有效验证该IP核工作的可靠性,将本IP核应用到以PCI总线作为主机接口的ARINC429数据测试系统,功能上可完全代替原有专用芯片。
以PCI总线作为主机接口的ARINC429测试系统是一类应用非常广泛的测试系统,该系统硬件部分核心为一块PCI接口板卡,通过PCI总线和测试计算机进行数据通信[3]。软件开发人员可在测试计算机上完成功能多样的应用程序设计,接收数据通过驱动程序上传至应用程序,应用程序也可将待发送数据通过驱动程序写到板卡中,所有收发数据均可利用软件记录并描述。
板卡的硬件设计框图如图5所示。在本应用中,将IP核配置成8路接收通道和8路发送通道,经综合后下载至FPGA中,FPGA选用Altera公司Cyclone系列EP1C20,IP核和PCI接口模块综合后共占用逻辑单元14 300个,占总量的72%,存储单元55 296个,占总量的75%;ARINC429总线驱动芯片选用HI-8585和HI-8591;PCI接口芯片选用PCI9054。
在测试过程中,将应用ARINC249总线IP核的PCI卡与计算机主板进行连接[4],对PCI卡的全部功能进行验证,并利用嵌入式逻辑分析仪Signal Tap捕获FPGA的输入输出信号,这里以应用程序向IP核写入发送数据32位“1”为例,如图6可知,IP核的输出符合ARINC429信号标准,功能配置和状态查询寄存器全部工作正常。
基于EDA技术实现的ARINC429总线IP核在功能上不仅可完全取代专用芯片,还加入了更符合实际应用的单次或循环发送选择功能、深度触发中断接收功能,并可实现IP核的多路扩展,方便了开发人员的应用,极大地降低了成本。本IP核目前已投入航空电子测试系统的实际应用,功能设计合理,工作稳定可靠。
参考文献
[1] 范秀峰,周宇辰. ARINC429总线收发器芯片DEI1016的原理及应用[J]. 新特器件应用,2003,42(5):33-35.
[2] 胡志强,徐胜红,张宗麟.基于FPGA 的ARINC429总线接口芯片的设计与实现[J].测控技术,2002,22(1):65-67.
[3] 孙旭光. 一种多功能ARINC429 总线接口板设计[J]. 测控技术,2003,22(6):38-40.
[4] 胡红明,苗克坚. 基于DD-03282的ARINC429 PCI通信接口设计[J]. 计算机工程,2006,32(6):280-282.