第三阶段应用层——2.6 视频监控—CMOS摄像头的硬件原理

视频监控—CMOS摄像头的硬件原理

  • 硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)
  • 软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统
  • 参考资料:OV7740_CSP_DS_1.51手册
  • 开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)
  • 源码仓库:https://gitee.com/d_1254436976/Embedded-Linux-Phase-3


一、视频数据的流向

在这里插入图片描述
对于一个摄像头数据的流向基本分为如下部分

  • 自然景观:即在摄像头的有效视距中,能够捕获的景象
  • 摄像头模块:摄像头捕获到景象后,经过镜片、滤光片、sensor(传感模块)等器件的处理
  • 硬件接口经过摄像头模块处理后的数据通过硬件的电路接口,把数据传输到具体处理芯片的对应IO口
  • S3C2440的摄像头控制器:数据经过硬件电路传输到芯片后,经过处理的数据通过固定的数据端口传输给LCD的数据端口
  • LCD显示屏:LCD接收到处理后的图像信息后,在LCD显示屏上显示出“处理后的自然景观”

最终实现的是:自然景观的模拟信号到RGB、YUV格式的数字信息的数据转换


二、具体介绍

下面的介绍通过查阅OV7740_CSP_DS_1.51手册所得到的


1、常用参数

  • 支持的输出格式为:RAW RGB、YUV
    RGB、YUV是两种完全不同的颜色空间,它们之间可以相互转换

  • 支持的输出分辨率为:VGA(640480)、QVGA(240320)、CIF(352*288)、更小的任意大小

  • 有效感光阵列的大小:656*488 = 320128(30W)
    感光阵列是由一个个像素组成的,主要完成光电转换,将光子转换为电子
    在这里插入图片描述

  • 镜头的大小:1/5寸

  • 像素点颗粒的大小: 4.2um * 4.2um

  以上三个参数,都是用来描述感光阵列,即使同为30W像素的摄像头,如果它的
镜头尺寸大小越小,那么对应的像素点颗粒的大小就越小,从而感光性就越差,进而
拍摄的效果就越差

  • 输入时钟频率: 6~27MHz
    OV7740摄像头模组的工作频率范围

  • 扫描模式: 连续扫描( P )
    即对于像素的扫描,从第一行的第0个像素开始扫描,连续不跳开像素的方式扫描到最后一行最后一个像素。
    还有另一种隔行扫描,在一个周期里面,先扫描奇数行的像素,扫描完所有奇数行之后,在另一个周期中扫描剩下的偶数行的像素。(具体的可以查看这个博客【016 LCD(1)-硬件原理与LCD控制器介绍】中的画面形成分析)
    通过连续扫描方式得到的图像分辨率称为xxxp(720p),通过隔行扫描得到的图像分辨率称为xxxI(720I)


2、内部数据的处理流程

从图片的整体上看,数据流向从左往右,即Image Sensor Core(图像传感器的核心部分) ----> Image Sensor Processor(图像传感器的处理部分) ---->Image Output Interface(图像输出接口)
在这里插入图片描述

  1. Image Sensor Core(图像传感器的核心部分)
    感光阵列(只能感应自然景观中红绿蓝三种颜色)把得到的模拟信号传输到运算放大器中,经过其的放大作用数据进行模数转换得到数字信号,通过黑电平的调整,最后往下个部分输出数字信号(格式为RAW RGB)
    主要进行的工作:翻转、增益大小调整、黑电平校准、饱和度的控制、OTP存储器(存储着厂家ID、设备ID等)

  2. Image Sensor Processor(图像传感器的处理部分)
    接收到从ISP中的数字信号,经过处理还原出三原色
    主要具体工作:提供测试、镜头补偿、自动白平衡、RAW RGB->RGB、RGB->YUV、窗口功能、缩小放大RAW RGB只有红绿蓝三种颜色的数据。RGB:不仅只表示红绿蓝三种颜色,还能表示由红绿蓝组合成的任何一种颜色

  3. Image Output Interface(图像输出接口)
    输出指定的样式的摄像头数据如:RAW RGB/YUV(格式)、VGA/QVGA(分辨率)、BT601/BT656(数据传输方式)


3、原理图介绍

结合开发板原理图与摄像头模块原理图来看:
在这里插入图片描述
IO接口分为控制类接口与数据传输类接口

  • 控制类:分为初始化(对摄像头模块进行相应的初始化操作让摄像头模块能够正常的输出摄像头数据)与控制(设置亮度、旋转、缩放等等的操作)两种功能
    IICSDA------------IIC总线的数据线
    IICSCL------------IIC总线的时钟线

  • 数据传输类:与LCD的接口相似
    CAMRST----------复位CMOS摄像头模块
    CAMCLK----------摄像头模块工作的系统时钟(24MHz)
    CAM_HREF------行同步信号
    CAM_VSYNC----帧同步信号
    CAM_PCLK-------像素时钟
    CAMDATA0~7----数据线

从接口这里可以看出,CMOS摄像头模块也是一个IIC设备,需要编写符合IIC设备的架构的
驱动
,从而实现初始化和灵活的控制

猜你喜欢

转载自blog.csdn.net/weixin_42813232/article/details/107665233