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

本文档介绍了TI处理器软件开发套件中的Imaginglibrary,它包含传感器驱动程序框架,用于简化基于相机应用的开发。该框架支持添加新传感器,提供了一致的接口供应用程序和算法使用,实现硬件无关性。关键数据结构包括 IssSensor_CreateParams、IssSensorFxns 等,应用程序通过RPC命令与传感器通信,如 IM_SENSOR_CMD_ENUMERATE、IM_SENSOR_CMD_STREAM_ON 等。创建新传感器驱动程序涉及创建文件夹、编写驱动文件、更新Makefile和注册新传感器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文

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-2数据通道的数量、位置、极性等。更多细节请参考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每秒帧率。目前没有使用。
numDataLanesCSI-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

  • 做一个干净的镜像构建,然后是 sdk 构建。
  • 执行时,应在枚举传感器列表中填充新传感器。
  • 选择传感器并运行。 如果传感器和 SerDes 设置正确,则应在连接的显示器上显示预览。
  • 在此阶段,传感器驱动程序正常运行。 但是,图像质量可能并不完美。
  • 有关使用 TI ISP 获得良好图像质量的步骤,请参阅 DCC 调整工具文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值