1 引言
CCDCharge Coupled Device)电荷耦合器件是20世纪70年代发展起来的一种新型半导体大规模集成光电器件。由于它在图像信息的摄取、记录方面独具特色,同时又具有体积小、功耗小、分辨率高、灵敏度高、可靠性好等诸多优点,因此在科学、天文、工业等领域有广泛的应用。
CCD输出的视频信号中除了有用的图像信号外,还包括很高的直流分量和噪声。若不进行处理,将严重影响传感器的图像质量,因此CCD视频信号的噪声处理十分重要。CCD视频信号处理的目的就是尽可能地消除各种噪声和干扰,但又不能损失图像细节;并且保证在CCD的动态范围内图像信号随着目标亮度成线性变化,同时为了便于计算机处理和大容量存储,还必须对CCD输出信号进行数字化处理[1]。这些功能若由分立电路实现,则电路复杂、调试不方便、价格昂贵、功耗大等缺点是显而易见的,这与CCD相机向着功能更强大、性能更完善、价格更便宜、功耗更低的发展趋势是相悖的。随着微电子技术的发展,为了解决CCD视频信号噪声处理问题,许多公司(Exar,Kodak,Burr-Brown,TI等)相继开发了功能齐备的专用CCD视频信号处理芯片,将各种功能电路集成在一块芯片上,这样不仅大大简化了信号处理电路,降低了CCD相机设计复杂度,而且使CCD相机的功能更强大,性能更优越。
本文主要分析了专用CCD视频信号处理芯片XRD4460的功能及特点,并在此基础上设计了基于XRD4460的CCD视频信号处理电路。
2 XRD4460的特点及功能
XRD4460是EXAR公司推出的专用CCD视频信号处理芯片。它带有一个1O位A/D转换器,最高采样速率高达16MHz,内置高带宽的差分相关双采样器(CDS)和8位的数字可编程增益放大器(PGA)。模拟偏移量可控制,差分信号输入,差分外部时钟,片内带有输入缓存和采样/保持器,1O位并行数据输出。由于其功能强大、性能优越、功耗低、体积小等优点,因而广泛用于数字摄像机、数字静态相机和PC录像会议相机等数字成像系统中。XRD4460的功能框图如图1所示,其功能主要包括。
(1) 相关双采样(CDS,correlated double sampling):CCD输出信号中的主要有光子噪声、陷阱噪声、暗电流噪声、复位噪声。其中光子噪声、陷阱噪声是由器件和工艺造成的,不易处理,而暗电流噪声与器件的环境温度有关,所以信号处理电路主要对复位噪声(亦称KTC噪声)进行抑制[2]。为了降低复位噪声,XRD4460采用了相关双采样技术。相关双采样的原理是由于复位噪声表现在同一像素周期内近似常数(即具有相关性),但是对于不同的像素周期是随机变化的。所以,只要在同一像素周期内的暗电平参考区间和信号电平区间进行两次采样,那么这两次采样的复位噪声是相关的,将两个采样电平经差动放大器输出,得到的信号就是真实的视频信号。这一过程把与参考电平和信号电平都相关的复位噪声滤除了,而且对低频噪声也有一定的滤除效果[3]。
(2)可编程增益控制PGA (programmable gain amplifier): 输入到ADC的视频信号的电压是由CCD输出信号的电压和信号处理的系统增益、偏置决定的。因为CCD输出信号的大小随着入射照度的强弱而改变,只有通过信号处理系统进行增益、偏置地调节.才能使输出的数字图像的亮度和对比度满足要求。XRD4460的增益控制由可编程增益放大器PGA完成,增益范围为6dB~38dB,由8位增益寄存器控制,通过串口来设定。当输入增益码Code=00H时,系统存在固有6dB增益,增益控制码每增加一个码字,系统增益增加0.125dB,从而实现可编程增益控制。
(3)暗电平自动校正:由于光强、温度、供电电压的缓慢变化都会使视频输出信号的暗参考电平出现波动,在实际应用中,需要暗参考电乎维持一个固定电平,暗参考电平校正过程亦即直流电平恢复过程。通过情况下,CCD输出视频信号的开始部分或结束部分会分布若干个暗电平参考像元。XRD4460通过CLAMP信号的高电平与输出信号的暗参考像素对应,选择合适的外部耦合电容参数,将使整行的暗参考电平保持在一个固定电平上。
(4)数字偏置控制:若CCD工作于弱光条件下,即使信号的增益很大,经过视频信号处理后的电压仍可能低于ADC的下参考电压,这样使输出视频图像产生失真。为了提高弱光条件下的灰度分辨率,需要使输出视频信号的暗参考电平高于ADC的下参考电压,那么仅仅调整增益是不够的,还需要对视频输出信号的偏置进行调整。XRD4460的偏置调整同样是通过串口编程控制片内8位偏置寄存器。电源上电后默认的偏置设置值位08H,偏置调整范围为02H~08H。
(5) A/D模数转换:XRD4460内部集成了10位分辨率、逐次比较式A/D转换器,由于利用对分搜索的原理,转换速率高达16MHz,这样的转换速度和转换精度适合于大多数应用场合。
(6) 串行接口:XRD4460的串行接口包括了一个10bit的移位寄存器和多个并行寄存器,通过LOAD、SDI、SCLK三个信号来控制内部寄存器的写入,实现对XRD4460工作参数的编程控制。
3 CCD视频信号处理电路的硬件设计
CCD视频信号处理电路以专用CCD视频信号处理芯片XRD4460为核心部件,完成CCD视频信号的放大、噪声处理以及数字化,并使用CPLD(可编程逻辑器件)技术完成整个电路的逻辑控制,配以先进先出(FIFO)存储器作为数据高速缓冲器,用于存储AD转换后的数据,并采用具有微控制器的USB接口芯片,从而通过USB接口将CCD数据输入计算机。CCD视频信号处理电路设计如图2所示。大致可分为三个部分。
3.1 XRD4460视频信号处理电路
XRD4460专用CCD视频信号处理芯片的工作时序需要根据具体的CCD芯片来确定。图2中,SHD、SHP、RST、CLAMP信号必须依据CCD输出信号的时序来设计。其时序关系如图3所示。CCD输出信号经过CCD信号处理器XRD4460处理, 即进行双相关采样(CDS)去噪处理后,再经增益放大以及偏置调整,然后经过A/D转换得到10位数字数据。这些数据在CPLD逻辑控制电路的控制下存人异步FIFO存储器SN74V293中。而SDI、SCLK、LOAD是XRD4460的串口控制信号。通过串行接口,可以方便进行编程控制XRD4460的增益与偏置的调整,从而改善输出图像的质量。
3.2 FIFO与USB接口电路
高速A/D变换的数据不能直接通过USB送入主机,需要通过FIFO来缓冲数据。电路采用TI公司SN74V293芯片。它的容量为65536×18或131072×9,最快读写周期为6ns,可以满足100MHz采样数据的存储。设置SN74V293的输入、输出宽度为18位时,则其可存储64K×10位的数据。FIFO写时钟W和复位信号/RS的时序关系如图4所示。USB接口电路采用Cypress公司推出的EZ-USB芯片CY7C68013A,该芯片把USB2.0收发器、串行接收引擎SIE(Serial Interface Engine)、带16K的增强8051内核、4KB FIFO存储器以及通用可编程接口GPIF(General Programmable Interface)集成一体,将其作为USB外部设备的主控芯片,而无需外加微控制器(MCU)便可实现USB芯片通信初始化以及与主机的通信连接。 当FIFO中存入数据时,USB接口电路根据其标志信号(满信号/半满信号)读取数据并发送给主机。
图4 FIFO写控制时序
3.3 CPLD逻辑控制电路
逻辑控制电路由CPLD采用VHDL硬件描述语言编程实现,完成整个电路的逻辑控制,主要包括三部分的功能。第一部分的功能是为XRD4460提供工作时序(如图3)。第二部分功能是向FIFO提供写时钟W和复位信号/RS,控制数据的顺利写入。第三部分功能负责XRD4460的串口设置。在CPLD中设计一个串行口和一个寄存器,其中串行口用来将寄存器中的数据发送给XRD4460进行功能设置;而寄存器用来存储主机发送过来数据。主机通过CY7C68013A中的EP2端点发送数据。
4 CCD视频信号处理电路的软件设计
USB应用系统软件设计分为三部分:USB外设端的固件(Firmware)、主机操作系统上的客户驱动程序以及主机应用软件。主机应用软件通过客户驱动程序与系统USBI(USB Device Interface)进行通信,由系统产生USB数据的传送动作;固件则响应各种来自系统的USB标准请求,完成各种数据的交换工作和事件处理[4]。
4.1 USB接口编程
固件程序是USB芯片内微处理器的控制程序,可采用汇编语言或单片机C语言设计。当系统上电时,固件程序通过USB电缆下载到CY7C68013A的内部RAM 中。
固件程序主要是实现USB通信。当主机与芯片进行USB通信时,会产生外部中断0,通过中断矢量寄存器来判断。Setup_packed_Int、Input_endpoint0_Int、Output_endpoint0_Int这三个中断主要用于与主机建立连接、进行控制传输或中断传输;Input_endpoint1_Int、Output_endpoint1_Int这两个中断主要在批量传输时使用。在固件中分别执行不同的中断程序来实现USB的数据传输。所有的中断处理程序采用C语言进行编写。
4.2 主机软件设计
首先开发CY7C68013A在主机中的驱动程序。用WinDK3.0开发了Win2000下的驱动程序,实现了控制传输、中断传输和批传输的标准接口函数。
在应用程序开发中,采用VC++编制应用程序。把USB设备当成文件来操作,利用CreateFile得到USB句柄,用DeviceIoControl来进行控制传输,用ReadFile、WriteFile进行批量传输。主要实现两个功能:一是完成采集的图像的显示;二是设置CCD视频信号处理芯片,包括PGA增益、ADC偏置等工作参数的设置。
5 结束语
本文介绍了一种采用专用CCD视频信号处理芯片和CPLD技术来设计的CCD视频信号处理电路,并采用USB接口技术实现数据传输。电路不仅结构简单,而且调试方便,易于实现。通过USB和CPLD技术对专用CCD视频信号处理芯片的控制,实现了图象亮度与对比度的可编程调节,改善了图象质量,提高了电路的整体性能,同时USB接口传输速率快,且易于计算机连接。因此,该电路可广泛应用于CCD相机系统的设计。
1 引言
CCDCharge Coupled Device)电荷耦合器件是20世纪70年代发展起来的一种新型半导体大规模集成光电器件。由于它在图像信息的摄取、记录方面独具特色,同时又具有体积小、功耗小、分辨率高、灵敏度高、可靠性好等诸多优点,因此在科学、天文、工业等领域有广泛的应用。
CCD输出的视频信号中除了有用的图像信号外,还包括很高的直流分量和噪声。若不进行处理,将严重影响传感器的图像质量,因此CCD视频信号的噪声处理十分重要。CCD视频信号处理的目的就是尽可能地消除各种噪声和干扰,但又不能损失图像细节;并且保证在CCD的动态范围内图像信号随着目标亮度成线性变化,同时为了便于计算机处理和大容量存储,还必须对CCD输出信号进行数字化处理[1]。这些功能若由分立电路实现,则电路复杂、调试不方便、价格昂贵、功耗大等缺点是显而易见的,这与CCD相机向着功能更强大、性能更完善、价格更便宜、功耗更低的发展趋势是相悖的。随着微电子技术的发展,为了解决CCD视频信号噪声处理问题,许多公司(Exar,Kodak,Burr-Brown,TI等)相继开发了功能齐备的专用CCD视频信号处理芯片,将各种功能电路集成在一块芯片上,这样不仅大大简化了信号处理电路,降低了CCD相机设计复杂度,而且使CCD相机的功能更强大,性能更优越。
本文主要分析了专用CCD视频信号处理芯片XRD4460的功能及特点,并在此基础上设计了基于XRD4460的CCD视频信号处理电路。
2 XRD4460的特点及功能
XRD4460是EXAR公司推出的专用CCD视频信号处理芯片。它带有一个1O位A/D转换器,最高采样速率高达16MHz,内置高带宽的差分相关双采样器(CDS)和8位的数字可编程增益放大器(PGA)。模拟偏移量可控制,差分信号输入,差分外部时钟,片内带有输入缓存和采样/保持器,1O位并行数据输出。由于其功能强大、性能优越、功耗低、体积小等优点,因而广泛用于数字摄像机、数字静态相机和PC录像会议相机等数字成像系统中。XRD4460的功能框图如图1所示,其功能主要包括。
(1) 相关双采样(CDS,correlated double sampling):CCD输出信号中的主要有光子噪声、陷阱噪声、暗电流噪声、复位噪声。其中光子噪声、陷阱噪声是由器件和工艺造成的,不易处理,而暗电流噪声与器件的环境温度有关,所以信号处理电路主要对复位噪声(亦称KTC噪声)进行抑制[2]。为了降低复位噪声,XRD4460采用了相关双采样技术。相关双采样的原理是由于复位噪声表现在同一像素周期内近似常数(即具有相关性),但是对于不同的像素周期是随机变化的。所以,只要在同一像素周期内的暗电平参考区间和信号电平区间进行两次采样,那么这两次采样的复位噪声是相关的,将两个采样电平经差动放大器输出,得到的信号就是真实的视频信号。这一过程把与参考电平和信号电平都相关的复位噪声滤除了,而且对低频噪声也有一定的滤除效果[3]。
(2)可编程增益控制PGA (programmable gain amplifier): 输入到ADC的视频信号的电压是由CCD输出信号的电压和信号处理的系统增益、偏置决定的。因为CCD输出信号的大小随着入射照度的强弱而改变,只有通过信号处理系统进行增益、偏置地调节.才能使输出的数字图像的亮度和对比度满足要求。XRD4460的增益控制由可编程增益放大器PGA完成,增益范围为6dB~38dB,由8位增益寄存器控制,通过串口来设定。当输入增益码Code=00H时,系统存在固有6dB增益,增益控制码每增加一个码字,系统增益增加0.125dB,从而实现可编程增益控制。
(3)暗电平自动校正:由于光强、温度、供电电压的缓慢变化都会使视频输出信号的暗参考电平出现波动,在实际应用中,需要暗参考电乎维持一个固定电平,暗参考电平校正过程亦即直流电平恢复过程。通过情况下,CCD输出视频信号的开始部分或结束部分会分布若干个暗电平参考像元。XRD4460通过CLAMP信号的高电平与输出信号的暗参考像素对应,选择合适的外部耦合电容参数,将使整行的暗参考电平保持在一个固定电平上。
(4)数字偏置控制:若CCD工作于弱光条件下,即使信号的增益很大,经过视频信号处理后的电压仍可能低于ADC的下参考电压,这样使输出视频图像产生失真。为了提高弱光条件下的灰度分辨率,需要使输出视频信号的暗参考电平高于ADC的下参考电压,那么仅仅调整增益是不够的,还需要对视频输出信号的偏置进行调整。XRD4460的偏置调整同样是通过串口编程控制片内8位偏置寄存器。电源上电后默认的偏置设置值位08H,偏置调整范围为02H~08H。
(5) A/D模数转换:XRD4460内部集成了10位分辨率、逐次比较式A/D转换器,由于利用对分搜索的原理,转换速率高达16MHz,这样的转换速度和转换精度适合于大多数应用场合。
(6) 串行接口:XRD4460的串行接口包括了一个10bit的移位寄存器和多个并行寄存器,通过LOAD、SDI、SCLK三个信号来控制内部寄存器的写入,实现对XRD4460工作参数的编程控制。
3 CCD视频信号处理电路的硬件设计
CCD视频信号处理电路以专用CCD视频信号处理芯片XRD4460为核心部件,完成CCD视频信号的放大、噪声处理以及数字化,并使用CPLD(可编程逻辑器件)技术完成整个电路的逻辑控制,配以先进先出(FIFO)存储器作为数据高速缓冲器,用于存储AD转换后的数据,并采用具有微控制器的USB接口芯片,从而通过USB接口将CCD数据输入计算机。CCD视频信号处理电路设计如图2所示。大致可分为三个部分。
3.1 XRD4460视频信号处理电路
XRD4460专用CCD视频信号处理芯片的工作时序需要根据具体的CCD芯片来确定。图2中,SHD、SHP、RST、CLAMP信号必须依据CCD输出信号的时序来设计。其时序关系如图3所示。CCD输出信号经过CCD信号处理器XRD4460处理, 即进行双相关采样(CDS)去噪处理后,再经增益放大以及偏置调整,然后经过A/D转换得到10位数字数据。这些数据在CPLD逻辑控制电路的控制下存人异步FIFO存储器SN74V293中。而SDI、SCLK、LOAD是XRD4460的串口控制信号。通过串行接口,可以方便进行编程控制XRD4460的增益与偏置的调整,从而改善输出图像的质量。
3.2 FIFO与USB接口电路
高速A/D变换的数据不能直接通过USB送入主机,需要通过FIFO来缓冲数据。电路采用TI公司SN74V293芯片。它的容量为65536×18或131072×9,最快读写周期为6ns,可以满足100MHz采样数据的存储。设置SN74V293的输入、输出宽度为18位时,则其可存储64K×10位的数据。FIFO写时钟W和复位信号/RS的时序关系如图4所示。USB接口电路采用Cypress公司推出的EZ-USB芯片CY7C68013A,该芯片把USB2.0收发器、串行接收引擎SIE(Serial Interface Engine)、带16K的增强8051内核、4KB FIFO存储器以及通用可编程接口GPIF(General Programmable Interface)集成一体,将其作为USB外部设备的主控芯片,而无需外加微控制器(MCU)便可实现USB芯片通信初始化以及与主机的通信连接。 当FIFO中存入数据时,USB接口电路根据其标志信号(满信号/半满信号)读取数据并发送给主机。
图4 FIFO写控制时序
3.3 CPLD逻辑控制电路
逻辑控制电路由CPLD采用VHDL硬件描述语言编程实现,完成整个电路的逻辑控制,主要包括三部分的功能。第一部分的功能是为XRD4460提供工作时序(如图3)。第二部分功能是向FIFO提供写时钟W和复位信号/RS,控制数据的顺利写入。第三部分功能负责XRD4460的串口设置。在CPLD中设计一个串行口和一个寄存器,其中串行口用来将寄存器中的数据发送给XRD4460进行功能设置;而寄存器用来存储主机发送过来数据。主机通过CY7C68013A中的EP2端点发送数据。
4 CCD视频信号处理电路的软件设计
USB应用系统软件设计分为三部分:USB外设端的固件(Firmware)、主机操作系统上的客户驱动程序以及主机应用软件。主机应用软件通过客户驱动程序与系统USBI(USB Device Interface)进行通信,由系统产生USB数据的传送动作;固件则响应各种来自系统的USB标准请求,完成各种数据的交换工作和事件处理[4]。
4.1 USB接口编程
固件程序是USB芯片内微处理器的控制程序,可采用汇编语言或单片机C语言设计。当系统上电时,固件程序通过USB电缆下载到CY7C68013A的内部RAM 中。
固件程序主要是实现USB通信。当主机与芯片进行USB通信时,会产生外部中断0,通过中断矢量寄存器来判断。Setup_packed_Int、Input_endpoint0_Int、Output_endpoint0_Int这三个中断主要用于与主机建立连接、进行控制传输或中断传输;Input_endpoint1_Int、Output_endpoint1_Int这两个中断主要在批量传输时使用。在固件中分别执行不同的中断程序来实现USB的数据传输。所有的中断处理程序采用C语言进行编写。
4.2 主机软件设计
首先开发CY7C68013A在主机中的驱动程序。用WinDK3.0开发了Win2000下的驱动程序,实现了控制传输、中断传输和批传输的标准接口函数。
在应用程序开发中,采用VC++编制应用程序。把USB设备当成文件来操作,利用CreateFile得到USB句柄,用DeviceIoControl来进行控制传输,用ReadFile、WriteFile进行批量传输。主要实现两个功能:一是完成采集的图像的显示;二是设置CCD视频信号处理芯片,包括PGA增益、ADC偏置等工作参数的设置。
5 结束语
本文介绍了一种采用专用CCD视频信号处理芯片和CPLD技术来设计的CCD视频信号处理电路,并采用USB接口技术实现数据传输。电路不仅结构简单,而且调试方便,易于实现。通过USB和CPLD技术对专用CCD视频信号处理芯片的控制,实现了图象亮度与对比度的可编程调节,改善了图象质量,提高了电路的整体性能,同时USB接口传输速率快,且易于计算机连接。因此,该电路可广泛应用于CCD相机系统的设计。
举报