目标计算,分辨率计算。
帧率匹配。
传输带宽验证。
考虑色彩。如果不依赖颜色特征,就可以选黑白的,比如结构尺寸或者缺陷检测
感光度选择,动态范围。低照度,像元尺寸会影响到低照度,全局曝光的低照度会比卷帘差一些。
镜头选择
目标距离计算,人员识别需要高分辨率,有最小人员识别像素要求。
但是yolo对相机的尺寸要求很高。
选型里面需要加上,全局和卷帘。
国产化
从以上,出来选型的需求。得出CMOS
一、MIPI接口介绍
1.1 MIPI来源
MIPI全称为:Mobile Industry Processor Interface,由MIPI联盟开发,是一种高性能、低功耗、低成本的串行通信接口,目的是把设备内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少设备设计的复杂程度和增加设计灵活性。
统一接口标准的好处是厂商可根据需要灵活选择不同的芯片和模组,更改设计和功能非常快捷方便,MIPI主要用于移动设备和嵌入式设备中,比如手机、电脑、车载娱乐系统、可穿戴设备及物联网(IoT)设备等。
MIPI Alliance即移动产业处理器接口联盟(Mobile Industry Processor Interface 简称MIPI)。于2003 年由ARM,Nokia,ST,TI 等公司成立的为移动应用处理器制定的开放标准和一个规范,目前MIPI已经成为移动领域最主流的视频传输接口规范,应用最广泛的是MIPI D-PHY和MIPI C-PHY两组协议簇,C-PHY中的许多模块借鉴于D-PHY,两种标准的接口可共用相同引脚实现双模。

1.2 MIPI接口具有什么优势?
MIPI接口具有以下优势:
- 高速数据传输:MIPI接口支持高速数据传输,最高可达数Gbps,满足移动设备对高分辨率、高刷新率显示的需求。
- 低功耗:MIPI 接口采用低电压信号,降低功耗,延长移动设备的续航时间。
- 灵活性:MIPI接口支持多种数据通道和时钟频率,可以根据不同的应用场景进行配置。
- 兼容性:MIPI接口具有很好的兼容性,可以支持多种类型的显示设备和摄像头设备。
1.3 MIPI有哪些接口协议?
1、MIPI DSI(Display Serial Interface):用于连接显示屏和处理器,提供高带宽的串行数据传输,主要用于手机、平板电脑等移动设备的显示屏。
2、MIPI CSI (Camera Serial Interface):用于连接摄像头模块和处理器,支持高带宽的数据传输,常用于移动设备的摄像头。
3、MIPI I3C:用于低速的控制和通信,取代传统的I2C接口,提供更高的带宽和更低的功耗。
4、MIPI D-PHY:定义了数据传输的物理层,主要用于DSI和CSI接口。
1.4 MIPI名词解释
- DSI, CSI(Display Serial Interface, Camera Serial Interface)
- DSI 定义了一个位于处理器和显示模组之间的高速串行接口。
- CSI 定义了一个位于处理器和摄像模组之间的高速串行接口。
- D-PHY:提供DSI和CSI的物理层定义
二 MIPI-CSI2架构
2.1 MIPI-CSI2数据分层传输架构
目前CSI协议已经发布了CSI-3,但CSI-2和CSI-3之间是不兼容的,CSI-2协议既可以使用与DSI一致的D-PHY物理层协议,也可以使用C-PHY作为物理层协议。而CSI-3则只能使用M-PHY作为物理层协议,具体如下图:

CSI-2协议包含应用层和传输层:
- 应用层(Application Layer):主要描述了上层数据流中的数据编码和解析。CSI-2 规范中规定了像素数据到字节的映射(Mappingof pixel values to bytes)。
- 协议层(Protocol Layer):包含了几个不同的子层,每个子层都有各自的明确职责。主要包括,像素/字节打包/解包层(Pixel/Byte Packing/Unpacking Layer),Low Level Protocol Layer(LLP),通道管理(LaneManagement)层。
MIPI CSI-2有多个版本,其中CSI-2 v2.0最为广泛使用
| MIPI CSI-2版本 | 发布日期 |
|---|---|
| CSI-2 v1.0 | 2005 |
| CSI-2 v2.0 | 2017 |
| CSI-2 v3.0 | 2019 |
| CSI-2 v4.0 | 2022 |
不同版本的CSI-2协议的速率和特点可见下表,如D-PHY和C-PHY下同样的协议版本,传输速率是不同的。

MIPI-CSI2数据分层传输架构如下图所示:

MIPI CSI-2 协议栈采用分层架构,自上而下依次为:
- 应用层(Application Layer),由 TX 端的摄像头和 RX 端的 ISP 构成,负责图像数据的生成与处理,设计了上层数据流的编码以及解码格式;
- 像素/字节转换层(Pixel/Byte Packing/Unpacking Layer),将传感器输出的 10-bit 或 12-bit 像素RAW数据打包为标准的 8-bit 字节流;
- 低级协议层(Low Level Protocol),将字节流封装成符合 MIPI CSI-2 规范的数据包,包含包头、数据类型、校验等字段;
- Lane 管理器(Lane Management),负责将数据流均衡分配到 1 至 4 条 MIPI 数据通道(lane)中,以实现并行高速传输,提供了数据位宽可扩展功能,从而灵活的适应不同的应用场景;
- 最底层是物理层(PHY Layer),该层与CSI-2协议栈是分离的,是提供实际的硬件接口,包括差分时钟(MCP/MCN)和数据线(MDP/MDN),完成电信号的发送与接收。这一分层设计实现了功能解耦,便于开发、调试与标准化。
CSI协议层设计: 应用层:主要设计了上层数据流的编码以及解码格式,规定了像素转换为字节的映射关系; 协议层:主要包括了像素/字节打包/字节解包层,LLP层提供了串行传输数据的同步机制,通道管理层提供了数据位宽可扩展功能,从而灵活的适应不同的应用场景; 物理层:定义了基本传输介质规范,确定了CSI-2协议物理层的输入输出特性参数,并确定其电气特性以及时钟时序。
MIPI CSI-2数据包格式
// CSI-2协议层数据包格式
struct csi2_packet {
uint8_t data_type; // 数据类型:0x2B=RAW10, 0x2C=RAW12等
uint16_t word_count; // 数据长度
uint8_t data[0]; // 有效数据
uint16_t checksum; // CRC校验
};
2.2 为什么需要分层设计?
MIPI 接口采用分层架构(如 D-PHY 与 CSI-2 分离)并非偶然,而是为了解决复杂系统中的耦合、演进与兼容性问题。其核心优势如下:
| 分层设计优势 | 实际意义 |
|---|---|
| 物理与协议解耦 | 同一套 D-PHY 物理层可同时支持 CSI-2(摄像头)、DSI(显示屏)等不同上层协议,避免重复设计硬件接口。 |
| 技术独立演进 | D-PHY 可专注于提升速率(如从 1.5 Gbps 升级到 C-PHY 的 6 Gbps),而 CSI-2 可独立增加新功能(如压缩传输、多流同步),互不影响开发节奏。 |
| 兼容性更好 | 只要协议层保持一致,新旧设备(如新型传感器 + 老款 SOC)仍可通信,延长产品生命周期,降低生态碎片化风险。 |
| 调试更方便 | 工程师可单独验证物理层信号完整性(如用示波器测 MIPI 波形)或协议层逻辑(如解析 CSI-2 包头),大幅缩短故障定位时间。 |
简言之,分层设计将“如何传”和“传什么”分离,使系统更灵活、可维护、可扩展——这正是现代嵌入式视频接口得以快速迭代和广泛应用的基石。
2.3 CSI Host 硬件资源
2.3.1 什么是 CSI Host?
- CSI Host = CSI 接收控制器(Receiver Controller)
- 是 SoC 内部的专用硬件模块,负责:
- 解码 MIPI CSI-2 协议
- 处理数据包(长包/短包/同步包)
- 将像素数据传送给 ISP 或内存
- 每个 CSI Host 对应一组固定的硬件寄存器和 DMA 通道
2.3.2 硬件资源限制
| SoC 平台 | CSI Host 数量 | D-PHY 数量 | 关系 |
|---|---|---|---|
| RK3588(s) | 6(4)个 | 2 个 | 1 D-PHY → 1 或 2 个 CSI Host |
| RV1126B | 4 个 | 2 个 | 1 D-PHY → 1 或 2 个 CSI Host |
| Jetson Orin | 8 个 | 4 个 | 1 D-PHY → 2 个 CSI Host |
| 树莓派4B | 1 个 | 1 个 | 1:1 固定 |
RK3588S是4个csi-host,而RK3588是6个。
CSI Host 数量由 SoC 硬件设计决定,无法通过软件增加!
2.4 RK3588S 的 CSI Host 架构详解
2.4.1 硬件资源分配表
| 配置模式 | D-PHY 0 | D-PHY 1 | 总 CSI Host | 物理实现 |
|---|---|---|---|---|
| 4-lane × 2 | CSI Host 0 (4-lane) | CSI Host 2 (4-lane) | 2 个 | MUX 直通 |
| 2-lane × 4 | CSI Host 0+1 (各2-lane) | CSI Host 2+3 (各2-lane) | 4 个 | MUX 拆分 |
| 混合模式 | CSI Host 0 (4-lane) | CSI Host 2+3 (各2-lane) | 3 个 | MUX 部分拆分 |
关键机制: RK3588 通过 硬件多路复用器(MUX)在运行前(bootloader 阶段)配置 D-PHY 与 CSI Host 的映射关系,一旦配置完成,运行时无法更改。
- 误解:可以创建任意多个 video device,所以 CSI Host 无限制
- 真相:DTS 只是描述硬件连接,实际能否工作取决于底层硬件是否存在对应的 CSI Host
- 真相:V4L2 是软件抽象层,最终仍需绑定到有限的硬件 CSI Host
2.5 如何确认 SoC 的 CSI Host 数量?
2.5.1 方法 1:查阅官方文档
RK3588S TRM(Technical Reference Manual)第 15 章 "Image Signal Processing",明确说明:4 个 CSI Host 控制器,(CSI_HOST0~CSI_HOST3),每个 CSI Host 支持独立配置。
2.5.2 方法 2:查看 Rockchip 内核驱动
grep -r "csi_host" drivers/media/platform/rockchip/isp/
# 输出:
# rkisp-hw.c: static struct rkisp_hw_dev_ops csi_host_ops[] = {
# rkisp-hw.c: [0] = { .name = "csi_host0", ... },
# rkisp-hw.c: [1] = { .name = "csi_host1", ... },
# rkisp-hw.c: [2] = { .name = "csi_host2", ... },
# rkisp-hw.c: [3] = { .name = "csi_host3", ... },
# }
2.5.3 方法 3:查看media设备的CSI HOST数量
#确认 CSI Host 数量
media-ctl -p
# 检查 CSI Host 寄存器状态
cat /sys/kernel/debug/clk/clk_summary | grep csi
# 应显示 csi_host0/1/2/3 的时钟状态
# 检查 D-PHY 配置
cat /sys/kernel/debug/phy/phy-rockchip-mipi-dphy.*
# 显示 lane 配置和时序参数
2.6 CSI多lane混合配置
CSI-2的 "2-lane + 2-lane" 配置(即单个 D-PHY 拆分为两个独立的 2-lane CSI 接口)是一种高性价比的多相机解决方案,特别适合需要多路中低分辨率视频输入的应用场景。下面详细解析其工作原理、典型应用和实现方法。

