首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
利用USB2.0技术的高速双路数据采集系统
来源:本站整理  作者:佚名  2010-03-05 22:07:03



  GPIF状态机可以定义四个波形描述符,一般情况下是:FIFO读,FIFO写,单字/字节读,单字/字节写。Cypress提供了图形化的波形描述工具GPIF Designer,用户只需要给出GPIF波形,GPIF Designer会自动生成C语言的波形代码Gpif.c,可以直接链接到用户的固件程序中。本文中用到了FIFORd描述符,波形如图3所示。


  图3      GPIF Designer设计的 FIFORd波形

  4.系统软件编写

  系统软件主要包括三个部分:下位机CY7C68013的固件,USB驱动程序和上位机主机应用程序。

  4.1 固件程序编写

  对于下位机CY7C68013的固件编写,Cypress公司给出了在Keil C51下的固件程序框架,固件框架完成EZ-USB FX2的初始化、USB标准设备请求处理、USB挂起模式下的电源管理服务和USB中断处理。Cypress还提供了函数钩子来加速用户代码的添加。用户只需要简单地提供一个USB描述符表和执行外围功能的代码即可。

  4.2 驱动程序编写

  Windows系统下的USB驱动包括三层,从高到低依次是:USB客户端设备驱动(USB Client Device Driver)、USB总线驱动(USB Hub(Bus) Driver)、主机控制器驱动(Host Controller Driver)。后两者由Windows系统提供,用户只需要开发USB客户端设备驱动程序,Cypress公司提供了一个通用的驱动程序 (General Purpose Driver),即ezusb.sys,一般情况下,该驱动程序可以满足FX2开发者的需要。本文使用了Cypress公司的通用驱动 ezusb.sys。为了使用ezusb.sys,用户必须编写对应的inf文件,inf文件将特定的USB设备绑定给相应的驱动程序,该inf文件参照 ezusbw2k.inf编写。

  4.3 主机应用程序编写

  通用驱动程序GPD即ezusb.sys提供了基本USB设备请求和数据传输的用户模式接口,用户模式应用程序通过Win32函数 DeviceIoControl()给设备驱动器发送请求。Ezusb.sys提供了基本设备请求、批量读写、同步读写等一系列IOCTL函数。这里以 IOCTL_EZUSB_BULK_READ(EZUSB批量传输)为例加以介绍。

  批量传输模式下读FX2的端点FIFO的关键代码如下:

  DWORD  ioctl_val=IOCTL_EZUSB_BULK_READ;  //设置从设备中读数据

  Bresult=DeviceIoControl ( hDevice , ioctl_val ,  //从设备读数据

  &bulkControl ,      //端点号

  sizeof ( BULK_TRANSFER_CONTROL),  //传入参数的大小

  buffer ,  //读数据的缓冲区

  length ,  //读数据的长度

  (unsigned long *)&nBytes , //驱动返回的数据的实际长度

  NULL);

  限于篇幅,其他程序代码从略。

  6.结束语

  本文的创新点是充分发挥了CY7C68013的优势,利用FX2的内部可编程状态机GPIF实现了与外围FIFO“无胶”连接,避免了使用外围ASIC或者CPLD、FPGA等的麻烦,系统升级方便。整个电路结构紧凑,占用面积小,便于携带。

  本文采用Cypress公司的USB2.0芯片CY7C68013设计了一种通用的高速双路同步数据采集系统,通过将其与高精度激光纵模分析仪连接进行试验,证明该系统实现了数据的高速实时传输,达到了预先设计的目标。随着USB口的进一步普及和计算机的发展,本文设计的这种USB数据采集系统必将得到更加广泛的应用。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:209,523.40000 毫秒