Sensor系列之dsps架构分析

本文深入解析Dedicated Sensors Processor Subsystem (DSPS) 架构,涵盖DDF、SMGR、SAM、SMR和QMI等核心组件的功能。DDF负责设备驱动框架,SMGR管理传感器,SAM处理算法,SMR路由消息,QMI则作为AP与BP通信协议。此外,介绍了Client Manager的角色以及Sensor Calibration Manager在数据校验中的作用。

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

前面的博文中,我们已经接触并分析了Sensors HAL Library,sensor1 remoting layer(libsensor1)以及SensorDaemon的相关流程,这里先串一下各个部分的主要功能。

Sensor HAL Library: android的通用HAL接口,高通实现了自己的部分,相关文件为sensors_hal.cpp

sensor1 remoting layer(libsensor1): 这是一个通信库,通过该库函数提供的API可以允许客户端向SensorDaemon服务端请求消息或者接收来自服务端的消息。

SensorDaemon:用户空间的一个后台守护进程,用于监听sensor客户端的请求以及通过共享内存与DSPS通信。

这三部分的代码结构如下:


那么DSPS是什么呢? 今天我们主要了解下DSPS架构和重要组成部分,有些知识点会涉及QMI的相关技术QCCI以及QCSI,之前的博客我们也讲解了相关的接口定义,请点击复习:

Qualcomm messaging Interface(QMI)消息定义概述

Dedicated Sensors Processor Subsystem(DSPS)

如标题所述,DSPS即Dedicated Sensors Processor Subsystem,专用传感器处理器子系统。

下面这张图完整的展示了整个Sensor模块DSPS相关的架构图,包括我们的DSPS部分。


我们重点从图中标注的6部分来看,各个部分主要功能是什么。

Device Driver Framework(DDF)

首先第一部分即Device Driver Framework板块。

这部分即高通的设备驱动框架,而sensor相关的代码则在adsp_proc/Sensors/ddf/下,而驱动代码则在dd路径下,DDF的主要功能如下:

    1 完成所有的环境配置

    2 支持一个驱动控制多个设备

    3 支持同一设备或类似设备的同一驱动程序的多个实例

    4同步异步数据检索

    5 支持NV参数设定

    6 驱动属性的运行时配置,如分辨率,范围及功率状态

    7 访问系统时间以便对于延时代码的执行

    8 抽象的通信接口以便于扩展

    9 memhandler,内存管理对象,用于分配释放内存

在DDF中有一个非常重要的接口我们已经在之前的相关文章中见过,即sns_ddf_driver_if_s:
typedef struct
{
    /** 
     * 初始化驱动并且开启sensor设备
     * 主要工作: 1. 分配一个驱动实例句柄 2. 打开相关设备的通信端口
     *           3. 配置驱动和设备,将设备设到默认的电源状态
     */
    sns_ddf_status_e (*init)(
        sns_ddf_handle_t*        dd_handle_pt
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值