Skip to content

LV005-CSI简介

一、CSI 是什么

1. 简介

直接先来官网看简介:Camera Serial Interface 2 (MIPI CSI-2) | MIPI

image-20251107104717561

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)》,但是官网下载好像还挺麻烦,不过万能互联网上肯定什么都有啦,搜一搜就可以下载到啦:

我们后面还需要了解底层协议 D-PHY,这个协议的文档参考《Specification for D-PHY》

二、CSI-2 分层架构

我们来到《MIPI Alliance Specification for Camera Serial Interface 2 (CSI-2)》文档的 5 CSI-2 Layer Definitions :

image-20251107111710415 英文名称 名称 解释
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 这一节:

image-20251110163610968

上图表明使用 DPHY 作为物理层时,Camera 与 SOC 之间的硬件关系。SOC 的 CCI 组件通过 I2C 完成对 Camera 的配置,使其输出 mipi 信号,其中一对 Clock+/-则由 Clock Lane 标示,一对 DataN+/-则由 Data Lane 标示。

参考文档:

MIPI CSI-2 笔记(1) -- CSI-2 概览和 CSI-2 的分层架构_csi2-CSDN 博客

(3 封私信) Camera | 2.MIPI、CSI 基础 - 知乎

05_MIPI摄像头驱动程序分析 — Linux设备驱动开发教程中心