单个 D-PHY 控制器:拥有 4 条物理 lane(Lane1, Lane2, Lane3, Lane4)
逻辑拆分:
CSI Host 0:使用 Lane1 + Lane2(2-lane 接口)
CSI Host 1:使用 Lane3 + Lane4(2-lane 接口)
独立控制:两个 CSI Host 可连接不同型号、不同分辨率、不同帧率的相机
2.7 不同配置模式下的实际限制
2.7.1 4-lane × 2 模式
- 可用 CSI Host:2 个(CSI_HOST0 + CSI_HOST2)
- 最大相机数:2 个(每个 4-lane)
- 典型应用:2 路 4K 相机
2.7.2 2-lane × 4 模式
- 可用 CSI Host:4 个(CSI_HOST0 + CSI_HOST1 + CSI_HOST2 + CSI_HOST3)
- 最大相机数:4 个(每个 2-lane)
- 典型应用:4 路 1080p 相机
2.7.3 混合模式
- 可用 CSI Host:3 个(CSI_HOST0 + CSI_HOST2 + CSI_HOST3)
- 最大相机数:3 个(1×4-lane + 2×2-lane)
- 典型应用:1 路 4K + 2 路 1080p
重要提醒: 无法同时使用 CSI_HOST1 和 CSI_HOST0 在 4-lane 模式下! 因为它们共享同一个 D-PHY0 硬件资源。
2.8 六大主流AI SoC的MIPI相机支持对比
核心结论:在边缘视觉系统设计中,RK3588和Jetson Orin提供最灵活的多相机支持;RV1126和S100在中低功耗场景性价比最优;树莓派适合原型验证。
2.8.1 SoC MIPI相机支持总览表
| 特性 | RK3588 (Rockchip) | RV1126 (Rockchip) | RDK X5 (地平线) | S100(地平线) | 树莓派4B/CM4 | Jetson Orin (NVIDIA) |
|---|---|---|---|---|---|---|
| DTS设备树 | 完整支持,arch/arm64/boot/dts/rockchip/rk3588-*.dtsi | 完整支持,arch/arm/boot/dts/rockchip/rv1126-*.dtsi | 专用设备树,需地平线SDK | 完整支持,基于Linux 4.19 | 完整支持,/boot/dt-blob.bin | 高级支持,/kernel/nvidia/tegra/ |
| ISP能力 | RKISP3,4路并行处理,8K@30fps,24-bit pipeline | RVISP2,单路,4K@30fps,HDR | 专用BPU-ISP,4路,4K@30fps,车规级HDR | CVISP2.0,2路,4K@30fps,低光照优化 | 无硬件ISP,GPU基础处理 | NVIDIA ISP,8路,8K@30fps,AI增强 |
| MIPI接口 | 4×CSI-2,2×4-lane + 2×2-lane | 2×CSI-2,各2-lane | 2×CSI-2,各4-lane | 2×CSI-2,各4-lane | 1×CSI-2,2-lane | 4×CSI-2,各4-lane |
| PHY类型/数量 | 4×D-PHY v1.2 (4-lane) | 2×D-PHY v1.2 (2-lane) | 2×D-PHY (4-lane) | 2×D-PHY v1.2 (4-lane) | 1×D-PHY (2-lane) | 4×D-PHY v2.1 + C-PHY v1.1 |
| 典型功耗 | 5-10W | 2-5W | 8-15W | 3-6W | 3-6W | 15-60W |
| AI数据获取 | V4L2 + MPP零拷贝 | V4L2 + RKNPU direct | 专用BPU框架 | 专用BPU框架 | V4L2内存拷贝 | Argus + EGLStream零拷贝 |
2.8.2 ISP架构对比
| SoC | ISP架构 | 优势 | 局限 | 典型应用场景 |
|---|---|---|---|---|
| RK3588 | 多级流水线(4级) | 8K处理、多路并行、HDR合成 | 高负载时延迟增加 | 安防NVR、视觉边缘服务器 |
| RV1126 | 单级处理 | 低功耗(0.5W)、启动快(<100ms) | 无多路合成 | 智能门铃、工业相机 |
| RDK X5 | BPU-ISP协同 | 专为ADAS优化、运动物体增强 | 仅支持地平线算法栈 | 自动驾驶、DMS系统 |
| S100 | 双核ISP | 超低照度(0.001 lux)、抗闪烁 | 厂商支持有限 | 智慧城市、交通监控 |
| 树莓派 | GPU软件处理 | 灵活、社区资源丰富 | 无硬件加速、延迟高 | 教学、原型验证 |
| Jetson Orin | 多实例ISP + DLA | 8路4K、AI降噪、实时HDR | 功耗高、成本高 | 自动驾驶、机器人 |
2.8.3 MIPI PHY实现细节
- RK3588:采用4个独立D-PHY实例,lane0-3可配置为4-lane,lane4-7为2-lane,支持2.5Gbps/lane
- RV1126:2个D-PHY实例,最大1.5Gbps/lane,需注意在4K模式下必须使用2-lane配置
-
RDK X5:专有PHY控制器,支持自动skew补偿,但需要地平线提供的
bpu-tool进行校准 - S100:支持D-PHY/C-PHY切换,4-lane模式下可达3.0Gbps/lane(需定制PCB)
- 树莓派:Broadcom专有PHY,仅支持1.2Gbps/lane,2-lane最大2.4Gbps(不足以支持4K@30fps RAW12)
- Jetson Orin:支持C-PHY的消费级SoC,在4K@60fps场景下可降低30%功耗
2.8.5 AI数据获取机制
5.1 零拷贝 vs 内存拷贝架构(AI生成,不确认是否正确)
| SoC | 数据路径 | 延迟 | CPU占用 | 适用场景 |
|---|---|---|---|---|
| RK3588 | Sensor → CSI → ISP → V4L2 → MPP → NPU | 8-12ms | 5-8% | 多路视频分析 |
| RV1126 | Sensor → CSI → ISP → V4L2 → RKNPU | 10-15ms | 10-15% | 低功耗AI终端 |
| RDK X5 | Sensor → CSI-ISP → BPU NN | 5-8ms | <3% | 机器人 |
| S100 | Sensor → CVISP → CVI-NN | 12-18ms | 15-20% | 具身智能 |
| 树莓派4 | Sensor → V4L2 → CPU → TensorFlow | 80-120ms | 70-90% | 教学演示 |
| Jetson Orin | Sensor → Argus → EGLStream → GPU | 3-5ms | <2% | 高性能机器人 |
2.8.6 选型决策树

2.8.7 最佳实践建议
- RK3588:进行零拷贝格式转换
- Jetson Orin:通过
nvbufsurface直接访问传感器数据 - 避免CPU参与图像搬运,将数据流限制在DMA通道内
三、硬件层DPHY、C/D PHY层
MIPI技术是分层的,包括物理层、协议层和应用层。协议层包括CSI和DSI,物理层包括C-PHY和D-PHY,相同的PHY物理层可以承载不同协议。
在MIPI接口中,D-PHY和C-PHY是主要的硬件接口,C-PHY是MIPI总线的新一代接口,支持更高的数据传输速率和更节能的设计。它们有着不同的引脚定义和功能,如时钟信号、高速/低速数据线等。
3.1 D-PHY和C-PHY的技术演进及各版本技术特点对比
3.1.1 D-PHY技术演进与版本特点
D-PHY作为MIPI联盟最早成熟的物理层标准之一,经历了从v1.0到v3.0的持续迭代:
- v1.0:最初版本,设计目标为500Mbps(D为罗马数字500),奠定了基础架构
- v1.2:提升至约2.5Gbps/通道,完善了电源管理特性
- v2.0/v2.1:最高支持4.5Gbps/通道,总数据速率可达18Gbps(使用4条数据通道)
- v3.0(2023年):理论最高速率达11Gbps(短通道),TSMC N3工艺实现9Gbps,针对高达14Gbps/data lane优化
D-PHY核心技术特点
- 物理架构:1对源同步差分时钟 + 1~4对差分数据线(2线差分对)
- 传输方式:DDR方式(时钟上下边沿均有数据传输)
- 双模式工作:
- HS模式:低压差分信号,80Mbps~11Gbps,100-300mV电压范围
- LP模式:单端信号,<10Mbps,0-1.2V电压范围,用于控制指令传输
- 信号特性:差分信号传输,降低EMI,提高抗干扰能力
- 应用领域:智能手机摄像头/显示接口、汽车电子、AR/VR设备等
3.1.2 C-PHY技术演进与版本特点
C-PHY作为为高带宽、低功耗传输设计的高效物理层接口:
- v1.0:引入三线传输架构和符号为基础的数据编码机制
- v1.2:支持高达3.5Gsps/lane(约8Gbps/lane),三通道峰值带宽达24Gbps
- v2.0(规划中):针对高达6Gsps/lane的数据速率优化
- v3.0(最新):更高编码效率,更低功耗,专为汽车和多摄像头系统优化
C-PHY核心技术特点
- 物理架构:三线传输(A、B、C),无单独时钟线
- 信号机制:自时钟三相信号,通过CDR恢复时钟
- 编码方式:三进制技术,六种线态(+x,-x,+y,-y,+z,-z),连续7组符号解码出16bit数据
- 传输效率:单通道理论速率2.28-8Gbps(依版本不同),三通道组合峰值带宽7.5-24Gbps
- 优势特性:
- 更高的每线带宽效率
- 支持弹性数据速率调整
- 动态相位补偿技术减少时钟偏移
- 非对称数据流支持
- 双向和半双工操作能力
3.1.3 D-PHY与C-PHY技术对比
| 特性 | D-PHY | C-PHY |
|---|---|---|
| 物理架构 | 1时钟通道+1-4数据通道(2线差分对) | 3线传输(A/B/C),无单独时钟 |
| 时钟机制 | 源同步时钟方案,需单独时钟通道 | 自时钟三相信号,通过CDR恢复时钟 |
| 编码方式 | 传统差分信号编码 | 三进制技术,六种线态编码 |
| 带宽效率 | 较低,相同带宽需更多通道 | 更高,相同带宽需更少通道 |
| 最新版本速率 | v3.0: 11Gbps(理论)/9Gbps(实现) | v3.0: 更高编码效率,优化多摄像头系统 |
| 引脚数量 | 较多(需时钟+数据通道) | 较少(三线架构) |
| PCB布局 | 相对复杂 | 更简洁,降低布局难度 |
| 适用场景 | 传统摄像头/显示接口,成熟应用 | 高分辨率图像传输,多摄像头系统,汽车电子 |
3.2 RK3588 MIPI接口配置详解
3.2.1 DPHY与CPHY模式选择
RK3588数据手册中提到的"2x MIPI-CSI DPHY 4L/CPHY 3L"和"4x MIPI-CSI DPHY 2L"描述的是两种互斥的硬件配置模式,代表了不同的摄像头连接能力和带宽分配方案。这两种配置无法同时使用,需要在设计时选择其一。

