【導讀】MEMS傳感器正在涌入市場,這些傳感器成本效益高,易于集成在場景感知解決方案中,提供有關其所處場景的重要信息。這種多用途感測技術有許多用例:MEMS傳感器在穿戴物聯(lián)網(wǎng)設備中用于檢測用戶活動和手勢;工業(yè)MEMS傳感器在工廠維護和故障預測中發(fā)揮重要作用,有助于提高工廠生產(chǎn)效率;MEMS對車輛安全性和自動駕駛發(fā)展至關重要。
傳感器數(shù)據(jù)應用是許多應用場景的基礎,各種傳感器的大規(guī)模應用促使傳感器成本下降。成本降低使同一設備安裝多個同類型傳感器成為可能,隨著同類型傳感器的數(shù)量增多,不同類型的傳感器和傳感器總數(shù)也在不斷增長。為了獲得更可靠的信息,實現(xiàn)更高質(zhì)量的應用,業(yè)內(nèi)開發(fā)出了傳感器數(shù)據(jù)融合技術,提高了慣性模塊的應用規(guī)模,甚至為更多應用打開了大門。
終端設備應用只有傳感器還不夠,還需要智能單元來處理信息和理解場景。應用處理器負責讀取數(shù)據(jù)和處理信息,隨著傳感器數(shù)量增加,應用處理器的任務變得更加復雜。同樣,連接傳感器和應用處理器的總線也變得至關重要,大量的交換數(shù)據(jù)可能造成數(shù)據(jù)擁堵,總線性能下降。
最初,有人認為更快的總線和性能更高的處理器可以解決這些問題。第二階段是“智能傳感器”一詞被濫用,把通用低功耗處理器從板上移到傳感器內(nèi)部,做成一個系統(tǒng)級封裝解決方案,這種通過增加一個微控制器的方式有效增加傳感器數(shù)量的簡單方法被稱為“智能”。
在設計開發(fā)LSM6DSOX時,我們決定不走尋常路,將所有已知應用在概念上分為兩大類別:一種是用歸納算法實現(xiàn)的效果更好的應用;另一種是用演繹算法實現(xiàn)的效果更符合預期的應用。分析實際數(shù)據(jù)模式同時保持最高統(tǒng)計性能,是我們評估最佳設計方案的方法標準。
最后,為了便于執(zhí)行演繹算法,我們決定在慣性單元內(nèi)嵌入一個有多達16個有限狀態(tài)機的數(shù)字模塊;針對歸納型算法,我們實現(xiàn)了一個機器學習模塊,該模塊能夠與現(xiàn)有人工智能工具互動,采用監(jiān)督式機器學習方法,在傳感器內(nèi)部對復雜計算進行預處理,分類器能夠分析實時數(shù)據(jù),識別活動和場景并進行分類,參數(shù)和功能具有很高的可配置性。
這種傳感器數(shù)據(jù)分析專用智能技術可以執(zhí)行復雜算法,把很大一部分計算負荷轉(zhuǎn)交給傳感器處理,使其它設備保持空閑狀態(tài)。通過這種方式,可以最大程度地降低功耗,減輕通信總線負擔,并最大程度地提高系統(tǒng)的整體能效。
傳感器僅在必要時才喚醒其它設備和應用處理器,通過這種方式,可以大幅降低功耗,我們認為,僅LSM6DSOX這些新功能就可以創(chuàng)造出新的應用。
I.前言
在過去的十年中,物聯(lián)網(wǎng)應用規(guī)模呈指數(shù)增長。大多數(shù)物聯(lián)網(wǎng)應用都涉及在可能沒有電源的位置測量物理數(shù)值。 增裝電源線通常是行不通的,因此,電池是首選供電方案,并且無線數(shù)據(jù)傳輸是必選。物聯(lián)網(wǎng)相關應用至少需要一個傳感器獲取數(shù)據(jù)和一個傳輸媒介發(fā)送數(shù)據(jù)。電源需要給數(shù)據(jù)傳輸媒介和傳感器供電。在設計這種類應用時,需要在這個方面做出權衡和取舍:是最大限度延長電池續(xù)航時間還是提高數(shù)據(jù)傳輸頻率?
應用設計者可用一個在市場上有售的重要工具來解決這個折衷難題。這個工具是一個精密的計算單元,可以執(zhí)行參數(shù)測量和數(shù)據(jù)傳輸任務,效果和能效都很好,這樣的計算單元通常是針對低功耗設計的通用微控制器。對于低功耗應用,無線數(shù)據(jù)傳輸比其它處理任務更重要,因此,物聯(lián)網(wǎng)應用設計策略是,如果其它處理任務允許降低通信速度,則可以將計算單元轉(zhuǎn)移到物聯(lián)網(wǎng)端。
本文旨在于介紹創(chuàng)新傳感器在降低產(chǎn)品功耗方面取得的新進展。意法半導體的新型慣性模塊LSM6DSOX允許將算法處理過程全部或部分移至傳感器的定制低功耗環(huán)境。這種方法具有廣泛的可配置性,保證廣泛的應用范圍。本文結構如下:第一章介紹一個創(chuàng)新的嵌入式算法,并結合應用案例說明其優(yōu)勢。然后用兩個章節(jié)專門介紹機器學習處理。最后一章介紹一個好用的定制支持軟件,用戶可以根據(jù)需求快速配置軟件,創(chuàng)建新應用。
II.嵌入式算法方案
如前一章所述,簡單的物聯(lián)網(wǎng)應用模型包括發(fā)射器/接收器、計算單元、執(zhí)行器或傳感器和電池。
以智能手環(huán)為例,智能手環(huán)能夠識別用戶活動,并輸出相關活動數(shù)據(jù):用戶步行多遠,乘車多長時間等。當然,智能手環(huán)應具有翻腕顯示日期和時間的功能。藍牙低功耗系統(tǒng)芯片[4]是執(zhí)行傳輸和控制的關鍵組件。該解決方案嵌入了完整的藍牙網(wǎng)絡處理器和運行應用程序的應用處理器。應用處理器包括低功耗微控制器、用戶程序NVM存儲器,數(shù)據(jù)存儲器、編程存儲器(NVM鏡像)以及通信接口(SPI,I²C等)。從下面給出的系統(tǒng)示例可以大致估算出該解決方案的功率預算。這款內(nèi)置微控制器的“智能”藍牙模塊通常具有不同的功耗模式,下面列出了最常見的模式:
a)睡眠模式:此模式用于關閉大多數(shù)內(nèi)部模塊或使其處于低功耗狀態(tài),最大程度地降低功耗。從此模式返回到正常工作模式需要一些時間(0.5-2 ms)。該模式電流消耗在0.5-2 µA之間。
b)微控制器工作模式:射頻發(fā)射器/接收器關閉,微控制器正常工作。 此模式的電流消耗在1-3 mA之間。
c)射頻收發(fā)模式:設備處于通信連接狀態(tài),功耗為3-20 mA。
我們討論一下智能手環(huán)檢測用戶活動的用例。假設智能藍牙模塊中的微控制器通過I2C/SPI接口連接慣性模塊,傳感器數(shù)據(jù)輸出數(shù)據(jù)速率配置為25Hz。每當嵌入式16 MHz時鐘域生成樣本時,微控制器就會退出睡眠模式,讀取傳感器數(shù)據(jù)并執(zhí)行活動識別算法。高質(zhì)量的活動識別算法用例平均需要4 ms的處理時間。藍牙傳輸是間歇性的,取決于用戶要求(一天一次)。
圖1:微控制器從睡眠到喚醒的時序
圖1顯示了微控制器運行算法時的占空比時序。Tstart是微控制器的喚醒時間,Talgo是算法的執(zhí)行時間,Todr是傳感器兩次讀取操作的間隔。
下面是總平均電流ITOT的基本計算公式,其中包含各種主要電流消耗參數(shù):
ITOT = IBUS + ISLEEP + falgo * IUCORE * ( Tstart/2 + Talgo )
IBUS 是接口總線讀取操作消耗的電流;SPI總線的讀取電流應小于1 µA,I²C總線約在2-5 µA之間。射頻是間歇性傳輸,所以功耗可以忽略不計??紤]到每個參數(shù)取值取其聲明范圍的中間值,最后得到的ITOT為230 µA。
嵌入式算法是經(jīng)過重新配置的可以實現(xiàn)“活動識別”,工作電流小于8 µA。這里所說的嵌入式算法與在微控制器上運行的算法在性能和質(zhì)量上完全相同。嵌入式解決方案的顯著優(yōu)勢是在傳感器內(nèi)部生成可用數(shù)據(jù),因此不存在IBUS功耗。此外,嵌入式解決方案完全沒有微控制器安全退出睡眠狀態(tài)所需的Tstart時間,當Tstart和IBUS兩項參數(shù)均為零時,ITOT估算值是200 µA,這意味著,使用相同公式falgo*IUCORE*Talgo計算,算法從微控制器遷移到傳感器使功耗降至二十五分之一。
因為意法半導體軟件庫和客戶需求是已知的,并且是合并在一起的,所以,我們的策略是收集最常見的用例,然后將其分為兩類。第一類是由非常適合使用有限狀態(tài)機的算法組成,第二類基于需要統(tǒng)計分析(基于模式分析)并且可以通過決策網(wǎng)(樹)有效實現(xiàn)的應用。針對這兩大類應用,我們開發(fā)出一個覆蓋現(xiàn)有算法的“元命令”集,并確保算法具有廣泛的可重新配置性,以處理新的自定義需求。最后一步是算法分析,目的是找到最佳的低功耗且有效的算法定制邏輯。在不影響算法性能的情況下,按照特定應用需求簡化算法。下面的兩個章節(jié)介紹這兩個模塊和元數(shù)據(jù)。
III.機器學處理(MLP)
有限狀態(tài)機是利用本身固有的演繹推理特性:從假設開始,檢驗達到特定邏輯狀態(tài)的概率。對于運動檢測算法,演繹推理是確定一系列事件是否滿足“規(guī)則”。這種方法適用于大多數(shù)手勢檢測算法,當然,不能全部適用。例如,手機舉起到放下的手勢算法可以完全基于以下事實:手機加速度計檢測到的重力主要是在同一個軸上,并在一個時間序列后,檢測到的重力方向?qū)兂上喾捶较?。修改一些參?shù)就可以更改手勢定義,這些參數(shù)包括軸定義、閾值和序列持續(xù)時間。步行檢測等運動算法幾乎不可能通過簡單的狀態(tài)機來定義,因為變量數(shù)量會急劇增加,傳感器定位、頻率、地形和個人行為導致感應信號變化很大。從上一個示例中,可以得出一個更具一般性的概念:雖然手機舉起到放下的手勢統(tǒng)計方差在一個人群中是較明顯的,但是可以進行演繹推理應用設計;而步行動作會引起廣泛的統(tǒng)計方差,演繹推理方法應該棄用,而采用歸納推理方法。
機器學習處理的基本原理是允許在芯片上執(zhí)行數(shù)據(jù)驅(qū)動型算法,開發(fā)從輸入模式構建模型的能力。在過去的十年中,互聯(lián)網(wǎng)和物聯(lián)網(wǎng)爆炸式增長,大量信息產(chǎn)生。 隨著數(shù)據(jù)量急劇增加,數(shù)據(jù)管理工具也被開發(fā)出來,使數(shù)據(jù)開始有應用價值。MLP解決方案被認為是適合在慣性傳感器上執(zhí)行數(shù)據(jù)驅(qū)動算法。MLP具有很高的可重新配置性,在慣性傳感器領域達到了預期效果,可以在超低功耗環(huán)境執(zhí)行算法,適用于耗電量大的產(chǎn)品,例如,物聯(lián)網(wǎng)算法。
數(shù)據(jù)挖掘是機器學習的一個重要分支:“數(shù)據(jù)挖掘是一個綜合機器學習、模式識別和統(tǒng)計學的跨學科領域 [1] [2],其目的是發(fā)現(xiàn)知識。
數(shù)據(jù)挖掘工具最后生成一個決策樹,應用設計是從一個數(shù)據(jù)模式集合開始,以在MLP內(nèi)核上加載決策樹結束。用戶可以用支持軟件管理整個應用設計過程,我們將在下一章介紹支持軟件,本章介紹MLP內(nèi)核背后的基本模塊。
圖4是機器學習處理內(nèi)核的整體結構圖。
圖4:MLP內(nèi)核整體結構圖
從圖中不難看出軟件層和硬件層之間的邊界。該應用設計從傳感器數(shù)據(jù)模式開始,模式是描述MLP內(nèi)核在運行時必須理解的知識。以活動識別算法為例,MLP從涉及要識別的活動(步行,跑步,運動的車輛,無運動等)的模式開始運行,目的是直接從傳感器數(shù)據(jù)推出當前活動的結果。最多可以將3個傳感器的數(shù)據(jù)配置為算法輸入。陀螺儀和加速度計模塊位于傳感器內(nèi)部,外部傳感器(例如磁力計)的數(shù)據(jù)可以通過嵌入式I2C控制器讀取。輸入傳感器數(shù)據(jù)由物理傳感器的軸和數(shù)值組成(表VI。)。
表I. MLP的輸入類型
要想調(diào)理輸入數(shù)據(jù),還有多個可配置濾波器可用,如下表所示(表VII)。
表II. 內(nèi)核中的濾波器類型
原始數(shù)據(jù)和過濾數(shù)據(jù)都可以設為特征模塊的輸入,特征模塊執(zhí)行數(shù)據(jù)的統(tǒng)計計算,輸出可以配置成多達19個不同的統(tǒng)計特征。表VIII中列出了可用特征。主要特征集分為觸發(fā)式和窗口式兩類,前者是按照特征事件計算的結果,后者是按照固定時窗間隔統(tǒng)計的結果。盡管所有特征計算結果可以是窗口式或觸發(fā)式特征集,取決于用戶配置,但只有這些特征的子集才可以生成觸發(fā)信號。
表III:MLP內(nèi)核的統(tǒng)計特征
在特征配置結束時,軟件工具(下一章介紹)輸出一個配置文件和一個ARFF文件。配置文件安裝在慣性單元上用于配置MLP,ARFF文件用于數(shù)據(jù)挖掘工具,是與MLP處理器芯片匹配的。數(shù)據(jù)挖掘工具組建ARFF文件,針對特定應用案例優(yōu)化(或“確定”)選擇最佳的特征集,并輸出決策樹及相關統(tǒng)計性能。
在數(shù)據(jù)挖掘工具處理和反饋后,可以重新處理數(shù)據(jù)并優(yōu)化特征集。
當統(tǒng)計性能符合期望時,可以通過意法半導體軟件工具生成的配置文件將決策樹加載到MLP內(nèi)核上。
IV.支持軟件
意法半導體開發(fā)出一個使基于統(tǒng)計學/機器學習的方法適合編程的工具,有了這個工具,設備配置過程變得輕松快捷。
這個機器學習處理配置工具是一個擴展版的Unico GUI圖形用戶界面軟件(意法半導體所有MEMS傳感器演示板通用 [5])。Unico軟件連接基于STM32微控制器的主板[6] [5],實現(xiàn)MEMS傳感器與PC GUI之間的通信。該軟件以圖形和數(shù)字形式顯示傳感器輸出,并允許用戶保存或全面管理來自設備的數(shù)據(jù)。
Unico軟件允許訪問MEMS傳感器寄存器,可以快速配置寄存器,并可以直接在設備上輕松測試配置??梢詫斍凹拇嫫鞯呐渲帽4鏋槲谋疚募⒖梢詮默F(xiàn)有文件中加載配置。這樣,可以在幾秒鐘內(nèi)重新設置傳感器。
基于統(tǒng)計/機器學習的算法要求收集數(shù)據(jù)日志。使用Unico GUI可以做到這一點。每個數(shù)據(jù)日志都必須關聯(lián)預期結果(例如,靜止,步行,跑步等)。該工具收集這些數(shù)據(jù)模式用于計算某些特征。
圖8:數(shù)據(jù)模式表
該工具可為原始數(shù)據(jù)選擇濾波器,選擇用過濾數(shù)據(jù)計算哪些特征,計算結果特征將是決策樹的屬性。幾個步驟后,該工具將生成一個屬性關系文件(ARFF)。
圖9:配置表
ARFF文件是決策樹生成過程的入口。決策樹可以由不同的機器學習工具生成。 懷卡托大學開發(fā)的軟件Weka [7]能夠從屬性關系文件開始生成決策樹。Weka工具可以評估哪些屬性適合決策樹。通過更改Weka中所有可用參數(shù),可以實現(xiàn)不同的決策樹配置。
圖10:在Weka里的屬性視圖
圖6:Weka中的決策樹生成
在決策樹生成后,可以將其上傳到意法半導體的軟件工具,完成MEMS傳感器的寄存器配置。
通過訪問傳感器寄存器,Unico GUI可以讀取決策樹輸出狀態(tài)。
V.應用案例
從第二部分介紹的示例開始,我們做了一些電流消耗測量,選擇了一個活動識別算法作為示例。該算法的性能在模式數(shù)據(jù)庫中經(jīng)過明確評估,而且在普通通用微控制器上運行時電流消耗約為數(shù)百微安。利用上一章介紹的支持軟件,可以輕松地配置MLP內(nèi)核,運行該活動識別算法。
表IV:電流要求
表IX 總結了在Cortex-M3 [8] [9] [10]上運行活動識別算法的電流要求,以及在LSM6DSOx MLP上運行同一算法增加的電流需求。
VI.結論
世界網(wǎng)絡化程度越來越高:聯(lián)網(wǎng)設備可以交換大量數(shù)據(jù)。物聯(lián)網(wǎng)應用依賴于三個關鍵模塊:感知、智能和通信。本文介紹了一種高度可配置的嵌入在慣性傳感器中的數(shù)字模塊。數(shù)字模塊為傳感器增加了智能,可以大幅降低系統(tǒng)級能耗。為了快速開發(fā)應用原型,隨硬件一起提供了數(shù)字模塊配置支持軟件。上一章的應用案例清楚地表明,數(shù)字模塊可大幅降低電流消耗。智能傳感器是賦能電池續(xù)航能力至關重要的新應用的關鍵技術。
參考文獻
[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.
推薦閱讀: