基于USB的ARINC429总线接口模块设计

发布者:SerendipityJoy最新更新时间:2010-01-22 来源: 成都电子科技大学自动化工程学院关键字:USB  ARINC429  总线接口模块 手机看文章 扫描二维码
随时随地手机看文章

  引言

  ARINC429总线由美国航天无线电设备公司所资助,是广泛应用于当前航空电子设备中的一种数据总线传输标准。

  与传统的航空电子设备间的模拟传输相比,ARINC429总线具有抗干扰能力强、传输精度高、传输线路少以及成本低等优点。ARINC数据总线协议规定一个数据由32位组成,采用双极性归零码,以12.5Kb/s或100Kb/s码速率传输。本设计利用USB即插即用、FPGA可灵活配置等特点,设计了基于USB总线的ARINC429总线接口模块。

  接口模块总体设计结构

  接口模块总体设计包括硬件设计和软件设计两部分。硬件设计由USB接口芯片,FPGA和调制/解调电路三部分组成。硬件设计整体框图如图1所示。USB接口芯片采用CYPRESS公司的USB2.0接口芯片CY68013,主要完成PC机和FPGA之间的数据传输,起到接口模块的桥梁作用。FPGA采用ALTERA公司的CycloneⅡ系列EP2C5Q208,主要负责将32位429数据字按照ARINC429数据总线协议串行输出,当检测到ARINC429总线上的数据时,将数据组装成32位429数据字发送给PC机。调制/解调电路主要负责将FPGA输出的LVTTL电平调制为满足ARINC429总线电气特性的电平(即高电平为+10V,低电平为-10V,0V为自身时钟脉冲),并将输入的ARINC429电平解调为FPGA可接收的LVTTL电平。

硬件设计整体框图

  软件设计主要包括USB-ARINC仪器驱动程序,USB设备驱动程序以及底层USB固件程序的设计。软件设计整体框图如图2所示。USB-ARINC仪器驱动程序主要将应用程序与驱动程序之间的通信协议以及接口模块的硬件控制进行再次封装,并为应用程序提供接口,即API函数。USB设备驱动程序主要负责PC机与接口模块之间的数据传输。USB固件程序主要负责发送接口模块的控制命令,32位429总线数据字以及接收到32位429数据字后的中断处理。

软件设计整体框图

  接口模块硬件设计

  接口模块硬件部分由USB接口芯片,FPGA和调制/解调电路三部分组成。下面以一路429设备为例来介绍接口模块的发送和接收部分的硬件设计。[page]

  发送部分硬件设计

  发送部分硬件设计框图如图3所示。发送部分主要负责将ARINC429数据字按照设置的发送模式传输给ARINC429总线。

发送部分硬件设计框图

  USB接口芯片CY68013负责接收PC机传来的32位429数据字,并传输给PC机所指定的429总线设备。由于要传输给多路429总线设备,所以PC机还必须给每一个429数据字加上一个设备通道号。图3中接口芯片内的Buffer用来存储要发送的429数据字。当8051处理器检测到Buffer中有数据后,先将设备通道号写给FPGA中发送控制模块,然后再将429数据字写到FPGA的RAM中。

  由于在测试ARINC429电子设备中,时常要求多路ARINC429总线同时传输数据。为了实现接口模块多路ARINC429总线同时工作,本设计采用了一个全局start/stop信号。当PC机传下start信号后,FPGA中各路的发送控制模块开始将RAM中数据取出并传输给移位寄存器。移位寄存器再将并行输入的32位429数据字串行输出给外围的发送调制电路。FPGA中时钟控制模块用来控制发送ARINC429数据字的速率。

  因为FPGA输出信号是LVTTL电平,并不满足ARINC429数据总线的电气特性,所以必须加上发送调制电路对FPGA输出的LVTTL A和LVTTL B两路信号进行调制,以满足ARINC429数据总线的电气特性。

  接收部分硬件设计

  接收部分硬件设计框图如图4所示。接收部分主要作用是检测ARINC429总线上是否有数据,并当有数据时将并行的32位429数据字组装成并行的4个字节数据发送给PC机。

