文章目录
- 1.前言
- 2.DVP-并口
- 2.1 输入总线介绍
- 2.2 输出总线介绍
- 2.3 电源总线介绍
- 3.MIPI(MIPI-CSI2)
- 3.1 MIP-CSI2简介
- 3.2 MIPI CSI-2的分层结构
- 3.3 MIPI CSI-2的链路工作流程
- 3.4 MIPI CSI-2的物理连接
- 3.5 MIPI CSI-2的工作模式
- 3.6 MIPI CSI-2的数据包格式
- 3.7 MIPI CSI-2的长包格式
- 3.7 MIPI CSI-2的短包格式
- 4.USB接口
1.前言
常见摄像头的接口主要有:USB,DVP.MIPI(CSI)
2.DVP-并口
DVP是并口
,需要PCLK,VSYNC,HSYNC,D[0:11]-可以是8/10/12bit数据,看ISP或者baseband是否支持,并口传输的是CMOS电平,非差分
,最大的PCLK
速率为96M左右,所以走线长度不宜过长,最好最大速率控制在72M
以下,500W还可以勉强使用DVP,800W以及以上都采用MIPI接口
图示:
2.1 输入总线介绍
-
PWDN:camera的使能管脚,有两种配置方式,一种为
standby
,一种为normal work
,当设置为standby
时,一切对于camea的操作都是无效的,包括复位,所以一定要将PWDN
管脚设置为normal
模式,否则RESET
无效 -
RESET:camera的复位管脚,此方式为硬复位模式,camera的各个IO口恢复到出厂默认状态,只有当
XCLK
开启后,将RESET
置为低,硬复位才有效,否则复位无效 -
XCLK:是camera的工作时钟管脚,此管脚为
OMAP
提供camera的工作时钟 -
IIC:是camera和omap通信的总线通道
2.2 输出总线介绍
- data:camera数据管脚,此数据脚可以输出的格式为YUV,RGB,JPEG等
- VSYNC:camera的帧同步信号管脚。一个VYSNC信号结束表示一帧(即一个画面)的数据已经输出完毕
- HSYNC:camera行同步信号管脚。一个HSYNC信号结束表示一行的数据已经输出完毕。
- PCLK:像素同步信号管脚。一个PCLK信号结束表示一个像素点的数据已经输出完毕。
注意点:
XCLK(MCLK)是由SOC提供给摄像头到工作时钟,从而使摄像头工作,PCLK是摄像头自己产生的时钟信号,通过摄像头sensor的内部PLL电路可以产生不同频率的PCLK
2.3 电源总线介绍
- AVDD:camera模拟电压,给芯片的模拟器件供电---->
2.8V
,主要给摄像头的感光区和ADC部分供电,一般功耗比较高 - IOVDD:为camera的GPIO口模拟电压,给芯片引脚供电---->
1.8V
:给I2C或者DVP部分供电,也会给MIPI供电,一般功耗最低。 - DVDD:是camera的数字电压,给芯片中的数字信号供电,camera的工作电压---->
1.2-1.5V
:主要给摄像头内部的ISP供电,还会给BPC remosaic shading等模块供电,一般功耗最高,由于其对摄像头内部ISP影响,而ISP又是摄像头内部图像处理单元,如果供电不稳定,可能会导致花屏等情况。
一般时序为:先给sensor的GPIO口供电,再提供模拟电压,最后提供工作电压,时序图为:
3.MIPI(MIPI-CSI2)
3.1 MIP-CSI2简介
在摄像头领域,MIPI一般指CSI2协议,该协议一般是建立在D-PHY物理层上的,但是现在也会采用C-PHY,在MIPI中有一个专门的CCI(类I2C)通信接口,这接口只能用于摄像头的通信,CSI-2主要由应用层,协议层,物理层组成,只需要一条CLKP/CLKN
,多条DATAP/DATAN
线,最大支持4lane
,4lane
的意思是有四组DATAP/DATAN线
,2lane
的意思是2组DATAP/DATAN
线,最大支持4通道
数据传输,单线传输速度高达2Gb/s
mipi总线是差分信号,串行传输,在传输过程中数据比较稳定,抗干扰比较强,并且节约的传输线
3.2 MIPI CSI-2的分层结构
CSI-2可以分为五层,分别为:应用层
,组包/解包层
.底层协议层(Low Level Protocol)
,通知管理层
和物理层
| 描述与作用 |
- | 应用层: 处理原始图像数据的各种算法模块
- | 组包/解包层: 负责将数据按照一定的次序,切割成8bit数据
- | 应用协议层: 将新生成的数据加上包头包尾,生成符合协议规范的数据流
- | 通知管理层: 将数据流按照通道输出需求进行分割和重组
- | 物理(PHY)层: 生成最后的MIPI波形,可以支持1到4条差分数据链路,以及一条时钟链路,
- | 像素数据: 经过图像模块处理过的数据流,或者原始图像的数据流
- | 传输数据: 经过组包/解包层切割或者加上包头包尾的数据流
- | 控制信号: 模块间的控制数据
- | 发送端: 包括了 MIPI 数字部分,转接板等实现MIPI 信源传输的部分。
- | 接收端: 包括了转接板和商用接收端模块,负责解析收到的 MIPI 信源
3.3 MIPI CSI-2的链路工作流程
- 原始的图像数据会在
应用层做图像处理
,包括白平衡,噪声去除,色彩还原 - 处理过后的数据进入
组包和解包层
进行数据分割与重组,再传输给协议层
根据数据类型
产生包头
,根据数据内容
产生构成包尾的校验序列
,之后将包头、数据本身、包尾组合起来发送给通道管理模块,协议层会打包出两种报文结构,一种是短包一种长包,两种报文都有开始和结束标志,中间是有效数据。然后则是LP状态包 - 通道管理层模块按照通道的选通情况,合理分配数据给每一个通道,之后数据经过数模转换进入物理层传输,接收端在接收到物理层的数据之后,按照之前的逆序解包出原始的数据
3.4 MIPI CSI-2的物理连接
除地线外,MIPI CSI-2一般会有1对I2C
通信引脚,1对MIPI差分时钟引脚
和1~4对MIPI差分数据信号
引脚,如图所示
各个引脚解释
名称 |
---|
DATA 1+ / DATA 1- MIPI 协议组包生成的差分模拟数据信号第1组 |
DATA 2+ / DATA 2- MIPI 协议组包生成的差分模拟数据信号第2组 |
CLOCK+ / CLOCK- MIPI 协议组包生成的差分模拟时钟信号 |
SDA I2C I2C数据信号线 |
SCL I2C I2C时钟信号线 |
在典型的应用中发送端
在完成对图像的各种处理
后,然后对数据进行打包
,然后通过差分信号对接收端
传输数据,差分信号线一般有一对时钟差分线和多对数据差分线,数据差分信号线的数量与需要传输的数据量的要求有关,数据量越大多对数据线能更容易满足链路的需求。一般情况下两百万到五百万像素的手机使用两对差分数据线,即两个数据通道。而当摄像头像素进一步提高到八百万甚至一千三百万时一般会使用四个数据通道,即四对差分数据线。
采用I2C接口与外界进行数据交互,在MIPI的发送端
使用的是I2C从端的IP
,MIPI CSI-2接口的控制寄存器
连接I2C的从端,这样子外部的接收器可以通过I2C控制MIPI发送端内部的寄存器
, 以此改变 MIPI CSI-2 接口内部状态机的持续时间和最后输出数据时的通道数,又或者在调试过程中读出这些寄存器,去做相应的检查,以判断发送端的工作状态,再通过接收端的现象来分析发送端是否工作在正常的状态。
3.5 MIPI CSI-2的工作模式
D-PHY有两种传输模式:
-
HS高速传输模式:用于传输
突发数据,同步传输
,信号为差分信号
,电平范围为100mV-300mV
,传输速度范围为80M-1Gbps
,在该模式下传输时,当差分线正端收到300mV信号,负端收到100mV信号时,此时接收端识别为1,反之为0
-
LP低功耗模式:用于传输
控制指令,异步传输
,信号为单端信号
,电平范围为0-1.2V
,没有用时钟线,时钟是通过两个数据线异或而来的速度小于等于10Mbps,在该模式下传输时,当正端接收到1.2V,负端接收到0V时接收端识别为1,反之识别为0
3.6 MIPI CSI-2的数据包格式
MIPI CSI-2是一个面向字节的,基于包的协议;它支持任意大小的数据通过短包和长包格式传输。各个包之间由EOT-LPS-SOT序列隔开,如图所示。LLP包有两种:长包和短包。每个包的传输以SoT(start of transmission)开始,EoT(end of transmission)结束,中间间隙是LPS(Low Power State低功耗状态)。通过FS(Frame start)和FE(Frame end)来判断一帧的开始与结束
3.7 MIPI CSI-2的长包格式
MIPI CSI-2的长包主要有包头,数据包,包尾三部分组成,而包头又分为:数据标识(Data identifier),数据包大小(word count)和错误校验码(ECC)组成,如图所示:
- 第一部分是PH,包头:分别由Data ID、16bit的WC和ECC构成
-
数据标识符
Data ID:
大小为1字节,包含虚拟数据通道号[7:6]和数据类型[5:0],Data Type用来区别数据类型,
-
数据包大小
WC
:大小为2字节
,其内容为传输数据的长度,其内容为传输数据的长度,以字
为单位, -
错误校验码
ECC
:大小为1字节,负责等数据包的传输错误进行检查与纠错
- 第二部分是包的有效数据
- 数据包:有效数据,传输数据大小为0-65535个字节,sensor中的image数据都是打包在这里传输
- 第三部分是PF,即checksum
与长包相比,短包中的数据标识Data ID数据类型在0x00到0x0F之间。WC字段是短包的数据域,最多只能发两个字节的数据,这个数据可由用户定义或者是frame number,line number。ECC是校验码,能对1bit错误进行纠错,2bit错误进行检查,和长包一致,同样需要先发LSB,再发MSB。应当注意的是,短包一般是用来发送同步控制信号的,一般不建议使用短包来发送用户数据
其中,Data ID的高两位表示虚拟通道号,低六位表示Data Type,如下图所示:
那么Data Type是怎么确定的呢,下面这张图表面如果Data Type如果为0x08到0x0F,则表示短包
虚拟通道(VC,Virtual Channel)技术使得CSI-2可以在同一个Lane发送不同类型的数据,不同的数据类型可以走不同的虚拟通道,然后在接收端在进行恢复,在D-PHY中,VC最大数量为16,如下图所示
例如:不同数据类型走不同的虚拟通道
短包用来发同步控制信号,长包用来发数据,如:
4.USB接口
USB接口是差分信号,我们先介绍一下UVC是什么,UVC全称 USB video class或者USB device class,是Microsoft 与另外几家设备厂联合推出的USB视频捕获设备定义的协议标准,目前已经成为USB org标准之一。如今的主流操作系统(win XP,linux 2.4.6 and Macos 10.5以及相关的最新版本都支持)都已经提供UVC设备驱动,因此符合UVC规格的硬件设备在不需要安装任何驱动程序下就可以在主机中正常使用
参考:摄像头接口类型汇总