3.2.2 术语解析
| 术语 | 含义 | 详细说明 |
|---|---|---|
| MIPI-CSI | 摄像头串行接口 | MIPI联盟定义的标准摄像头接口协议 |
| DPHY | D型物理层 | 传统差分信号对,每lane包含1对差分线(P/N) |
| CPHY | C型物理层 | 三相编码技术,每lane使用3根单端线 |
| xL | Lane数量 | DPHY的"4L"=4对差分线(8根),CPHY的"3L"=3根单端线 |
3.2.3 两种配置模式详解
模式1:2x MIPI-CSI DPHY 4L / CPHY 3L

- 物理接口:2个独立的CSI控制器
-
每控制器能力:
-
DPHY模式:4条lane(4对差分线 = 8根信号线)
- 单lane速率:2.5Gbps
- 总带宽:10Gbps/控制器
- 适用场景:4K@60fps RAW12、8K@30fps
-
CPHY模式:3条lane(3根单端线)
- 单lane速率:等效3.5Gbps
- 总带宽:10.5Gbps/控制器
- 适用场景:8K@30fps、高帧率4K
-
DPHY模式:4条lane(4对差分线 = 8根信号线)
- 典型应用:高端安防NVR(2路8MP)、工业检测(2路高速相机)
模式2:4x MIPI-CSI DPHY 2L

- 物理接口:4个独立的CSI控制器
-
每控制器能力:
-
DPHY模式:2条lane(2对差分线 = 4根信号线)
- 单lane速率:2.5Gbps
- 总带宽:5Gbps/控制器
- 适用场景:4K@30fps、1080p@60fps
-
DPHY模式:2条lane(2对差分线 = 4根信号线)
- 典型应用:智能分析盒(4路1080p)、全景监控、多目视觉系统
3.2.4 技术参数对比
| 参数 | 2x DPHY 4L/CPHY 3L | 4x DPHY 2L | 优势场景 |
|---|---|---|---|
| 最大摄像头数量 | 2 | 4 | 多路监控选4x2L |
| 单路最大带宽 | 10Gbps | 5Gbps | 高分辨率选2x4L |
| 8K支持 | ✓ (1路) | ✗ | 8K采集必须用2x4L |
| 4K@60fps支持 | ✓ (2路) | ✗ (仅1路) | 高帧率视频分析 |
| PCB复杂度 | 高(8线/路) | 中(4线/路) | 小型化设计倾向4x2L |
| 信号完整性 | 挑战大 | 较易实现 | 长距离传输选2x4L(CPHY) |
3.2.5 实际应用选择指南
场景1:2路4K视频分析(推荐2x DPHY 4L)
- 优势:每路10Gbps带宽,可同时处理2路4K@60fps RAW12
- 典型产品:高端NVR、机器视觉系统
场景2:4路1080p智能分析(推荐4x DPHY 2L)
- 优势:同时连接4路1080p摄像头,适合多路AI分析
- 典型产品:智能分析盒、零售客流统计
3.2.6 工程实践建议
-
4K/8K应用场景:
- 优先选择 2x DPHY 4L 模式
- 确保PCB差分对等长(skew<0.5mm)
- 使用SI仿真验证2.5Gbps信号完整性
-
多路1080p场景:
- 选择 4x DPHY 2L 模式
- 注意4个CSI控制器的时钟同步
- 优化散热设计(4路同时工作功耗高)
-
超高速采集:
- 考虑 2x CPHY 3L 模式(需传感器支持)
- CPHY提供30%更高带宽密度
- 但需专用测试设备验证(示波器需支持CPHY解码)
3.3 可重构的 D-PHY 控制器
RK 3588 Support Two MIPI CSI/LVDS/SubLVDS DPHY,意味着RK3588 内置 2 个可重构的 D-PHY 控制器,每个控制器可通过配置支持 MIPI CSI、LVDS 或 SubLVDS 三种协议之一。
3.3.1 真实含义
| 关键词 | 技术含义 | 常见误解 |
|---|---|---|
| Two | 2 个独立的 D-PHY 物理层控制器 | 误以为是 2 个摄像头接口 |
| MIPI CSI | 摄像头串行接口(Camera Serial Interface) | 与 DSI(显示屏接口)混淆 |
| LVDS | 低压差分信号(Low-Voltage Differential Signaling) | 误认为仅用于显示屏 |
| SubLVDS | 次级 LVDS(Sony 专有协议) | 误以为是通用标准 |
| DPHY | D-PHY 物理层(MIPI 标准物理层) | 与 C-PHY 混淆 |
3.3.2 硬件架构详解
可重构 D-PHY 控制器

