• android的camera学习(3)——mipi协议分析



    事无巨细,我们不是专业研究Mipi的大佬,所以我们先对mipi的协议做一个大致的了解,再以后的工作中再对mipi协议做一些深入的了解。

    一、什么是mipi

    MIPI (Mobile Industry Processor Interface) 是2003年由ARM, Nokia, ST ,TI等公司成立的一个联盟,目的是把手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性。
    如图大致展示了一个手机的内部框架:
    Application可以理解为cpu或许会比较好接受。
    在这里插入图片描述
    可以看到camera是CSI-2和CSI-3协议,而显示一般用的都是DSI协议,而大容量存储都是用的UFS
    DSI:定义了一个位于CPU和显示模组之间的高速串行接口
    CSI:定义了一个位于CPU和摄像模组之间的高速串行接口
    M-PHY:提供UFS的物理层定义
    D-PHY:提供DSI的物理层定义
    C-PHY:提供CSI的物理层定义(CSI也可以支持D-PHY,M-PHY。因为现在基本都是用C-PHY)
    D-PHY中的D指的是罗马数字500或者字母D,而不是Display,C-PHY指的是Channel-limited。

    二、什么是mipi-csi-2

    2.1 D-PHY的CSI-2和CCI

    发送机可以理解为cpu端,接收端可以理解为显示这边。
    图一显示了D-PHY的CSI和CCI相关图解:
    CSI-2规范定义的发送机和接收机之间的标准数据传输和控制接口,定义了数据传输接口。通常是具有一个两个时钟通道和一个或多个数据通道的单向差分接口,只允许从发送端发出,接受端接收,通常为摄像头模块和接收器模块是手机引擎的一部分。D-PHY最高传输的带宽只有10Gb/s,最多只有10条线吧。
    CCI控制接口(Camera Control Interface)是一个兼容I2C标准的双向控制接口,属于I2C协议的一个子集,CCI应支持400kHz操作和7位523从属寻址,用于I2C通讯。
    图一   
                         图一

    2.2 C-PHY的CSI-2和CCI

    图2显示了C-PHY的CSI和CCI相关图解:
    可以看到C-PHY是没有时钟线的,因为C-PHY的时钟线是内嵌到数据线中的,这样的目的是为了增加带宽,这样就能够传输更多的数据,也就支持高清高帧率的图片或则视频。
    C-PHY是三线传输,也就是三个lane传输速率为2.5symbol/s,每个lane的采用symbol的传输方式,每个symbol的传输为2.28bits,也就是一个lane就能传输2.5x2.28 = 5.7Gb/s的带宽,所以三个lane就能传输17.1Gb/s的带宽。
    CCI控制接口(Camera Control Interface)是一个兼容I2C标准的双向控制接口,属于I2C协议的一个子集,CCI应支持400kHz操作和7位523从属寻址,用于I2C通讯。
    在这里插入图片描述
                         图二

    三、MIPI的协议分层

    MIPI CSI2的分层方法有好几种,根据MIPI联盟的规范,CSI2可分为5层,分别为:应用层、组包/解包层、底层协议层(Low Level Protocol)、通道管理层和物理层。
    协议框图:
    在这里插入图片描述

    1. **应用层:**处理原始图像数据的各种算法模块。
    2. **组包、解包层:**将数据按照一定的次序,切割成 8 比特数据。
    3. **协议层:**新生成的数据加上包头包尾,形成符合协议要求的数据流。
    4. **通道管理层:**生成的数据流按照一定次序和要求,进行读写管理,输出数据流。
    5. **PHY层:**生成 MIPI 最后的信号波形。

    一些名词解释:

    1. 像素数据: 经过图像模块处理过的数据流,或者原始图像的数据路。
    2. **传输数据:**经过MIPI模块切割或者加上包头包尾的数据。
    3. **控制信号:**模块间的控制数据流。
    4. **发送端:**包括了 MIPI 数字部分,转接板等实现MIPI 信源传输的部分。
    5. **接收端:**包括了转接板和商用接收端模块,负责解析收到的 MIPI 信源。

    MIPI的协议流程:
    我们以相机为例子:首先是通过sensor获取原始图像数据,图像数据会被传入到ISP模块里面中进行一些色彩还原,噪声去此除,白平衡的相关处理,最后成为我们需要的图像数据,然后需要通过mipi传输到我们的显示器上吧,mipi协议就会把原始图像数据分割为标准的bit位进行传输,也就是组包层,传输到协议层,协议层对数据进行包头包尾的添加,防止出错,然后继续传到通道层,最后通过PHY传输到设备端,反相解码就好了,最后呈现再界面上。

    四、mipi的传输模式

    4.1 D-PHY的传输模式

    (1) HS 高速传输模式,用于传输突发数据,同步传输,信号为差分信号,电平范围为100mv-300mv,传输速度范围是80-1000Mbps。在该模式下传输时,当差分线正端收到 1.2V 信号,负端收到 0V信号时,这时接收端识别为 1。反之为0。

    (2) LP 低功耗模式,用于传输控制指令,异步传输,信号线为单端,电平范围是0-1.2v,没有用时钟线,时钟是通过两个数据线异或而来的,速度只有10Mbps。在该模式下传输时,当正端接收到300m V,负端接收到100m V 时接收端识别为1.反之则识别为0.
    在这里插入图片描述

    4.2 C-PHY的传输模式

    C-PHY一共有三种模式:HSMode、LPMode和AlternateLow-Power (ALP) mode
    其中HS Mode传输线有六种状态:+x, -x, +y, -y, +z , –z
    (为什么只有6种,因为定义C-PHY必须要两种状态跳转才是有效的,所以所有的情况是2的三次方8种,减去无用的两种就是6中)

    1 1 1 无用
    1 1 0
    1 0 1
    1 0 0
    0 1 0
    0 1 1
    0 0 1
    0 0 0 无用
    /*剩下六种*/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    LPMode传输线有四种状态:LP-000,604 LP-001, LP-100 and LP-111
    ALP Mode除了HS Mode的六种状态之外还定义了两种状态ALP-Pausestate (VOD = 0) and ALP-Pause Wake state (VOD = |VOD| Strong),其中ALP-Pause有可以分为ALP-PauseStop and ALP-Pause ULPS两种。

    这个图展示了HS Mode传输线的六种状态,具体如图:
    在这里插入图片描述
    配合这个图或许会更加明显
    在这里插入图片描述

    这里有个图会对上面的高速模式电压进行一些讲解
    在这里插入图片描述

    这个图展示了高速的六状态和低速的四种状态

    在这里插入图片描述

  • 相关阅读:
    (windows10)设置环境变量简化EVOSUITE的运行
    OpsWorks
    机器学习——正则化
    假期AI新闻热点:亚运会Al技术亮点;微软GPT-4V论文精读;Perplexity推出pplx-api;DALL-E 3多渠道测评 | ShowMeAI日报
    手敲,Ascend算子开发入门笔记分享
    [office] excel成绩表格数据排名次的教程 #职场发展#知识分享#媒体
    突破编程_C++_设计模式(策略模式)
    Java.lang.Class类 isLocalClass()方法有什么功能呢?
    1108 String复读机分数 20
    【EXCEL】一些实例
  • 原文地址:https://blog.csdn.net/weixin_51178981/article/details/125415594