标题 | 基于FPGA的PCI接口ARINC429适配器的设计、实现与驱动开发 |
范文 | 范毅 李明华 【摘要】 ? ?本文介绍了一种基于FPGA的PCI接口ARINC429适配器的设计、实现,采用PLX提供的基础驱动封装了功能函数库,并在Labview下进行了测试。 【关键字】 ? ?ARINC429 ? ?PCI ? ?FPGA ? ?PLX ? ?Labview Design and implementation of PCI interface ARINC429 adapter based on FPGA FAN Yi,LI Ming Hua (Xian Institute of Aeronautical Computing Technology for Aeronautical Industry,Xian Shannxi 710068 China) Abstract:This paper introduces the design and implementation of a PCI interface ARINC429 adapter based on FPGA,Functional libraries are encapsulated using the underlying drivers provided by PLX and tested under Labview. Keywords:ARINC429、PCI、FPGA、PLX、Labview 一、概述 为实现ARINC429总线的自动测试,需要具有大数据量连续发送和自动接收能力的模块,且该模块应便于与测试上位系统连接。 模块实现8路ARINC-429信号的接收和4路ARINC-429信号的发送。同时为每路ARINC-429信号提供1K帧(1帧32byte)的循环缓冲区。 二、总体思路 考虑实现的便捷和可靠,ARINC429部分采用标准协议芯片实现,采用标准协议芯片实现可避免因数据编码等原因影响测试可靠性,缩短开发和调试周期;与上位机采用PCI接口连接,接口使用专用桥接芯片;内部数据流控制采用FPGA实现。 2.1 ARINC429总线 ARINC429总线协议是美国航空电子工程委员会(Airlines Engineering Committee)于1977年7月提出的,并于同年同月发表并获得批准使用。它的全称是数字式 信息传输系统DITS。协议标准规定了航空电子设备及有关系统间的数字信息传输要求。ARINC429广泛应用在先进的民航客机以及俄制军用飞机中。我国与之对应的标准是HB6096-SZ-01。 ARINC429总线结构简单、性能稳定,抗干扰性强。最大的优势在于可靠性高,这是由于非集中控制、传输可靠、错误隔离性好。 2.2 ?PCI总线 PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写,使用较为广泛。PCI总线是一种同步的独立于处理器的32位或64位局部总线,最高工作频率为33MHz,峰值速度在32位时为132MB/s,64位时为264MB/s,总线规范由PCISIG发布。ISA总线相比,PCI总线具有高速、支持即插即用、可靠性较高、扩展性较好等显著的优点,但也存在规范严格、使用复杂等缺点,因此在实际设计和开发过程中,一般使用专用芯片实现从PCI总线到Local Bus的转换,从而简化开发工作,也可使用对应的IP核,进一步缩减期间数量,提高集成度,目前主流FPGA厂商都提供了免费的PCI桥IP核。 2.3 FPGA FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。FPGA在复杂时序逻辑的实现上具有先天的优势,同时具备硬件电路并行运行的特点。 三、系统结构及模块功能设计 3.1系统结构 系统硬件框图如图1所示,由3个模块组成,分别为PCI接口(包括PCI桥接芯片和配置芯片)、FPGA、SRAM、ARINC429接口(包括ARINC429协议芯片和ARINC429电平芯片)。 PCI接口接收上位发来的配置和控制数据,并传递给FPGA内的控制逻辑;FPGA内的逻辑根据配置和控制数据进行ARINC429协议芯片的初始化,并对接收和发送缓冲区进行初始化;需要发送数据时,上位将需要发送的数據写入发送缓冲,并通过控制寄存器启动发送,通过读取发送状寄存器了解发送情况,通过控制寄存器可实现循环和单个数据重复发送;接收在完成配置后根据ARINC429协议芯片的接收中断自动进行,并按照先后顺序存储在接收缓冲区,模块不产生中断,上位机可读取接收状态寄存器了解接收情况,逻辑采用VerilogHDL设计实现[1]。 本设计中,PCI桥接芯片选择Broadcom(原PLX)公司的PCI9052,该芯片为PCI从设备接口桥芯片,可方便的将PCI转化为ISA(Local Bus),PCI总线符合PCI 规范r2.1;FPGA使用Xilinx公司Spartan6系列的XC6SLX25(FT);ARINC429的协议芯片时使用4片HoltIC公司的HI3282,每片HI3282集成1路发送和2路接收,自带接收电平转换,发送电平转换芯片使用HI-8585。 3.2 FPGA内功能划分 如图2所示,FPGA内逻辑分为Local Bus控制逻辑、接收逻辑、发送逻辑、ARINC429协议芯片控制逻辑和SRAM控制逻辑。 3.2.1 Local Bus控制邏辑 Local Bus控制逻辑内包含Local Bus信号的译码和系统控制和状态寄存器,译码用于选定内部逻辑功能,系统控制和状态寄存器定义如表1和表2。 3.2.2发送逻辑 发送逻辑根据发送控制寄存器启动发送,并将发送相关的状态(主要是ARINC429协议芯片接收相关输出)保存扫发送状态寄存器。启动发送后,根据发送缓冲区地址和状态寄存器内相关位,自动完成从SRAM读取数据、写入HI-3282发送缓冲、等待发送完成、再次取数(地址指针可通过寄存器获得)的循环,直至完成缓冲区内所有数据发送。 上位机在发送前首先需要完成ARINC429协议芯片的初始化,初始化由Local Bus控制逻辑直接操作ARINC429协议芯片完成。完成初始化后,设定发送缓冲区起始地址及大小(通过寄存器),随后将数据写入缓冲区对应地址(完成缓冲区起始地址及大小设置后,设置立即生效),通过设置发送控制寄存器启动发送。涉及的寄存器见下表。 3.2.3 接收逻辑 接收逻辑监控4片HI3282上8个通道的Drin信号,当该信号有效时,启动自动接收逻辑,将ARINC429协议芯片内的数据转存至SRAM。 在使用自动接收逻辑前,需配置接收缓冲区起始地址及大小。 3.2.4 SRAM控制逻辑 SRAM控制逻辑完成访问仲裁和SRAM控制。Local Bus控制逻辑、接收逻辑、发送逻辑均可访问SRAM,优先级从高到低为:接收逻辑、发送逻辑、Local Bus控制逻辑,当高优先级逻辑访问时,低优先级的访问将被忽略,因此在进行操作前应确认模块工作状态,以免出现无效操作。 3.3 PCI总线接口 PCI9052可通过串行EEPROM配置,也可由上位机进行配置。 本设计中结合两种方式,EEPROM用于模块识别,上位机对Local Bus相关寄存器进行配置,以方便软件编程和调试。 3.4 ARINC429总线接口 由4片HI3282和4片HI8585组成,ARINC429协议芯片完全由FPGA控制,包括基础时钟及复位信号。 四、驱动开发与模块测试 4.1 驱动软件 PCI9052提供配套的软件驱动包(内含调试工具PLXmon),在进行快速测试和驱动软件开发时,可使用该工具包进行[2]。PLXmon软件界面见下图3。 软件开发包提供标准PCI函数库(针对不同类型的桥片有不同函数),通过调用标准函数可快速实现功能。下表6是用于操作模块的专用函数[3]。 4.2 系统测试 测试分为两步,首先进行自回绕测试,自发自收以验证功能;随后与目标被测件进行连接,进行连续接收测试(测试中只需接收)。为方便测试,使用Labview编制测试用软件,监控测试并记录数据[4]。软件界面如下图。 测试项及结果如下表7。 五、结束语 本文基于FPGA设计了可自动大量缓存接收数据的PCI接口ARINC429总线适配器。经过长时间测试,模块工作稳定,自动接收功能可大量缓存接收数据,为自动测试ARINC429 总线提供了便利。 参考文献 [1] [美]Samir Palnitkar,Verilog HDL数字设计与综合(第二版),电子工业出版社,2004. [2] 丁高磊、王新艳,PLX9052的配置及驱动开发,计算机与信息技术,2007(22),51-52. [3] 熊松,基于PCI总线的数据采集卡的实现,东南大学,硕士学位论文,20020601. [4] 严雨、夏宁,Labview入门与实战开发100例(第三版),电子工业出版社,2017. 范毅,19790620,男,陕西咸阳,汉;大学本科;工程师;计算机应用 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。