-
每个 D-PHY 控制器包含:
- 模拟前端:高速差分接收器(支持 2.5Gbps)
- 数字后端:可配置的协议解码器
- 时钟恢复电路:CDR(Clock Data Recovery)
- 关键特性:运行前配置(bootloader 阶段),运行时不可切换协议
3.3.3 引脚复用机制
| 引脚组 | MIPI CSI 模式 | LVDS 模式 | SubLVDS 模式 |
|---|---|---|---|
| Lane0 (P/N) | CLK+/CLK- | CLK+/CLK- | CLK+/CLK- |
| Lane1 (P/N) | D0+/D0- | D0+/D0- | D0+/D0- |
| Lane2 (P/N) | D1+/D1- | D1+/D1- | D1+/D1- |
| Lane3 (P/N) | D2+/D2- | D2+/D2- | D2+/D2- |
注意:虽然引脚复用,但电气特性不同:
- MIPI CSI:100Ω 差分阻抗,摆幅 200-400mV
- LVDS:100Ω 差分阻抗,摆幅 350mV
- SubLVDS:100Ω 差分阻抗,摆幅 200mV(Sony 专有)
3.3.3 三种协议详解
3.3.3.1 MIPI CSI(主流选择)
- 应用场景:现代 CMOS 图像传感器(Sony IMX、OmniVision OV 系列)
-
优势:
- 高带宽(2.5Gbps/lane)
- 低功耗(LP 模式)
- 标准化(MIPI 联盟维护)
- 典型设备:IMX415、OV5647、GC4653
3.3.3.2 LVDS(工业 legacy)
- 应用场景:工业相机、医疗设备、广播设备
-
特点:
- 并行数据传输(多对差分线)
- 无包结构(纯像素流)
- 需外部同步信号(HS/VS)
-
典型设备:
- Basler ace classic 系列
- FLIR Blackfly S
- Sony XC-HR 系列
3.3.3.3 SubLVDS(Sony 专有)
- 应用场景:Sony 早期 CMOS 传感器(IMX178、IMX185 等)
-
技术本质:
- LVDS 的变种,使用更低摆幅(200mV vs 350mV)
- 时钟嵌入数据流(类似 MIPI,但无包结构)
- 仅 Sony 传感器支持
- 现状:逐渐被 MIPI CSI 取代,但仍有 legacy 设备
关键区别:
- MIPI CSI:有包结构(长包/短包/同步包)
- LVDS/SubLVDS:无包结构,纯像素流 + 同步信号
3.3.3.4 常见误区澄清
误区 1:“同时支持三种协议”
- 事实:每个 D-PHY 只能选择一种协议,但两个 D-PHY 可分别配置不同协议
- 正确用法:DPHY0=MIPI CSI, DPHY1=LVDS
误区 2:“LVDS 和 MIPI CSI 电气兼容”
- 事实:虽然都是差分信号,但摆幅和时序不同,直接连接会损坏设备
- 解决方案:使用电平转换芯片(如 SN65LVDS31)
3.4 MIPI D-PHY和MIPI CSI2关系类比
它们都隶属于MIPI联盟制定的标准,但在视频传输中扮演着完全不同的角色,就像公路系统中的"道路"和"交通规则"。
| 特性 | MIPI D-PHY | MIPI CSI-2 | 类比说明 |
|---|---|---|---|
| 层次定位 | 物理层 (PHY) | 协议层 (Protocol) | 如同“公路”与“交通规则” |
| 主要功能 | 电气信号传输 时钟同步 串行化/反串行化 |
数据包格式化 流控制 错误处理 |
公路只管跑车 规则管怎么开车 |
| 工作内容 | 传输 0 和 1 的电信号 | 定义数据如何打包、寻址 | 搬运工 vs 包装工 |
| 标准依赖 | 独立物理层标准 | 依赖物理层传输 | 规则需要路才能执行 |
MIPI D-PHY 与 MIPI CSI-2 在视频传输链路中各司其职:D-PHY 负责“怎么传”,作为物理层,它定义了电压摆幅、共模电平等电气特性,通过高速差分时钟(如 1.5 Gbps/lane)实现时钟同步,将并行数据串行化为高速串行流,并管理 1–4 条数据通道(lane),同时支持高速(HS)与低功耗(LP)模式以优化能效。简言之,D-PHY 只关心“电信号是否准确、可靠地传输”,不关心内容本身。
D-PHY 工作:
而 CSI-2 负责“传什么”,作为协议层,它定义了数据包结构(长包/短包)、包头信息(含数据类型、长度、ECC 校验)、帧/行控制信号(如 Frame Start/End),并规范 RAW、YUV、RGB 等图像格式的封装方式,同时提供 CRC 校验和 ECC 纠错机制。简单说,CSI-2 是数据的“包装规范”和“运输规则”,确保上层能正确解析图像内容。两者协同工作,D-PHY 提供“路”,CSI-2 制定“行车规则”。
CSI-2工作:
// CSI-2协议层数据包格式
struct csi2_packet {
uint8_t data_type; // 数据类型:0x2B=RAW10, 0x2C=RAW12等
uint16_t word_count; // 数据长度
uint8_t data[0]; // 有效数据
uint16_t checksum; // CRC校验
};
3.5 MIPI的其它硬件层
| 协议名称 | 应用场景 | 关键特性 |
|---|---|---|
| D-PHY | 摄像头(CSI)、显示屏(DSI) | 支持 HS(高速)和 LP(低功耗)模式,最高 1.5 Gbps/通道 |
| C-PHY | 高分辨率显示/摄像头 | 三相编码技术,速率达 6 Gbps/通道,与 D-PHY 引脚兼容 |
| M-PHY | 存储(UFS) | 支持 11.6 Gbps 速率,适用于大容量数据传输 |
| A-PHY | 汽车电子 | 传输距离达 15 米,速率 48 Gbps,满足车载长距离高速需求 |
MIPI CSI-2使用MIPI D-PHY或C-PHY作为物理层,DPHY,CPHY都是近距离传输协议,最多传输20cm。它的最大传输速率取决于物理层和数据通道数量:
- 使用MIPI D-PHY时,每个数据通道的最大速率为2.5 Gbps。常见的配置有1、2或4个数据通道,最大传输速率分别为2.5 Gbps、5 Gbps和10 Gbps。
- 使用MIPI C-PHY时,每个数据通道的最大速率为3.5 Gsps(Giga Symbols per second)。每个符号可以携带2.28比特信息。因此,每个数据通道的最大速率约为8 Gbps。常见配置有1、2或3个数据通道,最大传输速率分别为8 Gbps、16 Gbps和24 Gbps。
每个 M-PHY 速度级别中可以选择两种不同的时钟速率(a 和 b),对应的速度不同。
| M-PHY速度 | 时钟频率 | 比特率 |
|---|---|---|
| Gear 1 | G1a | 1.25 Gbit/s |
| G1b | 1.49 Gbit/s | |
| Gear 2 | G2a | 2.5 Gbit/s |
| G2b | 2.9 Gbit/s | |
| Gear 3 | G3a | 5 Gbit/s |
| G3b | 5.8 Gbit/s |
MIPI CSI-2 A-PHY v1.0将在最远15 m的距离上支持高达16 Gbps的数据速率,其路线图愿景是支持摄像机,显示器和其他用例(例如聚合的多个摄像机或显示链接)达到48 Gbps(高性能:5档速度(2,4,8 和16Gbps),未来48Gbps甚至更高;)及更高进入更高速度的链接。完成后,A-PHY将满足广泛的长距离,高速连接需求。
3.6 MIPI接口引脚定义
在MIPI接口中,具有不同功能的引脚有不同的标签和定义,以下是MIPl接口中常见的引脚定义:
3.6.1 D-PHY接口定义
D-PHY是MIPI总线的物理层,用于在发送和接收设备之间传输数据。D-PHY总共有19根线,其中16根是数据传输线。下面是D-PHY接口中的引脚定义:
CLOCK:时钟信号,用于同步序列化和反序列化的数据
HS-Data0~15:高速数据线,可传输16位高速数据。正常情况下,只使用其中几条高速数据线。
LP-Data0~2:低功耗数据线,可传输1至3位的低速数据。
Lane 0~3:高速和低速数据线的组合。每组包括1条高速数据线和1至了条低速数据线。
ULPS CLK: Ultra Low Power State 时钟信号,用于设备进入低功耗状态
ULPS DATA: Ultra Low Power State 数据线
3.6.2 C-PHY接口定义
与D-PHY不同,C-PHY共有22个引脚,其中4个是时钟引1脚。下面是C-PHY接口中的引脚定义:
CLKIN:输入时钟,用于指定时序。通常采用LVCMOs电平.
CLKOUT: 输出时钟,用于与接收设备对齐数据:
Lane 0+:高速串行数据线
Lane 0-:高速串行数据线
Lane 1+:高速串行数据线
Lane 1-:高速串行数据线
Lane 2+:高速串行数据线
Lane 2-:高速串行数据线
Lane 3+:高速串行数据线
Lane 3-:高速串行数据线
ANA OUTP: 表示输出端为模拟信号
ANA OUTN: 表示输出端为模拟信号
ANA INP: 表示输入端为模拟信号
ANA INN:表示输入端为模拟信号
REG OUT:用于根据硬件内存检查中的读或写信号进行寄存器读取/写入。
REG IN: 用于根据硬件内存检查中的读或写信号进行寄存器读取/写入。
LPDTI:低速数据传输接口
LPDTI 1P5V: 低速数据传输接口1.5V电压级别
LPDTI GND: 地线
ULPMIPI CLK: 用于设备进入Ultra Low Power Mode的时钟信号
ULPMIPI DATA: 用于设备进入Uitra Low Power Mode的数据信号
3.6.3 摄像头典型接口
| Pin | Signal | Description | Pin | Signal | Description | Pin | Signal | Description | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | AGND | Ground | 9 | SDA | SCCB input clock | 17 | MCP | MIPI TX clock data lane positive output | ||
| 2 | AVDD | Power 2V8 | 10 | RES | Reset(active low with internal pull up register) | 18 | MCN | MIPI TX clock data lane negative output | ||
| 3 | AF-GND | Ground | 11 | DGND | Ground | 19 | DGND | Ground | ||
| 4 | AF-VDD | Power 2V8 | 12 | XCLK | System input clock | 20 | MDPO | MIPI TX first data lane positive output | ||
| 5 | STROBE | NC | 13 | DGND | Ground | 21 | MDN0 | MIPI TX first data lane negative output | ||
| 6 | DVDD | Power 1V5 | 14 | MDP1 | MIPI TX second data lane positive output | 22 | DGND | Ground | ||
| 7 | DGND | Ground | 15 | MDN1 | MIPI TX second data lane negative output | 23 | PWDN | Power down(active high with internal pull down register) | ||
| 8 | SCL | SCCB data | 16 | DGND | Ground | 24 | DOVDD | Power 1V8 |
1.电源:AVDD、DVDD、DOVDD、AGND、DGND、AF-VDD、AF-GND
2.I2C:XCLK、SDA、SCL
3.MIPI:MCP、MCN、MDP(0-3)、MDN(0-3)
4.上电时序:PWDN、reset
5.其他:Strobe
MIPI摄像头有三个电源:VDDIO(IO电源),AVDD(模拟电源),DVDD(内核数字电源),不同sensor模组的摄像头供电不同,AVDD有2.8V或3.3V的;DVDD一般使用1.5V或更高,不同厂家的设计不同,1.5V可能由sensor模组提供或外部供给,可以使用外部供电则建议使用外部供,电压需大于内部的DVDD;VDDIO电压应与MIPI信号线的电平一致,若信号线是2.8V电平,则VDDIO也应供2.8V,有些sensor模组也可以不供VDDIO,由内部提供。
3.6.4 摄像头与MIPI接口的连接关系
[Camera Sensor]
│
↓ (串行数据 + 控制信号)
[MIPI D-PHY] ← 物理层:转为高速串行信号
│
↓ (差分串行信号)
[MIPI CSI-2 Host] ← 协议层:解析数据包
│
↓ (YUV/RGB等图像数据)
[ISP/图像处理器]
传输一帧1080p图像的过程:
传感器输出 → D-PHY处理 → CSI-2处理 → 内存
↓ ↓ ↓
RAW数据 串行化 添加包头
30-bit并行 加扰编码 帧控制包
像素时钟 差分输出 格式标识
时钟同步 CRC校验

sensor 将从 lens 上传导过来的光线转换为电信号, 再通过内部的 AD 转换为数字信号。 由于 sensor 的每个 pixel 只能感光 R 光或者 B 光或者 G 光, 因此每个像素此时存贮的是单色的, 我们称之为 RAW DATA 数据。
要想将每个像素的 RAW DATA 数据还原成三基色,就需要 ISP 来处理。 ISP(图像信号处理) 主要完成数字图像的处理工作,把 sensor 采集到的原始数据转换为显示支持 的格式。
3.7 MIPI的CCI接口
MIPI CCI(Camera Control Interface,摄像头控制接口)是MIPI联盟定义的标准接口,主要用于主机系统(如SoC)与摄像头传感器之间的控制通信。
MIPI CSI-2协议栈采用五层架构实现高效图像传输:从顶层的应用层(TX端摄像头与RX端ISP的交互),到像素字节转换层(将10/12bit原始像素打包为8bit字节流),再到低级协议层(构造标准CSI-2数据包),接着是Lane管理层(数据流均衡分配至多通道),最终抵达物理层(MIPI差分信号接口)。
而在这一数据传输主干道之外,CCI(Camera Control Interface) 作为独立的控制通道,构成了系统的"神经中枢"。它基于I2C/SMBus协议,专门负责传感器配置与状态管理,与高速CSI-2数据通道形成"控制-数据"分离的经典架构,既保证了配置灵活性,又避免了控制指令对实时视频流的干扰。
MIPI的CCI接口如下图所示:

