锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【TDA4系列】向 PSDKRA 添加新的图像传感器

时间:2023-12-08 06:37:01 sensor传感器dl100

原文

https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/06_02_00_21/exports/docs/psdk_rtos_auto/docs/user_guide/developer_notes.html

正文

Imaging library是与 PSDKRA 包装在一起的示例算法和图像传感器驱动程序示例算法和图像传感器驱动程序的集合。 它包括模块化和可扩展的传感器驱动程序框架

  • 轻松添加新的传感器驱动程序。
  • 为应用程序和算法提供一致的界面。

该框架的目标是向应用程序添加零代码修改的新传感器。 预计任何使用图像传感器的应用程序都与底层硬件无关。 使用应用程序 RPC 命令与驱动程序框架进行通信。 查询运行时支持的传感器的详细信息和功能。

以图像传感器为例 AutoExposure)运行时需要发送通信的类似算法 RPC 没有必要知道哪个传感器在运行。 驱动程序框架负责相机 ID 对相关物理图像传感器进行映射。

该机制允许算法和应用中时,该机制允许算法和应用程序代码保持不变。

关键数据结构

1 、 IssSensor_CreateParams

为图像传感器创建宽度、高度、数据格式等时间参数I2C 地址。 详情请参考imaging/sensor_drv/include/iss_sensor.h

2、IssSensorFxns

所有需要实现传感器驱动程序的例程回调集。 详情请参考imaging/sensor_drv/include/iss_sensor.h

3、 IssSensorIntfParams

例如,接口参数 CSI-数据通道的数量、位置、极性等。请参考更多细节imaging/sensor_drv/include/iss_sensor.h
4、 I2c参数

结构包括寄存器地址、值和延迟(毫秒)。 详情请参考imaging/sensor_drv/include/iss_sensor.h
5、 传感器配置

包括指向传感器和 SerDes 指针结构配置结构。

Serializer 和 Deserializer 脚本配置的最后一个条目必须是 {0xFFFF, 0x00, 0x0}

6、 IssSensors_Handle

图像传感器驱动程序的处理,包括所有关于传感器的信息,请参考imaging/sensor_drv/include/iss_sensor.h

接口

RPC 命令

使用应用程序 RPC(远程调用)命令与传感器驱动程序通信 下面列出了当前定义的命令。

命令 说明
IM_SENSOR_CMD_ENUMERATE 所有传感器的名称列表由应用程序调用以获得支持。
IM_SENSOR_CMD_QUERY 图像传感器的功能按名称调用。
IM_SENSOR_CMD_PWRON 传感器电源由应用程序调用。 Sensor f/w 调用所选传感器 powerOn 回调。该功能的具体实现留给了特定的传感器驱动程序。
IM_SENSOR_CMD_PWROFF 传感器由应用程序调用关闭。 Sensor f/w 调用所选传感器 powerOff 回调。该功能的具体实现留给了特定的传感器驱动程序。
IM_SENSOR_CMD_STREAM_ON 流式传输由应用程序调用。 f/w 调用所选传感器 streamOn 回调。该功能的具体实现留给了特定的传感器驱动程序。
IM_SENSOR_CMD_STREAM_OFF 流式传输通过应用程序调用。 f/w 调用所选传感器 streamOff 回调。该功能的具体实现留给了特定的传感器驱动程序。
IM_SENSOR_CMD_CTL 调用应用程序发送运行时的控制命令。下一节描述了当前支持的运行时的控制。

控制命令

IM_SENSOR_CMD_STREAM_CTL 命令可以有控制命令的参数。以下是当前定义的控制命令。

