当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]引言MIL-STD-1553B军用总线标准,在军事装备,特别是飞机系统中得到了广泛的应用,舰载系统中也正在逐步推广。对于1553B总线传输信息的飞机系统,特别是由该总线网络构成的

引言

MIL-STD-1553B军用总线标准,在军事装备,特别是飞机系统中得到了广泛的应用,舰载系统中也正在逐步推广。对于1553B总线传输信息的飞机系统,特别是由该总线网络构成的综合航火控系统、通信系统而言,系统时实监测与在线故障诊断均建立在信息录取的前提下。为了方便录取1553B总线上传输的信息就需要应用1553B总线到计算机标准接口转换器,目前常用转换器有1553B-PCI、1553B-VXI等,但在工程实践过程中,它们存在体积大、价格高、使用不方便等缺陷。相比而言,USB接口具有体积小、携带方便、热插拔等特征,具有不可替代的优势。

本文介绍的1553B设备检测系统就是基于USB接口的。设计包含两大部分:硬件设计和软件设计。硬件设计主要实现1553B接口到USB接口的转换;软件设计主要是USB芯片固件开发、USB接口驱动、开发计算机测试1553B设备软件。

2 硬件系统设计

本系统的硬件设计工作主要集中在1553B与USB总线接口的转换设计。硬件系统分成三部分:1553B接口转换电路、FPGA译码电路和USB接口电路。

2.1 1553B接口转换电路

目前,1553B接口芯片种类繁多,根据工程应用场合和实际需要,我们选用DDC公司BU-61580芯片。BU-61580芯片除了具有远程终端(RT)功能外,还可以用作总线控制器(BC)、总线监控器(MT)。其内部功能极强,接口灵活、便于控制,有各种封装形式和供电电压供用户选择。

2.2 FPGA译码电路

FPGA作为现场可编程器件越来越广泛地应用到工程设计中。利用FPGA对系统中信号进行译码可避免由于开始硬件电路设计考虑不周造成的硬件设计错误,而且方便系统的以后的升级。本系统中,FPGA通过1553B接口芯片读取1553B总线上的数据并暂存在FPGA内部RAM中,然后通知USB接口芯片把数据读出;同时,还要通过USB接口接收从PC下发的数据,重新打包,发送到1553B设备。

2.3 USB接口电路

USB接口控制芯片包含两大类:一类是需要外置控制器的芯片,还有一类为内置控制器,如Cypress公司的CY7C64613芯片。本系统选用PHILIP公司的PDIUSBD12芯片,需外置控制器的芯片。

PDIUSBD12芯片是带有并行总线和局部DMA传输能力的全速USB接口器件。片内集成了高性能USB接口器件、SIE、FIFO存储器、收发器以及电压调整器等,可与任何外部微控制器/微处理器实现高速并行接口(2MB/s),完全能匹配1553B总线最高传输速率(1MB/s)[1]。USB 实现模块的核心是PIDUSB12。外置控制器AT89C52的P0口接PIDUSBD12的DATA0~DATA7,用来传输要交换的数据。P0 口所有引脚都要外接上拉电阻。PIDUSBD12的片选信号和复位信号由AT89C52的P1.6与P1.7提供。AT89C52 的P3.6与P3.7作为PIDUSBD12的写读控制端,AT89C52和PIDUSBD12的ALE相连,PIDUSBD12的挂起状态和中断控制都接高电平。 PIDUSB12的D+和D-加上+5V电源和地就构成了USB接口,从而能与计算机相连。

PDIUSBD12与USB的连接通过1.5K上拉电阻将D+置为高实现,默认状态不与Vcc相连,可用SoftConnect技术通过AT89C52发送专门的命令来实现该连接,允许AT89C52在决定与USB建立连接之前完成初始化时序,USB总线连接可以重新初始化而不需要拨出电缆[2]。随后USB设备识别和通信就要依靠固件程序和驱动程序了。

3 软件设计

1553B设备测试软件首先要实现USB接口与PC之间的通信,然后,再对设备进行性能检测。因此,需要对USB芯片进行固件、PC驱动程序和测试程序设计。