- CSI部分:1组mipi差分时钟MCP、MCN,1-4组mipi差分数据信号MDP(0-3)、MDN(0-3)
- CCI部分:1组I2C SDA、SCL
MIPI是靠I2C进行通信,控制摄像头寄存器,从而控制摄像头上电顺序,初始化,重启,等功能。
CCI是一个能够支持400KHz传输速率的全双工主从设备通信控制接口,它能够兼容现有很多处理器的IIC标准接口,因此可以非常方便地实现Soc上CCI Master Module到 CSI-2 TX 端CCI Slave Module的控制。
CCI的核心价值在于解决了摄像头控制的标准化难题。传统I2C控制方案存在厂商私有寄存器、寻址能力有限、多设备协同困难等问题,而MIPI CCI通过三方面创新实现突破:首先定义了统一的寄存器映射标准(如曝光时间、增益、帧率的控制地址);其次扩展10-bit设备寻址能力,突破传统7-bit I2C的设备数量限制;最重要的是引入广播模式(Broadcast),使SoC能同时控制多路摄像头同步工作——这正是手机多摄系统实现无缝变焦、自动驾驶多目协同的关键基础。
在硬件实现上,CCI通过SCL/SDA两线接口连接传感器,典型信号包括XCLK(系统时钟)、SDA(数据线)、SCL(时钟线),配合PWDN(断电控制)和RES(复位信号)完成完整的上电时序管理。
深入到工程实践层面,CCI的驱动开发需要严格遵循时序约束。以知识库中的24-pin摄像头模块为例,上电时必须按特定顺序操作PWDN(power down)和RES(reset)引脚:先释放PWDN(拉低激活),延时100ms待电压稳定,再释放RES(拉高退出复位),最后通过CCI配置寄存器。Linux系统中,这一过程通常通过V4L2框架实现,驱动开发者需编写符合v4l2_subdev_core_ops规范的s_power、s_stream等回调函数。
调试时常见陷阱包括I2C地址冲突(如Sony传感器常用0x20/0x34,可通过OTP修改)和电平不匹配(2.8V传感器连接1.8V SoC需电平转换)。当正确实施时,CCI能实现毫秒级的动态参数调整,例如在隧道场景中0.5秒内完成从日间模式到夜间模式的切换。
MIPI CCI核心作用和特点如下:
3.7.1 核心功能
-
传感器配置
- 通过CCI接口,SoC可以向摄像头传感器发送寄存器配置命令,控制关键参数:
- 曝光时间(Exposure Time)
- 模拟/数字增益(Gain)
- 帧率(Frame Rate)
- 图像格式(RAW8/RAW10/YUV等)
- 全局/卷帘曝光模式切换
- 示例:在光线变暗时,SoC通过CCI动态调整传感器增益和曝光时间以提升画面亮度。
- 通过CCI接口,SoC可以向摄像头传感器发送寄存器配置命令,控制关键参数:
-
状态查询
- 读取传感器实时状态,如温度、当前帧序号、错误标志(过曝/欠曝)等。
-
多摄像头协同
- 在多摄系统(如手机三摄)中,CCI支持广播模式(Broadcast),允许SoC同时向多个传感器发送相同配置(如同步触发帧捕获)。
3.7.2 技术实现
-
协议基础:
CCI基于I2C协议(兼容SMBus),但扩展了MIPI标准化的功能:- 标准化的寄存器地址映射
- 支持10-bit设备寻址(突破传统7-bit I2C限制)
- 定义通用控制命令集(如
STREAM_ON/STREAM_OFF)
-
物理连接:
通常使用两根信号线(与I2C一致):-
SCL(Serial Clock Line):时钟线 -
SDA(Serial Data Line):双向数据线
注:部分设计将CCI与MIPI CSI-2数据通道集成在同一FPC排线上,但电气隔离。
-
速率支持:
标准模式(100 kHz)、快速模式(400 kHz)或高速模式(1 MHz),满足实时控制需求。
3.7.3 为何需要CCI?(与传统I2C的差异)
| 传统I2C控制 | MIPI CCI |
|---|---|
| 厂商私有寄存器定义,无统一标准 | MIPI标准化寄存器地址和命令格式 |
| 仅支持单设备通信 | 支持多设备寻址与广播同步 |
| 无错误恢复机制 | 内置超时重传、NACK错误处理 |
| 与MIPI数据通道物理分离 | 与CSI-2数据通道协同设计,降低布线复杂度 |
3.7.4 典型应用场景
-
智能手机多摄系统
- SoC通过CCI同时配置主摄、超广角、长焦传感器的曝光参数,实现无缝变焦。
-
工业机器视觉
- 在高速检测场景中,通过CCI精确同步传感器帧触发与光源闪烁。
-
自动驾驶摄像头
- 动态调整HDR模式(如应对隧道进出时的强光变化),通过CCI实时重配置传感器。
3.7.5 开发注意事项
-
驱动依赖:
Linux内核中,CCI通常通过i2c-dev驱动实现,传感器驱动需实现v4l2_subdev的core_ops(如s_ctrl、g_ctrl)。 -
时序约束:
传感器在POWER_DOWN状态后,需延迟100~300ms再通过CCI发送配置(避免上电时序冲突)。 -
电气兼容性:
CCI的I2C电平需与SoC匹配(如1.8V/2.8V),否则需电平转换芯片(如TXB0104),需要上拉4.7k电阻。
总结:CCI是MIPI摄像头系统的“控制神经”,负责在应用层(如ISP)和物理传感器之间传递控制指令,确保图像采集的灵活性与实时性。其标准化设计大幅降低了跨平台适配成本——这也是为何现代嵌入式摄像头模块(如OV5640、IMX335)均强制要求CCI接口支持。
3.8 MIPI-CSI线材和接插件种类
MIPI-CSI线缆主要分为三类:柔性扁平电缆(FFC,Flexible Flat Cable) 以0.5mm标准间距、低成本、易加工为特点,适用于≤30cm的板对板短距连接(如开发板摄像头模块),但抗干扰能力较弱;FPC(柔性印刷电路)线缆以聚酰亚胺(PI)为基材,通过精密蚀刻形成导线阵列,轻薄(厚度常<0.3mm)、高柔韧性;极细同轴线束具有精密阻抗控制(85Ω/100Ω)、低串扰、高柔性与小体积优势。
3.8.1 FFC(Flexible Flat Cable),柔性扁平电缆
3.8.1.1 FFC线缆

FFC(扁平柔性电缆)以白色PET聚酯薄膜为绝缘基材(成本约为FPC的1/3),两端配蓝色聚酯支撑胶带增强插拔区域的机械强度与耐用性,FFC是铜箔夹在两层PET薄膜之间,简单压合。其结构简单、柔韧性好、价格低廉,适用于短距离(≤30cm)、低速(<400Mbps)信号传输,典型用于笔记本屏线、低端摄像头模组、LCD背光等成本敏感场景。但受限于PET材料(耐温85–105℃)与单层压合工艺,高速信号下阻抗控制与抗EMI能力较弱,通常仅支持≤2数据通道(1080p及以下视频),不适用于高带宽或严苛环境应用。
FFC弯折更"软糯"(PET更柔软)。
3.8.1.2 FFC连接器种类
FFC连接器的种类按压接方式克分为
- 掀盖式(ZIF Easy-on)
- 后压式(ZIF Back-Flip)
- 抽屉式(ZIF)
- 无盖式(LIF)
1.掀盖式(ZIF Easy-on)

2.后压式(ZIF Back-Flip)

“后压式”对比“掀盖式”的优势是线束向上弯折时不会翘起锁止滑块
3.抽屉式(ZIF)

像抽屉一样将机械滑块拉开,再将滑块推回压住线束
4.无盖式(LIF)

直接将排线插入连接器,内部有弹簧片压住排线
3.8.1.3 FFC连接器实物图

3.8.2 FPC(Flexible Printed Circuit),柔性印刷电路板
3.8.2.1 FPC线缆

铜箔蚀刻在PI基材上,可多层布线、做阻抗控制,光刻蚀刻,类似PCB工艺 。
FPC(柔性印刷电路)以PI聚酰亚胺为基材,最常见为黄色,适用于手机主摄、无人机云台等高可靠性场景。其厚度仅0.1-0.2mm,支持0.3-0.5mm高密度间距,可蚀刻复杂走线并实现100Ω±10%的差分阻抗控制,支持4+ Data Lane(4K/8K视频),通过GND guard ring抑制串扰。相比FFC,FPC信号完整性更优、耐温更高(260℃),但成本较高,适用于对图像质量要求高的高端设备。
FPC弯折有"纸质感"(PI较硬挺) 。
常见误区纠正
❌ 误区:"FPC就是贵一点的FFC"
✅ 正解:两者是不同技术路线:
- FFC 是电缆(Cable),功能单一
- FPC 是电路板(PCB的柔性形态),可实现完整电路功能(如手机摄像头模组中的OIS驱动电路直接做在FPC上)
3.8.2.2 FPC线缆带接插件
FPC线缆的接插件与FFC不同,其接插件连接器是类似板对板BTB(Board To Board),又称为内联座,内联座可以直接焊接在FPC线缆上,间距多为0.4mm、0.35mm和0.3mm。

并且FPC排线上还可焊接一些电容、电阻,甚至是芯片,相交FFC排线,极大拓展了功能。
FPC线缆与PCB类似,也可以是双层板,也可以安装双层的接插件,如下图中,左侧内联座安装在主板 PCB上,是母座;右侧是焊接在FPC排线上,是公座。
BF035-I54B-C08-D,54pin,0.35mm间距

3.8.2.3 FPC线缆接插件型号
FPC线缆接插件型号主要有广濑(HRS)的DF系列、BM系列,松下,IPE-X,Model等。
Molex的505066(左,母头)系列与505070(右,公头),Molex 505066-0622中的06代表引脚数,22代表高度mm

广濑的DF40C-80DP-0.4V


广濑的DF56C-26S-0.3V

3.8.3 极细同轴线束(Micro Coaxial Cable)
极细同轴线束顾名思义,是一种线径非常小(通常在0.2mm~0.5mm之间)的同轴结构传输线缆。与传统同轴线不同,极细同轴线在结构上更紧凑,柔韧性更强。
一根标准的极细同轴线通常由以下几个部分组成:导体芯线、 绝缘层、屏蔽层、护套层。

MIPI-CSI接口常用极细同轴线与摄像头相连接,其中同轴线的屏蔽层与接插件屏蔽层或者GND相连接,在传输高频信号时更加稳定和可靠。

四、RK3588的MIPI数据流架构图

为什么,imx415 —> csi2_dphy0 —> mipi2_csi2 —> rkcif_mipi_lvds2—>rkcif_mipi_lvds2_sditf —>rkisp0_vir2,需要 rkcif_mipi_lvds2—>rkcif_mipi_lvds2_sditf —>rkisp0_vir2,不是直接给ISP就行了吗最后到v4l2?后面这些是干什么用的?
为什么 IMX415 传感器数据需要经过 rkcif_mipi_lvds2 → rkcif_mipi_lvds2_sditf 才能到达 ISP,而不是直接连接?这不是冗余设计,而是 Linux V4L2 多媒体框架的必要分层架构。下面详细解析每个环节的必要性。
4.1 为什么不能直接连接?
直接连接的问题:
- ISP 无法处理原始 MIPI 数据:ISP 需要格式化的视频帧数据
- 缺少错误处理:MIPI 传输错误无法在 ISP 层处理
- 无法支持多流:一个 ISP 需要同时处理多路视频流
- 时序不匹配:传感器输出时序与 ISP 处理时序不一致
核心原则: Linux V4L2 框架采用"模块化"设计,每个组件只负责单一功能,避免单一模块过于复杂。
4.2 各中间节点的必要功能
4.2.1 rkcif_mipi_lvds2:CIF 输入适配层
核心功能:
- 数据格式转换:将 MIPI CSI-2 的原始数据包转换为 CIF 可处理的帧格式
- 时序同步:处理 MIPI 的行/帧同步信号(FS/LS)
- 错误检测:检测并处理 MIPI 传输错误(如 CRC 错误)
- 缓冲管理:管理 DMA 缓冲区,避免数据溢出
// 伪代码:CIF 数据接收流程
static void rkcif_receive_frame(void) {
// 1. 检查 MIPI 传输错误
if (mipi_check_crc_error()) {
handle_mipi_error(); // 在此处处理,而非 ISP 层
return;
}
// 2. 解析数据包
frame = parse_mipi_packets();
// 3. 转换为 CIF 帧格式
cif_frame = convert_to_cif_format(frame);
// 4. 传递给下一阶段
pass_to_sditf(cif_frame);
}
4.2.2 rkcif_mipi_lvds2_sditf:软件数据接口层
核心功能:
- 数据格式标准化:将 CIF 帧转换为 ISP 可处理的标准格式
- 虚拟通道管理:处理 MIPI CSI-2 的虚拟通道(Virtual Channel)数据流
- 帧缓冲管理:管理帧缓冲区的入队/出队
- 帧率控制:确保输出帧率与 ISP 处理能力匹配
关键作用:这是整个数据流的"粘合层",将 CIF 的输出与 ISP 的输入桥接起来,确保数据格式、时序和缓冲区管理正确无误。
4.2.3 为什么需要这些中间层?
| 问题 | 无中间层 | 有中间层 |
|---|---|---|
| MIPI 错误处理 | ISP 无法处理,导致图像损坏 | 在 CIF 层处理,避免影响 ISP |
| 多路数据流 | ISP 需要复杂逻辑处理多流 | 每个 vir 设备处理独立数据流 |
| 时序同步 | 时序不匹配导致丢帧 | 通过 sditf 层精确同步 |
| 格式转换 | ISP 需支持多种原始格式 | 标准化后输入 ISP |
4.3 数据流的实际处理过程
4.3.1 完整数据处理流程

