高清摄像头MIPI接口与ARM处理器的连接
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处理器的连接的更多相关文章
- 高清摄像头MIPI接口与ARM连接【转】
本文转载自:http://www.cnblogs.com/whw19818/p/5811299.html MIPI摄像头常见于手机.平板中,支持500万像素以上高清分辨率.它的全称为“Mobile I ...
- 高清摄像头MIPI CSI2接口浅解【转】
本文转载自:http://blog.csdn.net/u012075739/article/details/44672435 MIPI摄像头常见于手机.平板中,支持500万像素以上高清分辨率.它的全称 ...
- MIPI接口资料汇总(精)
一.介绍 1.MIPI联盟,即移动产业处理器接口(Mobile Industry Processor Interface 简称MIPI)联盟.MIPI(移动产业处理器接口)是MIPI联盟发起的为移动应 ...
- (转载)跟Classic ARM 处理器说拜拜——Atmel SAMA5D3 Xplained开发板评测
2014 年 4 月 10 日 时间: 下午 3:15 作者: 幸得安然 电子产业的蓬勃发展带来了史无前例的生活.生产大跃进,但是,人们在享受发展喜悦的同时又不得不面临现实现状的囧境--在以移动电子设 ...
- 热烈祝贺华清远见《ARM处理器开发详解》第2版正式出版
2014年6月,由华清远见研发中心组织多名业 内顶尖讲师编写的<ARM处理器开发详解>一书正式出版.本书以S5PV210处理器为平台,详细介绍了嵌入式系统开发的各个主要环节,并注重实践,辅 ...
- ARM处理器的寄存器,ARM与Thumb状态,7中运行模式 【转】
转自:http://blog.chinaunix.net/uid-28458801-id-3494646.html ARM处理器工作模式一共有 7 种 : USR 模式 正常用户模式,程序正常 ...
- ARM处理器全解析:A8/A9/A15都是什么?
前不久ARM正式宣布推出新款ARMv8架构的Cortex-A50处理器系列产品,以此来扩大ARM在高性能与低功耗领域的领先地位,进一步抢占移动终端市场份额.Cortex-A50是继Cortex-A15 ...
- ARM的体系结构与编程系列博客——ARM处理器系列介绍
ARM处理器系列介绍 现在到了3月,过年过得过于舒服了.系列博客也停更了近半月,我果然是个慢(lan)性(gui)子,那么趁着到校的第一天晚上,就写一篇博客来继续我的系列博客了!众所周知,ARM处理器 ...
- MIPI接口
接口 分辨率 说明 RGB 800*480以下 大部分AP均支持RGB接口,此类LCD在低端平板广泛使用 LVDS 1024*768及以上 主要通过转换芯片将RGB等专程LVDS来支持:少量AP直接集 ...
随机推荐
- JAVA-线程安全性
线程安全性: 一个类是线程安全的是指在被多个线程访问时,类可以持续进行正确的行为.不用考虑这些线程运行时环境下的调度和交替. 编写正确的并发程序的关键在于对共享的,可变的状态进行访问管理. 解决方 ...
- Linux使用fdisk进行磁盘管理
Fdisk分区工具1. Overview*Fdisk是IBM的老牌分区工具,支持绝大多数操作系统,几乎所有的Linux操作系统都默认装有fdisk:包括在Linux Rescue模式下 ...
- iphone"此证书是由未知颁发机构签名的"的解决办法
由于误删除,将开发证书给弄没了,导致Certificates中更新的证书都提示此证书是由未知颁发机构签名的,不能实机调试,解决办法是重新下载AppleWWDRCA.cer 地址是:http://dev ...
- php解决下单、抽奖并发导致的库存负数的问题
我们知道数据库处理sql是一条条处理的,假设购买商品的流程是这样的: sql1:查询商品库存 if(库存数量 > 0) { //生成订单... sql2:库存-1 } 当没有并发 ...
- 【原创】史上最全的Android开发环境搭建
开始学习Android了 看着眼花缭乱的教程真心无奈...So 无耻的来了个大综合 自己充当了小白鼠.. (PS 若文章中链接失效 请留言反馈me会尽快修复) 开始的开始 java运行环境还是很必要 ...
- 无线端web开发学习总结
无线web开发之前要做一些准备工作:一.必需的reset样式库1.其中的重点是盒模型box-sizing:由原来pc端的content-box改为border-box. *, *:before, *: ...
- JavaScript 学习笔记之线程异步模型
核心的javascript程序语言并没有包含任何的线程机制,客户端javascript程序也没有任何关于线程的定义,事件驱动模式下的javascript语言并不能实现同时执行,即不能同时执行两个及以上 ...
- 我也来玩玩WinForm~BeginInvoke让用户体验更好!
前言 先说明一下,本人不太做winform的项目,工作10年以来,一直奋斗在webform的舞台上,今天有机会也接触了一下winform,下面对工作中用到的BeginInvoke方法作一下说明,和大家 ...
- InfoPath本地发布及部署
前言 最近在接触SharePoint项目,第一次接触,总感觉有些不适应.以前只是听过,现在要遇见了,有些小紧张.今天改了一下表单的东西,也是对sharepoint的慢慢熟悉过程,分享给初学,或者未学者 ...
- python for list generate content
content = [ii for ii in range(50)] This can generate a list content