什么是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信源 |
- 应用层(Application Layer)
该层主要用于不同场景对数据的处理过程,对于发送方,多为camera生成数据,对于接收方,多为SOC对数据进行处理。 - 协议层(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)。 - 物理层(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适配过程。