4.3.2 关键处理阶段
-
MIPI 传输阶段:
- 传感器发送原始 MIPI 信号
- D-PHY 转换为电平信号
- CSI-2 解析数据包结构
-
CIF 接收阶段:
- 将 MIPI 数据包转换为帧结构
- 检测传输错误
- 管理帧缓冲区
-
SDITF 标准化阶段:
- 将帧转换为 ISP 期望的格式
- 处理虚拟通道数据流
- 确保帧率稳定
-
ISP 处理阶段:
- 仅接收标准化后的视频帧
- 无需关心底层传输细节
- 专注于图像处理
4.4 中间层带来的实际优势
4.4.1 错误隔离

优势:
- 传输错误在 CIF 层处理,不影响 ISP 正常工作
- 避免因 MIPI 传输问题导致整个图像处理链崩溃
4.4.2 多流支持
// 伪代码:多流处理
void rkisp_process_stream(int stream_id) {
if (stream_id == 0) {
// 处理主流
process_high_quality_stream();
} else if (stream_id == 1) {
// 处理低延迟流
process_low_latency_stream();
}
// ...
}
优势:
- 通过
rkisp0_vir0、rkisp0_vir1等多个 vir 设备,实现:- 主流(高质量图像)
- 低延迟流(用于 AI 处理)
- 元数据流(嵌入式信息)
4.4.3 灵活的格式转换
| 传感器输出 | CIF 输入 | SDITF 输出 | ISP 输入 |
|---|---|---|---|
| RAW12 | RAW12 | YUV422 | YUV422 |
| RAW10 | RAW10 | NV12 | NV12 |
| YUV422 | YUV422 | NV12 | NV12 |
优势:
- 支持多种传感器格式转换为 ISP 期望的格式
- 无需为每种传感器单独编写 ISP 驱动
4.5 对比其他平台的类似设计
4.5.1 NVIDIA Jetson Orin

-
CSI Bridge:相当于 Rockchip 的
rkcif_mipi_lvdsX_sditf - 功能:将 CSI Host 输出转换为 ISP 可处理的格式
4.5.2 Qualcomm QCS610

-
CSI Parser:相当于 Rockchip 的
rkcif_mipi_lvdsX_sditf - 功能:解析 CSI 数据并转换为 ISP 格式
行业共识: 所有现代 SoC 的视频处理链都采用类似的分层设计。
五、经典CMOS的MIPI接口——SONY IMX415
在网站IMX415 pdf查询SONY的IMX415 CMOS芯片的dataset。但是如果你是买的IMX415摄像头模块,摄像头厂家有可能会修改内部参数,比如I2C地址,最好也和摄像头厂家确认。
驱动MIPI摄像头重要的点如下。
5.1 供电电压匹配
| 电源域 | 电压要求 | 典型电流 | 设计要点 |
|---|---|---|---|
| AVDD | 2.8V ±5% | 250 mA | 模拟核心供电,需独立LDO + π型滤波 |
| DVDD | 1.1V ±3% | 350 mA | 数字核心供电,对纹波要求 <10 mV |
| DOVDD | 1.8V / 2.8V 可选 | 80 mA | I/O接口电压,必须与SoC的MIPI I/O电平匹配 |
| AFVDD | 2.8V ±5% | 100 mA | 自动对焦模块供电(若传感器支持AF功能) |
5.2 MIPI的带宽匹配
MIPI CSI-2接口:带宽与配置的平衡术
物理层配置:
4-lane模式:单lane速率2.5Gbps,总带宽10Gbps(支持4K@60fps RAW12)
2-lane模式:单lane速率4.5Gbps,总带宽9Gbps(需SoC支持高摆幅模式)
时钟要求:外部参考时钟24/27/74.25MHz(74.25MHz为4K必备?)
// 典型数据包结构(4-lane模式)
[Packet Header: 4 bytes] // 数据类型+虚拟通道
[Frame Start: 0x01] // 帧起始包
[Line Start: 0x02] // 行起始包
[图像数据: 3840×16 bits] // RAW12打包为16-bit
[Line End: 0x03] // 行结束包
[Frame End: 0x04] // 帧结束包
[CRC: 2 bytes] // 包校验
关键选型公式:
最小带宽 = 水平像素 × 垂直像素 × 位深度(raw12) × 帧率 × 1.35(消隐系数)
4K@30fps RAW12 = 3840×2160×12×30×1.35 ≈ 3.8 Gbps
| 分辨率 | 帧率 | 输出格式 | 带宽需求(考虑消隐系数1.35) | 典型应用场景 |
|---|---|---|---|---|
| 3840×2160 | 30 fps | RAW12 | 5.0 Gbps | 安防监控、无人机 |
| 1920×1080 | 60 fps | RAW10 | 1.7 Gbps | 工业检测、机器人 |
| 1280×720 | 120 fps | RAW8 | 1.6 Gbps | 高速运动捕捉 |
| 3840×2160 | 15 fps | YUV422(8bit编码,16位) | 2.6 Gbps | 低功耗IoT设备 |
隐藏技巧:通过窗口裁剪(Windowing)功能,可从Sensor中心区域输出1080p@120fps,满足高速视觉需求而不更换硬件。
5.3 上/下电时序
根据提供的IMX415数据手册PDF内容,上电顺序(Power-on sequence)在文档的第83-84页详细描述。具体位于"Power-on and Power-off Sequence"章节,该章节明确说明了正确的上电时序要求:

- 电源上电顺序必须为:1.1V电源(DVDD) → 1.8V电源(OVDD) → 2.9V电源(AVDD)
- 所有电源必须在200ms内完成上升
- 电源稳定后,XCLR引脚需保持低电平至少500ns
- 将XCLR设置为高电平后,才能输入主时钟INCK
- 系统复位完成后,才能进行寄存器通信配置
文档还特别强调了上电时的转换速率限制(Slew Rate Limitation),要求所有电源的上升斜率不超过25mV/μs,这部分在第84页有详细图表说明。
此外,在第86-87页的"Sensor Setting Flow"章节中,还提供了传感器在Slave模式和Master模式下的完整上电配置流程图,进一步补充了上电后到正常工作的完整时序要求。

- 内部电路依赖关系
数字核心(1.1V DVDD)必须首先上电,为内部控制逻辑提供基础
I/O电路(1.8V OVDD)其次上电,负责接口信号电平转换
模拟核心(2.9V AVDD)最后上电,防止在控制电路未就绪时激活敏感模拟电路 - 防止闩锁效应(Latch-up)
无序上电可能在CMOS结构中形成寄生SCR结构
电流突然增大会导致热损坏,严格时序可避免这种情况
实测数据:不遵循时序可能使故障率增加100倍 - 确保寄存器状态确定性
XCLR信号(系统清除)确保所有寄存器重置到已知状态
没有正确的清除序列,寄存器值可能随机,导致传感器行为不可预测
数据手册明确说明:"The register values are undefined immediately after power-on, so the system must be cleared" - 保护电平移位电路
不同电压域之间的电平移位电路对上电顺序极其敏感
若OVDD(1.8V)在DVDD(1.1V)之前上电,可能通过保护二极管向未供电电路注入电流
这种"back-powering"现象会导致闩锁或永久性损坏 - 时钟同步与PLL稳定
INCK(主时钟)必须在XCLR置高后输入,确保内部PLL能正确锁相
时钟在电源不稳定时输入会导致PLL失锁,影响MIPI物理层稳定性
4K视频输出要求极低抖动,错误的时钟初始化会引入不可恢复的时序误差 - 模拟电路校准
24ms的内部稳压器稳定时间允许内部基准电压和电流源稳定
8帧的图像稳定等待确保黑电平校准和温度补偿算法完成
跳过这些等待周期会导致图像质量问题:固定模式噪声、黑电平偏移、色彩失真
5.3 IMX415传感器的待机与关电流程完整指南
5.3.1 待机模式(Standby Mode)操作流程
1. 待机模式原理
当向待机控制寄存器STANDBY写入"1"时,IMX415传感器停止内部操作并进入低功耗状态。此时传感器功耗显著降低(DVDD_STB最大仅15.1mA),但串行通信模块仍保持工作状态,允许重新唤醒。
2. 待机模式寄存器配置
// 进入待机模式
i2c_write_reg(0x3000, 0x01); // STANDBY=1
// 退出待机模式
i2c_write_reg(0x3000, 0x00); // STANDBY=0
3. 待机模式关键时序

关键参数:
- 内部稳压器稳定时间:≥24ms
- 图像稳定帧数:8帧
- 待机电流:AVDD_STB ≤ 0.2mA, DVDD_STB ≤ 15.1mA
4. 待机模式特性
- 寄存器保持:大部分寄存器值在待机期间保持不变,但地址寄存器会被覆盖
- 通信能力:I²C通信在待机模式下仍然有效,无需重新初始化
- 唤醒延迟:从退出待机到稳定图像输出约需24ms+8帧时间
- 功率节省:待机模式下总功耗降幅超过80%
5.3.2 关电流程(Power-off Sequence)严格规范
1. 关电顺序
关电过程必须严格遵守以下顺序,否则可能导致传感器闩锁效应或永久性损坏:
1. 首先关闭2.9V模拟电源(AVDD)
2. 其次关闭1.8V接口电源(OVDD)
3. 最后关闭1.1V数字电源(DVDD)
2. 信号引脚预处理
在关闭OVDD(1.8V)电源前,必须将所有数字输入引脚强制设置为0V:
- INCK (主时钟输入)
- SDA, SCL (I²C控制接口)
- XCLR (系统清除信号)
- XVS, XHS (垂直/水平同步信号)
- SLAMODE0, SLAMODE1 (从设备地址选择)
3. 详细关电时序