接收部分硬件设计框图

  首先,PC机设置接收部分的传输速率,即设置FPGA中时钟控制模块输出的读控制时钟信号r_clk,它以16倍于传输速率进行采样。当LVTTL A和LVTTL B任一路为高电平,即为有效数据的开始。在FPGA中,同步字头接收模块负责这部分工作。当有效数据开始后,接收32个串行输入数据,并将数据发送给接收数据检测模块,同时data_en信号有效。接收数据检测模块检测到data_en信号,锁存32位429数据字。在对数据进行奇校验无误后,向USB接口芯片发送一个中断信号。

  当USB接口芯片响应中断信号后,先判断是哪一路ARINC429总线数据,并将此路总线的通道号写入芯片的Buffer中。USB接口芯片再发送读信号读取FPGA中寄存器的429数据字,共4个字节。本设计采用双缓冲Buffer方式来存储接收到的429数据字。这种设计方式能有效提高接口模块传输数据的稳定性和准确性。

  接收解调电路主要负责将ARINC429总线输入的电平解调为FPGA可接收的LVTTL电平。[page]

  接口模块软件设计

  接口模块软件由USB-ARINC429仪器驱动程序、USB驱动程序和USB固件程序等三部分组成。USB-ARINC429仪器驱动程序主要将应用程序与驱动程序之间的通讯协议以及应用程序与硬件之间的数据传输命令进行封装。仪器驱动程序在Visual C++6.0下开发,可以提供给应用程序显式或隐式调用。在本文中不详细介绍仪器驱动程序的开发过程。下面将介绍USB固件程序及驱动程序的设计。

  USB固件程序设计

  USB接口芯片是底层硬件的基础,是接口模块与PC机通信的硬件桥梁,良好的USB固件程序设计是接口模块能够稳定可靠工作的保证。USB固件程序设计结构如图5所示。

USB固件程序设计结构

  USB固件程序设计由主程序(Main.c),写数据程序(Function.c),读数据中断服务子程序(Isq)以及控制传输(Vendor)等四部分组成。

  主程序Main.c主要负责USB接口芯片的初始化工作。主要有端口的初始化、中断的初始化、USB设备的列举和重列举等工作。Main.c的设计结构如图6所示。

Main

  写数据程序Function.c采用了USB接口芯片CY68013数据总线操作方式,将图3 Buffer中的ARINC429数据字写到FPGA的RAM中。

  读数据中断服务子程序(Isq)主要负责接口模块读取ARINC429总线数据,并根据USB接口芯片的中断引脚来标记429数据字的通道号。

  控制传输(Vendor)主要是灵活地控制接口模块的发送模式。接口模块共有单次发送、多次发送以及循环发送等三种发送模式。三种发送模式可以满足多种ARINC429数据发送需要。其中,多次发送模式和循环发送模式可以设定ARINC429数据字与数据字之间的字间隔,并可以设定一组ARINC429数据字的循环周期。这种设计方式体现了接口模块的灵活方便特性。[page]

  USB设备驱动程序设计

  USB设备驱动程序是利用Compuware公司的DriverStudio 3.2开发的。DriverStudio 3.2主要用来开发Windows 2000和Windows XP的驱动程序。利用这个工具的开发向导,可以生成一个USB驱动程序框架。USB驱动程序设计简化结构如图7所示。

