PC104对OV7670寄存器的读写
扫描二维码
随时随地手机看文章
摘要:Ominisrision公司的新型摄像头模组OV7670,具有体积小、输出图像格式多、接口方便、寄存器可读写等特点,是嵌入式系统中图像采集的理想选择。通过设置OV7670的寄存器的值,可以更好地实现对摄像头的控制,得到更加理想的图像。本文介绍了PC104系统对OV7670摄像头模组寄存器读写的过程及编程方法。
关键词:OV7670;图像采集;PC104;SCCB
嵌入式系统中的图像采集是进行图像处理的基础,只有在采集时就进行前端的处理和控制,才能减少图像中的噪声,为后续的图像处理提供良好的数据。OV7670开放了控制寄存器,用户可以通过SCCB总线来实现读写操作,可以设置图像输出格式、控制曝光等,为具体的应用场景提供了更底层的支持。正确的读写寄存器就成为获得图像的第一步。
1 OV7670摄像头模组简介
OV7670 CAMERACHIPTM图像传感器,体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能。通过SCCB总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影响数据。该产品VGA图像最高达到30帧/秒。用户可以完全控制图像质量、数据格式和传输方式。所有图像处理功能过程包括伽玛曲线、白平衡、饱和度、色度等都可以通过SCCB接口编程。OmmiVision图像传感器应用独有的传感器技术,通过减少或消除光学或电子缺陷如固定图案噪声、托尾、浮散等,提高图像质量,得到清晰的稳定的彩色图像。功能框图如图1所示。为了保证图像采集的连续性和完整性,外加一个384K,8位的FIFO,AL422为图像采集和处理作缓冲。OV7670与AL422的连接如图2所示。
2 两线SCCB
SCCB(Serial Camera Control Bus),即串行摄像机控制总线,是OmniVision公司为完成对绝大部分OmniVision系列图像传感芯片功能的控制而制定的一种三线结构串行总线。在简化的引脚封装中(如典型的24脚封装),SCCB总线可以工作在改进的两线工作方式下。两线SCCB适合于主片只有一个从片的时候使用,此时的SCCB_E*信号被使能并置低,其连接框图如图3所示。
两线连接的SCCB数据传输时序如图4所示。
SCCB总线协议中使用的信号如表1、表2所示。
3 接口时序及编程实现
数据传输开始:当总线空闲时,主片SIO_D信号置高或“1”。在SIO_C是高或“1”且SIO_D驱动到低或“0”时,数据传输开始。如图5所示。
数据传输停止:当SIO_C信号是高或“1”,SIO_D信号从低或“0”到高或“1”时,数据传输停止。如图6所示。
写操作只有在一个开始信号之后,才能由主片启动;在一个停止信号之后或者一个新的开始信号之后,写操作才完成。同样,读操作也是在一个停止信号或者一个新的开始信号之后才完成。
读寄存器操作的函数实现如下:
4 结论
通过对OV7670的寄存器设置,可以很好的实现对OV7670的图像数据的采集和传输过程进行有效的干预。寄存器读写可以确定摄像头一端的工作状况,方便了嵌入式系统的开发调试;能够在系统中根据要求来改变模块传输数据的格式,并根据环境光线的强弱来改变曝光强度。避免了采集到的图像不清晰甚至是乱码的问题。