Camera | 2.MIPI、CSI基础

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

瑞芯微专栏

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

摄像头常用术语

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

AE(Auto Exposure):自动曝光。
AF(Auto Focus)   :自动对焦。
AWB(Auto White Balance)自动白平衡。
3A  :指自动曝光(AE)、自动对焦(AF)和自动白平衡(AWB)算法。
Async Sub Device在Media Controller结构下注册的V4L2异步子设备例Sensor、MIPI DPHY。
Bayer Raw或Raw Bayer  :Bayer是相机内部的原始图片一般后缀为.raw。.raw格式内部的存储方式有RGGB、BGGR、GRBG等。
CIF     Rockchip芯片中的VIP模块接收Sensor数据并保存到内存中仅转存数据无ISP功能。
DVP(Digital Video Port)  一种并行数据传输接口。
Entity  Media Controller架构下的各节点。
Frame   帧。
HSYNC   行同步信号HSYNC有效时接收到的信号属于同一行。
IOMMU(Input Output Memory Management Unit)Rockchip芯片中的IOMMU模块用于将物理上分散的内存页映射成CIF、ISP可见的连续内存。
IQ(Image Quality) 指为Bayer Raw Camera调试的IQ xml用于3A tunning。
ISP(Image Signal Processing) 图像信号处理。
Media Controller Linux内核中的一种媒体框架用于拓扑结构的管理。
MIPI-DPHY     Rockchip芯片中符合MIPI-DPHY协议的控制器。
MP(Main Path):Rockchip芯片ISP驱动的一个输出节点一般用来拍照和抓取Raw图。
PCLK(Pixel Clock) :指Sensor输出的Pixel Clock。
Pipeline          Media Controller架构的各Entity之间相互连接形成的链路。
SP(Self Patch)    :Rockchip芯片ISP驱动的一个输出节点。
V4L2(Video4Linux2)   指Linux内核的视频处理模块。
VICAP(Video Capture) :视频捕获。
VIP(Video Input Processor):在Rockchip芯片中曾作为CIF的别名
VSYNC  场同步信号VSYNC有效时接收到的信号属于同一帧。

一、基础概念

1. MIPI

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

MIPI官网

https://www.mipi.org

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

2. CSI

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

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

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

  1. CSI协议有两个版本协议分别为CSI-2和CSI-3
  2. CSI-2协议遵循的物理标准有两个分别为C-PHY和D-PHY
  3. CSI-3协议的物理标准对应M-PHY且应用层协议栈还需要连接Uni-Pro层。

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

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

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

二、MIPI协议

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

由上图可得

  1. 显示设备采用的DSI协议
  2. 摄像头采用的CSI协议
  3. RF IC采用的DigRF协议
  4. 存储设备采用的UFS

1. DCSDisplay Command Set

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

2. DBI, DPI (Display Bus Interface, Display Pixel Interface)

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

3. DSI, CSI (Display Serial Interface, Camera Serial Interface)

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

4. D-PHY

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

5. M-PHY

为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

根据层级CSI协议分为五层

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

工作顺序

  1. 将原始的图像数据在应用层做相应的图像处理包括白平衡/噪声去除和色彩还原等
  2. 将处理的数据进入组包层做数据分割以及重组然后将其传输给底层协议层
  3. 底层协议层会根据数据类型产生包头根据数据内容产生构成包围的校验序列再将包头、数据本身和包尾组成起来发送给通道管理层
  4. 通道管理层模块按照通道的选通情况合理分配数据到每个通道之后数据经过数模转换进入到物理层传输
  5. 接收端在收到物理层数据后再按照之前的逆序解包出原始的图像数据。

1. 应用层Application Layer

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

2. 协议层Protocol Layer

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

1像素字节转换层Pixel/Byte Packing/Unpacking Layer

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

2低级协议层Low Level Protocol

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

3Lane管理器Lane Management

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

3. 物理层PHY Layer

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

四、物理层 DPHY

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

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

1. D-PHY规范的2.0版的标准

  • 在高速模式下的同步传输比特率为80-2300Mb/s具体取决于设备和速度等级
  • TX经典配置为一个时钟Lane和最多四个数据Lane组成
  • Rx经典配置为一个时钟Lane和最多八个数据Lane组成
  • 在低功率模式下的异步传输比特率为10Mb/s
  • 物理协议接口PPI连接CSI-2和DSI的应用
  • 可选的AXI4-Lite接口可进行注册访问。

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