USB驱动程序设计简化结构

  USB设备驱动程序基本由五部分组成,图4中显示了四部分。入口例程(DriverEntry Routine)、即插即用例程(PnP Routine)和卸载例程(Unload Routine)主要负责接口模块的内存资源分配和释放等工作。下面将详细介绍与接口模块数据传输关系紧密的分发例程(Distribute Routine)。

  分发例程主要由Create,Read,Write,IOCTL以及Close等五部分函数组成。Close函数主要负责关闭设备句柄,调用卸载例程,并释放设备内存资源(这个函数在图中并未列出)。其它四部分与上层应用程序的接口函数分别为CreateFile,ReadFile,WriteFile和DeviceIoControl。

  Create函数主要负责获取对接口模块进行操作的程序句柄,该句柄在即插即用例程中指定。

  Read函数负责读ARINC429数据。当应用程序通过调用ReadFile发一个IRP到驱动程序时,驱动程序先检测读取数据长度是否大于已设定的端点传输最大字节。如大于,则仅分配长度为最大字节的内存空间;如小于或等于,则按该数据长度分配内存区。然后USB设备驱动程序再将此IRP向下传递给下层驱动程序,最后由底层驱动程序将ARINC429数据写到已分配的内存空间供应用程序读取,并返回一个函数值和已读取多少字节的变量给应用程序判断。Write函数操作与Read函数类似,只是传输方向相反。

  IOCTL函数负责接口模块的控制命令传输。当需要指定接口模块发送模式或循环发送时的字间隔和帧周期时,应用程序通过调用DeviceIoControl发一个IRP给驱动程序。驱动程序收到此IRP时,将通过USB控制管道把接口模块控制命令传输给USB接口芯片。

  结论

  经测试表明,接口模块与现在市场上出售的多种429总线接口设备进行了多路429总线数据传输。本设计利用USB即插即用、FPGA可配置性等特点,方便了ARINC429总线与计算机之间的数据传输,并提高了接口模块数据传输的灵活性,这在对ARINC429电子设备的测试中有较高的实用价值。

关键字:USB  ARINC429  总线接口模块 引用地址:基于USB的ARINC429总线接口模块设计

上一篇:基于MicroBlaze软核的液晶驱动程序设计
下一篇:采用模糊逻辑设计基于DSP发动机控制器

推荐阅读最新更新时间:2024-05-02 20:59

USB3.0的测试难点与物理层测试探讨
2002年Intel将 U SB2.0端口整合到计算机南桥芯片ICH4上的举动,推动了USB2.0的普及。USB2.0版本支持三种速率:高速 480Mbps、全速12Mbps以及低速1.5Mbps。随着电子行业的快速发展,480Mbps对于蓝光DVD、高清视频、TB级别大容量硬盘的数据传输而言已经稍显不足,于是在2008年11月,HP、Intel、微软、NEC、ST-NXP、TI等公司联合起来正式发布了USB3.0的V1.0规范。USB3.0又称为SuperSpeed USB,比特率高达5Gbps,如图1所示,使用USB2.0拷贝25GB的文件需要14分钟,3.0却只需70秒左右,而25GB恰好是单面单层蓝光光盘的容量。USB3.0
[测试测量]
<font color='red'>USB</font>3.0的测试难点与物理层测试探讨
基于虚拟仪器的ARINC429总线信号仿真和测试方案
  ARINC429总线是美国航空无线电公司(ARINC)制定的航空数字总线传输标准,定义了航空电子设备和系统之间相互通信的一种规范。随着国内航空业的发展,ARINC429总线的应用日益广泛,已推广到许多航空设备中。与此同时在许多航空机载设备的检测维修中出现了大量对429信号的检测需求。这就使得对429信号的仿真和测试显得十分关键。本文使用目前市场上技术成熟的基于PCI接口的429收发板卡,以LabWindows/CVI作为软件开发环境,设计实现了对429信号的仿真和测试,达到了使用个人电脑完成429信号检测任务的目的。    ARINC429总线简介   ARINC429协议规定使用双绞屏蔽线以串行方式传输数字数据信息,信息
