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

高速USB数据采集系统的设计

发布时间:2008/5/27 0:00:00 访问次数:472

        

    

    

    作者:北京机械工业学院 闫亚飞 祝连庆

    

    在图像处理、瞬态信号测量等一些高速、高精度的应用中,需要进行高速数据采集。usb 2.0接口以其高速率等优点渐有取代传统isa及pci数据总线的趋势,热插拔特性也使其成为各种pc外设的首选接口。ez-usb fx2是cypress公司推出的集成usb 2.0的微处理器,它集成了usb 2.0收发器、sie(串行接口引擎)、增强的8051微控制器和可编程的外围接口。本文将介绍基于ez-usb fx2系列cy7c68013芯片的高速数据采集系统的设计,该系统具有限幅保护功能,固件和驱动程序的编写简便,能够完成对数据的高速采集和传送。

    

    数据采集系统方案设计

    

    数据采集系统的框图如图1所示,硬件电路如图2所示。其中,ad1674是l2位模数转换芯片,采用逐次比较方式工作。cpld主要用于控制adc以及fifo的时序、控制adc的启动与停止和查询adc的状态等。fifo主要起着高速数据缓冲的作用。

    

    

    

    图1 数据采集系统框图

    

    

    

    图2 系统硬件电路

    

    cy7c68013和ad1674之间通过cpld连接,实现相关控制线和数据线的译码。在cy7c68013的控制下,首先对ad1674进行间隔采样,然后把结果传送到fifo中,当采集到一定量的数据后,cy7c68013将数据打包通过usb总线传到pc,由高级应用程序进行数据处理。扩展的rs232接口可以和外部设备进行通信。上电时,cy7c68013从外部的e2prom中通过i2c总线自动装载到内部的ram中,便于固件的修改和升级。

    

    数据采集前端的调理电路如图3所示,本设计采用了限幅、降压、滤波和增加输入阻抗的措施来保护后端的转换芯片。

    

    驱动程序和固件设计

    

    usb设备驱动程序基于wdm。wdm型驱动程序是内核程序,与标准的win32用户态程序不同,采用了分层处理的方法。通过它用户无须直接与硬件打交道,只需通过下层驱动程序提供的接口访问硬件。因此,usb设备驱动程序不必具体对硬件编程,所有的usb命令、读写操作通过总线驱动程序转给usb设备。但是,usb设备驱动程序必须定义与外部设备的通信接口和通信的数据格式,也必须定义与应用程序的接口。cypress公司提供了完整的cy7c68013驱动程序源码、控制面板程序及固件的框架,这大大加快了用户开发的进度。用户只需稍加修改或无须任何修改即可使用现有驱动程序,软件开发者大量的时间主要集中在应用程序和固件的开发。根据用户自己的需求,一般只需修改deviceiocontrol例程。本设计主要增加了控制数据传输函数、启动和停止adc、复位fifo等。cypress为cy7c68013提供了开发框架,其中两个程序如下。

    

    fw.c:fw.c中包含了程序框架的main函数,管理整个51内核的运行,因为这部分的功能已经进行了精心划分,一般是不用改动的。

    

    

    

    图3 调理电路

    

    periph.c:用户必须将periph.c实例化,它负责系统周边器件的互联。固件的设计主要针对这个文件,用户必须根据自己系统的需要,实例化这个文件,以实现所需的功能。在固件程序中,最重要的是td_init()和td_poll()这两个函数。以td_poll()函数为例,在td_poll()中主要完成外部fifo状态的检测和数据的传输,程序主体部分如下。固件调试时,可以使用cypress提供的ez-usb control panel。

    void td_poll(void)

    {

    if(gpiftrig & 0x80) //判断gpif是否空闲

    {

    if(extfifonotempty ) //判断外部fifo是否非空

    {

    if(!(ep24fifoflgs & 0x01)) //判断fifo是否不满

    {

        

    

    

    作者:北京机械工业学院 闫亚飞 祝连庆

    

    在图像处理、瞬态信号测量等一些高速、高精度的应用中,需要进行高速数据采集。usb 2.0接口以其高速率等优点渐有取代传统isa及pci数据总线的趋势,热插拔特性也使其成为各种pc外设的首选接口。ez-usb fx2是cypress公司推出的集成usb 2.0的微处理器,它集成了usb 2.0收发器、sie(串行接口引擎)、增强的8051微控制器和可编程的外围接口。本文将介绍基于ez-usb fx2系列cy7c68013芯片的高速数据采集系统的设计,该系统具有限幅保护功能,固件和驱动程序的编写简便,能够完成对数据的高速采集和传送。

    

    数据采集系统方案设计

    

    数据采集系统的框图如图1所示,硬件电路如图2所示。其中,ad1674是l2位模数转换芯片,采用逐次比较方式工作。cpld主要用于控制adc以及fifo的时序、控制adc的启动与停止和查询adc的状态等。fifo主要起着高速数据缓冲的作用。

    

    

    

    图1 数据采集系统框图

    

    

    

    图2 系统硬件电路

    

    cy7c68013和ad1674之间通过cpld连接,实现相关控制线和数据线的译码。在cy7c68013的控制下,首先对ad1674进行间隔采样,然后把结果传送到fifo中,当采集到一定量的数据后,cy7c68013将数据打包通过usb总线传到pc,由高级应用程序进行数据处理。扩展的rs232接口可以和外部设备进行通信。上电时,cy7c68013从外部的e2prom中通过i2c总线自动装载到内部的ram中,便于固件的修改和升级。

    

    数据采集前端的调理电路如图3所示,本设计采用了限幅、降压、滤波和增加输入阻抗的措施来保护后端的转换芯片。

    

    驱动程序和固件设计

    

    usb设备驱动程序基于wdm。wdm型驱动程序是内核程序,与标准的win32用户态程序不同,采用了分层处理的方法。通过它用户无须直接与硬件打交道,只需通过下层驱动程序提供的接口访问硬件。因此,usb设备驱动程序不必具体对硬件编程,所有的usb命令、读写操作通过总线驱动程序转给usb设备。但是,usb设备驱动程序必须定义与外部设备的通信接口和通信的数据格式,也必须定义与应用程序的接口。cypress公司提供了完整的cy7c68013驱动程序源码、控制面板程序及固件的框架,这大大加快了用户开发的进度。用户只需稍加修改或无须任何修改即可使用现有驱动程序,软件开发者大量的时间主要集中在应用程序和固件的开发。根据用户自己的需求,一般只需修改deviceiocontrol例程。本设计主要增加了控制数据传输函数、启动和停止adc、复位fifo等。cypress为cy7c68013提供了开发框架,其中两个程序如下。

    

    fw.c:fw.c中包含了程序框架的main函数,管理整个51内核的运行,因为这部分的功能已经进行了精心划分,一般是不用改动的。

    

    

    

    图3 调理电路

    

    periph.c:用户必须将periph.c实例化,它负责系统周边器件的互联。固件的设计主要针对这个文件,用户必须根据自己系统的需要,实例化这个文件,以实现所需的功能。在固件程序中,最重要的是td_init()和td_poll()这两个函数。以td_poll()函数为例,在td_poll()中主要完成外部fifo状态的检测和数据的传输,程序主体部分如下。固件调试时,可以使用cypress提供的ez-usb control panel。

    void td_poll(void)

    {

    if(gpiftrig & 0x80) //判断gpif是否空闲

    {

    if(extfifonotempty ) //判断外部fifo是否非空

    {

    if(!(ep24fifoflgs & 0x01)) //判断fifo是否不满

    {

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!