3.1 USB固件设计

AT89C52中的固化程序可采用C51 设计,主要功能是:控制PDIUSBDl2接受USB驱动程序的请求;控制PDIUSBDl2接受应用程序的控制指令;通过PDIUSBDl2存储数据并实时上传PC机。PDIUSBDl2的固件设计成完全的中断驱动,当CPU处理前台任务时USB的传输可在后台进行,确保了最佳的传输速率和更好的软件结构,简化了编程和调试。单片机通过PDIUSBDl2与主机通信的过程简述如下::当PDIUSBDl2接收到主机发来的令牌包后就给单片机发中断,单片机进入中断服务程序。它将数据从PDIUSBD12的内部FIFO取回到CPU存储器并根据中断寄存器判断USB令牌包的类型从而建立正确的事件标志以通知主循环程序进行处理,主循环检查事件标志并进入对应的子程序进行进一步的处理,固件程序流程如图2所示。系统上电后,先检测PDIUSBD12,如检测不成功则报错,要使用者重插USB接口,再次检测。检测成功则根据PDIUSBD12的中断类型设定中断标志位的值,再根据中断位的值调用相应的功能子程序[3]。

在本设计中,功能子程序主要包括两部分:

1)通过AT89C52的P0端口从FPGA接收1553B设备数据,重新打包,再经过P0端口写入PC机;

2) 通过P0端口接收PC数据,重新打包,通过AT89C52的P0端口从FPGA写入1553B设备。

3.2 驱动程序

完成驱动程序设计的方法一般有三种:基于DDK开发、基于Windrive开发和基于DriveStudio开发。由于Windrive和DriveStudio开发对DDK中的函数进行了一定程度的封装,它们开发的难度比直接用DDK开发要小,但开发的灵活性不如DDK。本设计使用的驱动是DriveStudio与DDK配合进行开发,开发驱动程序的效率较高。

在驱动程序开发平台搭建成功后,我们利用驱动程序生成向导Driver Wizard,根据硬件设置生成USB设备驱动程序的大体框架。设置如下:①选择 WDM的驱动程序类型和Windows 2000运行平台。②选择 USB总线类型,填写它的VID(供应商ID)和PID(设备ID),这些信息由芯片的供应商提供。③增加端点 1和端点2,它们分别具有IN 和OUT属性。④根据需要选择对设备的操作有:Read、Write、Device Control和CleanUp。⑤选择给端点2产生 BULK Read和Write的代码, 向导会自动产生一套对端点2进行读、写的代码。⑥设置驱动程序的属性,采用WDM接口;在选取读写方式时应遵循一条原则:需要快速传送大量数据时,用 Direct I/O,反之用 Buffer I/O,本设计数据量不大,故选用Buffer I/O;由于无特殊的电源需求,故选用系统默认的Manage Power For This Device。⑦增加IOCTL接口,在其生成的代码框架中加入自己的操作,以实现一个完整的USB 设备驱动程序。最后就生成了一个 WDM 型的 USB 设备驱动程序框架和一个测试该驱动程序的测试程序大体框架。然后在其中添加需要的功能代码。[!--empirenews.page--]

通过DriveStudio初步建立一个驱动程序框架后,我们只要修改TESTFIRMDevice.h和TESTFIRMDevice.cpp就可以了,修改完毕后,可以发现使用DriveStudio向导生成的USB设备驱动程序,不仅不需要对底层的硬件进行编程,甚至可以忽略与硬件控制紧密相关的复杂的Windows数据结构(如,URB、IPR)、API函数(DriveEntry()、IoCreateDevice()、AddDevice())的使用。

用DriveWizard创建USB框架程序自动生成的两个工程(Project)文件:TESTFIRM驱动程序工程和Test_TESTFIRM应用程序工程,将光标定位在其中一个工程上之后,单击右键,选择“set as Acnve Pmiect”即可设置该工程为当前活动工程。对于驱动程序编译,不用进行任何设置,单击Build图标即可生成USB驱动程序TESTFIRM.sys文件。

3.3 通信程序

因为DriveStudio已经替我们把核心驱动程序基本开发完了,在本设计中,只要掌握WriteFile和ReadFile两个函数的使用就可以进行简单的USB通信了。由于DriveStudio所用的类库是对DDK函数一定程度的封装,必须在 VB、VC++等软件开发环境中编译,创建自己的库文件,所以很容易为程序增加了图形界面,使用户操作更加方便。

当USB设备与PC通信时,USB设备是从设备,PC是主设备。PC机通过检测USB总线数据端电平判断是否接入或拔出USB设备。PC检测到USB设备后,调用USB设备函数。如果设备被正确打开,软件开启监听USB设备线程,以20ms周期轮询USB接收数据接口。一旦接收到数据,数据就被分析并且回显到界面上,直到线程被中断。

4 结论

1553B总线是当前飞机系统中广泛应用的总线类型,将它与USB总线融合起来具十分重要的实际意义。在开发过程中,利用DriveStudio与DDK配合进行开发USB驱动程序,大大提高了开发的效率。本设计在实际设备测试中,板卡可以稳定工作,测试软件工作正常,满足项目设计要求。

本文作者创新点:利用PDIUSBDl2外置CPU控制数据的读入和写出,开发USB驱动程序,结合FPGA完成系统时序控制,是对1553B-USB转换器设计一种有益的探索。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

USB接口,英文全称为Universal Serial Bus,中文含义是“通用串行总线”。它是一种快速的、双向的、同步传输的、廉价的并且可以进行热拔插的串行接口。USB接口不仅广泛应用于个人电脑和移动设备等信息通讯产品...

关键字: usb接口 USB Type-A

本文重点讨论USB通信协议及其接口芯片的控制方法,针对临床需求,设计实现了具有心电、血压智能监测和USB高速数据传输功能的小型化设备,提供心电、血压数据电子病历查询、打印和网络传输等功能,对于提

关键字: 嵌入式 usb接口 血压监测仪

  本设计中的电路包括一个混合信号微控制器、一只USBUART(通用异步接收器/发射器),还有一个新颖的自适应模拟传感器输入电路。此电路可以将多种类型的传感器接到设计的两个模拟输入通道上,在一个

关键字: 传感器 usb接口 高分辨率

  推进USB 3.0标准化工作的USB 3.0 Promoter Group宣布,新的USB接口供电标准“USB Power Delivery SpecificaTIon (USB

关键字: usb接口 USB 供电标准

近日,杭州部分公交车的座椅旁边新增了两个USB接口,乘客随时可以给手机充电。 目前,杭州已投入100多辆带USB接口的公交车上路运营,包括403路、11路、24路、60路,市民想要坐上带有USB接口的

关键字: usb接口 公交 杭州

今年是5G元年,全球各个通讯公司都使出来毕生的经历,为了在未来5G市场上抢占一块好的地方,他们之间的竞争也催生了一大批新技术。工信部发放4张5G牌照,标志着中国正式进入

关键字: 5G mimo 总线与接口

在5G通讯领域,目前做的比较好的当属华为,但是其他几家公司也不甘示弱,就在最近,三星电子成功开发支持28GHz频段的“5G综合型基站”(Access Unit),是目前5G商

关键字: 5g通讯 三星 华为 总线与接口

广告商与受众之间必不可少的沟通媒介最核心的恐怕属于数字标牌,它已演变为交互式个性化通讯工具,为用户提供了更直观的的参与感与体验。研华基于云数字标牌解决方案一应俱

关键字: 总线与接口 数字标牌 研华

通常情况下在工业现场经常需要用两个隔离DC-DC搭配单独的信号隔离电路的方法去隔离RS-232与RS-485,但隔离的性能存在差异性,并且占板面积较大。本文将为你介绍一种稳定可靠、应用简便的全隔离解决方案。

关键字: rs-232 rs-485 多协议接口模块 总线与接口

近年来,第五代移动通信系统5G已经成为通信业和学术界探讨的热点。5G的发展主要有两个驱动力。一方面以长期演进技术为代表的第四代移动通信系统4G已全面商用,对下一代技术

关键字: 5G 总线与接口 数据分析
关闭
关闭