[测试测量]
如何设计一个工作稳定、可靠的基于CY7C68013A单片机的USB控制系统?
引言 通用串行总线(Universal Serial Bus,USB)作为计算机上的新型接口技术,越来越受到人们的青睐。与以前的RS 232,RS 485,ISA,PCI和并行接口等接口相比,USB避免了接口体积大、接口规范不统一、不支持热插拔等缺陷,具有使计算机与外部设备连接十分方便的优点。目前,很多设备都开始使用USB接口来实现,如鼠标、键盘、打印机等。在实际设计工作当中,也越来越多地采用了USB技术,如数据采集等。USB的设计和应用已经成为现代电子设计中一个非常重要的部分。 1 USB 2.0特点 USB是一种高效、快速、价格低廉、体积小的新型串行通信接口,其最大的特点是支持热插拔,可以在不重新启动计算机的情况下直接将U
[单片机]
如何设计一个工作稳定、可靠的基于CY7C68013A单片机的<font color='red'>USB</font>控制系统?
手机USB安全充电接口分析
谁能想到手机产业会影响环境?当你在思考如何减少生态污染时,想到的可能是改变汽车设计,或使用绿色能源,根本不会是手机。然而,我们确实看到手机充电器对环境造成了很大的影响。手机行业已经开始使用通用充电解决方案(UCS)来解决这个问题,UCS将改变手机制造商设计手机的方式。本文将对实现安全充电接口需要考虑的因素加以分析。   一个手机用户一年会产生约17公斤的二氧化碳,相当于汽车行驶111公里。这个数字不是很大,在保护环境方面似乎不是优先考虑的对象。然而,如果换一个角度看,你会发现,去年全球手机出货量达12亿部,每一部手机都有自己专用的充电器。在这12亿部手机中,估计有5亿部是替代性手机。拿到一部新手机通常都会让人兴奋不已,但人们对更
[嵌入式]
C8051F320在USB设计中的应用
摘要:C8051F320是Cygnal公司推出的一款新型USB微控制器芯片。该器件具有较快的处理速度和较大的存储容量,并且具有在系统可编程的功能,是USB接口设计的理想选择。文中介绍了C8051F320的特点和引脚功能,并以一个USB-CAN接口转换模块为例介绍了USB接口的软硬件设计。 关键词:C8051F320;USB;USB描述符;固件 随着USB技术的快速发展以及USB外设在越来越多场合的广泛应用,支持USB接口技术的芯片也越来越多。对于USB接口的设计,如非扩展之用,选用带有MCU的USB控制器当然是设计师们的首选,因为这样不仅可以大大简化硬件电路、减小外设体积,而且还可以提高产品的可靠性。文中介绍的C8051F32
[应用]
详解USB-C应用新架构
作者:Xunwei Yu,Sungkeun Lim,瑞萨子公司Intersil USB-C接口正在彻底改变电子设备的充电方式。USB-C连接线无论哪一端都能连接智能手机或超级本。物理上,C型连接器既是双向的(无论线缆的哪一端都能插入两头的设备),也是无极性的(连接器插入时可以正面朝上,也可以反面朝上)。在协商过程中,连接系统可以电子地分辨出电极性。除了数据传输,USB-C还能支持更高功率水平的双向功率传输。默认电压为5V,USB-C端口能够与插入的设备协商,在双方同意的电流水平上,将端口电压提高到20V,或双方同意的其他电压值。USB-C端口提供的最大功率为100W(20V/5A),这用来给笔记本电脑充电已经绰绰有余了。优势如此明
[嵌入式]
详解<font color='red'>USB</font>-C应用新架构
利用USB接口进行ATMAGE128与上位微机之间数据传输的实现
下位机与上位机之间的数据通讯,以满足同步 相量 测量单元对数据传输高速率、低延时和高可靠性的要求。这里主要解决的是USB接口驱动程序的问题,通过编写上位机与下位机的硬件驱动程序,实现利用USB接口进行ATMAGE128与上位微机之间数据传输的工作。 1 引言 同步相量测量单元(PMU)测量装置与上位计算机之间的通讯速率普遍较低,不能将测量数据及时传送到上位机进行分析处理,通讯接口已成为整个系统性能提高的一个瓶颈,因此有必要使用一种传输速率、时延、稳定性均能满足同步相量测量数据传输的通用接口。 采用USB接口作为上位机与下位机的通讯接口方式可以解决这些问题。利用USB接口中断传输速率大,时延小,差错率极低的特点来
[单片机]
68HC908JB8单片机及其在USB外设系统中的应用
主要参数及引脚功能     MC68HC908JB8是采用HCMOS工艺技术生产的高性能单片机芯片,具有片内256BRAM和8KB的Flash ROM结构,16位双通道TIM模块(每一通道配有输入捕捉、输出比较和PWM工作模式),以及兼容USB1.1协议低速通信功能。 JB8 的性能     68HC908JB8是一种高性能M68HC08结构,它和M6805、M146805及M68HC05族代码兼容,3MHz内部总线频率,256B的RAM和8129字节的Flash存储器,且在片内可编程。最多可达37个一般3.3V的I/O口。其中包括:     ·因封装不同有13或10个共享I/
[工业控制]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved