• 高清摄像头MIPI接口与ARM处理器的连接


    MIPI摄像头常见于手机、平板中,支持500万像素以上高清分辨率。它的全称为“Mobile Industry Processor Interface”,分为MIPI DSI 和MIPI CSI,分别对应于视频显示和视频输入标准。目前,MIPI摄像头在其他嵌入式产品中,比如行车记录仪、执法仪、高清微型相机、网络监控相机等得到广泛应用,因此我们以OMAP4处理器为例,谈谈MIPI摄像头如何与ARM处理器连接。

       OMAP4支持MIPI CSI2版本,其中4460支持两路视频输入,为了进行接口和软件验证,我们先在OMAP4开发板 PandaboardES 上设计了摄像头模块,如下图:

    wKioL1L4naTCCYQdAAP8Ftek5Pc583.jpg

       摄像头模块是通过Pandabaord的J17引脚焊接上去的,为了更好地理解CSI2接口,我们先看看Pandabaord ES的J17定义了哪些引脚:

    wKioL1L4q8qjmbw-AAJRGsRIOWo706.jpg

    可以看到J17中包含了5组差分信号,即(CSI21_DX0,CSI21_DY0), (CSI21_DX1,CSI21_DY1), (CSI21_DX2,CSI21_DY2), (CSI21_DX3,CSI21_DY3), (CSI21_DX4,CSI21_DY4)。这五组信号来自于OMAP4的CSI2-A接口,如下图所示:

    wKioL1L4rkfBu-z3AAPEYVbNgD0761.jpg

    上图摘自于omap4的手册。可以看出,OMAP4430其实有两路CSI2接口,即CSI2A和CSI2B,说明其可以接两个摄像头,这已经是手机或者平板应用的基本要求了。CSI2A接口拥有五组差分接口(csi2a_dxi, csi2a_dyi, i=0~4), 分别对应J17引脚的(CSI21_DXi,CSI21_DYi, i=0~4)。一组差分信号称为Lane,每个Lane可以通过软件配置为Data Lane和Clock Lane,而且差分信号的极性也可以软件配置。当然最常规的用法是将(dx0,dy0)用于传输clock信息。CSI2A可以有4个Data Lane和1个Clock Lane,而CSI2B则只能有1个Data Lane和1个Clock Lane,Data Lane越多,其能传输的速度越高,也就是更传输更高分辨率的图片。Data Lane个数与传输速度的关系是这样的:

    data lane个数 极限速度 对应图像传输帧率
    One Data lane 1000Mbps 1280*720@30fps
    Two Data lane 2x1000Mbps 1280*720@60fps
    Three Data lane 3x1000Mbps 1280*720@90fps

    从这个表格中可以看到,MIPI采用差分线传输,速度还是很快的,比并行传输要快很多。在使用两组data lane的情况下,就可以做到720p@30fps了。如果要提高图像的分辨率,在使用同样多data lane的情况下,就要降低帧率了。

       我们为pandaboard研发的摄像头模块采用ov5640传感器,它支持两组data lane,以下是它所支持的传输格式:

    format resolution frame rate
    5 Mpixel 2592x1944 15fps
    1280x960 1280x960 45fps
    1080p 1920x1080 30fps
    720p 1280x720 60fps
    VGA 640x480 90fps
    QVGA 320x240 120fps

         ov5640拥有2组 data lane,还有1组 clock lane,因此可以如下方式连接ov5640和omap4.

    wKiom1L4uAiS5KanAACQnr6eJ3U199.jpg

    其中(MC_P,MC_N)为ov5640的用于传输时钟的引脚,(MD0_P,MD0_N), (MD1_P,MD1_N)为用于传输数据的引脚。除了要连接好ov5640的差分信号外,还要给ov5640输入时钟信号,这个时钟信号可以来自于晶振,也可以来自于omap4。我们选择一个用一个晶振产生24M的时钟信号,具体如何连接这里不再叙述。

    接下来我们顺便讲讲OV5640的I2C控制信号。另外我们注意到OV5640有SIOC和SIOD。那么这I2C控制信号是干什么的?一个很明显的用途就是来设置OV5640的图像输出格式,比如是输出RGB格式还是YUV格式。这是通过寄存器来设置的。

    其实OV5640作为视觉传感芯片,其有很多寄存器来控制图像的拍摄参数,比如增益控制、曝光控制等,这些参数一般设置为默认值即可,但如果用户想再特定环境下获得更好的图像质量,可以设定这些参数来达到最佳效果。比如在晚上开启夜视模式(把每帧曝光时间调长),或者在室内开启工频抑制,在日光灯下图像不闪烁(通过设置曝光时间为光周期信号整数倍),可以达到更加灵活的使用效果。运行于omap4的拍照软件可以运行一个类似于光照检测的算法来来设定这些参数,从而达到一个最佳效果,这个就得看软件算法的功力了。

       另外,OV5640内部还有一个ISP(Image Signal Processor),能够做简单的一些图像处理算法,比如Gamma校正,图像缩放等,但相对于OMAP4430的强大的ISP而言,而其功能还是小巫见大巫了,所以推荐直接使用OMAP4430的ISP功能。

       好了,关于OMAP4430的CSI2 接口大概就总结了到这里,希望这个接口学习文档能对大家有帮助。如果需要MIPI CSI2摄像头做验证设计,可以加入QQ群“OMAP4摄像头”(274241220)做交流

  • 相关阅读:
    oracle 导入数据语句
    移动上去换样式代码
    google suggest 代码例子
    删除一个表的字段的sql语句命令
    将json从前台传到后台注意问题
    eclipse 自动 getter setter 注释
    jsp界面获取地址栏参数
    常见的正则表达式验证
    JSTL 核心标签库
    javascript中的call和apply两个方法的区别
  • 原文地址:https://www.cnblogs.com/whw19818/p/5811299.html
Copyright © 2020-2023  润新知