4. 关电时序参数
| 参数 | 符号 | 最小值 | 最大值 | 单位 | 说明 |
|---|---|---|---|---|---|
| 2.9V→1.8V电源关闭间隔 | T5 | 0 | - | ns | 无最大限制 |
| 1.8V→1.1V电源关闭间隔 | T6 | 0 | - | ns | 无最大限制 |
| 总关电时间 | T7 | - | 200 | ms | 所有电源必须在此时间内完成关闭 |
5. 电源斜率限制
与上电过程类似,关电时也必须控制电源下降斜率:
- 所有电源的下降斜率 ≤ 25mV/μs
- 这一要求确保电源平稳下降,防止电压过冲或振荡
5.3.4 常见错误与解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 退出待机后无图像 | 未等待24ms稳定时间 | 严格按照时序等待内部稳压器稳定 |
| 关电后无法重新启动 | 未将输入引脚设为0V | 实施关电前的信号引脚预处理 |
| 传感器发热损坏 | 电源斜率过快 | 增加RC缓冲电路控制电源斜率 |
| 待机电流过大 | 未进入深度待机 | 验证STANDBY寄存器设置值是否正确 |
| 图像有固定模式噪声 | 退出待机后未等待8帧稳定 | 实现帧计数器等待机制 |
5.4 通过I²C/CCI控制摄像头输出画面的完整流程
在PDF的87-88页中详细介绍了传感器的操作流程
通过I²C(在MIPI规范中称为CCI - Camera Control Interface)控制摄像头传感器(如Sony IMX415)输出画面,需要遵循精确的初始化和配置流程。以下是基于IMX415传感器的完整控制流程:
5.4.1 上电与初始化阶段
1. 电源上电时序(最关键步骤)
// 严格按照数据手册要求执行上电序列
power_on_sequence() {
// 1. 依次上电(时序间隔≥1ms)
regulator_enable(DVDD); // 1.1V数字核心 (Pin 6)
mdelay(1);
regulator_enable(OVDD); // 1.8V I/O接口 (Pin 24)
mdelay(1);
regulator_enable(AVDD); // 2.8V模拟核心 (Pin 2)
// 2. 电源完全稳定后(总上电时间≤200ms)
mdelay(3);
// 3. 复位控制
gpio_set_value(PWDN, 0); // 退出掉电模式 (Pin 23, active high)
mdelay(10);
gpio_set_value(RES, 1); // 退出复位 (Pin 10, active low)
mdelay(20);
}
重要提示:电源上升斜率必须限制在≤25mV/μs,否则可能导致传感器闩锁效应损坏
2. 时钟初始化
// 设置系统时钟
set_clock(INCK, 24); // 支持24/27/37.125/72/74.25MHz
// 根据分辨率/帧率需求选择合适时钟
5.4.2 I²C/CCI通信配置
1. I²C基础参数设置
// I²C通信初始化
i2c_init() {
// 1. I²C地址选择(IMX415支持多地址)
gpio_set_value(SLAMODE0, 0); // Pin配置
gpio_set_value(SLAMODE1, 0); // 使用0x1A (7-bit)地址
// 2. 通信速率
i2c_set_speed(400); // 400kHz Fast Mode (最高支持1MHz)
// 3. 上拉电阻配置
set_pullup(SDA, SCL, 4700); // 4.7kΩ上拉电阻(1.8V系统)
}
2. 寄存器写入函数
// 单次寄存器写入
i2c_write_reg(uint16_t reg_addr, uint8_t value) {
/* I²C写入流程:
1. 发送START条件
2. 发送SLAVE地址+写标志(0x34)
3. 发送寄存器高8位地址
4. 发送寄存器低8位地址
5. 发送数据值
6. 发送STOP条件
*/
}
// 批量寄存器写入
i2c_write_regs(reg_config_t *configs, int count) {
for(i=0; i<count; i++) {
i2c_write_reg(configs[i].addr, configs[i].value);
/* 对"S"反射类型的寄存器需在Standby模式下设置 */
}
}
3.I²C/CCI控制接口:配置的生命线
地址配置:默认0x1A(7-bit),支持通过OTP修改
速度等级:400kHz(Fast Mode),1MHz(High Speed)需硬件支持
关键寄存器:
0x3000: 模式选择(0= streaming, 1= standby)
0x3002: 帧率控制(分频系数)
0x3008: 曝光时间高位
0x3009: 曝光时间低位
广播模式:通过0x3000[7]位启用,支持多传感器同步
调试技巧:当I²C通信失败时,优先检查SCL/SDA上拉电阻(推荐4.7kΩ@1.8V),而非怀疑传感器损坏。
时钟频率:4K模式必须使用74.25MHz,27MHz仅支持1080p
Lane极性:某些PCB设计需反转lane极性(通过mipi_csi2控制器寄存器)
HS-SETTLE值:计算公式HS_SETTLE = (T_lpx + T_hs_prepare) × 1.2,典型值15~20
5.4.3 传感器配置流程
1. 基础模式配置
// 配置传感器工作模式
configure_sensor() {
// 1. 进入Standby模式进行配置
i2c_write_reg(0x3000, 0x01); // STANDBY=1
// 2. 设置工作模式
i2c_write_reg(0x301C, 0x00); // WNMODE=0 (全像素模式)
i2c_write_reg(0x3022, 0x00); // ADDMODE=0 (全像素模式)
// 3. 设置数据格式
i2c_write_reg(0x3031, 0x01); // ADBIT=1 (12-bit ADC)
i2c_write_reg(0x3032, 0x01); // MDBIT=1 (12-bit输出)
// 4. 设置MIPI接口
i2c_write_reg(0x4001, 0x03); // LANEMODE=3 (4-lane模式)
i2c_write_reg(0x3033, 0x02); // SYS_MODE=2 (2079 Mbps/lane)
// 5. 设置时钟参数
configure_clock_registers(); // 根据INCK频率设置BCWAIT_TIME等
// 6. 退出Standby模式
i2c_write_reg(0x3000, 0x00); // STANDBY=0
mdelay(24); // 等待内部稳压器稳定
}
2. 关键时序参数配置
根据数据手册,需要配置以下关键参数:
- 水平/垂直方向像素数(VMAX/HMAX)
- 帧率控制参数
- MIPI D-PHY时序参数(THS_SETTLE, TCLK_PREPARE等)
- 黑电平偏移(BLKLEVEL)
setup_timing_parameters() {
// 4K@30fps 4-lane配置示例
i2c_write_reg(0x3024, 0xCA); // VMAX低8位 (2250行)
i2c_write_reg(0x3025, 0x08); // VMAX高8位
i2c_write_reg(0x3028, 0x4C); // HMAX低8位 (1100时钟)
i2c_write_reg(0x3029, 0x04); // HMAX高8位
// 配置D-PHY时序 (2079Mbps/lane @74.25MHz)
i2c_write_reg(0x4018, 0xB7); // TCLK_POST
i2c_write_reg(0x4019, 0x00);
i2c_write_reg(0x401A, 0x67); // TCLK_PREPARE
// ...其他时序参数
}
5.4.4 启动与图像数据获取
1. 启动传感器
start_image_capture() {
// 1. 设置曝光时间
set_integration_time(0x66); // SHR0=102 (约1/30s)
// 2. 设置增益
set_gain(0x00); // 0dB增益
// 3. 启动传感器
if(master_mode) {
i2c_write_reg(0x3002, 0x00); // XMSTA=0 (启动Master模式)
}
// 4. 等待图像稳定
mdelay(150); // 约8帧稳定时间
}
2. 数据流处理
1.CSI-2数据接收:
CSI接收控制器开始捕获数据
解析数据包(长包、短包、同步包)
嵌入式数据行解析(包含传感器内部寄存器状态)
2.帧同步处理:
// 数据接收流程
process_mipi_data() {
/* 1. CSI-2接收控制器配置
2. 设置数据包解析器
3. 配置DMA通道
4. 启用帧中断
*/
while(1) {
wait_for_frame_interrupt(); // 等待帧完成中断
process_frame_data(); // 处理RAW12图像数据
display_or_encode_frame(); // 显示或编码输出
}
}
5.5 图像数据传输机制
5.5.1 传输协议与模式
1.MIPI CSI-2协议
IMX415使用MIPI CSI-2协议,数据传输结构如下:
- 帧开始:FS (Frame Start) 同步码
- 嵌入式数据:包含传感器内部状态、曝光参数等
- 有效像素数据:RAW10/RAW12格式的图像数据
- 帧结束:FE (Frame End) 同步码
[FS] → [嵌入式数据] → [垂直光学黑区] → [有效像素数据] → [FE] → [垂直消隐] → [下一帧FS]
2. 传输模式
根据IMX415数据手册,支持多种传输模式:
- 全像素模式(All-pixel scan):3840×2160@30fps (4K)
- 水平/垂直2/2线合并模式(H/V binning):1920×1080@60fps
- 窗口裁剪模式(Window cropping):从传感器任意位置裁剪输出
5.5.2 持续传输图像
设置完成后,在正常工作模式下摄像头会持续传输图像帧,但有以下关键特性:
- 帧结构固定:每帧包含同步信号、嵌入式数据和像素数据
- 帧率可配置:根据寄存器设置,可以是30fps、60fps等
-
传输控制:
- 通过STANDBY寄存器可临时停止传输(待机模式)
- 通过XVS/XHS信号(从模式)或内部计数器(主模式)控制帧同步
- 不会无条件持续传输,而是遵循严格的帧结构
5.6 动态参数调整
I2C/CCI接口在摄像头工作中始终至关重要,不仅用于初始配置,还用于运行时控制:
1. 初始配置阶段
- 设置工作模式(全像素/裁剪/合并)
- 配置分辨率、帧率
- 设置数据格式(RAW10/RAW12)
- 配置MIPI通道数(2-lane/4-lane)
- 设置时钟参数(BCWAIT_TIME, CPWAIT_TIME等)
2. 运行时控制
- 曝光控制:通过SHR0[19:0]寄存器动态调整积分时间
- 增益调整:通过GAIN_PCG_0[8:0]寄存器设置0-72dB增益
- 黑电平调整:通过BLKLEVEL[9:0]寄存器校准黑电平
-
特殊功能:
- HDR模式切换(多帧曝光合成)
- 电子防抖(窗口位置动态调整)
- 水平/垂直翻转(HREVERSE/VREVERSE)
在I2C控制摄像头停止传输前,CMOS会一直按照设置的参数输出数据,其中输出的过程中,也可以动态设置参数。
5.6.1 实时调整曝光与增益
dynamic_adjustment() {
// 1. 通过寄存器控制曝光时间
i2c_write_reg(0x3050, 0xXX); // SHR0低8位
i2c_write_reg(0x3051, 0xXX); // SHR0中8位
i2c_write_reg(0x3052, 0xXX); // SHR0高4位
// 2. 通过寄存器控制增益
i2c_write_reg(0x3090, 0xXX); // GAIN_PCG_0低8位
i2c_write_reg(0x3091, 0xXX); // GAIN_PCG_0高1位
/* 注意:增益设置在下一帧生效,无延迟 */
}
动态设置时,寄存器的生效机制不一样,有三种生效机制。
寄存器反射时机:
立即反射(I):写入后立即生效(如REGHOLD)
帧反射(V):在"帧反射时序"点生效(如VMAX/HMAX)
待机反射(S):必须在STANDBY模式下设置(如SYS_MODE)
模式转换规则:
水平/垂直方向翻转:无需进入待机,但会丢失一帧
全像素 ↔ 窗口裁剪模式:无需进入待机,但会丢失一帧
改变INCK频率或"帧反射"寄存器:必须进入待机模式
5.6.2 寄存器保持功能(REGHOLD)
// 原子性更新多个寄存器
atomic_register_update() {
i2c_write_reg(0x3001, 0x01); // REGHOLD=1 (暂停寄存器更新)
// 批量写入多个寄存器
i2c_write_reg(0x3090, 0x32); // 增益
i2c_write_reg(0x3050, 0x66); // 曝光
i2c_write_reg(0x3030, 0x03); // 翻转模式
i2c_write_reg(0x3001, 0x00); // REGHOLD=0 (一次性应用所有设置)
// 所有寄存器在下一帧同步更新
}
5.7 常见调试技巧
1. 通信验证
// 验证I²C通信
verify_i2c_communication() {
uint8_t id_high, id_low;
i2c_read_reg(0x302A, &id_high); // 芯片ID高位
i2c_read_reg(0x302B, &id_low); // 芯片ID低位
if((id_high == 0x15) && (id_low == 0x01)) {
printk("IMX415 sensor detected\n");
} else {
printk("Sensor ID mismatch: 0x%02X%02X\n", id_high, id_low);
}
}
2. 故障排除
- 黑屏问题:检查D-PHY时序参数(THS_SETTLE值过小会导致数据丢失)
- 条纹问题:检查各lane间skew,启用deskew功能
- 通信失败:确认I²C上拉电阻和电平匹配(1.8V传感器连接3.3V主控需电平转换)
- 图像噪声:检查电源纹波(DVDD纹波需<10mV)
5.8 完整初始化流程

