2. MIPI CSI-2协议核心机制精讲

onsemi 图像传感器(如 AR0234、AR0820、AR2020 等)通过 MIPI CSI-2 接口把图像数据送到 SoC 或 ISP,链路的稳定性并不只取决于电气信号质量,更取决于协议层各机制是否被正确理解和配置。本节从物理层分层、Lane 管理、数据包格式、虚拟通道、数据类型、ECC 与 CRC 校验六个方面,梳理协议层如何影响 onsemi 传感器输出链路的稳定性。

一、C-PHY 与 D-PHY 的分层结构

MIPI CSI-2 是协议层规范,它必须运行在具体的物理层之上。onsemi 传感器常见两种物理层:D-PHY 和 C-PHY。D-PHY 采用差分对,每个 Lane 由一对差分线组成,时钟 Lane 独立,数据 Lane 在 HS(高速)模式下以差分信号传输,在 LP(低功耗)模式下以单端信号传输。C-PHY 则采用三线一组(trio),没有独立时钟 Lane,时钟通过三线之间的状态跳变恢复,每个符号携带约 2.28 bit 信息。

分层上,CSI-2 协议层负责打包、Lane 分配、虚拟通道和数据类型;物理层负责把字节流转换为差分或三线信号。理解这一点很关键:当链路出现误码时,问题可能出在协议层(如 Lane 数配置不匹配、VC 冲突),也可能出在物理层(如时序、均衡、走线)。onsemi 传感器通常通过寄存器选择 D-PHY 或 C-PHY 模式,并配置 Lane 数量,例如 2-lane D-PHY 或 3-trio C-PHY。

MIPI CSI-2 协议层与物理层关系(onsemi 传感器输出链路) CSI-2 协议层 数据包格式 包头/包尾/负载 虚拟通道 VC 0~3 通道标识 数据类型 DT RAW8/10/12 等 ECC / CRC 校验 包头纠错 / 负载检错 物理层 D-PHY 差分对 + 独立时钟 Lane HS 差分 / LP 单端 C-PHY 三线一组(trio),无独立时钟 每符号约 2.28 bit 链路稳定性影响:协议层配置错误(Lane 数、VC、DT 不匹配)会导致丢帧或解析失败; 物理层信号完整性问题(时序、均衡、走线)会导致 ECC/CRC 错误率上升,两者需分别定位。

二、Lane 管理与数据分发

CSI-2 支持 1~4 条数据 Lane(D-PHY)或 1~3 组 trio(C-PHY)。发送端把像素字节流按字节轮流分配到各 Lane 上,接收端再按相同规则重组。onsemi 传感器通常通过寄存器 0x0110 或类似地址配置 Lane 数量,例如 AR0234 在 2-lane 模式下每 Lane 速率约 900 Mbps。Lane 数配置必须与接收端(SoC/ISP)一致,否则会出现字节错位、图像撕裂或完全无数据。

Lane 管理还包括 Lane 的极性反转和 Lane 交换。部分 onsemi 传感器支持 Lane 极性可编程,方便 PCB 走线时交换 P/N 或调换 Lane 顺序。如果硬件设计做了 Lane 交换但软件未配置对应寄存器,链路会表现为“有信号但图像错乱”。因此调试时应先确认 Lane 映射关系,再检查速率和时序。

三、数据包格式与数据类型

CSI-2 的数据以包为单位传输。每个包由包头(PH)、可选的数据负载(Payload)和包尾(PF)组成。包头包含 4 字节:Data ID(1 字节)、Word Count(2 字节)、ECC(1 字节)。Data ID 又分为虚拟通道 VC(高 2 位)和数据类型 DT(低 6 位)。Word Count 表示负载字节数。包尾是 2 字节的 CRC。

数据类型 DT 决定了负载的解析方式。onsemi 传感器常用的 DT 包括:0x2A(RAW8)、0x2B(RAW10)、0x2C(RAW12)、0x2D(RAW14),以及 0x00(帧起始 FS)、0x01(帧结束 FE)、0x02(行起始 LS)、0x03(行结束 LE)。如果接收端把 RAW10 误配为 RAW8,图像会表现为亮度异常或像素错位。因此 DT 必须与传感器输出格式严格一致。

四、虚拟通道与多路复用

虚拟通道 VC 允许在同一物理链路上传输多个独立的数据流。onsemi 的多传感器方案或 HDR 方案中,常使用 VC 区分不同曝光帧或不同传感器。例如,一个传感器输出长曝光帧到 VC0,短曝光帧到 VC1,接收端按 VC 分别处理后再合成 HDR。VC 只有 2 位,最多 4 个通道(0~3)。如果两个数据流使用了相同 VC 且 DT 也相同,接收端无法区分,会导致数据混淆。

五、ECC 与 CRC 校验机制

CSI-2 在包头使用 1 字节 ECC(汉明码),可以纠正 1 bit 错误、检测 2 bit 错误。ECC 覆盖 Data ID 和 Word Count 共 24 bit。如果接收端 ECC 校验失败,说明包头在传输中出错,通常丢弃该包并计数。包尾使用 2 字节 CRC-16,覆盖整个负载,用于检测负载中的位错误。CRC 错误不会自动纠正,只能丢弃或重传(CSI-2 本身不定义重传,需上层处理)。

在调试 onsemi 链路时,ECC 和 CRC 错误计数是重要指标。如果 ECC 错误持续增加,通常指向物理层信号完整性问题或 Lane 时序偏差;如果 CRC 错误偶发,可能是电源噪声或时钟抖动。建议在 SoC 侧读取 CSI-2 接收器的错误计数器,结合示波器眼图判断。

调试建议:先确认 Lane 数和速率匹配,再检查 VC 和 DT 配置,最后观察 ECC/CRC 错误计数。三步顺序可以快速缩小问题范围。

六、协议层对链路稳定性的影响总结

协议层配置错误往往表现为“链路能建立但图像异常”,而物理层问题表现为“误码率上升”。onsemi 传感器输出链路的稳定性,既需要协议层参数(Lane、VC、DT、包格式)与接收端严格一致,也需要物理层信号质量满足时序和均衡要求。实际调试中,建议先用低速、单 Lane 模式验证基本通信,再逐步提升到目标速率和多 Lane 配置,同时监控 ECC/CRC 计数,从而定位问题出在协议层还是物理层。

机制 关键参数/字段 常见配置错误 典型现象
Lane 管理 Lane 数量、极性、映射 Lane 数与接收端不一致 无数据或图像撕裂
数据类型 DT 0x2A/0x2B/0x2C 等 DT 与传感器输出格式不匹配 亮度异常、像素错位
虚拟通道 VC VC0~VC3 多路流使用相同 VC 数据混淆、HDR 合成失败
ECC 包头 1 字节汉明码 物理层误码导致 ECC 失败 丢包、错误计数增加
CRC 包尾 2 字节 CRC-16 负载位错误 偶发丢帧、图像噪点

理解这些机制后,在实际集成 onsemi 传感器时,就可以有依据地检查寄存器配置、核对接收端参数,并通过错误计数快速判断问题层级,而不是盲目尝试。