# 概述

Source: [https://docs.qualcomm.com/doc/80-70015-7SC/topic/overview.html](https://docs.qualcomm.com/doc/80-70015-7SC/topic/overview.html)

Note: Qualcomm^®^ 传感器中枢 (QSH) 仅适用于 [QCS5430](https://www.qualcomm.com/products/internet-of-things/industrial/industrial-automation/qcs5430) 和 [QCS6490](https://www.qualcomm.com/products/internet-of-things/industrial/building-enterprise/qcs6490)。

Qualcomm® 片上系统 (SoC) 包括运行 Linux 操作系统的应用处理器、低功耗处理器 (aDSP) 和其他处理器。低功耗处理器运行实时操作系统 (RTOS)，用于执行 Qualcomm 传感器中枢 (QSH) 用例。低功耗处理器支持以下特性以进行 QSH 操作：

- GPIO 可配置为串行总线：串行外设接口 (SPI)、内部集成电路 (I^2^C)、改进型 I^2^C (I^3^C) 和通用异步收发器 (UART)。
- 低功耗模式下的串行总线。
- 专用的本地内存，在 QSH 中也称为 Island。

## QSH 传感器

Source: [https://docs.qualcomm.com/doc/80-70015-7SC/topic/overview.html](https://docs.qualcomm.com/doc/80-70015-7SC/topic/overview.html)

QSH 框架支持多种传感器，并可访问支持以下功能及处理能力的基于硬件和基于软件的传感器：

- 基于硬件的传感器是通过直接测量特定环境属性（如加速度、磁场、压力、湿度、光和角速度）来收集数据的物理传感器。 
    下表列出了 QSH 框架支持的基于硬件的传感器：

Table : 基于硬件的传感器

    | 传感器名称 | 传感器类型 | 说明 | Proto API |
    | --- | --- | --- | --- |
    | 加速度 | `accel` | 测量施加在所有 3 个物理轴（x、y 和 z）上的设备的加速度，单位为米每平方秒 (m/s^2^)。 | `sns_accel.proto` |
    | 陀螺仪 | `gyro` | 测量设备围绕 3 个物理轴（x、y 和 z）中每个轴的旋转速率，单位为弧度每秒 (rad/s)。 | `sns_gyro.proto` |
    | 传感器温度 | `sensor_temperature` | 测量传感器的温度，单位为摄氏度 (°C)。 | `sns_sensor_temperature.proto` |
    | 地磁传感器 | `mag` | 测量所有 3 个物理轴（x、y 和 z）的环境磁场，单位为微特斯拉 (μT)。 | `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` |
- 基于软件的传感器，也称为虚拟传感器，是从一个或多个物理传感器收集数据并生成预期输出的算法。常见的示例是重力、计步器和游戏旋转矢量。
    下表列出了 QSH 框架支持的基于软件的传感器：

Table : 基于软件的传感器

    | 传感器名称 | 传感器类型 | Proto API | 说明 |
    | --- | --- | --- | --- |
    | 绝对运动检测器 | `amd` | `sns_amd.proto` | <ul class="ul" id="Sensors_Overview_1__ul_vdm_f5w_r1c_monicapa_03-10-24-1628-43-227"><br>                    <li class="li">当设备处于绝对静止状态时报告静止状态。例如，在桌子上。</li><br><br>                    <li class="li">使用加速度计运动检测中断来降低功耗。</li><br><br>                  </ul> |
    | 相对运动检测器 | `rmd` | `sns_rmd.proto` | 当设备相对于重力没有显著移动时，报告静止状态。 |
    | 显著运动检测器 | `sig_motion` | `sns_sig_motion.proto` | <ul class="ul" id="Sensors_Overview_1__ul_ojx_pyf_q1c_monicapa_03-04-24-1907-15-308"><br>                    <li class="li">当检测到<em class="ph i">显著运动</em>（可能导致用户位置变化的运动）时触发。例如，步行、骑自行车或坐在行驶中的汽车、长途汽车或火车上。</li><br><br>                    <li class="li">以下示例不会触发显著运动：<ul class="ul" id="Sensors_Overview_1__ul_wxf_mzf_q1c_monicapa_03-04-24-1913-47-760"><br>                        <li class="li">设备在口袋里，人没有移动。</li><br><br>                        <li class="li">设备在桌子上，桌子有一点儿晃动。</li><br><br>                      </ul><br></li><br><br>                    <li class="li">报告模式：通知传感器自动禁用后，单次响应。</li><br><br>                  </ul> |
    | 计步器 | `pedometer` | `sns_pedometer.proto` | 向客户端报告步数。 |
    | 步数检测器 | `step_detect` | `sns_step_detect.proto` | 检测步数，并在每一步生成事件。 |
    | 倾斜检测器 | `tilt` | `sns_tilt.proto` | 每次倾斜时生成一个事件。2 s 窗口的方向（自激活或传感器生成的最后一个事件以来，平均重力至少变化了 35 度）定义倾斜事件。 |
    | 倾斜唤醒 | `tilt_to_wake` | `sns_tilt_to_wake.proto` | 当设备处于特定的俯仰角和滚转角范围内时，检测显著的手机旋转手势事件。 |
    | 陀螺仪校准 | `gyro_cal` | `sns_gyro_cal.proto` | <ul class="ul" id="Sensors_Overview_1__ul_e3k_drb_51c_monicapa_03-18-24-1212-34-340"><br>                    <li class="li">一种用于陀螺仪的低功耗动态校准算法。</li><br><br>                    <li class="li">已在不同供应商的多个陀螺仪部件上进行验证。</li><br><br>                  </ul> |
    | 地磁传感器校准 | `mag_cal` | `sns_mag_cal.proto` | <ul class="ul" id="Sensors_Overview_1__ul_ewk_grb_51c_monicapa_03-18-24-1213-27-432"><br>                    <li class="li">一种用于地磁传感器的低功耗动态校准算法。</li><br><br>                    <li class="li">已在来自不同供应商的多个地磁传感器部件上进行验证。</li><br><br>                  </ul> |
    | 游戏旋转矢量 | `game_rv` | `sns_game_rv.proto` | <ul class="ul" id="Sensors_Overview_1__ul_vqr_xgb_s1c_monicapa_03-11-24-717-32-529"><br>                    <li class="li">报告设备相对于未指定坐标系的方向。</li><br><br>                    <li class="li">它通过集成加速度计和陀螺仪读数来获得方向。因此，Y 轴不指向北方，而是指向任意参照。</li><br><br>                  </ul> |
    | 重力/线性加速度 | `gravity` | `sns_gravity.proto` | <ul class="ul" id="Sensors_Overview_1__ul_vzm_k1j_pcc_rajearor_09-03-24-1333-23-71"><br>                    <li class="li">提供指示重力方向和大小的三维矢量。</li><br><br>                    <li class="li">通常，该传感器确定设备在空间中的相对方向。</li><br><br>                  </ul> |
    | 持续静止/运动检测器 | `persist_stationary_detect` | `sns_persist_stationary_detect.proto` | 当设备静止至少 5 s 时报告事件。 |
    | 持久运动检测器 | `persist_motion_detect` | `sns_persist_motion_detect.proto` | 当设备处于运动状态至少 5 s 时报告事件。 |
    | 设备方向 | `device_orient` | `sns_device_orient.proto` | 报告设备是处于纵向模式还是横向模式。 |
    | 地磁旋转矢量 (RV) | `geomag_rv` | `sns_geomag_rv.proto` | 报告设备相对于东-北-天 (ENU) 坐标系的方向；通过整合加速度计和地磁传感器的读数获得。 |
    | 旋转矢量 | `rotv` | `sns_rotv.proto` | <ul class="ul" id="Sensors_Overview_1__ul_ymm_p1j_pcc_rajearor_09-03-24-1334-50-616"><br>                    <li class="li">报告设备相对于东-北-天 (ENU) 坐标系的方向。</li><br><br>                    <li class="li">通过集成加速度计、陀螺仪和地磁传感器读数来获取方向。</li><br><br>                  </ul> |
    | 设备位置分类器 | `device_position_classi fier` | `sns_dpc.proto` | 提供设备位置信息。 |
    | 活动识别算法 | `activity_recognition` | `sns_activity_recognition.proto` | 测定相对静止、步行、跑步、自行车、汽车、非机动车、机动车状态和分类。 |
    | 距离界限 | `distance_bound` | `sns_distance_bound.proto` | <ul class="ul" id="Sensors_Overview_1__ul_lnw_4n1_ybc_rajearor_07-03-24-1445-19-926"><br>                    <li class="li">以米为单位跟踪距离，并在覆盖请求的距离时向客户端报告。</li><br><br>                    <li class="li">客户端可以在到达最终距离之前随时查询累积距离。</li><br><br>                  </ul> |

QSH 提供了一个框架来使用来自各种传感器的数据。传感器数据在物联网、游戏、健康和健身等领域非常实用。一个设备可以有多个给定类型的传感器。例如，翻盖手机在两个平面上各放置一个加速度计。

已发布的属性或功能可区分每个加速度传感器。您可以使用 QSH 客户端 API 访问平台上传感器的可用性、属性和功能。使用相同的 QSH 客户端 API 从 QSH 框架获取传感器数据。

QSH 框架 API 包括 QSH 客户端 API 和传感器 API，从而可以执行以下传感器相关任务：

- 识别可在开发套件上使用的传感器。
- 利用属性（例如支持的采样率、最大范围、制造商、电源要求和分辨率）定义传感器的功能。
- 要根据配置收集和提供数据，可启用具有指定采样率的传感器。

Last Published: Dec 03, 2024

[Next Topic
入门指南](https://docs.qualcomm.com/bundle/publicresource/80-70015-7SC/topics/get_started.md)