- 可配置为串行总线的 GPIO:串行外设接口(SPI)、集成电路总线(I2C)、改进型 I2C(I3C)和通用异步收发器(UART)。
- 低功耗模式下的串行总线。
- 专用本地内存,在 QSH 中也称为 island。
- 识别开发套件上可用的传感器。
- 使用属性确定传感器能力,例如支持的采样率、最大量程、制造商、功耗要求和分辨率。
- 根据配置采集并提供数据,从而以指定的采样率启用传感器。
基于硬件的传感器
基于硬件的传感器是物理传感器,通过直接测量特定环境属性来采集数据,例如加速度、磁场、气压、湿度、光照和角速度。 下表列出了 QSH 框架支持的基于硬件的传感器:| 传感器名称 | 传感器类型 | 描述 | Proto API |
|---|---|---|---|
| 加速度计 | accel | 测量施加到设备的 3 个物理轴(x、y 和 z)上的加速度,单位为米/秒平方(m/s2) | 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)上的环境磁场,单位为微特斯拉 | 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)
| 传感器名称 | 传感器类型 | Proto API | 描述 |
|---|---|---|---|
| 绝对运动检测器 | amd | sns_amd.proto |
|
| 相对运动检测器 | rmd | sns_rmd.proto | 当设备相对于重力方向没有明显移动时报告静止状态。 |
| 显著运动检测器(SMD) | sig_motion | sns_sig_motion.proto |
|
| 计步器 | pedometer | sns_pedometer.proto | 向客户端报告步数。 |
| 步伐检测器 | step_detect | sns_step_detect.proto | 检测步伐并为每一步生成一个事件。 |
| 倾斜检测器 | tilt | sns_tilt.proto | 每次发生倾斜时生成一个事件。在 2 秒窗口内,平均重力方向自激活或传感器上次生成事件以来至少变化 35 度,即定义为一次倾斜事件。 |
| 倾斜唤醒 | tilt_to_wake | sns_tilt_to_wake.proto | 当拿起的设备处于特定的俯仰角和横滚角范围内时,检测明显的设备旋转手势事件。 |
| 陀螺仪校准 | gyro_cal | sns_gyro_cal.proto |
|
| 磁力计校准 | mag_cal | sns_mag_cal.proto |
|
| 游戏旋转矢量(GRV) | game_rv | sns_game_rv.proto |
|
| 重力/线性加速度 | gravity | sns_gravity.proto |
|
| 持续静止检测器 | persist_stationary_detect | sns_persist_stationary_detect.proto | 当设备静止至少 5 秒时报告事件。 |
| 持续运动检测器 | persist_motion_detect | sns_persist_motion_detect.proto | 当设备运动至少 5 秒时报告事件。 |
| 设备方向 | device_orient | sns_device_orient.proto | 报告设备处于纵向模式还是横向模式。 |
| 地磁旋转矢量 | geomag_rv | sns_geomag_rv.proto | 报告设备相对于东、北、上(ENU)坐标系的方向;通过对加速度计和磁力计读数的积分获得。 |
| 旋转矢量(RV) | rotv | sns_rotv.proto |
|
| 设备位置分类器 | device_position_classifier | sns_dpc.proto | 提供设备位置信息,指明设备处于水平位置还是相对于水平面成一定角度。 |
| 活动识别算法 | activity_recognition | sns_activity_recognition.proto | 确定相对静止状态和分类,例如步行、跑步、骑车、汽车、非机动车和机动车。 |
| 距离界限 | distance_bound | sns_distance_bound.proto |
|

