本文转载自:http://www.cnblogs.com/whw19818/p/5811299.html

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

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

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

可以看到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接口,如下图所示:

上图摘自于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.

其中(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)做交流

高清摄像头MIPI接口与ARM连接【转】的更多相关文章

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

    MIPI摄像头常见于手机.平板中,支持500万像素以上高清分辨率.它的全称为“Mobile Industry Processor Interface”,分为MIPI DSI 和MIPI CSI,分别对 ...

  2. MIPI接口资料汇总(精)

    一.介绍 1.MIPI联盟,即移动产业处理器接口(Mobile Industry Processor Interface 简称MIPI)联盟.MIPI(移动产业处理器接口)是MIPI联盟发起的为移动应 ...

  3. MIPI接口LCD屏调试心得(转)

    源: MIPI接口LCD屏调试心得

  4. MIPI接口

    接口 分辨率 说明 RGB 800*480以下 大部分AP均支持RGB接口,此类LCD在低端平板广泛使用 LVDS 1024*768及以上 主要通过转换芯片将RGB等专程LVDS来支持:少量AP直接集 ...

  5. 高清摄像头MIPI CSI2接口浅解【转】

    本文转载自:http://blog.csdn.net/u012075739/article/details/44672435 MIPI摄像头常见于手机.平板中,支持500万像素以上高清分辨率.它的全称 ...

  6. 液晶屏MIPI接口与LVDS接口区别(总结)

    液晶屏接口类型有LVDS接口.MIPI DSIDSI接口(下文只讨论液晶屏LVDS接口,不讨论其它应用的LVDS接口,因此说到LVDS接口时无特殊说明都是指液晶屏LVDS接口),它们的主要信号成分都是 ...

  7. Windows server2008 搭建ASP接口訪问连接oracle数据库全过程记录

    真的是太不easy了,曾经的时候在window server 2003上面搭建了一套asp+oracle的接口系统.就费了好大的劲儿,事实上那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了.OK,从昨 ...

  8. vue 项目中实时请求接口 建立长连接

    需求:在项目中需要每隔五秒请求一次接口 第一种方法:直接在mounted钩子函数中处理 mounted() { window.setInterval(() => { setTimeout(thi ...

  9. LCD之mipi DSI接口驱动调试流程【转】

    转自:http://blog.csdn.net/liwei16611/article/details/68146912 1.LCD MIPI DSI协议 MIPI-DSI是一种应用于显示技术的串行接口 ...

随机推荐

  1. 如何查看SQL Server某个存储过程的执行历史【转】

    db_name(d.database_id) as DBName, s.name as 存储名称, s.type_desc as 存储类型, d.cached_time as SP添加到缓存的时间, ...

  2. vue+express利用token 完成前后端登录

    token是后端给前端的一个二维码, 这个二维码一般是暗码,  前端拿着这个二维码到后端, 后端便可以通过这个二维码得知用户是否登录过, 用户是谁等信息(具体什么信息,是后端在返回token时候设置的 ...

  3. 极*Java速成教程 - (5)

    Java语言基础 容器 这个世界是有序的,将Java对象零散地放到内存中是不符合世界常理的,特别是有一大组相似的甚至不知道有多少数据的时候.把Java对象装进盒子里可以有序收纳,这个盒子就叫容器. 初 ...

  4. CSP-J&S 2019游记

    $Day -???$ 和爱国爱党的$LQX$书记打了个赌,谁$TG$分低请另一个京味斋. $Day 0$ 机房同学去聚餐,美其名曰"散伙饭",可能又有几个进队的... 我没有去,因 ...

  5. 卸载yum-mysql

    注意事项:1. 卸载yum MYSQLsystemctl status mysqlsystemctl stop mysqlsystemctl disable mysqld rpm -qa | grep ...

  6. Django使用Celery进行异步任务

    Celery Celery是一个功能完备即插即用的异步任务队列系统.它适用于异步处理问题,当发送邮件.或者文件上传, 图像处理等等一些比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用 ...

  7. Scrapy 教程(十)-管道与数据库

    Scrapy 框架将爬取的数据通过管道进行处理,即 pipelines.py 文件. 管道处理流程 一.定义 item item 表示的是数据结构,定义了数据包括哪些字段 class TianqiIt ...

  8. 六、JVM — JDK 监控和故障处理工具

    JDK 监控和故障处理工具总结 JDK 命令行工具 jps:查看所有 Java 进程 jstat: 监视虚拟机各种运行状态信息 jinfo: 实时地查看和调整虚拟机各项参数 jmap:生成堆转储快照 ...

  9. go & flag

    参考 Golang下的flag模块使用 Go基础篇[第6篇]: 内置库模块 flag

  10. 防抖&节流

    使用的原因 在前端开发当中有一部分的用户行为会频繁操作触发事件执行,而对于DOM操作,资源加载等耗费性能的处理,很可能导致页面卡顿,甚至浏览器崩溃,函数节流和防抖就是解决类似需求应运而生的 节流 预定 ...