位置:51电子网 » 技术资料 » 接口电路

基于USB接口1553B总线设备检测系统设计

发布时间:2008/6/16 0:00:00 访问次数:604

1 引言

  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开发和基于drivestudi

1 引言

  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开发和基于drivestudi

相关IC型号

Warning: Undefined variable $stockkeys in G:\website_51dzw\www.51dzw.com\code\tech\view.php on line 152

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!