传感器融合

什么是传感器融合?

传感器融合是一种智能地将来自多种传感器的数据合并以期增强应用或系统性能的软件。合并来自多种传感器的数据可以改善单独的传感器在计算准确的位置和方向信息时效率低下的情况。

过去数年中,MEMS 传感器已成为电子系统中重要的基本组成部分。 当前,所有类型的移动设备都支持常见的 MEMS 传感器组合,以便支持一些应用,如屏幕旋转、手势识别、计步以及个人导航。 由于移动设备市场不断地促使人们关注传感器融合,通过诸如传感器融合等方法增加产品价值的过程是作为传感器供应商的 Kionix 取得成功核心。

Kionix 传感器融合解决方案

Kionix 传感器融合解决方案极其灵活,既提供硬件配置(意味着该软件在嵌入式微控制器上运行),也提供软件配置(意味着该软件在应用程序处理器上运行)。在各种各样的多种传感器组合中,该解决方案提供了无与伦比的可扩展性。另外,Kionix 传感器融合支持多种传感器类型的组合(加速度计-地磁传感器、加速度计-陀螺仪以及加速度计-地磁传感器-陀螺仪),支持客户的多层次产品线战略,甚至还支持其它厂商生产的器件。

Kionix 硬件解决方案Kionix 软件解决方案

从定点微控制器的 RTOS 系统到 32 位浮点手机 OS(如 Android 和 Windows 8),Kionix 传感器融合还可以跨多种操作系统扩展。 它包括最先进的电源管理技术,可帮助设计人员以最小的开销管理传感器交互及数据处理,实现了无与伦比的低功耗和高性能。

Kionix 传感器融合甚至支持第三方软件或定制开发的软件以便增强运动处理和应用特定的功能,并且 Kionix 向符合条件的客户提供全部源代码,还提供直接支持及 BSP(开发板支持包),在将来 Kionix 将提供 RF IC。利用 Kionix 传感器融合的设计人员将能够校准、补偿以及纠正偏移和异常情况;管理传感器功耗以延长电池寿命;防止不同类型的传感器之间出现干扰。 Kionix 传感器融合为客户提供他们盼望已久的灵活性和性能,这也让它成为市场上最强大的组合。

Kionix 软件库提供:

加速度计

  • MIPS 最低的最精简配置
  • 设备方向(屏幕、盒子的 6 个面)
  • 计步器
  • 运动唤醒"启动开关"

加速度计/地磁传感器

  • 适合大多数智能手机的主要配置
  • 重力补偿型地磁传感器
  • 软/硬磁场抑制的高算法复杂度
  • 去除"8 字形"最终用户校准的 IP
  • 对于拥有 3MIPS 计算能力的传感器,电流消耗为~600uA

加速度计/地磁传感器/陀螺仪

  • 适合高端智能手机、平板电脑、Win8 平板机的配置
  • 可加快响应速度并且提高精度的高采样率
  • 不受外部环境效应影响的陀螺仪
  • 适用于电源管理、零点校准和 LBS 的 IP
  • 对于拥有 8-10MIPS 计算机能力的传感器,电流消耗 <6mA

Kionix 软件解决方案/Android 传感器硬件抽象层架构

Kionix 的 Android 传感器库切实实现了 Google 为 Android 系统指定的传感器硬件抽象层 (HAL)。 它形成了处于低级内核驱动程序与高级 Android java 框架之间的中间层。 Kionix 传感器库实现了传感器融合,将来自加速度计、地磁传感器和陀螺仪的输入合并成一个复合 3D 方向输出。 该库包括电源状态优化;不需要使用的传感器设定到一种低功耗模式以便节省设备电池的电量。 该库的内部状态管理模块还在启动 3D 方向输出时执行数据速率仲裁。

解决方案架构

Kionix 软件解决方案包括 C++ 库和关联的头文件,库的完整源代码和重构库的说明也包括在其中。 该库包含一个有效的传感器硬件抽象层实现,支持实体器件加速度计、地磁传感器和陀螺仪。 可以直接使用该库在 Android 设备上提供 3D 方向输出。

另外,该库的接口导出一个面向对象的应用程序接口,可用于访问实体传感器(陀螺仪、罗盘、加速度计)以及通过 Kionix 传感器融合实现生成的合成传感器。 软件生成的合成传感器的类型包括方向、(参见 Android 文档)、旋转矢量、线性加速度和重力。 该接口允许 Android 设备供应商将 Kionix 解决方案和现有的传感器管理软件(例如现有的支持光照、温度和压力传感器的硬件抽象层)相集成。

Kionix 软件解决方案完全兼容 Android 事件规范和当前 CCD"Android 4.0 兼容性定义"。 以下为具体的合规项:

  • 支持的传感器类型包括:
    • SENSOR.TYPE_ACCELEROMETER(实体,单位为 m/s^2)
    • SENSOR.TYPE_MAGNETIC_FIELD(实例,单位为 micro-Tesla)
    • SENSOR.TYPE_GYROSCOPE(实体,单位为 rad/s)
    • SENSOR.TYPE_GRAVITY(合成,单位为 m/s^2)
    • SENSOR.TYPE_LINEAR_ACCELERATION(合成,单位为 m/s^2)
    • SENSOR.TYPE_ROTATION_VECTOR(合成,无量纲)
      • 依据 Android 规范实现 – X、Y 和 Z 字段映射到具有正 W 组件值的正规化四元数的 X、Y 和 Z 字段。
    • SENSOR.TYPE_ORIENTATION(合成,单位为度)
      • 依据 Android 规范作为方位角、俯仰角和滚动角(单位为度)实现。
  • 所有受支持传感器的输出都与 SensorEvent API 定义的坐标系统匹配。
  • 所有传感器类型(实体和合成)都支持 Accuracy 事件字段。
  • 所有设备类型(实体和合成)都支持 Timestamp 字段。
    • 首选 Kionix 实现将数据就绪中断用于每种实体传感器,这样可以生成非常精确的时间戳对该中断做出响应。 
    • 加速度计和陀螺仪传感器支持定期数据流,为验证时间戳精度提供了更多信息。
  • 依据"Android 4.0 兼容性定义" 第 7.3 节,
    • 软件实现提供受支持传感器的列表
    • 对于所有其它传感器应用程序接口,软件实现的行为都符合逻辑。 尤其是,
      • 在应用程序试图注册监听器时,实现将返回 TRUE 或 FALSE 对其做出响应
      • 如果对应的传感器不存在,就不调用传感器监听器,并且
      • 支持电源管理 – 可将该实现配置为将没有活动传感器监听器的所有传感器断电或者置于睡眠模式。

内核接口

Kionix 传感器库必须与加速度计、陀螺仪和地磁传感器的内核驱动程序连接。 首选类型的内核驱动程序是具有用于进行控制(例如,启用、数据速率和偏移)的 sysfs 属性的输入事件驱动程序。 这类驱动程序是 Linux 内核中传感器驱动程序的实际标准。 使用这类驱动程序的优点包括复杂性更低、可靠性高并且透明性增强。 如果某个输入事件驱动程序不可用于某一具体的传感器芯片,Kionix 库可以扩展以便与任何类型的驱动程序连接。

支持的集成模型

  • 基于 AP:原始流式传感器数据(处理全部在应用处理器上执行)。
  • 基于 HUB:专用小 Hub 微处理器上的独立传感器融合软件。