基于CMOS图像传感器的USB接口图像采集系统设计
系统设计
图1 为图像采集系统的原理框图。系统选用OminiVisiON公司生产的CMOS芯片OV7620,它是一款集成了一个640×480 (30万像素)图像矩阵的彩色摄像芯片,在隔行扫描模式下工作频率可达60Hz,逐行扫描时为30帧/s。其像面大小为1/3英寸,支持8位或16位数字信号从单通道或双通道输出,输出信号的类型可在YCrCb和RGB 之间选择,图像矩阵支持VGA或CIF 规定, 数字输出格式遵循CCIR601, ZVPorts, CCIR656等标准。OV7620有很强的摄像和控制功能,如暴光控制,γ校正,增益,色彩矩阵,窗口选择等,所有这些功能都可以通过I2C接口进行编程控制。
图1 系统原理框图
CPLD选用ALTERA公司的芯片EPM7128S,它在系统中处于核心地位,既要负责将OV7620输出的视频数据存入SRAM,又要与MCU配合完成视频数据的USB 传输。MCU 是Cygnal 公司的高性能单片机C8051F020,它通过I2C总线控制CMOS芯片的工作方式和状态, C8051F020自带SMBUS总线接口,可以把I2C的时钟线SCL和数据线SDA通过交叉开关分配到端口引脚,MCU作为I2C总线通讯的主机,OV7620用42H (Write) 、43H (Read)作为从机地址与MCU进行通信。另外MCU还控制USB 通信,负责USB芯片的初始化和与PC的通信连接,其64KB 的flash程序存储空间足以存放USB 通信固件。SRAM 芯片采用IS61LV5128AL芯片,该芯片为高速静态RAM,存储时间在10ns左右, 可以满足OV7620 的速度要求, 其512KB的存储空间足以用来存储30万像素的视频数据(Bayer2pattern: 每一像素包含一个字节的RGB 信息) 。USB 接口芯片采用PHILIPS的PDIUSBD12 芯片,该芯片支持USB 1.1标准协议和DMA传输模式。
图像采集部分
OV7620的输出特性
OV7620工作方式和输出格式非常多,可以适应不同的应用场合,针对我们的较小系统,采用了单通道Y输出,以及逐行扫描的工作方式。这些工作方式的实现是通过MCU 的I2C编程控制的。当OV7620 设置工作方式稳定后,它就会输出视频数据,同时还有3个重要的参考信号输出:帧同步信号SYNC,水平同步信号HREF,和像素时钟信号PCLK。参见图2,每一个帧同步信号SYNC 周期包含480 个水平同步信号HREF脉冲,而每一个HREF周期包含640个PCLK时钟脉冲。每一个PCLK时钟输出一个像素的视频数据(8位标准的Bayer-pattern彩色RGB数据) 。
图2 图像采集信号时序
图像存储方式
根据640 ×480 的像素输出特点, 将512KB 的RAM分成512行,每行1KB空间,由A0~A9共10条地址线选通行内地址记为低位地址:ADDR-L; 高位A18~A10共9条地址线选通各行记为高位地址:ADDR-H。为保证OV7620 采集的数据同步写入SRAM中,用CPLD宏单元设计了2个地址计数器:低位计数器ADDR-L和高位记数器ADDR-H。当图像数据采集开始时( SYNC信号低有效) ,记数器由0开始记数,每来一个像素时钟PCLK使低位计数器顺序加1,完成1行像素的写入,OV7620产生的行同步信号HREF使低位计数器清0,并使高位记数器顺序加1,改变行地址直到完成480行写入后产生帧同步信号,并使高位计数器清0,这样完成1帧图像数据的缓存,详细的图像采集信号时序如图2。512KB的SRAM芯片实际上只用了640 ×480约300多KB 的存储空间。芯片工作方式设定在PCLK信号的下降沿更新数据;在上升沿,数据是稳定时期,所以如图2,在PCLK信号的下降沿更新SRAM的地址信号ADDR;在PCLK信号上升沿使/WR信号有效, 然后写数据到SRAM 中。其中CPLD控制SRAM的写数据逻辑用VHDL 语言编写,用MAX+PLUSII工具进行仿真设计,最后实现了图像数据的连续采集。
图像传输部分
类似DMA方式数据传输
视频数据按行列关系有序存入SRAM芯片后,就可以顺序读取数据并进行传输。传统的USB 传输方式是MCU 先从SRAM 中取得数据再送到PDIUBD12;通过PDIUBD12发送到主机。不管是MCU从SRAM取数据还是向作为外设的PDIUBD12写数据,速度都较慢。因此我们考虑用系统中的CPLD控制来实现类似DMA 方式的数据传输。在系统工作过程中,单片机负责解释USB的控制传输。当要进行从外存取数送到PDIUBD12时,单片机让出总线,由CPLD完成该工作。CPLD产生外存的读信号和地址,同时产生PDIUBD12的写信号和地址,自动实现外存数据到PDIUBD12接口芯片的传送。这种类似DMA方式的数据传输解决了由单片机控制引起的速度瓶颈,极大提高了传输速度,最大限度发挥了USB的优点。
数据传输的具体实现
当主机需要传输数据时,通过控制管道发送请求,MCU接到命令后立即让OV7620 让出SRAM的数据总线,并通知PDIUBD12准备好用于批量数据传输的主端点,然后发送TXCOM 命令信号给CPLD (见图1) ,通
- DSP内嵌PLL中的CMOS压控环形振荡器设计(03-02)
- 基于DSP内嵌PLL中的CMOS压控环形振荡器设计(05-05)
- 宽动态监控摄像机CCD/CMOS-DSP解析 (07-24)
- DSP与单片机通讯方式解析方案 (08-29)
- 基于ATmega162的智能仪器设计(08-18)
- 基于STC单片机的太阳能热水器智能节水控制系统设计(06-02)