1.4 USB数据传输
由于USB接口支持即插即用,接口体积小巧、节省系统资源、传输可靠、提供电源、良好的兼容性、共享式通信和低成本等优点,使得采用USB接口的CCD相机比采用PCI、光纤及串口等通信方式与上位机进行数据传输更方便,传输速率更高,符合现代通信的要求。实时、快速、准确地将数据通过USB传递给上位机是CCD相机的重点和关键。本CCD相机的USB接口使用的是Cypress半导体公司的CY7C64613芯片,它是一款全集成化外设控制器,支持USB2.0协议,内含增强型8051核、丰富的端口和中断向量、串行接口引擎SIE、通用可编程接口GPIF等资源[3]。
CY7C64613上电的处理类型有4种,这里采用首字节为0xC0的EEPROM启动。当芯片上电后,检测到首字节为0xC0的EEPROM连接到IIC总线上,此时CY7C64613自动将VID、PID和DID等复制到片内存储器,然后CY7C64613将这些数据发送给主机,主机根据ID数据选择合适的固件程序下载到USB芯片内。最初的列举完成后,USB主机驱动芯片复位,然后CY7C64613按照用户设备重列举,执行内部固件程序,实现设备的初始化和与主机间的通信。EEPROM芯片24LC32A具有功耗低、允许工作电压范围宽、容量大、支持IIC总线协议、占用I/O端口少、扩展方便、读写简单等优点。其中WP为保护引脚,为高电平时,只能对该器件进行读操作,用于硬件数据保护;为低电平时,可进行读写操作。电路图如图3所示, 其中由于SCL和SDA引脚都是漏极开路和迟滞输入的,因此必须外接2.2 kΩ的上拉电阻。
本设计采用EZ-USB芯片提供的一种高速数据传输模式,即GPIF模式,它是一种内部主机控制模式,使用内部集成的高效控制逻辑来取代外部的微控制器进行EZ-USB端点FIFO的控制。在GPIF模式下,为了获得IDT7204中的数据,将CTL0与R引脚相连,在每个R的低电平时期将数据从外部FIFO IDT7204中读出。RDY1与EF相连,如果外部IDT7204为空,则EF为低电平,GPIF用这个引脚控制读数据。IDT7204指针在数据传输过程中自动增加,当IDT7204指针为满时,数据传送完成,进入空闲状态,否则数据没有完全传输完毕,这时就要继续等待数据从IDT7204中传输过来,这就保证了IDT7204中的数据实时、安全地传送到PC中。GPIF模式下的IDT7204读波形图如图6所示[4-5]。
2 软件开发
USB外设所必须的驱动程序、应用程序以及固件程序的开发可以利用Cypress公司提供的CY7C64613的开发包。驱动程序在Cypress提供的通用驱动程序CYUSB.SYS的基础上,通过调用主机控制函数库CyAPI.lib中的函数开发USB 设备。固件设计可以用提供的固件封装包来实现,封装包里含fw.c、periph.c、lp.h、lpregs.h等文件,实现EZ-USB 芯片的初始化、USB标准设备请求的处理和USB挂起电源管理等服务。固件和驱动程序设计好后,可以用Cypress公司提供的EZ-USB Control Panel软件进行调试,固件工作流程如图7所示。
上位机应用软件的工作流程如图8所示。该应用软件可以控制相机的曝光时间、对采集的图像进行刷新、重采样、对图像的灰度、对比度拉伸和图像降噪(滤波)等操作,并可以对图像进行多种格式的打开和存盘。
CCD相机数据采集系统的设计完成了从总体方案设计到软、硬件调试等一系列过程,采用EZ-USB控制器实现了系统的即插即用,应用GPIF工作模式满足了CCD高速数据采集时数据传输带宽的要求。经初步测试,其性能和指标达到了预期的要求,为以后CCD相机的研制奠定了坚实的基础。