1、RK平台Camera子系统概述

各位好,我是老周。在嵌入式图像领域摸爬滚打了十几年,RK平台是我打交道最多的SoC之一。今天咱们开始这门课的第一章,先把全景图铺开——RK平台的Camera子系统到底长什么样?ISP架构怎么搭的?驱动框架怎么串起来的?调优流程又该怎么走?

说白了,这一章就是给你一张地图。后面29章的所有细节,都挂在这张地图上。你先把全局看明白,后面学起来才不会迷路。

1.1 RK平台ISP架构

RK的ISP(Image Signal Processor)是集成在SoC内部的硬件模块。不同芯片型号(如RK3588、RK3568、RV1106)的ISP能力有差异,但核心架构一脉相承。

我画了一张架构图,你看一眼就清楚了:

RK ISP 核心架构框图 Camera Sensor MIPI CSI-2 Rx ISP 输入接口 ISP 处理管线 (Pipeline) BLC / 黑电平 AWB / 白平衡 Demosaic CCM / 色彩校正 Gamma / 伽马 去噪 (NR) 锐化 (Sharp) LSC / 镜头阴影 3A 统计 WDR / 宽动态 输出 (YUV / RAW) 说明:不同RK芯片的ISP模块数量和顺序略有差异,但BLC→AWB→Demosaic→CCM→Gamma→NR→Sharp→LSC→3A→WDR是典型主线。

从Sensor出来的RAW数据,经过MIPI CSI-2接口进入ISP。ISP内部是一长串处理模块——黑电平校正、白平衡、去马赛克、色彩校正、伽马、去噪、锐化、镜头阴影校正、3A统计、宽动态……每个模块都有对应的调优参数。

关键认知:ISP不是黑盒。每个模块的输入输出都是可观测、可调试的。调优的本质,就是让这些模块的参数适配你的Sensor和场景。

1.2 Camera驱动框架

驱动这块,RK用的是标准V4L2框架,加上自己的一套ISP驱动。我拆成三层来讲:

  • Sensor驱动层:负责Sensor的初始化、寄存器配置、流控。每个Sensor一个驱动文件,挂在I2C总线上。
  • ISP驱动层:RK的ISP驱动(rkisp1/rkisp3等)负责ISP硬件控制、参数下发、3A算法交互。
  • 应用层接口:通过V4L2的VIDIOC_S_CTRL、VIDIOC_SUBDEV_S_FMT等ioctl,应用层可以控制曝光、增益、帧率等。

我举个例子,Sensor驱动的probe函数大概长这样:

static int imx415_probe(struct i2c_client *client)
{
    struct imx415 *sensor;
    // 分配结构体
    sensor = devm_kzalloc(&client->dev, sizeof(*sensor), GFP_KERNEL);
    // 读取设备树配置
    sensor->regmap = devm_regmap_init_i2c(client, &imx415_regmap_config);
    // 注册V4L2子设备
    v4l2_i2c_subdev_init(&sensor->sd, client, &imx415_subdev_ops);
    // 配置电源、时钟、复位
    // ...
    return 0;
}

嗯,这里要注意:设备树里要配好电源、时钟、MIPI lane数、频率。我见过不少新手把lane数配错,导致图像花屏。你想想看,硬件连对了,软件配错了,查起来多冤枉。

我的习惯:拿到一个新Sensor,先看datasheet里的初始化序列,再对照RK的驱动模板改。不要自己从头写,容易漏掉关键寄存器。

1.3 图像质量调优流程全景图

调优流程,说白了就是让图像从「能看」变成「好看」。我把它分成五个阶段:

阶段 核心工作 输出物
1. 基础调试 点亮Sensor、获取RAW图、检查MIPI信号 RAW图、驱动日志
2. 黑电平与线性度 BLC校正、线性度验证、暗电流补偿 BLC参数表
3. 色彩与白平衡 AWB标定、CCM矩阵计算、Gamma曲线 色彩校正表
4. 噪声与清晰度 去噪强度调优、锐化参数、MTF测试 NR/Sharp参数集
5. 场景适配 不同光照、不同色温、HDR/WDR调优 场景配置文件

这五个阶段不是线性的。我经常在调色彩时发现噪声太大,又回头调NR。调NR又发现锐度不够……嗯,调优就是个反复迭代的过程。

我曾经踩过的坑:有一次跳过基础调试直接调色彩,结果图像一直偏绿。查了两天才发现是MIPI的data lane极性配反了。所以——基础调试阶段千万别省,RAW图一定要先确认是对的。

最后,我把整个Camera子系统的数据流和调优流程画成一张全景图,方便你对照:

Camera子系统数据流与调优流程全景图 Camera Sensor MIPI CSI-2 ISP 硬件管线 V4L2 驱动层 应用层 / 算法 1. 基础调试 2. BLC & 线性度 3. 色彩 & AWB 4. 噪声 & 清晰度 5. 场景适配 说明:左侧是硬件数据流(Sensor→MIPI→ISP→驱动→应用),右侧是调优流程(基础→BLC→色彩→噪声→场景),中间双向箭头表示调优需要反复对照数据流。

这张图你最好存下来。后面每学一章,回来看看它在全景图里的位置,就不会迷失方向。

一句话总结:RK平台的Camera子系统,硬件上靠ISP管线处理RAW数据,软件上靠V4L2驱动框架打通上下层,调优上靠五阶段迭代逼近最佳图像质量。三者缺一不可。