Image Sensor
1. 简介
M1000 MIPI CSI-2 可直连 CSI-2 摄像头,也可连接解串器,解串器再连接加串器与摄像头。
直连摄像头方式如下图所示:

连接解串器方式如下 图所示:

通过解串器连接多个摄像头时,每个摄像头输出 1 路数据流;当数据流到达 M1000 CSI-2 侧时,每个 CSI-2 控制器将接收多达 4 路数据流。因此,每路数据流须使用不同的 CSI-2 virtual channel 号进行区分。
2. 软件说明
2.1 软件栈特性
Image Sensor 软件栈支持以下特性:
- 支持 V4L2。
- 支持通过 I2C 设备方式加载摄像头驱动。
- 支持直连摄像头使用。
- 支持通过解串器方式连接摄像头使用。
- 支持基于设备列表自动检测摄像头/解串器是否在线并加载驱动。
- 框架上支持用户自行添加解串器、加串器和摄像头驱动。
- 支持管理摄像头/解串器的时钟、电源、复位等信号上下电时序。
- 支持产生可配置频率与占空比的 FSync 信号,供摄像头进行帧同步。
Image Sensor 软件栈设计中,每个摄像头设备作为一个 V4L2 子设备,挂载在 CSI-2 设备上。每个摄像头与 CSI-2 数据流的绑定关系如下图所示:

在 V4L2 软件架构中,CSI-2 设备与摄像头设备是绑定的。因此,当 CSI-2 侧的某个数据流开流时,对应摄像头驱动中的 stream_on 接口会被调用;同理,当 CSI-2 侧该数据流关流时,对应摄像头驱动中的 stream_off 接口会被调用。
需要注意的是,CSI-2 设备并不会管理解串器驱动,它只是基于 V4L2 机制调用摄像头的驱动接口。因此,摄像头驱动应该自行管理解串器驱动,如下图所示:

2.2 驱动文件介绍
| 文件 | 说明 |
|---|---|
image_sensor.c | 负责控制器设备、子设备驱动管理,包含每个摄像头/解串器设备的挂载、初始化、V4L2 驱动封装等。 |
sensor_power.c | 提供摄像头/解串器设备的电源、时钟、复位开关 API。 |
sensor_i2c.c | 提供摄像头/解串器设备的 I2C API。 |
sensor_fsync.c | 提供帧同步管理 API。 |
sensor_list.c | 摄像头/解串器设备列表。 |
max96712.c | 解串器 MAX96712 的设备驱动文件。 |
max9295a_gw5200_ar0233.c | 加串器 MAX9295A 与摄像头 AR0233 的设备驱动文件。 |