您当前位置:资讯百科知识技术文库基于USB的高清彩色CCD图像采集系统

基于USB的高清彩色CCD图像采集系统

  来源:互联网  发布时间:04-25

浏览量:    

核心提示:随着时代的进步,科技的发展,数字图像的采集与处理在科技研究,工农业生产、医疗卫生、航空航天,军事对抗等领域得到了越来越


    随着时代的进步,科技的发展,数字图像的采集与处理在科技研究,工农业生产、医疗卫生、航空航天,军事对抗等领域得到了越来越广泛的应用。所以,对图像采集系统的研究具有重要的现实意义和应用价值。笔者提出了一种基于USB的彩色CCD高清图像采集系统。CCD中文名称为电荷耦合器件,它是20世纪70年代迅速发展起来的一种新型半导体探测器件,可把自然图像转换为电信号,具有动态范围大、电荷转移效率高、低噪声输出、分辨率高、工作频率高等优点。USB即UNIversal Serial Bus,是通用串行总线的简称,这是由七家主要的计算机与电子科技大厂于1994年所研发和制定的一种串行总线协议。本采集系统具有以下特点:数据传输采用USB2.0高速传输接口;整个系统由USB接口供电,无需外加额外的电源;系统可实现140万的高清图像采集;图像采集的速度最高达7.5 frame/s。

1 系统硬件设计
1.1 系统硬件架构
    本系统的硬件架构如图1所示。整个系统由电源系统、光学系统、图像传感器,A/D转换器、CPLD控制器、USB2.0高速接口、上位机PC以及控制程序等各个部分组成。电源模块负责给整个系统供电,电源模块的输入是USB总线提供的5 V电源,进行DC—DC转换产生两路CCD驱动所需要的电源:15 V、-8 V。其他模块的供电采用统一的3.3 V。图像传感器采用的是SONY公司的CCD ICX205AK,它是一款1/2英寸、145万有效像素的CCD传感器,每秒能够输出145万有效像素的图像7.5帧。A/D转换器负责将CCD输出的模拟信号转变成为数字信号,采用的是ADI公司的AD9824,它是一款完善的CCD信号处理器。CPLD控制器产生CCD和AD工作所需要的时序,同时须实时接收USB总线发送过来的控制信息,并根据接收到的参数实现图像的曝光时间和白平衡等调整。USB2.0高速接口是整个系统数据通信的“交通要道”,对系统中高速图像信号采集,上位机与硬件电路之间通信等方面起着至关重要的作用。本系统采用Cypress公司的USB2.0控制器CY7C68013A,CY7C68013A芯片内部包含USB2.0收发器、串行接口引擎(SIE)、增强型8051内核、16KB RAM、4KB FIFO存储器、I/O接口、数据总线、地址总线和通用可编程接口,硬件资源非常丰富。根据系统的要求,并考虑到系统的成本,本系统采用Altera公司的MAX 3000A系列产品中封装为TQFP 100的EPM3128 ATCl00-10N芯片作为系统的控制中心。该芯片有2500个系统门,128个宏单元,最大支持80个用户I/O,且功耗低。

a.jpg


1.2 CCD驱动电路设计
    图2为CCD驱动电路。由于ICX205AK垂直移位寄存器不能直接使用TTL电平驱动,所以需要引入CCD驱动电路部分,对CPLD生成的各种转移脉冲信号进行功率放大,以满足CCD对驱动波形电压及电流以及时序的要求。驱动信号的好坏会对CCD的电荷转移效率产生较大的影响,从而影响成像的质量。本设计采用的是与ICX205AK相配套的垂直时钟驱动芯片CXD1267AN,将原本为TTL电平的V1,V2A,V2B,V3和SUB信号转变为合适的电平。其中V1,V3要求为-8V/0 V两个等级,V2A,V2B要求为-8 V/0 V/+15 V3个等级,SUB为-8 V/+15 V两个等级。引入XSG1,XSG2两个时序信号,用于控制CXD1267AN生成垂直移位时钟信号V2A\V2B,实现感光阵列中的电荷信号转移到移位寄存器。H1,H2水平寄存器转移时钟,用于控制水平移位寄存器的电荷信号的顺序移出,其频率直接决定CCD信号输出的频率。

