跳到主要内容

功能描述

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注册结构体指针。

返回值说明

参考资源

接口调用流程,参见视频数据获取功能

参考样例

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。

返回值说明

参考资源

接口调用流程,参见视频数据获取功能

父主题: 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 分布模式

    ModeDEV0DEV1DEV2DEV3
    0L0~L7NNN
    1L0~L3NL4~L7N
    2L0~L3NL4、L6L5、L7
    3L0、L2L1、L3L4、L6L5、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 复用关系图

LANEMIPI0MIPI1MIPI2MIPI3SLVS0SLVS1
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命令字

在线提单