4 CMOS图像传感器的软件驱动设计
CMOS图像传感器需要控制器S3C2410的驱动才能正常工作,并输出正确的图像数据。为了实现CMOS传感器和主存储器(DRAM)之间的快速传输,可以采用DMA方式。DMA是一种快速传送数据的机制,它不需要CPU的参与而实现高速外设和主存储器之间自动成批交换数据的操作方式。由于处理端采用的是S3C2410,DMA、中断以及IIC总线接口都已经集成在控制器内部,因此,整个软件驱动只需要完成两个功能模块的设置:对主控制器S3C2410的设置;通过SCCB口对OV7141的设置。 4.1 对主控制器S3C2410的设置
a) 设置DMA的源地址为控制总线驱动器的那一个地址,每一次传输该地址值不变化;
b) 设置DMA的目标地址为要保存图像数据的内存区域的起始地址,每一次传输该值加1;
c) 设置DMA的计数器为有效窗口的像素数的个数;
d) 设置DMA中断为软件触发,且设置PCLK、VSYNC、HREF为外部中断触发信号,以控制图像数据的输出。 4.2 通过SCCB接口对OV7141的设置
a) 读OV7141的1C、1D寄存器,判断芯片是否正常;
b) 设置13寄存器为0x07,允许AGC,允许白平衡;
c) 设置14寄存器为0x00,设置有效窗口为640×480像素(VGA);
d) 设置17、18、19、lA寄存器,设置HREF和VSYNC信号的起始与停止;
e) 设置28寄存器为0x60,设置为黑白模式和逐行扫描模式。 5 实验与讨论
本系统中,图像传感器的时钟由外接24 MHz的晶振供给,主控制器S3C2410工作频率为200 MHz,CMOS图像传感器OV7141工作于逐行扫描方式,图像采集窗口为640×480像素,数据保存在系统中一片SDRAM中。实验表明,系统每秒能稳定采集到15帧图像数据。若要提高图像采集的速率,可以再加入一块双端口SDRAM作为数据输出缓存,这样速率有所提高,但双端口SDRAM价格较贵,或者选用能工作于更高工作频率的主控制器也能提高采集速率。