MIPI CSI设备由两部分构成分别为CCICamera Control Interface和CSICamera Serial Interface。

  • CCI摄像头控制接口。在MIPI中充当着控制接口的作用提供mipi接口sensor的控制传输通道
  • CSI主机处理器与摄像头模块之间的高速串行接口传输图像数据。
  1. SOC的CCI组件通过I2C完成对Camera的配置使其输出mipi信号
  2. 其中一对Clock+/-则由Clock Lane标示
  3. 一对DataNBA+/-则由Data Lane标示。

两个Lane的 PHY配置如下图 :

2. CCI (Camera Control Interface)

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

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

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

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

CCI接口命名如下

  • CCI (I2C) CCI 支持I2C
  • CCI (I3C) CCI 支持I3C
  • CCI (I3C SDR) CCI 支持I3C SDR
  • CCI (I3C DDR) CCI 支持I3C DDR
  • CCI 表示同时支持 CCI (I2C) 和CCI (I3C).

3. DPHY工作于两种工作模式

  • HSHigh Speed Mode
    这种模式用于传输高速的数据信号如视频流高速模式下每对Lane都是工作在低电压摆幅的差分状态下数据速率为80Mbps到1500Mbps。
  • LPLow Power Mode
    这种模式则可以用来传输控制信号低速模式下每对lane的2根导线都转变为单端状态数据速率为10Mbps。

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

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


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

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

  • Burst Mode
    High-Speed下的唯一模式高速数据传输模式此时各个Lane的Line工作在差分模式
  • Control Mode
    Low Power下的一种模式可以通过变化不同的state进入其他模式。
  • Escape Mode
    Low Power下的特殊模式在这种模式下可以使用一些特别的功能。

4. CSI-2数据帧格式

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

1) 长帧结构如下

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

长帧包括32bit的包头Packet HeadPH、有效数据填充以及16bit的包尾Packet FootPF。

  • PH包括

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

  • 有效数据填充
    长度=WC*8bit。低位在前对内容没有任何限制0~65535字节。

  • PF包括
    检验CHECKSUM两个字节。低位在前CHECKSUM采用CCITT的16-bit的CRC校验即X16+X12+X5+X0。CRC只能检测出一个或多个错误并不能纠正错误。

2) 短帧结构如下

DI1个字节包括VC的低两位和DT50

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

错误检测ECC1个字节包括VC的高两位和六位纠错码。

  • 数据类型
    数据类型表明了负载数据的格式和内容上文提到根据长短包的不同数据类型共有8种不同的分类。短包数据类型的详细信息在上文已经介绍了这里说明下长包的5种数据类型详见下表

数据类型举例

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

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

五、MIPI协议在手机中应用

1. mipi插槽

MIPI摄像头
在这里插入图片描述

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

2. MIPI接口的手机内部功能框图

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

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

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

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

  1. 通常一个camera的模组如图所示通常包括Lens、Sensor、CSI接口等其中CSI接口用于视频数据的传
  2. SoC的Mipi接口对接Camera并通过I2C/SPI控制camera模组
  3. MIPI DPHY提供了4 Lane的Rx接口由Sensor提供Clock并通过四条数据Lane输入图像数据;
  4. DPHY与CSI-2 Host Contrller之间通过PPIPHY-Protocol Interface相连该接口包括了控制数据时钟等多条信号
  5. CSI-2 Host Contrller通过PPI接口收到数据后进行解析完成后通过IDI(Image Data Interface)或者IPI(Image Pixel Interface)输出到SoC的其他模块(VICAP或ISPrk3568是送至VICAP模块)
  6. ISP将处理过的图片输出到MP主通道或SP自身通道SP一般用来预览图片SP图片的最大分辨率比MP低
  7. SoC通过APB Slave总线控制CSI-2 Host Contrller的相关寄存器。

ISP含义

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

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

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

ISP 包括:

  • MIPI serial camera interface(MIPI)
  • RAW Processing
  • RGB Processing
  • YUV Processing
  • Memory Interface(MI)

MI接口如下

一般抓图的顺序

  1. 摄像头的初始化输出格式、分辨率、输出速率
  2. 使能摄像头接入主控板卡中的物理通道
  3. 使能主控板卡中的ISP图像信号处理模块、并让ISP知道当前有效接入的摄像头是哪一个因为可以多个接入但只能一个有效。
  4. 告诉ISP输进来的数据如何处理颜色空间转换、缩放、裁剪、旋转等、经由那个通道输出到内存/显存MP主通道、SP自身通道。
  5. 输出到内存

3. Camera-OV13850内部结构

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

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

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

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

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

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

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

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

好了本文暂时讲到这里

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

建议大家订阅本专题

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6