MIPI接口协议及规范理解

什么是MIPI接口

MIPI,英文全称为Mobile Industry Processor Interface,即移动行业处理器接口。它是MIPI联盟发起的为移动应用处理器制定的开放标准。MIPI接口是一种专为移动设备和嵌入式系统设计的串行通信接口,定义了一系列的接口标准,常见的如下:

CSI:摄像头接口(Camera Serial Interface),用于连接摄像头模块。

DSI:显示接口(Display Serial Interface),用于连接显示屏幕。

DigRF:射频接口(Digital Radio Frequency),用于连接射频模块。

SLIMBUS:麦克风/喇叭接口,用于连接音频输入/输出设备。

本文重点介绍MIPI CSI接口

总体介绍

MIPI-CSI-2协议是MIPI联盟协议的子协议,专门针对摄像头芯片的接口而设计。由于其高速,低功耗的特点,MIPI-CSI2协议极大的支持了高清摄像头领域的发展.

CSI协议有两个版本协议,分别为CSI-2和CSI-3;

CSI-2协议遵循的物理标准有两个,分别为C-PHY和D-PHY;

CSI-3协议的物理标准对应M-PHY,且应用层协议栈还需要连接Uni-Pro层

D-PHY与C-PHY区别:从实用角度来看,主要是数据线和时钟线的区别,,D-PHY采用了DDR(double data rate)的数据传输方式方式,在时钟的上、下沿都有数据传输,它有一条专用的时钟通道;而C-PHY是不需要专用时钟通道,它的时钟信息嵌入在数据本身当中。

D-PHY有LP(low power)、HS(high speed)两种主要的工作模式,LP时速度慢,电压幅值高;HS时幅值低,速度快。

我们当前使用的RK356X采用的CSI-2 && D-PHY

CSI协议分层

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

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

● CCI:摄像头控制接口。(在MIPI中,充当着控制接口的作用,提供mipi接口sensor的控制传输通道)

● CSI:主机处理器与摄像头模块之间的高速串行接口(传输图像数据)。

2. DPHY的两种工作模式

● HS(High Speed Mode) 这种模式用于传输高速的数据信号,如视频流;高速模式下,每对Lane都是工作在低电压摆幅的差分状态下,数据速率为80Mbps到1500Mbps。

● LP(Low Power Mode) 这种模式则可以用来传输控制信号;低速模式下,每对lane的2根导线都转变为单端状态,数据速率为10Mbps。

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

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

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

3. 两种模式的转换过程

MIPI协议层设置有专门的握手和断开动作,以保证高速信号的同步开始和同步结束,时序图如下:

我们使用数据格式为YUV422 8bit(基本默认采用CSI-2标准的总线均能支持),在总线上传输顺序为UYVY,数据封装方式如下:


其他数据格式支持

MIPI的连续模式和非连续模式

MIPI CSI时钟有两种模式,一种模式是连续时钟模式(Continue模式),另一种是非连续时钟模式(No-Continue模式)。前者在传输过程中不会切换LP状态,后者会在每传输完一帧图像后,帧blanking时会切换为LP状态。一般来说,推荐使用非连续时钟模式。

一条时钟Lane可以通过LP-11 -> LP-10 -> LP-00进入低功耗模式ULPS(Ultra-Low Power Status)

先看下理论,下面文章针对我们的调试经验和经历再写一篇RK平台MIPI适配过程。

相关推荐
jwybobo20071 分钟前
redis7.x源码分析:(3) dict字典
linux·redis
scoone9 分钟前
ssh登陆服务器后支持Tab键命令补全
linux·shell
春末的南方城市18 分钟前
开源音乐分离器Audio Decomposition:可实现盲源音频分离,无需外部乐器分离库,从头开始制作。将音乐转换为五线谱的程序
人工智能·计算机视觉·aigc·音视频
phoenix@Capricornus21 分钟前
矩阵的对角化&特征值分解
图像处理·线性代数·机器学习·矩阵
Hali_Botebie38 分钟前
采样率22050,那么CHUNK_SIZE 一次传输的音频数据大小设置多少合适?unity接收后出现卡顿的问题的思路
音视频
风之馨技术录1 小时前
智谱AI清影升级:引领AI视频进入音效新时代
人工智能·音视频
运维佬1 小时前
CentOS 9 配置网卡
linux·centos
轩轩曲觞阁2 小时前
Linux网络——网络初识
linux·网络
2401_840192272 小时前
python基础大杂烩
linux·开发语言·python
金蝶软件小李2 小时前
基于深度学习的猫狗识别
图像处理·深度学习·计算机视觉