基于FPGA和USB2.0的高速CCD声光信号采集系统
A/D转换模块 AD9822是ADI公司的专用CCD信号处理芯片,内部集成CDS,PGA,14位
USB接口传输模块 USB 2.0协议的传输速度高达480 Mb/s,且具有接口简单及误码率低等优点,能够满足该系统高速传输的需要。选用Cypress公司的新一代低功耗CY7C68013A芯片,与之相应的开发包和开发文档较齐全,缩短了开发周期,降低了开发难度。为了保证数据传输的速度,CY7C68013A工作于SlaveFIFO模式,不需要EZ-USB FX2LP的CPU干预,即可完成与FPGA的数据传输。EP2C35与CY7C68013A的通信采用了Slave FIFO模式下的异步方式,向大端点EP6写数据,配置其为512 B四重缓冲区,批量AUTO IN传输模式,每次自动提交512 B数据。图4为EP2C35与CY7C68013A的接口连接。
3 系统软件设计
系统软件设计包括:
固件程序(Firmware)设计 设备固件的主要功能是控制CY7C68013A接收并处理USB驱动程序的请求。如请求设备描述符,请求或设置设备状态,请求或设置设备接口等USB 2.0标准请求;辅助硬件完成设备的重新枚举、端点配置、控制和监测USB的活动,根据PC主机的命令与外围电路进行数据交换等。Cy-press公司为用户提供了一个固件程序框架,是通用性强的模块化程序。在框架的基础上,用户只需要编写Function.c文件即可完成USB功能开发。主要包括:Slave FIFO模式的初始化和用户自定义请求。
驱动程序开发 系统包括两个USB驱动程序:一个驱动专用于下载芯片的固件程序CCDloader.sys,另一个通用驱动程序ccdusb.sys用来实现USB设备与应用程序的通信和控制。芯片固件程序在主机上,当系统上电时,前者将其下载到芯片的RAM中,并由增强型8051
应用程序开发 它的主要任务是与USB驱动程序通信,控制声光信号采集过程。在此用Visual C++6.0进行程序设计。CyAPI控制函数类为FX2LP系列USB接口芯片提供了十分精细的控制接口,只需在应用程序中加头文件CyAPI.h和库文件CyAPI.lib即可调用相应的控制函数,打开USB设备读取数据并存储到主机硬盘中的CcdData.txt文件。
评论