基本概念
hi_mpi_awb_sensor_reg_callback
函数功能
AWB库提供的Sensor注册的回调接口。AWB通过Sensor注册的一系列回调接口,获取差异化的初始化参数,并控制Sensor。
函数原型
hi_s32 hi_mpi_awb_sensor_reg_callback(hi_vi_pipe vi_pipe, hi_isp_3a_alg_lib *awb_lib, const hi_isp_sns_attr_info *sns_attr_info, const hi_isp_awb_sensor_register * awb_sns_register)
约束说明
此接口不支持多进程操作。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| vi_pipe | 输入 | VI PIPE号。 取值范围:[0, 4)。 |
| awb_lib | 输入 | AWB算法库结构体指针。 |
| sns_attr_info | 输入 | 向AWB注册的Sensor的属性。 该结构体内的sensor_id是sensor库中自定义的值,需确保唯一,主要用于校对向ISP注册的sensor和向3A注册的sensor是否为同一个sensor。 |
| awb_sns_register | 输入 | Sensor注册结构体指针。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码。
参考资源
接口调用流程,参见视频数据获取功能。
参考样例
hi_isp_3a_alg_lib awb_lib;
hi_isp_awb_sensor_register awb_register;
hi_isp_sns_attr_info sns_attr_info;
hi_isp_awb_sensor_exp_func *exp_funcs = &awb_register.sns_exp;
memset(exp_funcs, 0, sizeof(hi_isp_awb_sensor_exp_func));
exp_funcs-> pfn_cmos_get_awb_default = cmos_get_awb_default;
hi_vi_pipe vi_pipe = 0;
awb_lib.id = 0;
sns_attr_info.sensor_id = IMX178_ID;
strcpy(awb_lib. lib_name, HI_AWB_LIB_NAME);
ret = hi_mpi_awb_sensor_reg_callback(vi_pipe, &awb_lib, &sns_attr_info, &awb_register);
if (ret) {
printf("sensor register callback function to awb lib failed!\n");
return ret;
}
父主题: ISP系统控制及3A算法注册
hi_mpi_awb_sensor_unreg_callback
函数功能
AWB库提供的sensor注销的回调接口。
函数原型
hi_s32 hi_mpi_awb_sensor_unreg_callback(hi_vi_pipe vi_pipe, hi_isp_3a_alg_lib *awb_lib, hi_sensor_id sensor_id)
约束说明
- 此接口不支持多进程操作。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| vi_pipe | 输入 | VI PIPE号。 取值范围:[0, 4)。 |
| awb_lib | 输入 | AWB算法库结构体指针。 |
| sensor_id | 输入 | 向AWB注册的sensor的Id。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码。
参考资源
接口调用流程,参见视频数据获取功能。
父主题: ISP系统控制及3A算法注册
功能描述
MIPI Rx通过低电压差分信号接收原始视频数据,将接收到的串行差分信号(serial differential signal)转化为DC(Digital Camera)时序后传递给下一级模块VICAP(Video Capture)。MIPI Rx支持MIPI D-PHY、sub-LVDS、HiSPi(High-Speed Serial Pixel Interface)等串行视频信号输入。
SLVS-EC接口由SONY公司定义,用于高帧率和高分辨率图像采集,它可以将高速串行的数据转化为DC(Digital Camera)时序后传递给下一级模块 VICAP(Video Capture)。SLVS-EC串行视频接口可以提供更高的传输带宽,更低的功耗,在组包方式上,数据的冗余度也更低。在应用中SLVS-EC接口提供了更加可靠和稳定的传输。
:::note 说明 当前版本仅配套支持MIPI CSI接口以及SLVS-EC接口。 :::
MIPI Rx
MIPI Rx是一个支持多种差分视频输入接口的采集单元,通过combo-PHY接收MIPI/LVDS/sub-LVDS/HiSPi接口的数据,通过不同的功能模式配置,MIPI Rx可以支持多种速度和分辨率的数据传输需求,支持多种外部输入设备。
-
MIPI Rx最大支持Lane个数:
MIPI Rx最大支持8个Lane MIPI输入或8个Lane sub-LVDS输入或8个Lane HiSPI输入。
-
MIPI Rx能同时对接多个Sensor,最多对接4个Sensor。
-
MIPI Rx最大能同时对接不同数量的sensor,每个sensor需要的Lane也不尽相同。因此用户需要确定MIPI Rx 的LANE分布模式。具体的Lane 分布模式请参见下表:
表1 MIPI Rx Lane 分布模式
Mode DEV0 DEV1 DEV2 DEV3 0 L0~L7 N N N 1 L0~L3 N L4~L7 N 2 L0~L3 N L4、L6 L5、L7 3 L0、L2 L1、L3 L4、L6 L5、L7
SLVS-EC
SLVS-EC接口支持更高帧率更大分辨率图像的采集,通过SLVS-EC的PHY接收高速串行的数据转化为DC(Digital Camera)时序,通过不同的功能模式配置,SLVS-EC可以支持多种速度和分辨率的数据传输需求,支持多种外部输入设备。
SLVS-EC 最大支持 8Lane SLVS 输入。
Lane管脚及复用说明
MIPI Rx与SLVS-EC的Lane复用管脚,同一时刻同一个Lane只能被MIPI Rx和SLVS-EC中的一个使用。
具体的Lane 管脚连接请参见下表。
表2 MIPI Rx 与SLVS-EC 的Lane 复用关系图
| LANE | MIPI0 | MIPI1 | MIPI2 | MIPI3 | SLVS0 | SLVS1 |
|---|---|---|---|---|---|---|
| Lane0 | √ | √ | √ | |||
| Lane1 | √ | √ | √ | √ | ||
| Lane2 | √ | √ | √ | |||
| Lane3 | √ | √ | √ | √ | ||
| Lane4 | √ | √ | √ | √ | ||
| Lane5 | √ | √ | √ | √ | √ | |
| Lane6 | √ | √ | √ | √ | ||
| Lane7 | √ | √ | √ | √ | √ |
- MIPI0对应VICAP的DEV 0,MIPI1对应VICAP的DEV1,依次类推。
- SLVS0对应VICAP的DEV0,SLVS1对应VICAP的DEV1。
父主题: MIPI Rx ioctl命令字
基本概念
-
MIPI
MIPI的全称是Mobile Industry Processor Interface(移动行业处理器接口),本文描述的MIPI接口特指物理层使用D-PHY传输规范,协议层使用CSI-2的通信接口。
-
sub-LVDS
LVDS的全称是Low Voltage differential Signaling(低压差分信号),通过同步码区分消隐区和有效数据。sub-LVDS是LVDS的低压变种,常见于sony sensor。
-
SLVS-EC
SLVS-EC的全称是Scalable Low Voltage Signaling Embedded Clock,是与MIPI并列的接口,用于高帧率和高分辨率图像采集。
-
Lane
用于连接发送端和接收端的一对高速差分线,既可以是时钟Lane,也可以是数据Lane。
-
Link
发送端和接收端之间的时钟Lane和至少一个数据Lane组成一个 Link,本文中的link 是一个软件概念,每一个 link 包括两个数据 lane。
-
同步码
MIPI接口使用CSI-2 里面的短包进行同步,sub-LVDS 使用同步码区分有效数据和消隐区。sub-LVDS 有两种同步方式:
-
使用 SOF/EOF 表示帧起始和结束,使用SOL/EOL 表示行的起始和结束。同步方式如下图所示。
图1 SOF/EOF/SOL/EOL 同步方式