b.jpg


1.3 高速USB2.0接口设计
    图3为高清图像采集系统的核心传输链路,USB2.0高速接口。因为图像采集系统要求将数据高速而准确地传入PC端,故本系统采用Sla ve FIFO模式,图像不经FX2LP的CPU处理,直接通过从属端点FIFO将数据高速传入PC端。

c.jpg


    图3中,IFCLK为Slave FIFO的接口时钟。Slave FIFO接口时钟信号既可由内部提供,也可由外部提供。如果FX2LP设置为使用外部时钟源,则IFCLK引脚可被用来提供5~48 MHz之间的任何频率的时钟信号。当IFCLK被设置为输入时,最小频率为5 MHz。FIFOADR[1:0]引脚用来选择EP2、EP4、EP6和EP8中的一个FIFO与数据总线FD连接。FULL和EMPTY引脚分别是FIFO的满状态和空状态标志,通过配置CY7C68013A内部的相关寄存器可使得当FIFO满状态或者空状态的时候向外部控制器发送相应的标志。SLWR引脚是写FIFO控制信号,当SLWR被激活时,数据总线FD上的数据在每个时钟信号IFCLK上升沿到来时被写入FIFO。
    INT1和PAUSE信号是为了协调高清图像数据正常发送而引入的额外信号。系统中CCD图像传感器输出的模拟信号经AD9824采样后输出14 bit数字信号,但数据中不包含图像帧头信息。为使主机应用程序能够准确和完整地分离出图像数据,本系统设计方法是在EZ-USB FX2LP的INT1中断服务程序中为每一帧图像加入特定的帧头。在EZ-USB在往FIFO里面写入帧头的过程中,不允许CPLD继续让AD向FIFO传送数据,从而引入了PAUSE信号通知CPLD暂停传送数据的操作。
    本系统采用的模拟转换器AD9824是一款14bits的高效CCD信号处理器,而FD[15:0]是16位的数据总线,在设计过程中,我们将高位数据线接地,低14位数据线接AD9824数据并行输出数据。

2 系统软件实现
2.1 AD相关双采样
    相关双采样(CDS)通过对每一个CCD像素点输出信号采样两次来消除低频噪声的影响,它是根据CCD输出信号和噪声信号的特点而设计。图4为相关双采样时序图,图中详细的指出了相关采样的时序要求。CCD每个像元的输出周期都以复位脉冲信号开始T1,先清除前一个像素的电荷,以等待下一像素电荷的到来。此时的输出信号被嵌入复位电平,并产生复位噪声;在图中T2期间,由于复位MOSFET漏电流的影响,复位电平有微小下降,这种现象称为复位失调电压。此时的输出信号为复位电平与复位噪声、复位失调电压的叠加;在T3期间,CCD电荷进行水平转移,此时混入移位时钟干扰;T4期间的输出为复位噪声、复位失调电压和有用光敏输出信号的叠加。所以相关双采样的原理就是在T2和T4时刻对同一像素点的输出信号进行采样,然后将两次采样值相减就基本消除了复位噪声的干扰,得到信号电平的实际有效幅值。本系统选用的模数转换器AD9824内部具有相关双采样电路,系统实现过程中就是EPM3128产生如图4所示的SHP、SHP、DATACLK采样信号,即可完成相关双采样逻辑,很大程度降低了图像数据中包含的噪声信号。

d.jpg


2.2 USB固件程序设计
    在USB接口设计中,USB固件编程是整个设计任务的核心。USB固件程序用于完成USB设备的识别、重列举、设备请求、USB协议处理、外部硬件的功能、负责与USB主机之间的数据通信等。固件的设计就是使在USB总线上的传输能获得最大的有效的数据传输速度。
    设备上电之后,就会按照如下的步骤执行固件:
    1)初始化架构全局变量;
    2)调用TD_Init()初始化FX2LP芯片,调用用户自定义的初始化函数,返回后USB设置为未配置状态,并打开中断;
    3)在紧接着的1秒内,重新枚举USB设备,直到收到SETUP封包;
    4)检查设备请求,有请求则执行相应的功能,有的需要跳转到相应函数;
    5)检查总线挂起事件,没有挂起事件则执行9);
    6)调用TD_Suspend(),返回失败代码则执行9);
    7)挂起处理器;
    8)检查重新开始事件,事件发生则调用TD_Resume(),否则执行7);
    9)调用TD_Poll,函数返回到4)并执行。
    固件框架流程如图5所示。

