3. onsemi图像传感器CSI-2输出接口解析
onsemi 的 MIPI CSI-2 图像传感器(如 AR0234、AR0821、AR2020、AP1302 配套方案等)在输出接口上具有高度可配置性。理解传感器侧的 CSI-2 输出配置,是打通整条链路的第一步。本节以典型 onsemi 传感器为例,从输出端口结构、Lane 映射、数据速率选择、时钟模式到寄存器控制方法,建立传感器侧链路配置能力。
一、CSI-2 输出端口与内部数据通路
onsemi 传感器的 CSI-2 输出并非单一模块,而是由像素阵列、读出电路、像素处理管线(PDP)、MIPI 打包器(Packetizer)和 D-PHY 物理层共同构成。像素数据经 PDP 完成黑电平校正、镜头阴影校正、去马赛克等处理后,送入 MIPI 打包器,按 CSI-2 协议封装成长包(Long Packet)和短包(Short Packet),再由 D-PHY 以差分信号输出。
典型 onsemi 传感器的 CSI-2 输出支持 1/2/4 Lane 可配置,部分高分辨率型号(如 AR0821)支持 4 Lane 输出以满足高带宽需求。Lane 数量、数据速率、时钟模式均通过寄存器配置,配置错误会直接导致链路无法建立或图像异常。
二、Lane 映射与数据速率选择
onsemi 传感器的 CSI-2 输出 Lane 映射遵循 MIPI 规范:Lane 0 固定为时钟 Lane(Clock Lane),Lane 1~3 为数据 Lane(Data Lane)。在 1 Lane 配置下,仅使用 Lane 0(时钟)和 Lane 1(数据);2 Lane 配置使用 Lane 0~2;4 Lane 配置使用全部四个 Lane。传感器内部通过寄存器 0x3F00 附近的 MIPI 配置寄存器组控制 Lane 数量。
数据速率选择需同时考虑传感器输出能力和接收端(SoC/ISP)的 D-PHY 接收能力。以 AR0234 为例,其最大输出为 1920×1200@120fps,若采用 10-bit RAW 输出,总数据量为 1920×1200×10×120 ≈ 2.76 Gbps。若配置为 2 Lane,则单 Lane 速率需达到 1.38 Gbps 以上;若配置为 4 Lane,单 Lane 速率可降至约 0.69 Gbps。实际配置时需留出约 20% 的协议开销余量,因此 2 Lane 场景下通常将单 Lane 速率设为 1.6~1.8 Gbps。
三、时钟模式:连续时钟与非连续时钟
onsemi 传感器支持两种时钟模式:连续时钟模式(Continuous Clock)和非连续时钟模式(Non-Continuous Clock)。连续时钟模式下,Clock Lane 在 HS 和 LP 之间切换时保持差分时钟持续输出;非连续时钟模式下,Clock Lane 在无数据传输时进入 LP 状态以节省功耗。
两种模式的选择取决于接收端 D-PHY 的兼容性。部分 SoC 的 CSI-2 接收控制器仅支持连续时钟模式,此时传感器必须配置为连续时钟。寄存器 0x3F4C 的 bit[0] 通常用于控制该模式。配置错误会导致接收端无法检测到时钟信号,链路初始化失败。
四、寄存器控制方法与配置示例
onsemi 传感器通过 I²C 接口访问内部寄存器。典型配置流程如下:
- 上电复位后,等待传感器进入软件待机(Software Standby)状态。
- 写入 PLL 配置寄存器,设置 MIPI 输出时钟频率。
- 配置 MIPI 输出格式(RAW10/RAW12/RAW8)、Lane 数量、数据速率。
- 配置时钟模式(连续/非连续)。
- 退出待机,使能 CSI-2 输出。
以下为 AR0234 配置为 4 Lane、RAW10、连续时钟的寄存器示例(地址为 16 位,数据为 8 位):
// 进入软件待机
I2C_Write(0x30, 0x3E00, 0x00); // 关闭流输出
I2C_Write(0x30, 0x3E01, 0x00);
// 配置 PLL:MIPI 输出 1.2 Gbps/Lane
I2C_Write(0x30, 0x3F00, 0x04); // 4 Lane 使能
I2C_Write(0x30, 0x3F02, 0x0A); // RAW10 输出
I2C_Write(0x30, 0x3F4C, 0x01); // 连续时钟模式
// 配置数据速率相关 PLL 分频
I2C_Write(0x30, 0x3F10, 0x2A); // PLL 倍频系数
I2C_Write(0x30, 0x3F12, 0x03); // PLL 分频系数
// 退出待机,使能 CSI-2 输出
I2C_Write(0x30, 0x3E00, 0x01);
I2C_Write(0x30, 0x3E01, 0x01);
五、配置验证与常见问题
配置完成后,可通过以下方式验证传感器侧 CSI-2 输出是否正常:
- 使用示波器或差分探头测量 Clock Lane 和 Data Lane 的 HS 差分信号,确认幅度和共模电压符合 D-PHY 规范。
- 通过 SoC 的 CSI-2 接收控制器读取错误计数器,确认无 CRC 错误、无 ECC 错误、无 Lane 同步丢失。
- 读取传感器状态寄存器,确认 CSI-2 输出已使能且 PLL 已锁定。
常见问题包括:Lane 数量配置与接收端不匹配导致链路无法建立;数据速率超过接收端 D-PHY 上限导致误码率升高;时钟模式配置错误导致接收端无法检测时钟。排查时应优先确认传感器侧寄存器配置与接收端配置一致,再检查硬件差分走线和端接匹配。
| 配置项 | 典型寄存器 | 常用值 | 影响 |
|---|---|---|---|
| Lane 数量 | 0x3F00 | 0x01 / 0x02 / 0x04 | 总带宽、接收端 Lane 映射 |
| 输出格式 | 0x3F02 | 0x08 / 0x0A / 0x0C | RAW8 / RAW10 / RAW12 |
| 时钟模式 | 0x3F4C | 0x00 / 0x01 | 连续 / 非连续时钟 |
| PLL 倍频 | 0x3F10 | 依型号计算 | 单 Lane 数据速率 |
| PLL 分频 | 0x3F12 | 依型号计算 | PLL 输出频率 |