摄像头的MIPI接口、DVP接口和CSI接口
电脑摄像头接口是USB接口,智能手机的摄像头接口是MIPI接口,还有一部分的摄像头(比如说某些支持DVP接口的硬件)是DVP接口。
USB是串行通用串行总线(Universal Serial Bus)的简称,而MIPI是移动行业处理器接口(Mobile Industry Processor Interface),DVP是数字视频端口(digital video port)的简称,CSI是相机串行接口(CMOS Sensor Interface)的简称。
Camera工作原理介绍
工作过程
外部光线穿过 lens 后,经过 color filter 滤波后照射到 Sensor 面上,Sensor 将从 lens上传导过来的光线转换为电信号,再通过内部的 AD 转换为数字信号。如果 Sensor 没有集 成 DSP,则通过 DVP 的方式传输到baseband,此时的数据格式是 RAW DATA。如果集成 了 DSP, RAW DATA 数据经过 AWB、 则 color matrix、 lens shading、 gamma、 sharpness、 AE 和 de-noise 处理,后输出 YUV 或者 RGB 格式的数据。
最后由CPU送到framebuffer中显示,这就可以看到camera拍摄到的景象了。
Camera主要部件
camera 主要是由 lens 和 sensor IC 两部分组成,其中有的 sensor IC 集成 了DSP,有的没有集成,但也需要外部 DSP 处理。camera由下面几部分组成:
lens(镜头) 一般 camera 的镜头结构是有几片透镜组成,分有塑胶透镜(Plastic)和玻璃透 镜(Glass)
,通常镜头结构有:1P,2P,1G1P,1G3P,2G2P,4G 等。
sensor(图像传感器) Senor 是一种半导体芯片,有两种类型:CCD(Charge Coupled Device)即电荷耦合器件的缩写 和CMOS(Complementary Metal-Oxide Semiconductor)互补金属氧化物半导体。
CCD传感器,电荷信号先传送,后放大,再A/D,成像质量灵敏度高、分辨率好、噪声小;处理速度慢;造价高,工艺复杂。
CMOS传感器,电荷信号先放大,后A/D,再传送;成像质量灵敏度低、噪声明显;处理速度快;造价低,工艺简单。
sensor 将从 lens 上传导过来的光线转换为电信号, 再通过内部的 AD 转换为数字信号。 由于 sensor 的每个 pixel
只能感光 R 光或者 B 光或者 G 光, 因此每个像素此时存贮的是单色的, 我们称之为 RAW DATA 数据。
要想将每个像素的 RAW DATA 数据还原成三基色,就需要 ISP 来处理。 ISP(图像信号处理) 主要完成数字图像的处理工作,把 sensor 采集到的原始数据转换为显示支持 的格式。
CAMIF(camera 控制器) 芯片上的 camera 接口电路,对设备进行控制,接收 sensor 采集的数据交给 CPU,并送入
LCD 进行显示。
MIPI接口
MIPI摄像头常见于手机、平板中,支持500万像素以上高清分辨率。它的全称为 “Mobile Industry Processor
Interface”,分为 MIPI DSI 和 MIPI CSI,分别对应于视频显示和视频输入标准。目前,MIPI摄像头在嵌入式产品中,比如行车记录仪、执法仪、高清微型相机、网络监控相机等得到广泛应用。
MIPI的定义
MIPI联盟,即移动产业处理器接口(Mobile Industry Processor Interface 简称MIPI)联盟。
MIPI(移动产业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准和一个规范。
MIPI的特点
MIPI是差分串口传输,速度快,抗干扰。主流手机模组现在都是用MIPI传输,传输时使用4对差分信号传输图像数据和一对差分时钟信号;最初是为了减少LCD屏和主控芯片之间连线的数量而设计的,后来发展到高速了,支持高分辨率的显示屏,现在基本上都是MIPI接口了。
MIPI摄像头有三个电源:VDDIO(IO电源),AVDD(模拟电源),DVDD(内核数字电源),不同sensor模组的摄像头供电不同
AVDD有2.8V或3.3V的;DVDD一般使用1.5V或更高,不同厂家的设计不同,1.5V可能由sensor模组提供或外部供给,可以使用外部供电则建议使用外部供,电压需大于内部的DVDD;VDDIO电压应与MIPI信号线的电平一致,若信号线是2.8V电平,则VDDIO也应供2.8V,有些sensor模组也可以不供VDDIO,由内部提供。
MIPI的camera接口叫 CSI,MIPI的display接口叫DSI。
DVP
DVP总线PCLK极限约在96M左右,而且走线长度不能过长,所有DVP最大速率最好控制在72M以下,PCB layout较容易画
IPI总线速率lvds接口耦合,走线必须差分等长,并且需要保护,故对PCB走线以及阻抗控制要求高一点(一般来讲差分阻抗要求在85欧姆~125欧姆之间)。
DVP是并口,需要PCLK、VSYNC、HSYNC、D[0:11]——可以是8/10/12bit数据,具体情况要看ISP或baseband是否支持
MIPI是LVDS低压差分串口,只需要要CLKP/N、DATAP/N——最大支持4-lane,一般2-lane可以搞定
MIPI接口比DVP的接口信号线少,由于是低压差分信号,产生的干扰小,抗干扰能力也强
DVP接口在信号完整性方面受限制,速率也受限制。500W还可以勉强用DVP,800W及以上都采用MIPI接口。
CSI接口
基本概念
CSI-2接口规范是由MIPI(Mobile Industry Processor Interface)联盟组织于2005年发布的关于相机串行接口,它作为一种全新的相机设备和处理器之间的接口框架,给便携式、手机摄像头等相关产业提供了一种灵活且高速的设备接口[28]。此前,传统摄像头接口一般都包括了数据总线、时钟总线、同步信号线控制线等,物理接口框图如下所示:
这种摄像头物理接口所占用的数据线较多,逻辑设计上也比较复杂,需要严格同步包括水平同步信号,垂直同步信号以及时钟信号,这对摄像头这端以及接收器这端都提出了较高的要求
在高速传输的过程中,直接使用数字信号作为数据容易被其他外部信号干扰,不如差分信号的稳定性,这样也大大限制了其传输的速率以及相机最大能够实时传输的图像质量。
基于CSI-2摄像头数据传输过程使用了数据差分信号对视频中像素值进行传输,同时CSI-2传输接口能够非常灵活的进行精简或者扩展
对于接口较少的应用场景,CSI-2接口可以只使用一组差分数据信号线以及一组差分时钟线就能够完成摄像头的数据串行传输过程,这样便减少了负载,同时也能够满足一定的传输速率
对于大阵列的CCD相机,CSI-2接口也能够扩展其差分数据线,从而满足多组数据线并行传输的高速要求。
CSI-2接口中也集成了控制接口CCI(Camera Control Interface),CCI是一个能够支持400KHz传输速率的全双工主从设备通信控制接口,它能够兼容现有很多处理器的IIC标准接口,因此可以非常方便地实现Soc上CCI Master Module到 CSI-2 TX 端CCI Slave Module的控制
CSI物理协议层规定
MIPI联盟除了在摄像头的接口上进行全新的规定以外还对CSI-2接口的软件架构进行了进一步的制定,CSI-2软件框架主要分成三层,分别为应用层、协议层、物理层,而对于协议层又可以细分为像素字节打包层/解包层、LLP(Low LevelProtocol)层、通道管理层(Lane Management),其主要系统软件框图如下所示:
CSI协议层设计:
应用层:主要设计了上层数据流的编码以及解码格式,规定了像素转换为字节的映射关系;
协议层:主要包括了像素/字节打包/字节解包层,LLP层提供了串行传输数据的同步机制,通道管理层提供了数据位宽可扩展功能,从而灵活的适应不同的应用场景;
物理层:定义了基本传输介质规范,确定了CSI-2协议物理层的输入输出特性参数,并确定其电气特性以及时钟时序。
在现实生活中,摄像头随处可见,但是对于一个电子工程师来讲,理解摄像头的使用方法还是非常有必要的,一般来讲,摄像头的接口主要有MIPI接口、DVP接口、CSI接口三大类,下面说说我对这三大类的理解。
工具/原料
摄像头接口-MIPI、DVP、CSI
方法/步骤
我们常用的电脑摄像头接口是USB接口,而常见的智能手机上的摄像头是MIPI接口,还有一部分的摄像头(比如说某些支持DVP接口的硬件)是DVP接口;通俗的讲,USB是串行通用串行总线(Universal Serial Bus)的简称,而MIPI是移动行业处理器接口(Mobile Industry Processor Interface),DVP是数字视频端口(digital video port)的简称,CSI是相机串行接口(CMOS Sensor Interface)的简称。
DVP总线PCLK极限约在96M左右,而且走线长度不能过长,所有DVP最大速率最好控制在72M以下,PCB layout较容易画;MIPI总线速率lvds接口耦合,走线必须差分等长,并且需要保护,故对PCB走线以及阻抗控制要求高一点(一般来讲差分阻抗要求在85欧姆~125欧姆之间)。
3
DVP是并口,需要PCLK、VSYNC、HSYNC、D[0:11]——可以是8/10/12bit数据,具体情况要看ISP或baseband是否支持;MIPI是LVDS低压差分串口,只需要要CLKP/N、DATAP/N——最大支持4-lane,一般2-lane可以搞定。MIPI接口比DVP的接口信号线少,由于是低压差分信号,产生的干扰小,抗干扰能力也强。最重要的是DVP接口在信号完整性方面受限制,速率也受限制。500W还可以勉强用DVP,800W及以上都采用MIPI接口。
摄像头的MIPI接口、DVP接口和CSI接口的更多相关文章
- 摄像头驱动的使能配置、V4L2编程接口的设计应用
摄像头采集子系统 一.摄像头驱动的使能配置 摄像头软件驱动构架 摄像头采集系统由上图所示,硬件(摄像头) -> 驱动(Linux内核配置中,选择支持V4L2的驱动选项) -> V4L2接口 ...
- Android平台摄像头/屏幕/外部数据采集及RTMP推送接口设计描述
好多开发者提到,为什么大牛直播SDK的Android平台RTMP推送接口怎么这么多?不像一些开源或者商业RTMP推送一样,就几个接口,简单明了. 不解释,以Android平台RTMP推送模块常用接口, ...
- Surface Pro 4 和 Surface Book 使用名为 Surface UEFI(统一可扩展固件接口)的新固件接口
Surface Pro 4 和 Surface Book 使用名为 Surface UEFI(统一可扩展固件接口)的新固件接口.Surface UEFI 提供新功能,如启动更快速.安全性更高.可替换 ...
- Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,
36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口 ...
- C#接口的使用场合,接口应用
当一个项目不断的扩大的时候,会面临的问题是不断的有以下情况: 1.以前编写程序的人离职了,新来的程序员看不懂以前的程序,或者觉得以前的程序部够好,但又不希望删除: 2.当实现第三方接口时,如:读写IC ...
- Delphi接口的底层实现(接口在内存中仍然有其布局,它依附在对象的内存空间中,有汇编解释)——接口的内存结构图,简单清楚,深刻 good
引言 接口是面向对象程序语言中一个很重要的元素,它被描述为一组服务的集合,对于客户端来说,我们关心的只是提供的服务,而不必关心服务是如何实现的:对于服务端的类来说,如果它想实现某种服务,实现与该服务相 ...
- python接口自动化(五)--接口测试用例和接口测试报告模板(详解)
简介 当今社会在测试领域,接口测试已经越来越多的被提及,被重视,而且现在好多招聘信息要对接口测试提出要求.区别于传统意义上的系统级别测试,很多测试人员在接触到接口测试的时候,也许对测试执行还可以比较顺 ...
- PHP九大接口视频教程( 支付宝,QQ,短信接口,微信接口开发, 支付宝即时到账接口开发三级分销全套)
PHP九大接口视频教程( 支付宝,QQ,短信接口,微信接口开发, 支付宝即时到账接口开发三级分销全套) 需要的联系我:QQ: 1844912514 PHP九大接口视频教程( 支付宝,QQ,短信接口 ...
- java接口,接口的特性,接口实现多态,面向接口编程
package cn.zy.cellphone; /**接口是一种引用数据类型.使用interface声明接口,形式 * 形式:public interface 接口名称{} * 接口不能拥有构造方法 ...
- [二] java8 函数式接口详解 函数接口详解 lambda表达式 匿名函数 方法引用使用含义 函数式接口实例 如何定义函数式接口
函数式接口详细定义 package java.lang; import java.lang.annotation.*; /** * An informative annotation type use ...
随机推荐
- python新冠疫情分析-世界疫情数据爬取
事情发展:1.毕业设计是关于疫情数据的可视化展示(基于java,需要做数据可视化,需要做管理员端对数据进行增删改查处理)2.飞起来速度学爬虫,参考了非常多资料,比如b站的黑马爬取(报错,就是在切片那里 ...
- C++_虚函数
1.目的: 派生类继承自基类.使用指针或引用访问派生类对象时,指针或引用本身所指向的类型可以是基类而不是派生类.如果派生类覆盖了基类中的方法,通过上述指针或引用调用该方法时,可以有两种结果: 调用到基 ...
- 安卓逆向 JNI实先java与C互通
先来一张吊图 jdk_1.6.0_43/include/jni.h 这个头文件的地址 头文件分布 我们需要熟悉的 反射获取java中的类 1.jclass/类型 (JNICALL *FindClas ...
- CodeArts Snap:辅助你编程的神器
摘要:通过将自然语言转化为规范可阅读.无开源漏洞的安全编程语言,提升开发者编程效率,助力企业快速响应市场需求. 本文分享自华为云社区<华为云发布智能编程助手 CodeArts Snap!> ...
- Vue急速入门-5
vue-cli创建项目 前端工程化,项目>>>(vue-cli),创建处vue项目,单页面应用(spa) vue-cli创建项目开发,在项目中开发,最后上线,一定要编译 '纯粹的ht ...
- java环境变量配置-最新版
安装 百度"java下载"进入官网下载最新版,闭着眼睛安装: 配置jre 因java11以上不自带jre,需要我们自己配置,配置如下: # 终端进入jdk所在的目录后执行 bin\ ...
- filter 和 map 的异同
filter是满足条件的留下,是对原数组的过滤:map则是对原数组的加工,映射成一一映射的新数组 filter() Filter() 创建一个新数组,新数组中返回的值为经过检查指定数组中满足条件的所有 ...
- Oracle中的sql脚本语言中的循环语句介绍
--sql脚本语言的循环介绍:--1.goto循环点.declare x number;begin x:=0;--变量初始化: <<repeat_loop>>--设置循环 ...
- pat乙级1014 福尔摩斯的约会
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int ...
- opc ua与opc da区别
opc ua与opc da区别_OPC,OPCDA,OPCUA傻傻搞不清楚,走过路过不妨看一看 转自:https://blog.csdn.net/weixin_39624774/article/det ...