e.jpg


    由于AD9824传送过来的每一帧图像都是连续的,也就是不包含帧头信息。本系统采取的做法是在一帧数据到来的时候,CPLD控制器会给CY7C68013A一个中断信号。中断服务程序所要做的工作就是清空FIFO里面的数据,并往FIFO里面写入512个字节的帧头(0xFF)数据。这样做的目的是保证上位机能够正确的识别每一帧数据。中断服务程序流程图如图6所示。

f.jpg


2.3 上位机程序设计
    本系统的上层应用程序使用VC++6.0软件进行编程,采用多线程、双缓冲区等技术实现动态图像的实时显示。
    在图像采集系统中,主要有3个功能模块:图像数据采集模块、图像数据处理模块、图像显示模块。如果采用单线程方法,则工作过程为:先进行数据采集,采集完成后对数据进行处理,最后将处理后的数据进行显示。由于这3个功能模块不能同时进行,会造成了CPU的利用率低,限制传输帧速率的提高,导致系统的整体效率大大降低。
    为了提高运行效率,本应用程序设计时采用多线程并行处理的方法,将数据采集、数据处理与图像显示分别放在3个线程里进行。从图7中可以很明显看出单线程与多线程的区别。

g.jpg


    在图像数据采集模块中,一种数据采集方法是串行处理,如图8所示。

h.jpg


    这种结构易于实现,但存在着明显的不足;效率低下,不适合实时性要求高的场合。
    为了进一步提高图像采集的实时性,在应用程序开发时设计了双缓冲区交替采集处理的工作方式,如图9。周期T时应用程序采集数据到缓冲区1,同时处理缓冲区2中的数据;周期T+1时应用程序采集数据到缓冲区2,同时处理缓冲区1中的数据。如此反复交替,可以显著提高数据采集效率。

i.jpg


    系统测试结果表明,与普通的但缓冲区单线程结构相比,这种双缓冲区多线程结构可以显著提高图像传输的帧速率。

3 系统测试
    通过USB2.0电缆将设备连接到装有Windows XP系统PC机上面,PC机上面运行采集软件进行图像采集。如果图像模糊不清,可以通过调节设备的镜头焦距,使得图像能够正确对焦。图10是整机调试的环境。图中采集到的图像数据为CCD的原始并未做处理的有效数据。图像的分辨率为1 360x1 024约等于140万像素。最快可以实现7.5 frams/s的采集速率。

j.jpg



4 结论
    本文设计了一个基于USB的彩色CCD图像采集系统,系统采用USB总线供电且能稳定工作,采集到140万的高清彩色图像,并最快能实现7.5 frame/s的动态图像采集。文章从硬件方面详细的叙述了整个系统的架构设计,CCD驱动电路的设计以及高速USB2.0接口的设计方案。软件方面阐述了AD相关双采样,USB固件程序的设计框架以及上位机多线程、双缓冲的设计思路。总之,本系统的设计方法对基于USB的图像采集系统的软硬件设计都具有重要的参考价值。


上一篇 : 30亿元高铁市场或将掀起安防行业淘金热             下一篇 : 手动灌肠机 手动灌肠机好用吗?手动灌肠机

版权声明:

  1.华商贸易网转载作品均注明出处,本网未注明出处和转载的,是出于传递更多信息之目的,并不意味 着赞同其观点或证实其内容的真实性。

  2.如转载作品侵犯作者署名权,或有其他诸如版权、肖像权、知识产权等方面的伤害,并非本网故意为之,在接到相关权利人通知后将立即加以更正。联系邮箱:me@lm263.com

 

 

网站首页 | 行业资讯 | 投资理财 | 企业管理 | 成功励志 | 市场营销 | 范文大全 | 智慧人生 | 创业指南 | 贸易宝典 | 百科知识