Skip to main content
Qualcomm® 片上系统(SoC)包括运行 Linux 操作系统的应用处理器、低功耗应用数字信号处理器(aDSP)以及其他处理器。低功耗处理器运行实时操作系统(RTOS),使用 QSH 框架处理传感器数据流。aDSP 为 QSH 操作提供以下支持:
  • 可配置为串行总线的 GPIO:串行外设接口(SPI)、集成电路总线(I2C)、改进型 I2C(I3C)和通用异步收发器(UART)。
  • 低功耗模式下的串行总线。
  • 专用本地内存,在 QSH 中也称为 island。
QSH 提供了一个使用来自各种传感器数据的框架。传感器数据在 IoT、游戏、健康和健身等领域非常有用。 一台设备可以拥有多个同类型的传感器。例如,翻盖手机在两个平面上各放置一个加速度计。发布的属性和能力可区分每个加速度计传感器。QSH 客户端 API 允许您访问平台上传感器的可用性、属性和能力。使用相同的 QSH 客户端 API 从 QSH 框架获取传感器数据。 QSH 框架 API 包括 QSH 客户端 API 和传感器 API,用于执行以下与传感器相关的任务:
  • 识别开发套件上可用的传感器。
  • 使用属性确定传感器能力,例如支持的采样率、最大量程、制造商、功耗要求和分辨率。
  • 根据配置采集并提供数据,从而以指定的采样率启用传感器。
QSH 框架提供对基于硬件和基于软件的传感器的访问。

基于硬件的传感器

基于硬件的传感器是物理传感器,通过直接测量特定环境属性来采集数据,例如加速度、磁场、气压、湿度、光照和角速度。 下表列出了 QSH 框架支持的基于硬件的传感器:
传感器名称传感器类型描述Proto API
加速度计accel测量施加到设备的 3 个物理轴(x、y 和 z)上的加速度,单位为米/秒平方(m/s2sns_accel.proto
陀螺仪gyro测量设备围绕 3 个物理轴(x、y 和 z)中每个轴的旋转速率,单位为弧度/秒(rad/s)sns_gyro.proto
传感器温度sensor_temperature测量传感器的温度,单位为摄氏度(°C)sns_sensor_temperature.proto
磁力计mag测量 3 个物理轴(x、y 和 z)上的环境磁场,单位为微特斯拉sns_mag.proto
接近传感器proximity测量物体的接近程度并提供近/远事件sns_proximity.proto
环境光ambient_light测量环境光照度,单位为勒克斯(lx)sns_ambient_light.proto
气压pressure测量环境空气压力,单位为百帕(hPa)sns_pressure.proto
湿度humidity测量相对环境湿度,单位为百分比(%)sns_humidity.proto
环境温度ambient_temperature提供环境室温,单位为摄氏度(°C)sns_ambient_temperature.proto
霍尔hall测量磁场并提供磁体近/远指示sns_hall.proto
电容式接近传感器sar利用电容变化检测人体接近并报告近/远事件sns_sar.proto

基于软件的传感器

基于软件的传感器,也称为虚拟传感器,是从一个或多个物理传感器采集数据并生成预期输出的算法。常见示例包括:
  • 重力
  • 计步器
  • 游戏旋转矢量(GRV)
下表列出了 QSH 框架支持的基于软件的传感器:
传感器名称传感器类型Proto API描述
绝对运动检测器amdsns_amd.proto
  • 当设备处于绝对静止状态时报告静止状态事件。例如,设备放置在静止物体上,如书桌或桌子。
  • 当设备从绝对静止转变为运动状态时报告运动状态事件。例如,设备被从书桌或桌子上拿起。
  • 使用加速度计运动检测中断来降低功耗。
相对运动检测器rmdsns_rmd.proto当设备相对于重力方向没有明显移动时报告静止状态。
显著运动检测器(SMD)sig_motionsns_sig_motion.proto
  • 在检测到可能导致用户位置变化的显著运动时触发。例如,步行、骑车,或乘坐行驶中的汽车、长途客车或火车。
  • 以下示例不会触发显著运动:设备在口袋中而人保持静止。设备在桌子上且桌子轻微晃动。
  • 报告模式:单次响应,通知后传感器自动禁用自身。
计步器pedometersns_pedometer.proto向客户端报告步数。
步伐检测器step_detectsns_step_detect.proto检测步伐并为每一步生成一个事件。
倾斜检测器tiltsns_tilt.proto每次发生倾斜时生成一个事件。在 2 秒窗口内,平均重力方向自激活或传感器上次生成事件以来至少变化 35 度,即定义为一次倾斜事件。
倾斜唤醒tilt_to_wakesns_tilt_to_wake.proto当拿起的设备处于特定的俯仰角和横滚角范围内时,检测明显的设备旋转手势事件。
陀螺仪校准gyro_calsns_gyro_cal.proto
  • 一种用于陀螺仪的低功耗动态校准算法。
  • 已在来自不同供应商的多种陀螺仪器件上完成验证。
磁力计校准mag_calsns_mag_cal.proto
  • 一种用于磁力计传感器的低功耗动态校准算法。
  • 已在来自不同供应商的多种磁力计器件上完成验证。
游戏旋转矢量(GRV)game_rvsns_game_rv.proto
  • 报告设备相对于未指定坐标系的方向。
  • 通过对加速度计和陀螺仪读数的积分获得方向。因此,y 轴指向任意参考方向而不是北方。
重力/线性加速度gravitysns_gravity.proto
  • 提供指示重力方向和大小的三维矢量。
  • 确定设备在空间中的相对方向。
持续静止检测器persist_stationary_detectsns_persist_stationary_detect.proto当设备静止至少 5 秒时报告事件。
持续运动检测器persist_motion_detectsns_persist_motion_detect.proto当设备运动至少 5 秒时报告事件。
设备方向device_orientsns_device_orient.proto报告设备处于纵向模式还是横向模式。
地磁旋转矢量geomag_rvsns_geomag_rv.proto报告设备相对于东、北、上(ENU)坐标系的方向;通过对加速度计和磁力计读数的积分获得。
旋转矢量(RV)rotvsns_rotv.proto
  • 报告设备相对于 ENU 坐标系的方向。
  • 与地磁旋转矢量不同,此传感器使用陀螺仪。
  • 通过对加速度计、陀螺仪和磁力计读数的积分获得方向。
设备位置分类器device_position_classifiersns_dpc.proto提供设备位置信息,指明设备处于水平位置还是相对于水平面成一定角度。
活动识别算法activity_recognitionsns_activity_recognition.proto确定相对静止状态和分类,例如步行、跑步、骑车、汽车、非机动车和机动车。
距离界限distance_boundsns_distance_bound.proto
  • 以米为单位跟踪距离,并在设备走完请求的距离时向客户端报告。
  • 在设备到达最终距离之前,客户端可以随时查询累计距离。
后续步骤