LV005-CSI简介
一、CSI 是什么
1. 简介
直接先来官网看简介:Camera Serial Interface 2 (MIPI CSI-2) | MIPI

A widely adopted, high-speed protocol for transmission of still and video images from image sensors to application processors
一种被广泛采用的高速协议,用于将静止图像和视频图像从图像传感器传输到应用处理器。
CSI (Camera Serial Interface) 是 MIPI 定义的规范,用于连接摄像头和 CPU,传输摄像头的视频信号,最新的规范是 2012 发布的 CSI-3,使用的物理层为 M-PHY,应用层协议栈还需要连接 Uni-Pro 层。CSI-2 规范在 2005 发布、使用 D-PHY 作为物理层,它定义了发送器和接收器之间的标准数据传输和控制接口。
2. 文档说明
其实学习 CSI-2 最好的还是看文档,官网文档为:《MIPI Alliance Specification for Camera Serial Interface 2 (CSI-2)》,但是官网下载好像还挺麻烦,不过万能互联网上肯定什么都有啦,搜一搜就可以下载到啦:
- MIPI Alliance Specification for Camera Serial Interface 2 (CSI-2), Version 4.0.1
- MIPI Alliance Specification for Camera Serial Interface 2 (CSI-2), Version 0.04
我们后面还需要了解底层协议 D-PHY,这个协议的文档参考《Specification for D-PHY》
二、CSI-2 分层架构
我们来到《MIPI Alliance Specification for Camera Serial Interface 2 (CSI-2)》文档的 5 CSI-2 Layer Definitions :
![]() | 英文名称 | 名称 | 解释 |
|---|---|---|---|
| Transmitter | 发送端 | 包括了 MIPI 数组部分,转接板等实现 MIPI 信源传输的部分 | |
| Receiver | 接收端 | 包括了转接板和商用接收端模块,负责解析收到的 MIPI 信源 | |
| Application | 应用层 | 处理原始图像数据的各种算法模块 | |
| Packing Formats | 组包层 | 负责将数据按照一定的次序,切割成 8bite 数据 | |
| Low Level Protocaol | 协议层 | 为新生成的数据加上爆头包尾,形成符合协议要求的数据流 | |
| Lane Management | 通道管理层 | 将生成的数据流按照一定次序和要求,进行读写管理,输出数据流 | |
| PHY Layer | PHY 层 | 生成 MIPI 最后的信号波形 | |
| Pixel | 像素数据 | 经过图像模块处理过的数据流,或者原始的图像数据流 | |
| Data | 传输数据 | 经过 MIPI 模块切割或者加上包头包尾数据 | |
| Control | 控制信号 | 模块间的控制数据流 |
(1)将原始的图像数据在应用层做相应的图像处理,包括白平衡/噪声去除和色彩还原等;
(2)将处理的数据进入组包层做数据分割以及重组,然后将其传输给底层协议层;
(3)底层协议层会根据数据类型产生包头,根据数据内容产生构成包围的校验序列,再将包头、数据本身和包尾组成起来发送给通道管理层;
(4)通道管理层模块按照通道的选通情况,合理分配数据到每个通道,之后数据经过数模转换进入到物理层传输;
(5)接收端在收到物理层数据后,再按照之前的逆序解包出原始的图像数据。
1. PHY Layer
物理层指定了从串行的 bit 流中解析出 0 和 1 的相关传输介质(电导体)、输入输出电路以及时钟的规范。PHY 层规定了传输介质和电信号参数的特性,以及对 D-PHY 类型的物理层的时钟和数据 lane 之间的时序关系。
物理层规范也包含了发起 SOT(Start of Transmission)和 EOT(End of Transmission)等能够在传输、接收的 PHY 之间进行传输的带外信息所使用的机制。Bit 和 Byte 级别的同步机制也是 PHY 层的一部分。
2. Protocol Layer
协议层由几个子层组成,每个子层有不同的职责。CSI-2 协议能够在 host 侧处理器上用一个单独的接口处理多条数据流。协议层规定了多条数据流该如何标记和交织起来,以便每条数据流能够被正确地恢复出来。
- Pixel/Byte Packing/Unpacking Layer
CSI-2 规范支持多种不同像素格式的图像应用,每像素 6 位到 24 位不等。在发送方中,本层在发送数据到 Low Level Protocol 层之前,将来自应用层的像素封包为字节数据。在接收方中,本层在发送数据到应用层之前,将来自 Low Level Protocol 层的字节数据解包为像素。8 位的像素数据在本层中传输时保持不变。
- Low Level Protocol
LLP 主要包含了在 SoT 和 EoT 事件之间的 bit 和 byte 级别的同步方法,以及和下一层传递数据的方法。LLP 最小数据粒度是 1 个字节。LLP 也包含了一个字节内的 bit 值解析,即 Endian(大小端里的 Endian 的意思)的处理。
- Lane Management
CSI-2 的 lane 是可扩展的。具体的数据 lane 的数量规范并没有给出限制,数据通道的数量可以是 1、2、3 或者 4 个,这取决于应用程序的带宽需求。发送侧分发(distributor 功能)来自出口方向数据流的字节到 1 条或多条 lane 上。接收侧则从一条或多条 lane 中收集字节并合并(merge 功能)到一个数据流上,复原出原始流的字节顺序。对于 C-PHY 物理层来说,本层专门分发字节对(16 bits)到数据 lane 或从数据 lane 中收集字节对。基于每 lane 的扰码功能是可选特性。
协议层的 数据组织形式是包(packet)。接口的发送侧会增加包头(header)和错误校验(error-checking)信息到即将被 LLP 发送的数据上。接收侧在 LLP 将包头剥掉,包头会被接收器中对应的逻辑所解析。错误校验信息可以用来做入口数据的完整性检查。
3. Application Layer
本层描述了更高层级的应用对于数据中的数据的处理,规范并不涵盖应用层。CSI-2 规范只给出了像素值和字节的映射关系。
三、实现示例
我们看一下 MIPI Alliance Specification for Camera Serial Interface 2 (CSI-2), Version 4.0.1 的 4 Overview of CSI-2 这一节:

上图表明使用 DPHY 作为物理层时,Camera 与 SOC 之间的硬件关系。SOC 的 CCI 组件通过 I2C 完成对 Camera 的配置,使其输出 mipi 信号,其中一对 Clock+/-则由 Clock Lane 标示,一对 DataN+/-则由 Data Lane 标示。
参考文档:
MIPI CSI-2 笔记(1) -- CSI-2 概览和 CSI-2 的分层架构_csi2-CSDN 博客
