MIPI CSI-2 (软件工程师视角)

MIPI-CSI-2 是 MIPI 定义的 camera 和 host 之间的一种接口标准 (以下简称 CSI2)

CSI2 定义的接口又可分为数据接口和控制接口(CCI), 此处不关心控制接口, 以下所说 CSI2 或 CSI2 接口默认指(只涉及)数据接口

CSI2 概览

CSI2 可视为由 PHY (MIPI D-PHY) 和 PACKET 协议层组成。

CSI2 规格

PHY (D-PHY) (CSI2 视角)

D-PHY 由多个 lane (模块) 组成。一个 lane 可视为一个信道/通道,物理上是两根线。lane 分为时钟 lane (clock-lane) 和 数据 lane (data-lane)。 特别的,data-lane 的数量是可配置的 (1到4)


一个 lane "完整系统"由 两个 lane-module 和 之间的连接线 (2-wire) 组成。 lane 上传输的信号是 High-Speed 信号 或 Low-Power 信号。HP 信号用于高速数据传输,LP 信号用于控制。信号由 Transmitter(TX) 发送,Receiver(RX) 则负责接收,故 HP 信号有 HP-TX、HP-RX,LP 信号有LP-TX、LP-RX。

HP 信号: 两线为差分 低压摆200mv 80Mbps~2500Mbps 需要时钟信号(clock-lane)
LP 信号: 两线为独立单端 1.2v max-10Mbps 不需要时钟信号(clock-lane)
即一个 lane 的两根线被时分复用了。LP 时,是两个单端信号线;HS 时,是一对差分信号线

一个 lane (模块) (包含了所有信号收发器的)内部结构图示:

HP、LP 信号图示

D-PHY 有主从之分 (master slave),时钟信号(by clock-lane) 由 master 提供给 slave,数据由 master 到 slave 为正向,反之为反向 (CSI2 最小要求不需要反向数据传输(半双工特性),即单工即可)

Data Lane

一个 data-lane 在空闲时是 LP 状态(即线上是 LP 信号),两根线均为高电平(1.2v)(简记为 LP-11)。将空闲状态归为 Control 模式,则还有 Escape、Hight-Speed 模式。 其中只有 High-Speed 模式时是 HP 信号(需要clock-lane),余下模式则是 LP 信号(不需要clock-lane)。

data-lane 由空闲状态经特定的序列可进入(退出) Escape 或 High-Speed 模式。如下图所示,High-Speed 的进入序列是:LP-11,LP-01,LP-00; 退出序列是 LP-11。特别的,High-Speed 在真正开始传输数据之前还要发送同步信号,整个 进入/退出 数据发送状态的过程 称为 SoT/EoT (Start-of-Transmission, End-of-Transmission)

High-Speed 模式时,LP-RX 将此时视为 LP-00 状态

Clock Lane

clock-lane 有且仅有一个,(CSI2 定义) clock-lane 上的时钟信号可以是连续输出(一直发送时钟信号,不管data-lane 的状态), 或者是(可选)非连续输出模式(仅当data-lane是HP时,有时钟信号,其余情况是LP-11状态。时钟信号是双边沿采样 (DDR)

初始化问题

PACKET 协议层

CSI2 数据传输基本单元是 PACKET (以下简称为包),对于 PHY (D-PHY) 来说,就是 SoT-Data-EoT 中的 Data 部分(当然PHY 不需关心data中的内容,只是当作字节数据传送)。

包 组成如下

头部 载荷+尾部

包有不同的类型,头部是必然存在的,其余部分则取决于包的类型。只有头部的是短包,否则是长包

包逐步细分 list:


帧起始包 帧数据包 帧结束包


当多个 data-lane 时,涉及包数据的分发/合并,即发送时,将包数据的各个字节分发给若干 data-lane 进行传输,对等的,接收方也需要从这些 data-lane 中恢复出包数据。字节在 lanes 上的分发有固定规则,如下图示


总结:CSI2 结构图

Notes

参考资料


版本号 #13
由 Admin 创建于 4 二月 2024 06:16:05
由 Admin 更新于 22 二月 2024 02:10:30