关注+星号公众号,不容错过精彩
作者:HywelStar
1. 前言
根据上一章节,对摄像头的接口有一个简单的概述,提到主要使用DVP 或者MIPI CSI ,当然还有另外一种使用的就是USB 接口的摄像头,但是对于USB 的摄像头的接口这里并不做具体的分析,后续有机会进行USB 的接口分析,本章节重点揭秘下DVP 接口。
2. DVP 接口
DVP(Digital Video Port ) 中文名:数字视频接口,这是传统摄像头Sensor 输出的接口,是一种并行接口。目前DVP 总线PCLK 极限约在96M左右,而且走线长度不能过长,所有DVP最大速率最好控制在72M以下,PCB layout较容易画。由于DVP在信号完整性方面受限制,速率也受限制,建议像素在500W 以下使用DVP,如果高于500W 像素一般都采用mipi 接口。
2.1 DVP 物理接口
对于DVP 物理接口并没有固定顺序接口,可能做出各种,包括插针式,软排线等等,线序还存在差异,不过当中的接口还是那些固定的以下接口。
DVP 目前物理接口需要注意的是线序问题,定制的线序可能都存在顺序的不一样,插座和座子需要匹配才能使用上。
2.2 DVP 信号
DVP 接口信号:Sensor 与 BB(平台端)的连接图:
主要包括以下几类信号:
数据引脚(D0-Dn):用于传输图像数据,数据引脚数量取决于数据总线宽度(如8位、10位、12位或16位)。 像素时钟(PCLK):提供像素数据传输的同步时钟信号,每个时钟周期传输一个像素数据。 行同步信号(HSYNC/HREF):用于指示一行数据的开始和结束。 场同步信号(VSYNC):用于指示一帧数据的开始和结束。 XCLK:或者MCLK,ISP芯片输出给驱动sensor的时钟; 其他控制信号:控制信号,I2C 通信信号,用来读写sensor 寄存器。
3. DVP 实例
关于DVP 协议,这里以一个实际例子进行分析,认识DVP 相关知识,采用OV7225为例子,虽然OV7225距离现在已经有一段时间,但是资料多,学习起来比较方便。
3.1 认识 OV7725
OV7725 是一个CMOS类型数字图像传感器,该传感器支持输出最大为30万像素的图像 (640x480分辨率),它的体积小,工作电压低,支持使用VGA时序输出图像数据,输出图像的数据格式支持YUV(422/420)、YCbCr422以及RGB565格式。
OV7725 功能框图
方框1:SCCB 接口,与I2C通讯十分相识,外部控制可以通过SCL, SDA 与传感器进行通信控制寄存器数据。
方框2:通信,控制以及时钟信号,PCLK、HREF及VSYNC分别是像素同步时钟、行同步信号以及帧同步信号,PWDN用于控制芯片进入低功耗模式,XCLK引脚,是外部提供给OV7725的输入信号;PCLK是OV7255输出的同步信号。
方框3:数据输出信号,可以看到前级包含很多图像处理运算,转换后的数据才通过D[9:0]并口输出。
3.2 OV7225 时序
OV7225 传感器输出的图像,首先是一帧一帧的数据,在每一帧的数据又是从左往右,从上至下,一行一行输出,完成一帧数据的输出。
查看SCCB 时序图
SCCB 起始与结束IIC 是一样的时序;写数据也是一样。有些不一样在于应答信号;
VGA帧时序
VGA 图像为640*480 像素的图片,
展示了VGA帧的完整传输过程,从垂直同步到每行的水平同步,再到每行的像素数据传输。
RGB 656 时序
关于RGB656 输出时序:
当HREF 上升沿的时候,数据线的数据才开始是有效数据,第一个字节数据在PCLK第一个周期开始传输。HREF信号用于标记有效行数据的开始和结束。
PCLK信号用于同步数据的传输,每个像素分为两个字节传输。
需要注意:一个RGB 需要占据2个字节,也就图中看到的firtbyte, second byte数据,同时D[9:5]: R[4:0], D[5:3]: G[5:3], 按照规定的顺序传输红、绿、蓝各个颜色的位。
图中:t_PCLK : 像素时钟周期,用来同步每个字节的传输;
4. 总结
本章节主要对摄像头DVP接口进行了说明。DVP作为一种并行接口,常在STM32单片机中使用,通过简单的摄像头初始化、控制和数据读取,就可以轻松获取到视频图像。然而,对于一些较低端的单片机,可能还需要外接一个FIFO芯片来缓解数据传输的压力。随着芯片性能的不断提升,视频质量的要求也越来越高,更多的应用逐渐转向MIPI接口。在下一章节中,我们将对MIPI接口摄像头进行详细介绍。
OV7725数据手册:
https://www.mouser.com/pdfdocs/OV7725.pdf
往期推荐