-
-
使用SAV(invalid) EAV(invalid)表示消隐区的无效数据开始和结束,使用SAV(valid) EAV(valid)表示有效像素数据的开始和结束。
每个同步码由4个字段组成,每个字段的位宽与像素数据位宽保持一致。前3个字段为固定基准码字,第4个字段由sensor厂家确定。
由于不同的sensor可能会有不同的同步码,所以需要根据sensor配置同步码。同步方式如下图所示。
图2 SAV/EAV 同步方式

-
DOL
DOL的全称是 Digital Overlap,指SONY的WDR 功能。
父主题: MIPI Rx ioctl命令字
HI_MIPI_SET_DEV_ATTR
功能描述
设置MIPI Rx、SLVS和并口设备属性。
定义
#define HI_MIPI_SET_DEV_ATTR _IOW(HI_MIPI_IOC_MAGIC, 0x01, combo_dev_attr_t)
参数
-
HI_MIPI_IOC_MAGIC:MIPI Rx ioctl命令的幻数。
#define HI_MIPI_IOC_MAGIC 'm' -
0x01:标识命令字功能,用于设置MIPI Rx、SLVS和并口设备属性。
-
combo_dev_attr_t:combo设备属性。
返回值
- 0:成功
- -1:失败
注意事项
操作SENSOR复位信号线和时钟信号线会对所连接到该信号线的所有SENSOR都产生效果。
父主题: MIPI Rx ioctl命令字
HI_MIPI_SET_HS_MODE
功能描述
设置MIPI Rx的Lane分布模式,对SLVS无作用。
定义
#define HI_MIPI_SET_HS_MODE _IOW(HI_MIPI_IOC_MAGIC, 0x0b, lane_divide_mode_t)
参数
-
HI_MIPI_IOC_MAGIC:MIPI Rx ioctl命令的幻数。
#define HI_MIPI_IOC_MAGIC 'm' -
0x0b:标识命令字功能,用于设置MIPI Rx的Lane分布模式。
-
lane_divide_mode_t:MIPI Rx的Lane分布模式。
返回值
- 0:成功
- -1:失败
注意事项
- 执行本命令字后,系统内部会对MIPI Rx子系统进行复位和解复位动作,因此在调用其它命令字前需先调用本命令字,否则会导致其它命令字的配置被复位。
- 在接多路sensor输入时,建议在初始时根据硬件连接设置Lane的分布模式,在之后的多路sensor采集过程中不能再使用本命令字,否则会导致本命令字之前的其它配置被复位。
父主题: MIPI Rx ioctl命令字
HI_MIPI_ENABLE_MIPI_CLOCK
功能描述
打开MIPI设备的时钟。
定义
#define HI_MIPI_ENABLE_MIPI_CLOCK _IOW(HI_MIPI_IOC_MAGIC, 0x0c, combo_dev_t)
参数
-
HI_MIPI_IOC_MAGIC:MIPI Rx ioctl命令的幻数。
#define HI_MIPI_IOC_MAGIC 'm' -
0x0c:标识命令字功能,用于打开MIPI设备的时钟。
-
combo_dev_t:设备号。
返回值
- 0:成功
- -1:失败
父主题: MIPI Rx ioctl命令字
在线提单