关于CMOS摄像头的DVP接口的工作方式与一般使用方法

您所在的位置:网站首页 摄像头dpc 关于CMOS摄像头的DVP接口的工作方式与一般使用方法

关于CMOS摄像头的DVP接口的工作方式与一般使用方法

2024-01-17 05:47| 来源: 网络整理| 查看: 265

1 CMOS摄像头的简介 1.1 CMOS摄像头模块的组成

在这里插入图片描述 (图像来自百度,若有有侵权请脸校删除) 在这里使用了一张百度的图片,以上图片就是一张比较全的摄像头模组产品组成,可见摄像头的组成重要的是两个器件一个是摄像头的成像感光核心单元的IC芯片Sensor,一个是对外界影像投射到sensor上的光学器件,镜头Lens,通过Sensor和不同的Lens的组合可以完成不同的成像任务 在这里插入图片描述 对于镜头的选择,这里和就不在赘述,根据实际使用场景可以选择不同的Lens就可以了。围绕这两大部件,还附带了VCM、滤光片、PCB电路板等,通过控制VCM音圈马达可以进行自动对镜头的焦距进行调整,在一些高端的多媒体SOC芯片上,通过对摄像头的图像进行采集可以进行一些算法的处理进行自动对焦,有需要用到这个模块。因为Sensor为的感光和人眼是有所区别的所有需要加装滤光片,sensor的成像主要是通过光线的照射到感光平面产生电荷通过ADC扫描获取的光强大小,但人眼对可见光以外的光线不敏感,所以使用滤光片进行过滤减少对成像的影响,在sensor生产时设计上对像素成像区的设计方法不同导致,对滤光的需求不同。

1.2 实验室摄像头硬件组成

实验室的摄像头的组成如下,通过核心的sensor和lens组成,在PCB上完成对Sensor电路驱动,以及通过有源晶振提供Senosr工作的主时钟源并引出Sensor的I2C配置接口,以及图像数据的DVP输出接口,将接口引出连接MCU微控制器,进行图像数据的处理 在这里插入图片描述

2 SENOSR的DVP接口的工作流程

下图为实验室摄像头的硬件接口,黄色组的信号为DVP接口、绿色组的信号为sensor的i2c配置接口,红色组为电源信号 在这里插入图片描述 2.1在实验室的硬件接口和电路连接上,可以大体将sensor的工作流程简化为以下方式。 2.1.1 通过I2C接口,对sensor芯片进行数据的读、写,完成sensor的配置。 比如配置输出的图像尺寸的长、宽高,数据位深(8bit、10bit、12bit等等),输出的图像帧率等,如下是部分配置代码,0x48 是sensor做为I2C从机的地址,下一个数据为sensor内部寄存器的地址,sensor内部的寄存器在sensor相关的datasheet技术手册上详细说明,如果感兴趣可以自己翻阅,代码所示c变量应该读取出来为0x1324值。b

uint16_t c = i2c_read_register(0x48,0); i2c_write_register(0x48,0x01, 0x0001); i2c_write_register(0x48,0x02, 0x0004); i2c_write_register(0x48,0x03, 0x01E0); i2c_write_register(0x48,0x04, 0x02F0);

在这里插入图片描述 通过i2c配置好sensor的长、宽、图像位深,以及帧率参数后,sensor中的DSP处理器将图像处理OK后,通过DVP接口进行输出。在实验室使用的DVP接口上的D0-D7,可以知道在sensor的配置是8bit的位深,一个像素点占8个比特位,通过DVP的D0-D1接口并行输出一个像素的值,如下图每个黑色圆点就为一个像素点,sensor的配置的输出图像大小和sensor的像素阵列有一定的关系,可以通过各自sensor的datasheet获取,在PCB上的有源晶振在上电的时候,输出稳定的时钟给sensor,做为senso工作的主时钟源,驱动sensor工作,当接收到i2c的一系列配置参数后,自动配置好内部的功能。 在这里插入图片描述 2.1.2 DVP接口输出数据 sensor通过主时钟源的驱动以及i2c的配置信息进行图像数据的输出,sensor将会通过配置的图像尺寸大小进行按像素点进行输出,输出一个像素点PCLK像素时钟信号将发送一个上升沿,D0-D7的接口将发送一个像素的值(2^8)也就是通过D0-D7端口的状态表示0-255的像素值,当完成一帧图像的一行像素值的输出后,HREF行同步信号就将发送一个下降升沿,开始下一行发送时发送上升沿,并在发送行数据时保持高电平,完成整个画面的传输后发送一个上升沿的VSYN场同步信号 在这里插入图片描述 一帧中的一行像素输出过程放大观察,可以看见在PCLK在发送一行像素结束时像素时钟没有了,但是实际情况下PCLK是存在的因为sensor完成一行像素的发送后存在一个水平消隐时间,这个时间PCLK会输出正常的消隐像素时钟,为了简化MCU对DVP信号的处理,在PCB板上进行了PCLK=(!PCLK)&HREF,达到目的。 在这里插入图片描述

3 MCU微控制器对DVP接口的一般使用方式

通过上述实验室PCB设计方式和DVP接口的工作方式,明白了基本的DVP的各信号的作用和意思,根据sensor输出的PCLK、HREF、VSYN、D[0-7]信号特点,目前在MCU的通用办法是通过PCLK做为微控制器的DMA外设的驱动时钟信号,通过像素时钟的驱动,将D[0-7]的GPIO口的状态值搬运到内存的数组中,通过PCLK的驱动,D[0-7]的值就是一个像素的值,像素值就会被DMA一个一个的搬运到内存数组中,并且在sensor发送完所有的像素信号时,VSYN信号将会触发微控制器,完成DMA的的复位,让DMA再次接收PCLK时钟驱动,重新内存数组的最开始的位置进行储存D[0-7]的值,完成图像的DMA的图像数据传输,减少消耗CPU资源。 在这里插入图片描述 图像通过串口发送到上位机,上位机串口速率只能在115200左右,这低速接口。。这帧率。。不堪入目。 在这里插入图片描述

PS:sensor的数据输出还有更多高速的数据接口,比如MIPI、LVDS等等,DVP的接口只是简单的低速的信号,在一些MCU上存在DVP接收处理的硬件外设,可以通过使用MCU提供给的硬件外设更加稳定高速的采集图像,这里所示的只是一种通用的方法,更多更高效的方法根据各个平台的不同,会存在不同的处理方法,可以自行研究,本人也刚开始学习摄像头,写的内容并不是很全面,欢迎评论区讨论



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3