2. Sensor硬件基础:主流图像传感器类型与关键参数
图像传感器是Camera系统的核心感光元件,它将光信号转换为电信号,再经过模数转换(ADC)生成数字图像数据。理解传感器硬件基础是驱动适配与HAL层优化的前提。本章从传感器类型、关键参数和MIPI CSI接口协议三个维度展开。
2.1 主流图像传感器类型:CMOS vs CCD
当前市场主流的图像传感器分为CMOS(互补金属氧化物半导体)和CCD(电荷耦合器件)两大类。两者在制造工艺、读出方式、功耗和成本上存在显著差异。
| 对比维度 | CMOS(互补金属氧化物半导体) | CCD(电荷耦合器件) |
|---|---|---|
| 读出方式 | 每个像素自带放大器与ADC,可随机读取 | 电荷逐行转移至输出放大器,串行读出 |
| 功耗 | 低(通常 < 200 mW) | 高(通常 > 500 mW,需多路电压驱动) |
| 噪声水平 | 较高(固定模式噪声FPN、行噪声) | 较低(读出噪声小,暗电流均匀) |
| 集成度 | 高(可集成ISP、时序控制、ADC于单芯片) | 低(需外部驱动芯片与ADC) |
| 帧率 | 高(支持高速读出,可达120fps+) | 中等(受限于电荷转移速度) |
| 成本 | 低(标准CMOS工艺,量产优势) | 高(专用工艺,良率低) |
| 应用场景 | 手机、平板、安防、车载、无人机 | 工业检测、天文、医疗、高端摄影 |
工程选型建议: 移动端和嵌入式Camera系统几乎全部采用CMOS传感器。CCD仅在需要极低读出噪声、高动态范围且对功耗不敏感的专业领域使用。驱动适配时,CMOS传感器通常通过I2C/SPI配置寄存器,CCD则需要更复杂的时序驱动。
2.2 Sensor关键参数解析
驱动开发和HAL层优化必须精确理解以下核心参数,它们直接影响图像质量、带宽计算和帧率控制。
2.2.1 分辨率(Resolution)
分辨率指传感器有效像素阵列的宽度×高度,如1920×1080(2MP)、4000×3000(12MP)。分辨率越高,单帧数据量越大,对MIPI带宽和ISP处理能力的要求也越高。
- 有效像素阵列: 传感器实际用于成像的像素区域,排除光学黑区(OB)和边缘哑像素。
- 最大分辨率 vs 工作分辨率: 驱动中可通过设置窗口(Window)或binning/skipping模式输出不同分辨率。
- 带宽计算: 单帧数据量 = 分辨率宽度 × 高度 × 像素位深(如10bit) × 通道数(RAW域通常为1)。
2.2.2 帧率(Frame Rate)
帧率表示传感器每秒输出的完整帧数,单位fps。帧率受曝光时间、读出速度和MIPI传输速率共同约束。
- 行时间(Line Time): 传感器读出单行像素所需时间,由像素时钟和行消隐决定。
- 帧时间(Frame Time): 帧时间 = (有效行数 + 垂直消隐行数) × 行时间。
- 帧率上限: 帧率 ≤ 1 / 帧时间。驱动中通过调整VTS(垂直总行数)和HTS(水平总像素)寄存器控制帧率。
2.2.3 像素大小(Pixel Size)
像素大小指单个感光单元的物理尺寸,单位μm。典型值从0.8μm(手机)到5μm以上(工业/车载)。
| 像素尺寸 | 典型场景 | 灵敏度 | 信噪比 |
|---|---|---|---|
| 0.8 - 1.0 μm | 高像素手机(50MP+) | 低 | 中等 |
| 1.4 - 2.0 μm | 主流手机、安防 | 中等 | 良好 |
| 3.0 - 5.0 μm | 车载、工业、机器视觉 | 高 | 优秀 |
驱动适配提示: 像素大小影响模拟增益(Analog Gain)的配置范围。大像素通常支持更低的基准ISO,小像素需要更高的增益来补偿低灵敏度,这会引入更多噪声。HAL层在做3A(AE/AWB/AF)策略时需考虑传感器增益特性。
2.3 MIPI CSI接口协议简介
MIPI CSI(Camera Serial Interface)是移动和嵌入式领域最主流的摄像头串行接口标准。当前主流版本为CSI-2,采用差分信号传输,支持多通道(Lane)配置。
2.3.1 物理层(D-PHY / C-PHY)
- D-PHY: 使用差分对(Dp/Dn)传输数据,每个Lane包含一对差分线。时钟通道独立或嵌入数据流(DDR模式)。典型速率:每Lane 80 Mbps ~ 2.5 Gbps。
- C-PHY: 使用三线(Triplet)传输,每个通道3根线,通过电压电平编码实现更高带宽密度。典型速率:每通道 2.5 Gbps ~ 5.7 Gbps(等效)。
2.3.2 协议层(CSI-2)
CSI-2协议定义了数据包格式、帧结构、数据类型和虚拟通道。驱动开发中需要关注以下关键概念:
- 长包(Long Packet)与短包(Short Packet): 长包传输像素数据,短包传输帧同步、行同步等控制信息。
- 数据类型(Data Type, DT): 标识像素格式,如RAW10(0x2B)、RAW12(0x2C)、YUV422 8bit(0x1E)等。
- 虚拟通道(Virtual Channel, VC): 支持最多4个虚拟通道共享同一物理链路,用于多摄像头复用。
- 帧结构: 帧起始短包(FS) → 行数据长包(含行起始/结束) → 帧结束短包(FE)。
常见适配问题: MIPI时钟频率与数据Lane数不匹配会导致CRC错误或帧丢失。驱动中必须根据传感器输出分辨率和帧率计算所需MIPI带宽,并确保SoC的CSI控制器支持对应的Lane速率。例如:1920×1080@30fps RAW10,理论带宽 = 1920×1080×30×10 = 622 Mbps,使用2 Lane D-PHY时每Lane需 ≥ 311 Mbps。
2.4 传感器数据流与MIPI传输结构
下图展示了从传感器像素阵列到MIPI CSI接口输出的完整数据流,以及CSI-2协议层的帧封装结构。
2.5 关键参数与MIPI带宽计算示例
驱动适配时,必须根据传感器规格计算MIPI链路所需带宽,确保不超过SoC CSI控制器的能力上限。以下为典型计算流程:
- 确定输出格式: 例如RAW10(每像素10bit),分辨率1920×1080,帧率30fps。
- 计算有效数据率: 1920 × 1080 × 30 × 10 = 622,080,000 bps ≈ 622 Mbps。
- 考虑消隐开销: 实际MIPI传输包含行消隐(HBlank)和帧消隐(VBlank),通常增加10%~20%带宽。假设15%开销 → 622 × 1.15 ≈ 715 Mbps。
- 选择Lane数与速率: 若使用2 Lane D-PHY,每Lane需 ≥ 715 / 2 = 357.5 Mbps。选择标准速率400 Mbps/Lane,总带宽800 Mbps,满足需求。
- 验证SoC限制: 确认SoC CSI控制器支持2 Lane @ 400 Mbps,且时钟PLL可配置对应频率。
驱动配置关键寄存器: 传感器端需配置输出分辨率、帧率、像素格式、MIPI Lane数及速率;SoC端需配置CSI控制器时钟分频、Lane映射、数据类型解析。两者必须严格匹配,否则出现数据错位或帧丢失。