本文介绍了一些ST MEMS运动传感器中内置的嵌入式可编程功能,特别是有限状态机(FSM)、机器学习核心(MLC)和智能传感器处理单元(ISPU)。

1.简介

ST MEMS运动传感器具有两种类型的嵌入式特征。这两个功能主要集中在传感器中运行数据处理,而不是在MCU中运行。这使得系统的功耗更低。嵌入式可配置功能(例如,唤醒、自由落体、4D/6D方位)存在于我们的大多数运动传感器中。可以主要使用阈值和持续时间来调整它们。然而,正如名称所示,这些功能只能配置,并且不可能对自定义数据处理进行编程。最近的ST MEMS运动传感器嵌入了可编程功能,如有限状态机(FSM)、机器学习核心(MLC)或智能传感器处理单元(ISPU),以将自定义数据处理纳入传感器。知道了这一点,我们有三种主要方法来运行基于以下列表和图片中描述的传感器数据的自定义嵌入式数据处理:

  • 标准方法-MCU读取传感器提供的原始数据,并在MCU内部进行所需的处理,
  • 可编程逻辑方法-以特定处理模型的最低功耗为目标。MCU在触发中断时读取模型结果和可能的原始数据,
  • 完全可编程的DSP方法-任何自定义代码(考虑到计算和编译器的限制)都可以在传感器内运行,MCU从传感器中读取处理后的数据。

 
一般来说,使用可编程逻辑或完全可编程DSP方法为应用带来以下优点:

  • 嵌入式功能的功耗明显低于在MCU内运行相同功能的功耗
  • 从传感器读取的数据可能仅限于触发中断时的事件->MCU在其余时间可以处于睡眠模式
  • 传感器和MCU之间的I²C/SPI总线上的流量减少
  • 卸载MCU-处理时间可以用于不同的目的,也可以使用价格较低的MCU
在本文中,我们简要介绍了嵌入式可编程功能:FSM、MLC(均为可编程逻辑方法)和ISPU(完全可编程DSP方法),以帮助您选择最适合您的应用程序的功能。

2.有限状态机

有限状态机是一种行为模型,由有限数量的状态组成,状态之间有特定的转换,类似于能够处理内部和外部数据的流程图(如果传感器集线器可用)。有两种类型的状态-重置/下一个条件(RNC)和命令(CMD)。RNC类型的状态由两个条件组成,一个是重置状态机,另一个是继续程序流。RNC状态的详细描述如下图所示。评估的第一个条件被重置。如果结果为true,则重置状态机,否则评估下一个条件。如果满足下一个条件,流程将继续到下一个状态,否则流程将暂停,直到下一个样本到达,并使用新样本执行评估(重置和下一个情况)。重置/下一个状态类型的条件示例包括:无操作、定时器、与阈值的比较等。第二种状态类型(CMD)执行命令以修改程序在流控制和输出方面的行为。命令的示例有:停止执行、重置指针设置/重置等。当达到结束状态或执行某些特定命令时,会生成FSM的中断。可以并行运行多个状态机。下图显示了一个基于加速度计数据的简单唤醒示例。

有限状态机方法最适合需要识别用户定义手势模式的应用程序。
最新的带FSM的ST传感器包括自适应自配置(ASC)。这意味着FSM中断可以用于触发设备设置更改(包括ODR、FS、BW、电源模式和FIFO),因此MCU可以保持在睡眠模式。
在ST的GitHub存储库中查找有关有限状态机功能的更多信息。此存储库包括应用程序和配置示例。应用示例可用于各种传感器,并准备上传到传感器中并进行评估。配置示例的重点是提供信息,以使用ST提供的不同工具配置和评估自己的有限状态机。主要软件是Unico GUI,提供了开发FSM的专用工具。对于创建的FSM配置的评估,根据使用的评估硬件,可以将Unico GUI或AlgoBuilder与Unicleo GUI一起使用。

支持的传感器

  • 消费者:LSM6DSO、LSM6DSOX、LSM6DS-O32、LSM6DSO32X、LSM6DSL、LSM6DSTRX、LSM6DV16X、LSM6DSM V16BX、LIS2DUX12和LIS2DUXS12
  • 工业:ISM330DHCX,IIS2ICLX
  • 汽车:ASM330LHHX

3.机器学习核心(MLC)

