导言
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 设备驱动程序结构和一个测验该驱动程序的测验程序大体结构。然后在其间增加需求的功用代码。
经过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转化器规划一种有利的探究。