首页  > 百科热搜  > Camera 驱动系列文章| 2.MIPI、CSI基础

Camera 驱动系列文章| 2.MIPI、CSI基础

发布时间:2023-06-14 09:10:54     作者:互联网收集     浏览量:718    

三星官网驱动

上一篇我们讲解了camera的一些基础概念和知识。 我们说了,现在的手机由于高分辨率的要求,现在基本上都是基于MIPI、CSI协议来实现的, 本篇讲解MIPI、CSI的一些基础知识。

下面这些术语是camera驱动中经常用到的缩略语。

三星官网驱动

MIPI:移动产业处理器接口(Mobile Industry Processorinterface) 是MIPI联盟发起的为移动应用处理器制定的开放标准。

MIPI官网

MIPI联盟 即移动产业处理器接口(MIPI)联盟,由美国德州仪器(TI)、 意法半导体(ST)、 英国ARM和芬兰诺基亚(Nokia)4家公司共同成立, 旨在定义并推广用于移动应用处理器接口的开放标准。

MIPI-CSI-2协议是MIPI联盟协议的子协议,专门针对摄像头芯片的接口而设计。

由于其高速,低功耗的特点,MIPI-CSI2协议极大的支持了高清摄像头领域的发展.

正是由于它的普及,手机上五百万像素的摄像头才得以变为前置摄像头,该类接口技术主要掌握在日本东芝,韩国三星以及美国豪威三家公司。


D-PHY与C-PHY区别: 从实用角度来看,主要是数据线和时钟线的区别,还有传输速率,C-PHY通过某些技术改良,使数据传输速度更快。

瑞芯微3568用的CSI-2 && D-PHY

所以内核中,我们会看到CSI2 和 D-PHY相关代码。

MIPI并不是一个单一的接口或协议,而是包含了一套协议和标准,以满足各种子系统独特的要求。MIPI的标准异常复杂,包含非常多的应用领域。

由上图可得:

用于显示模块命令模式下的标准化命令集;

DBI:与具有显示控制器和帧缓冲器的显示模块的并行接口。 DPI:与显示模块的并行接口,不带显示控制器或帧缓冲器。

DSI:主机处理器与显示模块之间的高速串行接口; CSI:主机处理器与摄像头模块之间的高速串行接口;

为DSI(显示屏)和CSI-2(摄像头)提供物理层通路定义。

为DigRF、CSI-3、UFS、LLI、SSIC、M-PCIE提供物理层通路定义。

目前比较成熟的接口应用有**DSI(显示接口),和CSI(摄像头接口)**,都具有比较复杂的协议结构,下图表示某一个SOC可以作为一个CSI的接收器,同时也可以作为一个DSI的输出器。


其物理层使用到了D-PHY,目前新的物理层C-PHY也逐渐被采用,我们常说的Camera I2C接口在MIPI中有专门的一个CCI(Camera Control Interface)来对应。

根据层级,CSI协议分为五层:

名称 解释 Application 应用层 处理原始图像数据的各种算法模块 Packing Formats 组包层 负责将数据按照一定的次序,切割成8bite数据 Low Level Protocaol 协议层 为新生成的数据加上爆头包尾,形成符合协议要求的数据流 Lane Management 通道管理层 将生成的数据流按照一定次序和要求,进行读写管理,输出数据流 PHY Layer PHY层 生成MIPI最后的信号波形 Pixel 像素数据 经过图像模块处理过的数据流,或者原始的图像数据流 Data 传输数据 经过MIPI模块切割或者加上包头包尾数据 Control 控制信号 模块间的控制数据流 Transmitter 发送端 包括了MIPI数组部分,转接板等实现MIPI信源传输的部分 Receiver 接收端 包括了转接板和商用接收端模块,负责解析收到的MIPI信源

工作顺序:

该层主要用于不同场景对数据的处理过程,对于发送方,多为camera生成数据,对于接收方,多为SOC对数据进行处理。

CSI-2协议可以使用SOC上的一个物理接口实现多条数据流的传输。协议层规定了如何对多条数据流进行标记和交织,从而使每条数据流能够正确地重建。

CSI-2能够支持多种多样的像素格式,对于发送方,在数据发送之前,需要根据像素格式,将像素数据转换为对应的字节流;对于接收方,在将数据提供给应用层之前,需要将字节流数据转换为像素数据。

LLP指的是SoT与EoT之间的数据包字节流协议,LLP的最小单元为字节。

为了适应不同场景下对带宽的要求,CSI-2规定了Lane的数量是可拓展的。因此,在面临多Lane同时传输时,发送方需要对字节流进行公平分流(distributor),接收方则需要对多Lane数据进行合并(merger)。

PHY层指定了传输媒介,在电气层面从串行bit流中捕捉“0”与“1”,同时生成SoT与EoT等信号。 CSI的硬件部分包括C-PHY、D-PHY,实际上使用的主要是D-PHY。

D-PHY 描述了一同步、高速、低功耗、低代价的PHY。

D-PHY的最初版本设计目标是500M bits/s,而D是罗马数字的500,故而叫D-PHY。


上图表明使用DPHY作为物理层时,Camera与SOC之间的硬件关系。