关键提示:IMX415传感器在每次上电后,必须通过I²C重新配置寄存器,因为其内部寄存器在断电后会复位。即使使用相同的硬件设计,也必须完整执行初始化流程才能获得稳定图像输出。在量产设计中,推荐将配置参数存储在EEPROM或Flash中,以适应不同镜头和应用场景。
此流程不仅适用于IMX415,也适用于大多数MIPI CSI-2接口的CMOS图像传感器,但具体寄存器地址和参数值需要根据各传感器的数据手册调整。
六、DTS、IIC、V4L2
九、SOC的MIPI接口与协议
MIPI摄像头与SoC的适配涉及物理层、协议层、软件层等多个维度,需要系统性思考。
要判断一块开发板(或SoC)是否支持某个MIPI相机(如IMX415),需从硬件接口、电源设计、软件驱动三个维度系统性验证。以下是具体判断步骤:
一、硬件接口匹配(物理层)
1. MIPI CSI-2 接口数量与 Lane 配置
- IMX415 要求:支持 2-lane 或 4-lane MIPI CSI-2 接口(D-PHY)
-
检查开发板:
- 查阅原理图,确认是否有 MIPI CSI 接口引出(通常为 FPC/FFC 连接器)
- 确认 lane 数量(至少2条数据线 + 1对时钟线)
- 示例信号:
- 时钟对:
MCP/MCN(或CLKP/CLKN) - 数据对:
MDP0/MDN0,MDP1/MDN1(2-lane)或再加MDP2/MDN2,MDP3/MDN3(4-lane)
- 时钟对:
2. I²C/CCI 控制接口
-
IMX415 要求:通过 I²C(即 CCI)配置寄存器(地址通常为
0x1A或0x34) -
检查开发板:
- 是否将 I²C 总线连接到摄像头接口(通常为
SCL/SDA引脚) - 是否有上拉电阻(4.7kΩ @ 1.8V)
- 是否将 I²C 总线连接到摄像头接口(通常为
📌 注意:部分开发板将 I²C 与 MIPI 排线集成,需查 FPC 定义
二、电源设计匹配(电气层)
根据 IMX415 手册(imx415.pdf),需提供三路独立电源:
| 电源域 | 电压要求 | 典型电流 | 开发板需满足 |
|---|---|---|---|
| AVDD | 2.9V ±5% | 128mA | 有 2.9V LDO,纹波 < 50mV |
| DVDD | 1.1V ±3% | 187mA | 有 1.1V 电源,纹波 < 10mV |
| OVDD | 1.8V ±5% | 3mA | 有 1.8V 电源,与 SoC I/O 电平匹配 |
检查方法:
- 查看原理图:确认摄像头接口附近是否有这三路电源
-
测量实际电压:用万用表测量 FPC 座对应引脚(参考 Pin 表):
- Pin 2 → AVDD (2.9V)
- Pin 6 → DVDD (1.1V)
- Pin 24 → DOVDD (1.8V)
三、软件驱动支持(协议层)
即使硬件匹配,还需 SoC 软件栈支持:
1. Linux 内核是否包含 IMX415 驱动
- 检查内核源码:
drivers/media/i2c/imx415.c - 支持的 SoC 平台(截至 Linux 5.10+):
- Rockchip(RK3588, RV1126)
- NXP i.MX8MP
- NVIDIA Jetson Orin
- 不支持:树莓派(需第三方驱动)
2. 设备树(DTS)配置
需在 DTS 中声明:
&i2c5 {
imx415: camera@1a {
compatible = "sony,imx415";
reg = <0x1a>;
pinctrl-names = "default";
// 电源、GPIO、MIPI lane 配置...
};
};
3. ISP 与格式支持
- IMX415 输出 RAW12 格式
- SoC 的 ISP 必须支持 RAW12 输入(如 RK3588 的 RKISP3 支持,而低端 SoC 可能只支持 RAW10)
四、快速验证方法(实操)
方法 1:查官方文档
- 搜索 “开发板型号 + IMX415 支持”
- 例:
"RV1126 EVB IMX415"→ 官方 SDK 是否提供示例
方法 2:看摄像头接口定义
对比开发板 FPC 座与 IMX415 Pin 表:
| IMX415 Pin | Signal | 开发板 FPC 是否有对应信号? |
|---|---|---|
| 14–21 | MIPI 差分对 | 必须有 MCP/MCN + ≥2 对 MDP/MDN |
| 8–9 | SCL/SDA | 必须有 I²C |
| 2,6,24 | AVDD/DVDD/DOVDD | 必须有三路电源 |
| 10,23 | RES/PWDN | 最好有,否则需飞线 |
方法 3:上电测试
- 连接摄像头
- 上电后执行:
若返回i2cdetect -y 5 # 扫描 I²C 总线(假设总线5)1a或34,说明通信正常 → 硬件基本匹配
总结:三步判断法
- 硬件:开发板是否有 ≥2-lane MIPI CSI + I²C + 三路电源?
- 电气:AVDD=2.9V, DVDD=1.1V, OVDD=1.8V 是否精确提供?
- 软件:SoC 是否有 IMX415 驱动 + RAW12 ISP 支持?
✅ 三者都满足 → 可直接使用
⚠️ 任一不满足 → 需硬件改造或更换平台
SoC MIPI接口评估(硬件兼容性),MIPI数据进来后,还需要ISP将RAW数据类型转换为RGB或者YUV类型的图像数据。
首先检查SoC是否具备足够的MIPI接口资源、ISP处理能力与目标摄像头匹配。以下是常见SoC平台的MIPI能力对比:
| SoC平台 | MIPI CSI-2类型 | 最大通道数 | 最大速率/lane | 支持摄像头数量 | 适配4K@30fps | ISP处理像素能力 |
|---|---|---|---|---|---|---|
| RK3588 | D-PHY v1.2 | 4×4-lane | 2.5 Gbps | 4路 | ✓ (4路) | 8K@30fps / 4路并行 |
| RV1126 | D-PHY v1.2 | 2×2-lane | 1.5 Gbps | 2路 | ✓ (单路) | 4K@30fps / 单路 |
| Jetson Orin | D-PHY / C-PHY | 4×4-lane | 3.0 Gbps | 8路 | ✓ (8路) | 8K@30fps / 8路并行 + AI增强 |
| 树莓派4B | D-PHY | 1×2-lane | 1.2 Gbps | 1路 | ✗ (仅1080p) | 无硬件ISP,仅GPU基础处理 |
| i.MX8MP | D-PHY v1.2 | 2×4-lane | 2.0 Gbps | 2路 | ✓ (2路) | 4K@30fps / 2路并行 |
四、实际配置示例
4.1 设备树(DTS)配置
// 配置 D-PHY 0 为 MIPI CSI 模式
&csi_dphy0 {
status = "okay";
rockchip,protocol = "mipi-csi"; // 关键!指定协议
};
// 配置 D-PHY 1 为 LVDS 模式
&csi_dphy1 {
status = "okay";
rockchip,protocol = "lvds";
// LVDS 特有参数
lvds,data-mapping = "jeida-18"; // JEIDA 标准
lvds,bits-per-sample = <10>;
};
六、常见错误配置示例
错误 1:DTS 声明超过硬件限制
// 错误!RK3588 最多只有 4 个 CSI Host
&csi_host4 { // 不存在 CSI_HOST4!
status = "okay";
// ...
};
-
后果:设备无法 probe,dmesg 报错
No such device
错误 2:模式配置冲突
// 错误!不能同时配置 4-lane 和 2-lane 模式
&csi_dphy0 {
rockchip,dual-mode = <1>; // 启用 2+2 拆分
};
&csi_host0 {
data-lanes = <1 2 3 4>; // 却声明 4-lane!
};
- 后果:信号解析错误,图像出现严重条纹
七、工程实践建议
7.1 设计阶段
- 明确需求:确定需要多少路相机、分辨率、帧率
- 计算带宽:确保总带宽 ≤ 20 Gbps(RK3588 总 MIPI 带宽)
-
选择模式:
- ≤2 路 4K → 选 4-lane × 2
- ≥3 路 1080p → 选 2-lane × 4
总结
- CSI Host 数量是硬件固有的,RK3588 最多支持 4 个
- D-PHY 与 CSI Host 是 1:N 映射关系(1 D-PHY → 1 或 2 个 CSI Host)
-
配置模式决定实际可用的 CSI Host 数量:
- 4-lane × 2 模式 → 2 个 CSI Host
- 2-lane × 4 模式 → 4 个 CSI Host
- 软件无法突破硬件限制,DTS 和驱动必须与硬件配置严格匹配

以3588,RV1126,RDK X5,S100,树莓派、Jetson ORIN为例。支持mipi相机的列表。
DTS设备树
ISP
MIPI接口
SOC的PHY类型和数目
PCB的供电设计
AI如何拿到数据
RK3588 MIPI相机开发实战:从DTS配置到图像显示
DTS设备树
时序参数配置要点
设备树(DTS)示例:
&i2c5 {
clock-frequency = <400000>;
imx415: camera-sensor@1a {
compatible = "sony,imx415";
reg = <0x1a>;
pinctrl-names = "default";
pinctrl-0 = <&cam_pins>;
// 电源控制
avdd-supply = <&vcc_2v8_cam>;
dvdd-supply = <&vcc_1v1_cam>;
iovdd-supply = <&vcc_1v8_cam>;
// GPIO控制
pwdn-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; // PWDN
reset-gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>; // RESET
// MIPI CSI-2配置
clocks = <&clks IMX8MM_CLK_CSI1_ROOT>;
clock-names = "xclk";
assigned-clocks = <&clks IMX8MM_CLK_CSI1_ROOT>;
assigned-clock-rates = <74250000>; // 74.25MHz for 4K
port {
sensor_out: endpoint {
remote-endpoint = <&csi1_ep>;
data-lanes = <1 2 3 4>; // 4-lane配置
clock-lanes = <0>;
link-frequencies = /bits/ 64 <742500000>; // 742.5Mbps/lane
};
};
};
};
如何写DTS和调用ISP,最后出图ROS。
mipi接口介绍,
厂家支持的MIPI相机驱动。
CMOS/相机的MIPI接口介绍
CMOS选型,sony等
选型网站。
查看厂家支持的MIPI相机驱动。
MIPI-DPHY
CSI-2
协议
ISP
SOC