机器学习核心由一组可配置参数(也称为特征)和决策树组成。决策树表示为由两种类型的节点(内部节点和叶)组成的二叉树。决策树的内部节点是一个具有子节点的节点。由于MLC内部的决策树是一个二叉树,因此子级的数量是两个。内部节点代表决策树的一部分,在决策树中,根据原始传感器数据自动计算的统计参数与阈值(如果然后是其他)进行比较,以选择下一条路径,该路径可以是真路径,也可以是假路径。决策树的叶节点是一个节点,它没有任何子节点,并且包含一个用户定义的类-结果。下面的图片中可以看到决策树的简要描述,其中包含仅使用加速度计数据的活动/不活动示例。
与决策树内部节点内的阈值进行比较的统计参数是用户在定义的时间窗口内从可用的传感器数据中选择的参数(例如,均值、方差等),包括内部和外部数据(如果传感器集线器可用)。
用户选择的参数在决策树训练过程中进行评估。在训练之后,只有统计上相关的参数被包括在最终决策树中。

为了利用机器学习的核心能力,有必要使用监督学习方法。这包括以下步骤:

  • 定义要识别的类,同时涵盖所有可能的选项
  • 为每个类记录足够数量的训练数据
  • 为每个类选择不同的参数(这可能是一个迭代过程,因为不能保证在第一次迭代中找到最合适的参数)
  • 使用相关软件工具创建决策树
  • 将经过训练的决策树转换为要加载到传感器中的配置

ST的MEMS评估软件包Unico GUI包括一个MLC工具,该工具指导用户完成创建决策树的整个过程,从标记数据日志到创建特定传感器的配置文件。
合适的应用是那些可以通过遵循归纳方法来实现的应用,该方法涉及从观测中搜索模式。这包括:活动识别、健身活动识别、运动强度检测、振动强度检测、携带位置识别、上下文感知等应用。
有关启用MLC的传感器的更多信息,请访问st.com/MLC或st的MLC GitHub存储库。MLC存储库包括可供评估的各种传感器的应用程序示例,以及使用不同ST硬件和软件工具的配置示例,以指导您完成决策树的制定过程。主要软件是为MLC开发提供专用工具的Unico GUI。对于创建的MLC配置的评估,可以根据使用的评估硬件使用Unico GUI或AlgoBuilder和Unicleo GUI。

支持的传感器

  • 消费者:LSM6DSOX、LSM6DSO32X、LSM6DSRX、LSM6DST16X、LSM6dsm16BX、LIS2DUX12、LIS2DUXS12
  • 工业:ISM330DHCX,IIS2ICLX
  • 汽车:ASM330LHHX

4.智能传感器处理单元(ISPU)

ISPU是一种基于STRED架构的紧凑、超低功耗和高性能可编程内核,STRED架构是意法半导体开发的专有架构。该核心允许以多达30种独立的用户定义算法处理内部(加速度计、陀螺仪和温度)和外部(通过传感器集线器连接到传感器)数据。每次从算法29开始直到算法0对新的数据集进行采样时,都执行算法。ISPU由两个独立的RAM支持——32 KB用于代码,8 KB用于可变数据,时钟可以设置为以5或10 MHz运行。
下图包含一个描述数据处理以及传感器与微控制器和外部传感器连接的方案。

ISPU可以运行C语言算法,这些算法可以由ISPU工具链编译,也可以使用NanoEdge AI Studio(为ISM330ISN提供)生成异常检测库。X-CUBE-ISPU软件包包括准备评估的示例(包括校准算法、传感器融合、手腕解决方案等)、用于新的自定义嵌入式功能的空白模板项目、与Unicleo一起使用的异常检测项目和数据日志固件的集成示例。X-CUBE-ISPU软件包可在st.com或st的GitHub页面上找到。对于由ISPU工具链编译的ISPU配置的评估,可以将AlgoBuilder与Unicleo GUI一起用于选定的评估硬件。
有关ISPU传感器系列的更多信息,请访问st.com/ISPU。

支持的传感器

  • 消费者:LSM6DSO16IS
  • 工业:ISM330IS、ISM330ISN
  • 汽车:-

在这篇文章中,我们描述了一些ST MEMS运动传感器内置的嵌入式可编程功能及其在最终应用中的优势。STMicroelectronics是市场上唯一一家提供所有讨论功能的供应商,允许客户在传感器内嵌入自定义数据处理。由于引脚的兼容性,目前使用标准方法的客户可以很容易地升级解决方案,并利用嵌入式可编程功能所能提供的优势。如果您想了解更多信息并了解我们完整的MEMS传感器产品组合,请访问科技/微机电系统