MIPI CSI设备由两部分构成,分别为CCI(Camera Control Interface)和CSI(Camera Serial Interface)。

两个Lane的 PHY配置如下图 :


CCI是一个双线、双向、半双工、串行接口。是I2C协议的子集,与I2C基本一致。

CCI是兼容I2C接口的快速模式变体。CCI应支持400kHz操作和7位从属寻址。

对于那些只支持RAW Bayer输出格式的摄像头,其CCI地址必须为011011xb(x=0,1);对于其他的摄像头,其CCI地址必须为011110xb。

CCI可选择支持速率: 1Mbps (Fm+), 12.5Mbps (SDR), or 25Mbps (DDR).

CCI接口命名如下:


上图为单个Lane模块的内部组成,包含了CIL(Lane控制器与借口逻辑器),LP驱动器,HS驱动器,LP冲突检测。

CIL负责控制各个驱动器的工作状态,使得Dp、Dn的工作状态可以在HS与LP之间进行切换。

处于HS模式下,差分信号电平摆幅约为200mV;处于LP模式下,单端信号电平摆幅约为1.2V。 在LP模式下,根据各个Line的电平可以确定当前Lane的State。

Data Lane差分线电平的高低表明了当前处于何种状态,发送方通过驱动差分线一系列的状态变化,进入不同的工作模式。

CSI-2的数据包有两种:长帧和短帧。无论长帧还是短帧,帧开头都是SoT,帧结尾都是EoT。在两次HS传输过之间,插入的是LP状态,一般是LP11等Control状态,当然也可以进入Escape状态、进入LPDT或者是进入UPLS。

1) 长帧结构如下

以DPHY为例来分析具体的协议格式,DPHY长包主要由包头、包负载、包尾三部分组成,具体如下图:

长帧包括32bit的包头(Packet Head,PH)、有效数据填充以及16bit的包尾(Packet Foot,PF)。

数据标识(Data Identity,DI):1个字节,包括VC(Victual Channel)低两位和DT(Data Type)的低六位; 数据计数(Word Count,WC):2个字节。从PH结尾到PF的开头中间的填充数据的长度,单位为字节。接收端通过WC来判断报的结尾位置。 错误检测(ECC):1个字节。包括VC的高两位,与DI中的VC低两位构成4bit虚拟通道标识;低6位为纠错码,采用Hamming(汉明码)的方式,用来纠正PH中一位的错误或者发现两位的错误;

DI:1个字节,包括VC的低两位,和DT(5:0);

短包数据域:2个字节,如果该短帧为Data Type的帧同步(Frame Synchronization),则数据域表示帧数;如果短帧的Data Type为行同步(Line Synchronization),则数据域表示行数。

错误检测(ECC):1个字节,包括VC的高两位和六位纠错码。


数据类型举例:

比如YUV420格式: 4:2:0表示2:1的水平取样,垂直2:1采样(每四个Y共用一组UV分量) 数据格式如图所示:

关于DPHY层,我们并不需要关注太多,就像网卡的PHY层一样,我们只需要知道,通过CCI接口发送配置信息给Camera,通过CSI接口传输数据。


MIPI摄像头:

通常手机不会设计这个扩展槽,一般都会直接在板子上预留小的排线接口,直接将摄像头模组插上去即可。

在手机内部,各个部件与MIPI协议栈的关系如下图:

其中摄像头通过CSI与处理器相连。

我们再细化下摄像头与cpu的模块图【以瑞芯微rk3568为例】:


MIPI接口在系统的实现如上图所示,

ISP(Image Signal Processor),即图像信号处理器,用于处理图像信号传感器输出的图像信号。

它在相机系统中占有核心主导的地位,是构成相机的重要设备。ISP 通过一系列数字图像处理算法完成对数字图像的效果处理。

瑞芯微rk3568平台的ISP2.1 处理图像数据的基本流程如下:

ISP 包括:

MI接口如下:

一般抓图的顺序:

下面看一款摄像头模组OV13850的内部结构图:

定时脉冲发生器输出时钟来访问成像阵列的行,预先填充电荷并且按顺序对数组的行进行采样。

在预先填充电荷和采样的时间间隔内,每个像素点的电荷曝光时减少入射光。

这是在滚动快门的体系结构的曝光时间。

曝光时间通过调整预先填充电荷和采样之间的时间间隔控制。

在每一行的像素数据采样后,通过模拟电路(AMP)进一步处理:纠正偏移量和将数据乘以相应的增益。

模拟处理后通过10位ADC的输出数组中的每个像素的数据。

ISP(image sensor processor)通过图像输出接口单元,经过MIPI接口(MCP/MDP)将图像数据发送出去。

好了,本文暂时讲到这里,

后面会继续更新几篇Camera文章,

建议大家订阅本专题!

也可以后台留言,加一口君好友,拉你进高质量技术交流群。

收藏文章

收藏

文章标签: Camera     MIPI     CSI    
上一篇:嘿嘿嘿,“植物大战僵尸”系列漫画这是在搞事情啊 下一篇:游戏性拉满!10款经典3D回合制游戏,建议直接收藏!