第29讲 Camera KMD ISP子系统CPAS模块功能介绍

本讲是Camera KMD ISP子系统专题的第29讲,我们讲解Camera KMD ISP子系统之CPAS模块功能介绍。

更多资源:

资源 描述
在线课程 极客笔记在线课程
知识星球 星球名称:深入浅出Android Camera
星球ID: 17296815
Wechat 极客笔记圈

CPAS是什么

CPAS: Camera Peripheral And System,主要负责Camera外围控制相关(带宽投票,硬件版本等等)的一个功能模块,会暴露一个V4L2子设备与用户空间进行通信。

CPAS驱动代码:代码所在目录: drivers/cam_cpas/(https://s.deepinout.com/camera-kernel.lnx.6.0.r5/xref/drivers/cam_cpas/

CPAS是什么

  • cam_cpas_hw_intf.h是开给Camera内部其他模块使用的接口
  • cam_cpas_soc是Camera与SoC的交互逻辑

CPAS的功能

主要功能如下:

  1. ISP硬件版本的获取,可以做到一套代码兼容不同HW(/dev/v4l-subdev0)

  2. 各个IP模块的总开关

  3. AHB总线带宽动态投票(省功耗)

  4. AXI总线带宽动态投票(省功耗)

  5. 根据usecase不同动态进行QoS改变(省功耗)

用于camx兼容不同的camera family

用于camx兼容不同的camera family

CPAS驱动会从cpas_top或camss_top(dts决定)读取当前平台使用的哪个ISP Family,保存在platformVersion中。

用于camx兼容不同的camera family

各IP模块的总开关

Camera IP不管是TFE,OPE,IFE等等,在上电之前都需要调用cam_cpas_start

AHB总线带宽投票

AHB总线带宽投票

AP访问CAM IP内部寄存器需要通过AHB总线。为了省功耗默认AHB CLK可能为0,一旦真的用到camera 时再投票打开AHB时钟。

AXI总线带宽投票

AXI就是数据总线,Camera会根据usecase,动态计算AXI带宽最小需求以节省带宽。

AXI总线带宽投票

根据usecase不同动态进行QoS改变

QoS会控制访问AXI总线的优先级,当ISP出现Overflow问题时,如果BW拉满还是没有效果,就可以考虑下QoS的设置了,是否ISP Overflow是因为QoS设置导致抢不过其他模块导致。

根据usecase不同动态进行QoS改变

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程