Phil Burr (Arm嵌入式产品组合办理总监),Bryan Cook (Hillcrest Labs/CEVA研发部首席工程师)
摘 要:超卓的传感器交融=超卓的算法+超卓的渠道。要赢得一级方程式竞赛,需求一名超卓的车手和一辆超卓的赛车。相同,要为用户供给最佳体会,需求超卓的算法和超卓的处理器。本文旨在提醒将Freespace传感器交融算法与Arm设备结合运用能带来惊人的功用、高效的本钱和功耗方针的要害原因。
要害词:传感器交融;传感器中枢;9轴;MEMS
0 导言:传感器中枢及其他
尽管依据惯性运动传感器的传感器交融现已存在了一段时刻,但移动运用程序的最新开展使人们开端逐步重视消费类和工业设备上传感器交融的算法、处理器以及根底结构。
从游戏机到智能电视遥控器,再到最近的智能手机,传感器交融已被广泛用于为消费类电子产品创立更直观、风趣的交互体会。十多年来,Hillcrest一直是这一范畴的前驱。Hillcrest开发了专有的信号处理技能,运用MEMS惯性和磁性传感器将人类的运动转化为高质量的、随时可运用的运动信息。
跟着越来越多新式智能手机平和板电脑开端选用“9轴”传感器组,客户一直在向Hillcrest寻求有关怎么从这些传感器中取得最大功用的主张,以及怎么运用新的依据运动的运用程序使其产品异乎寻常。方针运用包含情境感知、室内导航和手势操控。可是,这些运用需求“always-on(永久在线)”的运动感应,传感器会不断采样数据并寻觅有意义的动作。向“always-on”改动需求改动架构——将依据运用处理器(AP)进行的传感器办理,改动为专用的低功耗传感器中枢中心。
跟着功耗和功用优势的日益显着,这些传感器中枢现已敏捷遍及。可是,它们的成功将取决于算法和处理器的优化,以保证高功用和低功耗。本文将阐明传感器交融算法(例如Hillcrest的Freespace软件)和处理器(例如Arm Cortex-M系列)怎么协同作业,以构成兼具低功耗、传感无所不在这两大长处的成功产品。
1 满意“always-on”传感要求的运用
在评论传感器交融在传感器中枢中的技能根底之前,让咱们看一下这种开展背面的驱动力:运用技能根底来改进移动用户体会的运用程序。
情境感知是包含其间某些运用程序的一类,从底子上讲,这些运用程序运用手机的传感器来检测正在发生的作业,并运用该信息来改动手机的行为。例如现在,某些手机内置了多达20个物理传感器(例如加快度计、GPS、Wi-Fi、气压计和照相机),每个传感器都检测手机、用户和环境的不同之处。也有虚拟传感器,例如您的日历和本地流量陈述。就像人脑解说从其传感器(触觉、听觉、视觉等)传来的信息相同,移动设备可以充任“大脑”来解说来自这些传感器的数据,以确认设备和用户的情境,并运用这种情境供给更直观的用户体会。
可是,情境感知取决于时刻并受时刻驱动。情境的改变取决于电话是正面朝下放在桌子上的时刻是1 s仍是1天,取决于或人仅仅将视野从屏幕上移开1 s,仍是现已从屏幕上移开视野好几分钟。因而,为了保证正确解说情境,有必要不断对其进行采样。假如移动设备依赖于零散的情境截图,则在解说该情境时会犯错。由此感知所发生的情境对用户来说不只没有好处,而且会损坏体会。因而,传感器的“always-on”关于这些运用程序的正常运转至关重要。
假如咱们可以为这些运用程序供给一直在线的智能情境感知信息,那么就可以为用户带来更有价值的体会。一些比较常见的运用场景包含:在检测到您正在驾驭而且不能用手和眼睛操作电话时启用音频告诉和语音指令;在您脱离办公室之前提醒您通勤路上交通繁忙;当您在图书馆时切换为振荡;主动盯梢您白日的活动状况和焚烧的卡路里。
2 牢靠性和准确性始于精度
1)算法端
假如传感器仅具有12位精度,那么16位的处理精度就足以完成超卓的算法。究竟还多出4位,不是吗?
好吧,不完满是。现实证明,关于算法规划师而言,最重要的作业之一是整个体系的数值精度。尽管传感器分辨率也是要害因素,但它并不是所需条件的仅有决定因素。有许多用于校准、解说、交融和其他功用的内部变量,它们需求各种等级的精度和规模。比如在Kalman滤波器中进行方差估计时,同一项需求较大才干处理首要调整,需求较小才干处理精密调整。实际上,有些乃至或许需求浮点。
假如算法规划师无法供给满足的分辨率,很或许影响到算法的功用。假如算法规划师在任何地方都运用完好的浮点运算,则会导致较差的渠道功用,发生额定的本钱、运转时刻变慢且功耗更高。正确的解决计划是将算法和渠道交融在一起。
由于变量规模是固定的,定点运算需求更高的精度以防止上溢和严峻下溢。相同,杂乱的定点算法在整个算法中一般需求二进制点(Q格局)的不同方位。
2)渠道影响
关于算法规划师来说,最好的渠道是在字长方面供给很大灵敏性的渠道。这答应不同的算法规划要求在函数乃至变量根底上与根底处理器进行自界说拟合。这正是Hillcrest运用Freespace所做的作业,而Arm的功用则可以使该进程愈加顺畅。
在Cortex-M系列处理器中,有许多可保证高效算法功用的功用。
3)Cortex-M0+
Cortex-M0+和Cortex-M23规划选用二级流水线,为传感器交融运用供给一流的能效。它完成了Armv6-M指令集,并支撑带有32位成果(MULS)的可选1周期乘法。这是传感器处理算法的要害指令。
Cortex-M0+还支撑可选的单周期I/O总线,专用于外设,而且独立于存储器子体系。
4)Cortex-M3/Cortex-M4
Cortex-M3完成了Armv7-M指令集,该指令集增加了一些功用,使其可以十分有用地运用定点算法完成杂乱算法。
● 长乘法指令:SMULL。这将两个32位整数相乘并将成果保存为64位整数。该指令关于完成32位定点数乘法至关重要。具有32位成果的32位乘法是不可的,由于很少有仅需求最低有用的32位的状况。
● 长乘累加指令:SMLAL。该指令进步了定点矩阵乘法的内部循环和FIR滤波功用的功率。
● 关于大多数运算,灵敏的操作数2答应按常数或寄存器进行移位。在定点算法中,例如,当对具有不同Q格局的定点变量进行运算或在定点变量之间进行转化时,需求进行一些移位。由于Q格局是固定的,而且是编译器一般已知的格局,因而可以将其嵌入单个指令中,然后大大进步了功用。
● 核算前导零指令:CLZ。该指令对前导零进行计数,并完成快速归一化和算法自习惯,以供给浮点算法的某些长处。
● 整数除法(UDIV和SDIV)。与在软件中履行相同的除法比较,硬件除法供给了可衡量的功用优势。请注意,这仅供给32位除法。关于定点数学,一般的状况是将64位数字除以32位数字,得到32位成果(长乘法指令的反函数)。尽管未供给此长除法指令,但此长除法可以运用UDIV指令进行更有用的除法。Cortex-M4增加了对可选浮点单元的支撑,这极大地加快了不简略习惯定点核算的算法,例如本应依赖于软浮点完成的矩阵分化。此外,经过将许多DSP扩展运用到指令集,包含SIMD和具有饱满算法的指令,可以进一步改进定点数学。
Cortex-M4处理器中的浮点单元(FPU)供给如下。
● 单精度(C浮点)数据处理操作的32位指令。
● 乘法指令和累加指令的组合可进步精度(交融MAC)。
● 对转化、加法、减法、与可选累加的乘法、除法平和方根运算的硬件支撑。
● 对反常和一切IEEE舍入形式的硬件支撑。
● 32个专用的32位单精度寄存器,也可寻址为16个双字寄存器。
● 解耦的三级指令流水线。
Cortex-M33处理器增加了TrustZone安全性,使开发人员可以运用了解的编程模型来更轻松地完成软件阻隔,并为当今的物联网和嵌入式设备所需的安全性奠定了根底。
5)精度摘要
Arm供给的字号选项和跨不同产品的智能功用组织可灵敏地依据所需渠道定制算法。关于Freespace,有针对Cortex-M0+、Cortex-M23、Cortex-M3和Cortex-M4的版别。尽管每个渠道的详细完成各不相同,可是由于Arm设备中的智能体系结构,移植变得简略。然后,由于咱们的算法在内部是彻底模块化的,而且在结构和流程上都具有自习惯性,因而Freespace与Arm渠道的配对十分简略,而且可以在给定的功耗、本钱和尺度方针下完成最佳功用。
3 假如没有接口,体系就没用了
1)算法端
依据界说,传感器交融是指读取多个传感器,然后核算并输出一组揣度的组合输出,以供体系其余部分运用。假如处理器中没有杰出的I/O接口和使命办理功用,则算法功用会受到影响。更好的算法至少需求削减采样检测、下降推迟和颤动、牢靠的数据链接以及对输入和输出数据进行分组的才干。
2)渠道影响
Cortex-M处理器支撑线程形式和处理者形式,用于将运用程序与体系资源正确阻隔,支撑SysTick计时器,用于在使命之间进行时刻分片,并支撑具有杂乱中止办理计划的嵌套矢量中止操控器,软件开支十分低。
3)接口和渠道摘要
Arm Cortex-M处理器系列供给了一组接口,I/O办理和使命办理技能,以供给杂乱的使命支撑,例如Freespace传感器交融软件。杂乱的算法需求杂乱的硬件才干有用履行低功耗。
4 传感器解说和校准
1)算法端
传感器数据包含许多危害——噪声、非线性和失调。乃至关于许多传感器而言,哪怕知道基准点也是极端困难的。举例如下。
依据加快度计读数核算出的重力矢量预算值将校准后的磁力计传感器读数转化为航向角。可是,航向的核算十分灵敏。即便在零重力偏移(ZGO)预算中呈现17 mg的差错,也会导致1°的俯仰角差错,然后导致多达2°的航向角差错。可是加快度计并不包含肯定零点或ZGO值。零重力偏移(ZGO)值随每个独自的传感器而改变,乃至关于给定的传感器也会随时刻改变。
请注意,此ZGO示例针对详细状况而言仅仅喧闹的加快度计数据(当然针对一般状况而言仅仅喧闹的传感器数据)的很多或许来历之一。每个传感器都有其自己的一系列噪声应战,可以说磁力计构成了最大的困难(外界磁场改换导致的非线性偏移)。因而,高端算法(如Freespace)需求跟着时刻的推移以及环境改变主动学习并盯梢这些危害,以便从传感器数据中消除噪声。
假如传感器交融算法转而将喧闹的传感器数据作为输入,则生成的交融数据也将是喧闹的。Freespace传感器交融软件具有杰出功用的首要原因在于极力从输入的原始、喧闹的传感器数据中找出实在的传感器信息,然后从本源上优化输出的成果中的噪声。
2)渠道影响
从喧闹的传感器数据中获取实在信息取决于能否运用正确的渠道功用。首要,体系需求一种有用的方法来完成持久性存储。除了在会话中之外,还答应在会话之间进行累积学习。
Cortex-M处理器经过支撑闪存和EEPROM供给持久性存储。处理器可以经过闪存或RAM运转。由于指令流水线的存在和Thumb-2指令集的运用,闪存提取现已优化。
该算法模块,特别关于磁力计而言,包含许多杂乱的自习惯滤波、形式识别和矩阵办理组件。为此,需求支撑性的核算和分支指令集以及先进的内存办理技能。如上所述,这包含支撑除法、计数前导零,当即数据指令等。
3)传感器解说和校准摘要
Arm处理器的丰厚功用使Hillcrest可以定制传感器解说和校准模块的施行,一起坚持算法功用和体系功用。
5 有时所需的输出不是现实
1)算法端
幻想一下,传感器是完美的,传感器交融算法也是完美的。进一步幻想一下,咱们正在运用显示器上的光标,在完美传感器上运转的完美传感器交融算法是否会发生用户喜爱的完美光标操控体系?其实不可。
原因是手持设备的一切动作并不都是有意的。还有人为轰动引起的无意动作。用户实际上只期望看到有意动作去驱动光标,而不是因轰动发生的无意动作。试想一下,就相当于您将激光笔照在屏幕上时发生了颤动。可是这种颤动是用户底子不想看到的。
由于这种状况远远超出了轰动。传感器交融一般有必要权衡滑润度和精度。有时所需的输出是预期过错最少的输出,有时则是与最近历史记录最共同的输出。在一切这些状况下,所需的输出并不是实在实在的信息,这代表了比如Freespace的超卓传感器交融施行中的额定处理过程。
2)渠道影响
Cortex-M4和Cortex-M33包含一个高效的单周期MAC,担任加快大多数DSP算法的运转,然后使自习惯滤波特别简略完成。MAC支撑16位和32位数据的各种单周期指令。例如,在一个周期内履行(32 x 32 +64 → 64)运算。
3)所需的输出处理摘要
Arm处理器的基本功用使此过程易于完成,并使Hillcrest可以将完成与处理器的特定功用进行匹配,一起在坚持低功耗的一起坚持算法和体系功用方针。
6 没有电源办理,咱们就死定了
1)算法端
关于大多数客户来说,会运用户在10 min内耗尽电池电量的超卓功用是不被承受的。实际上,即便长时刻没电也不是很抱负。因而,Freespace等杂乱算法包含许多可优化功耗的特别功用。
这些功率优化技能包含混合形式运算、样本间猜测、多速率运算等。它们还充分运用了传感器自身的电源办理功用,有时还会运用处理中心的电源办理功用。方针是在不影响功用的状况下最大化处理中心、传感器乃至I/O接口的闲暇时刻和规模。
2)渠道侧
Cortex-M包含许多功用,可支撑处理器等级和设备等级的电源办理。当处理器自身具有各种等级的睡觉形式时,可以按需封闭某些模块的电源。唤醒中止操控器可用于最大极限地节约功率。
创立事情驱动的软件需求2个指令和1个操控位:
● WFI等候中止;
● WFE等候事情;
● SLEEP-ON-EXIT位。
处理器坚持睡觉形式,直到中止或事情到来。处理程序代码履行完成后,处理器将回来睡觉形式。
3)电源办理摘要
电源办理的方针是在不献身算法 功用的状况下完成超卓的电源功用。经过将Freespace等杂乱算法与Cortex-M等功用强壮且架构合理的处理器相结合,可以完成超卓的体系规划。要害是跟着时刻的推移进步动力功率,这是指可以在整个运算时刻规模内以最低功耗履行具有等候时刻的算法。比如Cortex-M4之类的高功用处理器大部分时刻都处于深度睡觉状况,由于它只需求时刻短的活动时刻即可履行代码。因而,均匀功耗大大下降。终究成果是完成了更简略、更低功耗的体系规划。
7 软件东西和生态体系
毫无疑问,为传感器交融体系开发杂乱的算法需求好的东西。Arm具有当今市场上最大的东西生态体系,具有来自各类竞争性供货商、开源社区和Arm的超越35种IDE和调试体系。构建杂乱体系需求多种编译器、调试器、操作体系和各种软件模块。
8 定论
在装备恰当东西的前提下,超卓的传感器交融体系规划既需求超卓的传感器交融算法,也需求超卓的渠道来运转。将两者组合在一起就像为尖端赛车装备尖端车手相同。Freespace和Arm便是这样的组合。
在http://bit.ly/DSPCortex-M,可发现Arm DSP扩展、软件库、生态体系合作伙伴和资源。