关键词: 图像采集; 电荷耦合器件; A/D; FIFO; CY7C64613
CCD(Charge Couple Device)中文名为“电荷耦合器件”,是一种以电荷包的形式存储和传递信息的半导体表面器件。由于CCD相机的灵敏度高、噪声低、动态范围大等突出优点,使它在天文物理学、航空航天、生物和医学研究、X射线成像、水下摄影、分子动力学、光谱学等科学研究领域得到广泛的应用。目前,国内成套的中高端CCD相机大都采用图像采集卡作为数据的传输方式,对电脑要求高,维护不便,严重阻碍了CCD相机的发展。为此本文设计了基于USB的热插拔、高数据传输率的CCD相机的数据采集系统。
1 CCD相机数据采集总体方案
完整的CCD相机系统比较复杂,一个完整的CCD相机系统包括制冷电路、CCD芯片、信号调理电路、时序驱动和控制电路、USB数据采集传输模块等[1]。CCD相机数据采集总体方案如图1所示。本相机用独立制冷电路(具有测温和反馈控制功能)给CCD芯片制冷,这部分电路与采集电路不发生关系,为了不产生影响,两部分电路独立,不共地。
1.1 信号调理电路
为了使CCD输出信号能达到A/D转换器的输入信号的要求,本文设计了图2 所示的CCD输出信号调理电路。工作原理为:输出信号U经过低噪声放大器A1放大,再经过电位器W和低噪声放大器A2,在A3放大器和上次复位后的输出信号相减(SH1是采样保持器,此时保持的是上次复位后在A2放大器中的输出信号),然后由采样保持器SH2保持并经A4放大输出给A/D转换器。A3为差分放大器,实现本次信号减去上次复位后的信号,从而消除复位噪声。
1.2 A/D转换及控制时序
CCD输出信号的模数转换电路设计需要全盘考虑。特别是转换器的分辨率(转换输出位数)和采样与转换速度,这是影响整个系统的主要指标。同时受到CCD读出信号、信号噪声大小、计算机图像处理的复杂程度等的影响和制约,而性能太高的转换器由于受到其他因素的制约而发挥不了应有的作用,所以选择合适的A/D转换器是设计转换电路的关键。在CCD采用制冷措施后,热噪声变的很小,通过信号调理电路可以减小复位噪声,为了发挥制冷CCD高信噪比的优势,应使用高分辨率的A/D转换器。综合考虑射线图像的信噪比、电路噪声以及成本等因素,并参照其他CCD相机的情况,本文选择了LTC1608CG模数转换器,其片内自带采样/保持器、16位的分辨率、转换率为500 kS/s,其速度、精度和无管线延迟结构使得LTC1608特别适合于高速多路复用数据采集系统中[2]。
CCD读出的信号经过预处理电路后,由LTC1608进行模数转换,A/D转换的启动信号CON0由计算机通过控制电路产生,选通2个8 bit锁存器74LS374,在控制电路的作用下,把上次锁存的16 bit数据传输给存储器IDT7204。A/D转换结束后自动进行下次采样并输出BUSY信号,利用BUSY信号把本次的转换结果存储在2片锁存器中,再由下次的控制信号CON1读入IDT7204中。A/D转换电路图如图3所示。CCD信号转移、A/D控制及数据传输控制时序图如图4所示。
1.3 FIFO
FIFO是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,只能顺序写入数据,顺序地读出数据,其数据地址由内部读写指针自动加1完成,这样使用起来非常简单。FIFO一般用于不同时钟域之间的数据传输,例如本文中FIFO的一端为LTC1608数据采集,另一端为计算机的USB数据传输接口,其中A/D采集的速率为16 bit 500 kS/s,那么每秒的数据量为500 K×16 bit=8 Mb/s,而本文使用的USB接口芯片CY7C64613的传输速率为12 Mb/s,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。为了保证数据正确地写入或读出,而不发生溢出或读空的状态出现,必须保证FIFO在满的情况下,不能进行写操作。在空的状态下不能进行读操作。设计中FIFO芯片IDT7204工作时序图如图5所示。
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相机的研制奠定了坚实的基础。
参考文献
[1] 程耀瑜. 工业射线实时成像检测技术研究及高性能数字成像系统研制[D].南京:南京理工大学,2003.
[2] Texas Instruments Incorporated. High Speed, 16-Bit, 500 ksps Sampling A/D Converter [EB/OL]. 2006.
[3] 薛园园. USB应用开发技术大全[M]. 北京:人民邮电出版社,2007:482-544.
[4] 刘伟,姚大志,黄典礼,等.高速CCD相机系统设计[J]. 红外技术, 2008,30(5):289-293.
[5] Cypress Semiconductor Corporation. EZ-USB Technical Reference Manual [EB/OL]. 2002.