命令 说明
IMAGE_SENSOR_CTRLCMD_GETEXPPRG 通常由 AutoExposure 算法调用了解传感器的曝光约束,然后可以初始化 AutoExposure 算法。
IMAGE_SENSOR_CTRLCMD_SETEXPGAIN 通常由 AutoExposure 设置曝光时间和模拟/数字增益的算法调用。 f/w 调用所选传感器 setAeParams 回调。该功能的具体实现留给了特定的传感器驱动程序。
IMAGE_SENSOR_CTRLCMD_GETEXPGAIN 未来使用保留。
IMAGE_SENSOR_CTRLCMD_SETWBGAIN 未来使用保留。
IMAGE_SENSOR_CTRLCMD_GETWBGAIN 未来使用保留。
IMAGE_SENSOR_CTRLCMD_DEBUG 未来使用保留。

创建新传感器驱动程序的步骤

1 创建文件夹

在 image/sensor_drv/src/ 例如,创建一个新的文件夹, <新传感器123>

2 创建传感器驱动文件

创建新的源文件,实现关键数据结构中提到的所有结构和回调。

createParams

参数 用法
姓名 选择任何不超过的 32 唯一的字符串
i2cInstId 连接传感器的指定 I2C 通道。对于 Jacinto 7 EVM,默认值为 0x6
i2cAddrSensor 传感器地址别名数组。最多支持 8 例子。必须匹配 UB960 配置中指定的其他名值。请注意,如果传感器直接连接,则没有 SerDes,请在这里提供传感器的物理 I2C 地址(7 位)
i2cAddrSer 序列化器地址别名数组。最多支持 8 例子。必须匹配 UB960 配置中指定的别名值。
宽度 传感器输出中每行的像素数不包括 H 消隐。
高度 传感器输出中每帧的行数不包括 V 消隐或元数据。
num_exposures 每帧曝光通道数。
line_interleaved 保留以备将来使用。
像素容器 容器元素的宽度。
女士 有效数据的 MSB。必须设置为 bpp -1。例如。对于 12b RAW,MSB = 11。
功能 指定传感器功能的二进制掩码。
fps 每秒帧率。目前没有使用。
numDataLanes CSI-2 数据通道的数量。必须匹配传感器和解串器设置。
数据车道地图 传感器 CSI2 通道到 CSI2 Rx 的映射。必须匹配传感器和解串器设置。
dataLanesPolarity 保留以备将来使用。
csi_ddr_clock 保留以备将来使用。
num_channels 支持的相机实例数。有效值:1-8。
dccId 唯一的数字标识符。用于 ISP 调谐。

IssSensorFxns

API 名称 说明
探针 检测传感器是否可访问,通常通过读取传感器芯片 ID。
配置 配置串行器和传感器。参数 sensor_features_requested 可用于根据应用程序请求加载不同的配置。例如 30fps 模式与 60fps 模式。
在传感器和解串器上启用流。
流关闭 禁用传感器和解串器上的流。
开机 硬件依赖。如果需要,拉上/拉下任何 GPIO。配置解串器,以便可以通过 FPD Link 反向通道访问传感器。
断电 硬件依赖。如果需要,拉上/拉下任何 GPIO。
getExpParams 保留以备将来使用。必须作为返回 0 的虚拟函数实现。
设置AeParams 将 AE 计算的曝光时间和模拟增益转换为传感器特定设置。用新值更新传感器寄存器。
getDccParams 保留以备将来使用。必须作为返回 0 的虚拟函数实现。
initAewbConfig 保留以备将来使用。必须实现为返回 void 的虚拟函数。
getIspConfig 保留以备将来使用。必须实现为返回 void 的虚拟函数。
readWriteReg 保留以备将来使用。必须作为返回 0 的虚拟函数实现。
getExpPrg 由 AE 算法调用以获取传感器曝光约束。
去初始化 保留以备将来使用。必须实现为返回 void 的虚拟函数。

3. Update makefile

修改sensor_drv/src/concerto.mak,添加新添加的sensor文件。 例如

 CSOURCES += newsensor123/iss_sensor_newsensor123.c

4. 用框架注册新的传感器

修改sensor_drv/src/iss_sensors.c文件中的IssSensor_Init函数,调用新传感器的init函数。 例如

 状态 |= IssSensor_NewSensor123_Init();

5. Build and Run

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章