摘要 — MEMS传感器正在涌入市场,这些传感器成本效益高,易于集成在场景感知解决方案中,提供有关其所处场景的重要信息。这种多用途感测技术有许多用例:MEMS传感器在穿戴物联网设备中用于检测用户活动和手势;工业MEMS传感器在工厂维护和故障预测中发挥重要作用,有助于提高工厂生产效率;MEMS对车辆安全性和自动驾驶发展至关重要。
传感器数据应用是许多应用场景的基础,各种传感器的大规模应用促使传感器成本下降。成本降低使同一设备安装多个同类型传感器成为可能,随着同类型传感器的数量增多,不同类型的传感器和传感器总数也在不断增长。为了获得更可靠的信息,实现更高质量的应用,业内开发出了传感器数据融合技术,提高了惯性模块的应用规模,甚至为更多应用打开了大门。
终端设备应用只有传感器还不够,还需要智能单元来处理信息和理解场景。应用处理器负责读取数据和处理信息,随着传感器数量增加,应用处理器的任务变得更加复杂。同样,连接传感器和应用处理器的总线也变得至关重要,大量的交换数据可能造成数据拥堵,总线性能下降。
最初,有人认为更快的总线和性能更高的处理器可以解决这些问题。第二阶段是“智能传感器”一词被滥用,把通用低功耗处理器从板上移到传感器内部,做成一个系统级封装解决方案,这种通过增加一个微控制器的方式有效增加传感器数量的简单方法被称为“智能”。
在设计开发LSM6DSOX时,我们决定不走寻常路,将所有已知应用在概念上分为两大类别:一种是用归纳算法实现的效果更好的应用;另一种是用演绎算法实现的效果更符合预期的应用。分析实际数据模式同时保持最高统计性能,是我们评估最佳设计方案的方法标准。
最后,为了便于执行演绎算法,我们决定在惯性单元内嵌入一个有多达16个有限状态机的数字模块;针对归纳型算法,我们实现了一个机器学习模块,该模块能够与现有人工智能工具互动,采用监督式机器学习方法,在传感器内部对复杂计算进行预处理,分类器能够分析实时数据,识别活动和场景并进行分类,参数和功能具有很高的可配置性。
这种传感器数据分析专用智能技术可以执行复杂算法,把很大一部分计算负荷转交给传感器处理,使其它设备保持空闲状态。通过这种方式,可以最大程度地降低功耗,减轻通信总线负担,并最大程度地提高系统的整体能效。
传感器仅在必要时才唤醒其它设备和应用处理器,通过这种方式,可以大幅降低功耗,我们认为,仅LSM6DSOX这些新功能就可以创造出新的应用。
I. 前言
在过去的十年中,物联网应用规模呈指数增长。大多数物联网应用都涉及在可能没有电源的位置测量物理数值。 增装电源线通常是行不通的,因此,电池是首选供电方案,并且无线数据传输是必选。物联网相关应用至少需要一个传感器获取数据和一个传输媒介发送数据。电源需要给数据传输媒介和传感器供电。在设计这种类应用时,需要在这个方面做出权衡和取舍:是最大限度延长电池续航时间还是提高数据传输频率?
应用设计者可用一个在市场上有售的重要工具来解决这个折衷难题。这个工具是一个精密的计算单元,可以执行参数测量和数据传输任务,效果和能效都很好,这样的计算单元通常是针对低功耗设计的通用微控制器。对于低功耗应用,无线数据传输比其它处理任务更重要,因此,物联网应用设计策略是,如果其它处理任务允许降低通信速度,则可以将计算单元转移到物联网端。
本文旨在于介绍创新传感器在降低产品功耗方面取得的新进展。意法半导体的新型惯性模块LSM6DSOX允许将算法处理过程全部或部分移至传感器的定制低功耗环境。这种方法具有广泛的可配置性,保证广泛的应用范围。本文结构如下:第一章介绍一个创新的嵌入式算法,并结合应用案例说明其优势。然后用两个章节专门介绍机器学习处理。最后一章介绍一个好用的定制支持软件,用户可以根据需求快速配置软件,创建新应用。
II. 嵌入式算法方案
如前一章所述,简单的物联网应用模型包括发射器/接收器、计算单元、执行器或传感器和电池。
以智能手环为例,智能手环能够识别用户活动,并输出相关活动数据:用户步行多远,乘车多长时间等。当然,智能手环应具有翻腕显示日期和时间的功能。蓝牙低功耗系统芯片[4]是执行传输和控制的关键组件。该解决方案嵌入了完整的蓝牙网络处理器和运行应用程序的应用处理器。应用处理器包括低功耗微控制器、用户程序NVM存储器,数据存储器、编程存储器(NVM镜像)以及通信接口(SPI,I²C等)。从下面给出的系统示例可以大致估算出该解决方案的功率预算。这款内置微控制器的“智能”蓝牙模块通常具有不同的功耗模式,下面列出了最常见的模式:
a) 睡眠模式:此模式用于关闭大多数内部模块或使其处于低功耗状态,最大程度地降低功耗。从此模式返回到正常工作模式需要一些时间(0.5-2 ms)。该模式电流消耗在0.5-2 µA之间。
b) 微控制器工作模式:射频发射器/接收器关闭,微控制器正常工作。 此模式的电流消耗在1-3 mA之间。
c) 射频收发模式:设备处于通信连接状态,功耗为3-20 mA。
我们讨论一下智能手环检测用户活动的用例。假设智能蓝牙模块中的微控制器通过I2C/SPI接口连接惯性模块,传感器数据输出数据速率配置为25Hz。每当嵌入式16 MHz时钟域生成样本时,微控制器就会退出睡眠模式,读取传感器数据并执行活动识别算法。高质量的活动识别算法用例平均需要4 ms的处理时间。蓝牙传输是间歇性的,取决于用户要求(一天一次)。
图1:微控制器从睡眠到唤醒的时序
图1显示了微控制器运行算法时的占空比时序。Tstart是微控制器的唤醒时间,Talgo是算法的执行时间,Todr是传感器两次读取操作的间隔。
下面是总平均电流ITOT的基本计算公式,其中包含各种主要电流消耗参数:
IBUS 是接口总线读取操作消耗的电流;SPI总线的读取电流应小于1 µA,I²C总线约在2-5 µA之间。射频是间歇性传输,所以功耗可以忽略不计。考虑到每个参数取值取其声明范围的中间值,最后得到的ITOT为230 µA。
嵌入式算法是经过重新配置的可以实现“活动识别”,工作电流小于8 µA。这里所说的嵌入式算法与在微控制器上运行的算法在性能和质量上完全相同。嵌入式解决方案的显著优势是在传感器内部生成可用数据,因此不存在IBUS功耗。此外,嵌入式解决方案完全没有微控制器安全退出睡眠状态所需的Tstart时间,当Tstart和IBUS两项参数均为零时,ITOT估算值是200 µA,这意味着,使用相同公式falgo*IUCORE*Talgo计算,算法从微控制器迁移到传感器使功耗降至二十五分之一。
因为意法半导体软件库和客户需求是已知的,并且是合并在一起的,所以,我们的策略是收集最常见的用例,然后将其分为两类。第一类是由非常适合使用有限状态机的算法组成,第二类基于需要统计分析(基于模式分析)并且可以通过决策网(树)有效实现的应用。针对这两大类应用,我们开发出一个覆盖现有算法的“元命令”集,并确保算法具有广泛的可重新配置性,以处理新的自定义需求。最后一步是算法分析,目的是找到最佳的低功耗且有效的算法定制逻辑。在不影响算法性能的情况下,按照特定应用需求简化算法。下面的两个章节介绍这两个模块和元数据。
III. 机器学处理(MLP)
有限状态机是利用本身固有的演绎推理特性:从假设开始,检验达到特定逻辑状态的概率。对于运动检测算法,演绎推理是确定一系列事件是否满足“规则”。这种方法适用于大多数手势检测算法,当然,不能全部适用。例如,手机举起到放下的手势算法可以完全基于以下事实:手机加速度计检测到的重力主要是在同一个轴上,并在一个时间序列后,检测到的重力方向将会变成相反方向。修改一些参数就可以更改手势定义,这些参数包括轴定义、阈值和序列持续时间。步行检测等运动算法几乎不可能通过简单的状态机来定义,因为变量数量会急剧增加,传感器定位、频率、地形和个人行为导致感应信号变化很大。从上一个示例中,可以得出一个更具一般性的概念:虽然手机举起到放下的手势统计方差在一个人群中是较明显的,但是可以进行演绎推理应用设计;而步行动作会引起广泛的统计方差,演绎推理方法应该弃用,而采用归纳推理方法。
机器学习处理的基本原理是允许在芯片上执行数据驱动型算法,开发从输入模式构建模型的能力。在过去的十年中,互联网和物联网爆炸式增长,大量信息产生。 随着数据量急剧增加,数据管理工具也被开发出来,使数据开始有应用价值。MLP解决方案被认为是适合在惯性传感器上执行数据驱动算法。MLP具有很高的可重新配置性,在惯性传感器领域达到了预期效果,可以在超低功耗环境执行算法,适用于耗电量大的产品,例如,物联网算法。
数据挖掘是机器学习的一个重要分支:“数据挖掘是一个综合机器学习、模式识别和统计学的跨学科领域 [1] [2],其目的是发现知识。
数据挖掘工具最后生成一个决策树,应用设计是从一个数据模式集合开始,以在MLP内核上加载决策树结束。用户可以用支持软件管理整个应用设计过程,我们将在下一章介绍支持软件,本章介绍MLP内核背后的基本模块。
图4是机器学习处理内核的整体结构图。
图4:MLP内核整体结构图
从图中不难看出软件层和硬件层之间的边界。该应用设计从传感器数据模式开始,模式是描述MLP内核在运行时必须理解的知识。以活动识别算法为例,MLP从涉及要识别的活动(步行,跑步,运动的车辆,无运动等)的模式开始运行,目的是直接从传感器数据推出当前活动的结果。最多可以将3个传感器的数据配置为算法输入。陀螺仪和加速度计模块位于传感器内部,外部传感器(例如磁力计)的数据可以通过嵌入式I2C控制器读取。输入传感器数据由物理传感器的轴和数值组成(表VI。)。
表I. MLP的输入类型
|
可用输入
|
|
加速度计
|
accX
|
accY
|
accZ
|
轴
|
accV
|
accV2
|
|
幅值
|
陀螺仪
|
GyX
|
gyY
|
gyZ
|
轴
|
gyV
|
gyV2
|
|
幅值
|
外部传感器
|
magX
|
magY
|
magZ
|
轴
|
magV
|
magV2
|
|
幅值
|
要想调理输入数据,还有多个可配置滤波器可用,如下表所示(表VII)。
表II. 内核中的滤波器类型
阶数
|
类型
|
1
|
高通
|
普通IIR
|
2
|
带通
|
普通IIR
|
原始数据和过滤数据都可以设为特征模块的输入,特征模块执行数据的统计计算,输出可以配置成多达19个不同的统计特征。表VIII中列出了可用特征。主要特征集分为触发式和窗口式两类,前者是按照特征事件计算的结果,后者是按照固定时窗间隔统计的结果。尽管所有特征计算结果可以是窗口式或触发式特征集,取决于用户配置,但只有这些特征的子集才可以生成触发信号。
表III:MLP内核的统计特征
特征
|
生成触发
|
平均值
|
否
|
方差
|
否
|
能量
|
否
|
峰到峰
|
否
|
过零
|
否
|
过零触发生成
|
是
|
正过零
|
否
|
正过零触发生成
|
是
|
负过零
|
否
|
负过零触发生成
|
是
|
峰值检波器
|
否
|
峰值检波器触发生成
|
是
|
正峰值检波器
|
否
|
正峰值检波器触发生成
|
是
|
负峰值检波器
|
否
|
负峰值检波器触发生成
|
是
|
最小值
|
否
|
最大值
|
否
|
时长
|
否
|
时钟特征
|
是
|
在特征配置结束时,软件工具(下一章介绍)输出一个配置文件和一个ARFF文件。配置文件安装在惯性单元上用于配置MLP,ARFF文件用于数据挖掘工具,是与MLP处理器芯片匹配的。数据挖掘工具组建ARFF文件,针对特定应用案例优化(或“确定”)选择最佳的特征集,并输出决策树及相关统计性能。
在数据挖掘工具处理和反馈后,可以重新处理数据并优化特征集。
当统计性能符合期望时,可以通过意法半导体软件工具生成的配置文件将决策树加载到MLP内核上。
IV. 支持软件
意法半导体开发出一个使基于统计学/机器学习的方法适合编程的工具,有了这个工具,设备配置过程变得轻松快捷。
这个机器学习处理配置工具是一个扩展版的Unico GUI图形用户界面软件(意法半导体所有MEMS传感器演示板通用 [5])。Unico软件连接基于STM32微控制器的主板[6] [5],实现MEMS传感器与PC GUI之间的通信。该软件以图形和数字形式显示传感器输出,并允许用户保存或全面管理来自设备的数据。
Unico软件允许访问MEMS传感器寄存器,可以快速配置寄存器,并可以直接在设备上轻松测试配置。可以将当前寄存器的配置保存为文本文件,并可以从现有文件中加载配置。这样,可以在几秒钟内重新设置传感器。
基于统计/机器学习的算法要求收集数据日志。使用Unico GUI可以做到这一点。每个数据日志都必须关联预期结果(例如,静止,步行,跑步等)。该工具收集这些数据模式用于计算某些特征。
图8:数据模式表
该工具可为原始数据选择滤波器,选择用过滤数据计算哪些特征,计算结果特征将是决策树的属性。几个步骤后,该工具将生成一个属性关系文件(ARFF)。
图9:配置表
ARFF文件是决策树生成过程的入口。决策树可以由不同的机器学习工具生成。 怀卡托大学开发的软件Weka [7]能够从属性关系文件开始生成决策树。Weka工具可以评估哪些属性适合决策树。通过更改Weka中所有可用参数,可以实现不同的决策树配置。
图10:在Weka里的属性视图
图6:Weka中的决策树生成
在决策树生成后,可以将其上传到意法半导体的软件工具,完成MEMS传感器的寄存器配置。
通过访问传感器寄存器,Unico GUI可以读取决策树输出状态。
V. 应用案例
从第二部分介绍的示例开始,我们做了一些电流消耗测量,选择了一个活动识别算法作为示例。该算法的性能在模式数据库中经过明确评估,而且在普通通用微控制器上运行时电流消耗约为数百微安。利用上一章介绍的支持软件,可以轻松地配置MLP内核,运行该活动识别算法。
表IV:电流要求
电流
|
增加的电流消耗
|
|
电流平均值 [µA]
|
LSM6DSOx的MLP内核
|
7
|
Cortex-M3 STM32L152RE@32MHz
|
240
|
表IX 总结了在Cortex-M3 [8] [9] [10]上运行活动识别算法的电流要求,以及在LSM6DSOx MLP上运行同一算法增加的电流需求。
VI. 结论
世界网络化程度越来越高:联网设备可以交换大量数据。物联网应用依赖于三个关键模块:感知、智能和通信。本文介绍了一种高度可配置的嵌入在惯性传感器中的数字模块。数字模块为传感器增加了智能,可以大幅降低系统级能耗。为了快速开发应用原型,随硬件一起提供了数字模块配置支持软件。上一章的应用案例清楚地表明,数字模块可大幅降低电流消耗。智能传感器是赋能电池续航能力至关重要的新应用的关键技术。
参考文献
[1] S. Sumathi and S.N. Sivanandam: Introduction to Data Mining Principles, Studies in Computational Intelligence (SCI) 29, 1–20 (2006).
[2] V. Sze, Y. H. Chen, J. Einer, A. Suleiman and Z. Zhang, "Hardware for machine learning: Challenges and opportunities," 2017 IEEE Custom Integrated Circuits Conference (CICC), Austin, TX, 2017, pp. 1-8.
[3] V. Sze, "Designing Hardware for Machine Learning: The Important Role Played by Circuit Designers," in IEEE Solid-State Circuits Magazine, vol. 9, no. 4, pp. 46-54 , Fall 2017.
[4] STMicroelectronics, “Bluetooth® low energy wireless system-on-chip,” BlueNRG-2 datasheet, November 2017, [DocID030675 Rev 2].
[5] STMicroelectronics Analog Mems Sensor Application Team , Unico GUI User manual, Rev. 5 October 2016.
[6] STMicroelectronics Technical Staff, STEVAL-MKI109V3 Professional MEMS Tool motherboard for MEMS adapter boards, July 2016
[7] Ian H. Witten, Eibe Frank, and Mark A. Hall. 2011. Data Mining: Practical Machine Learning Tools and Techniques (3rd ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
[8] STMicroelectronics, “Ultra-low-power 32-bit MCU ARM®-based Cortex®-M3 with 512KB Flash, 80KB SRAM, 16KB EEPROM, LCD, USB, ADC, DAC,” STM32L151xE STM32L152xE datasheet, Rev. 9 August 2017.
[9] STMicroelectronics Technical Staff, STM32 Nucleo-64 boards, NUCLEO-XXXXRX NUCLEO-XXXXRX-P data brief, Rev. 10 December 2017.
[10] STMicroelectronics Technical Staff, Sensor and motion algorithm software expansion for STM32Cube , X-CUBE-MEMS1data brief, Rev. 10 November 2017.