1. 课程导论与硬件基础:瑞芯微平台Camera子系统概述
各位同学,欢迎来到《瑞芯微Camera Sensor驱动与3A算法协同调优》的第一章。
做嵌入式图像这行,尤其是跟瑞芯微平台打交道,你首先得搞清楚一件事:Camera子系统到底长什么样?它怎么跟外界通信的?
我刚开始接触RK平台时,也踩过不少坑。比如MIPI的D-PHY电平没配对,导致图像全是条纹。后来才明白,硬件基础不牢,后面调3A算法就是空中楼阁。
这一章,我们就从硬件层面把Camera子系统拆开看看。
1.1 瑞芯微Camera子系统整体架构
先看一张整体框图,我习惯把Camera子系统分成三层:
核心分层:
- 物理层: Sensor、镜头、补光灯、电源管理
- 接口层: MIPI CSI / DVP 物理接口、I2C/SPI控制总线
- 处理层: ISP(图像信号处理器)、VIP(视频输入处理器)、DDR
说白了,Sensor拍到的原始数据,通过MIPI或DVP传给ISP,ISP做完坏点校正、去噪、白平衡等处理,再送到编码器或显示设备。而I2C/SPI总线,就是CPU用来控制Sensor的“手”——设置曝光、增益、帧率,全靠它。
1.2 Sensor硬件接口:MIPI CSI 与 DVP
目前主流的Sensor接口就两种:MIPI CSI(Camera Serial Interface)和DVP(Digital Video Port)。
MIPI是差分串行接口,速度快、抗干扰强,适合高分辨率高帧率场景。DVP是并行接口,老一些,但调试起来直观。
| 特性 | MIPI CSI (D-PHY) | DVP |
|---|---|---|
| 信号类型 | 差分对(CLK+/-,DATA+/-) | 并行数据线 + 同步信号 |
| 最大速率 | 单Lane可达2.5Gbps | 一般不超过100MHz |
| 抗干扰 | 强(共模抑制) | 弱(易受串扰) |
| 线数 | 1~4 Lane + 时钟 | 10~12根(数据+同步) |
| 适用场景 | 高清、高速、长距离 | 低分辨率、低成本 |
我的经验: 调试MIPI时,一定要先确认D-PHY的电压域。RK平台的MIPI RX通常支持1.2V或1.8V,如果Sensor输出1.8V而RK侧配成1.2V,图像会直接黑屏。我曾经因为这个排查了整整两天,最后发现是原理图上的电平标错了。
1.3 电气特性与信号完整性
嗯,这里要注意。MIPI是高速信号,电气特性非常敏感。
几个关键参数:
- 差分阻抗: 100Ω ±10%(PCB走线必须严格匹配)
- 共模电压: 200mV(D-PHY v1.2)
- 摆幅: 200~400mV(差分)
- 上升时间: 150ps左右
你想想看,如果PCB上MIPI走线长了5mm,或者打了两个过孔,信号质量可能就崩了。我建议在调试阶段,先用示波器测一下MIPI眼图。眼图清晰、开口大,说明硬件没问题;如果眼图闭合,先查PCB走线,再查电源纹波。
⚠️ 避坑指南: 我曾经在一个项目里,Sensor和SoC距离超过20cm,用了FPC排线连接。结果MIPI信号衰减严重,图像全是噪点。后来加了retimer芯片才解决。所以,MIPI走线尽量短,超过15cm就要考虑加驱动芯片。
1.4 I2C/SPI控制总线详解
控制总线是CPU和Sensor沟通的桥梁。Sensor的寄存器配置、曝光、增益、白平衡参数,全通过它来写。
瑞芯微平台最常用的是I2C,偶尔也用SPI(比如一些高帧率Sensor)。
| 特性 | I2C | SPI |
|---|---|---|
| 线数 | 2线(SCL, SDA) | 4线(SCLK, MOSI, MISO, CS) |
| 速率 | 标准100kHz / 快速400kHz / 高速3.4MHz | 可达几十MHz |
| 寻址方式 | 7位或10位地址 | 片选CS选择设备 |
| 通信方式 | 半双工 | 全双工 |
| 适用场景 | 配置寄存器、读取状态 | 批量数据传输、高帧率配置 |
在驱动开发中,I2C的时序很重要。比如Sensor的I2C地址是0x6C还是0x36?这取决于芯片的ADDR引脚电平。我见过不少新手,地址配错了,I2C通信一直NACK,还以为是硬件坏了。
调试I2C的步骤(我的习惯):
- 用示波器抓SCL和SDA波形,确认有正常的Start/Stop条件。
- 检查设备地址是否正确(7位地址左移1位才是写地址)。
- 确认ACK信号:Sensor在第9个SCL周期拉低SDA。
- 如果一直NACK,先测Sensor供电和复位引脚。
SPI用得少一些,但有些Sensor(比如全局快门的)会用它。SPI的优势是速度快,适合一次性写入大量寄存器配置。但要注意,SPI的片选信号必须干净,否则容易误触发。
1.5 本章小结
这一章我们覆盖了瑞芯微Camera子系统的三层架构、MIPI与DVP的硬件差异、电气特性要点,以及I2C/SPI控制总线的使用细节。
说白了,硬件基础是驱动开发的根基。MIPI的差分阻抗、I2C的地址配置、电源的纹波,任何一个环节出问题,都会让后面的3A算法调优无从下手。