MEMS、MCU和传感器融合的平衡

  摘要:MEMS传感器技术的流行,让传感器技术的应用变得越来越广泛,与此同时,配合传感器的MCU产品也必须做出一定的调整,以适应传感器和MCU相配合以达到最优的整体应用效果。本文详细分析了如何在MEMS传感器和MCU之前进行设计的平衡。

  最近几年,在消费电子和工业控制领域中,惯性MEMS和相关传感器出现了爆炸式增长,采用这些传感器解析数据的需求也大幅增加,而在何处进行这种处理是一个复杂的问题。由于每个系统设计人员考虑的优先事项不同,所以至今也没有一个正确答案。从对您的产品和业务的整体重要性来看,您作为系统设计人员,需要确定以下几个因素的优先次序:

  1. 融合输入的精确度

  2. 功率

  3. 区域/空间考虑要素

  4. 易于集成

  5. 成本和供应链灵活性

  让我们从后往前开始讨论。在“灰色市场”中,优先考虑的往往是成本和/或供应链灵活性。在这种情况下,原始设备厂商经常会依据“最小公分母”原则选择传感器和MCU。在手机和平板电脑中,为了支持在应用处理器上直接进行融合,可能会完全忽略MCU。

  单个传感器(加速度传感器、陀螺仪、磁力计等)可能是一个“复选框”项目,一个厂商的传感器也可能会被另一个取代,以确保最低成本或不间断的供应链。通常,消费者不得不接受更高的功耗和有限的功能,并将为此支付费用。应用处理器操作时,会消耗大量电力,而进行低功耗状态转换时,会花费大量时间。各个传感器的单独中断加剧了这一问题。此外,应用处理器上运行的操作系统通常不支持实时处理,从而限制了利用传感器数据的应用类型。

  传感器集线器包含传感器融合实时处理功能,通常支持最简单的集成。图2显示了第一代系统。

  选择系统MCU时,应考虑两种因素:低功耗状态的快速切换和低中断延迟。由于融合在MCU上进行,因此应用处理器可以按需访问数据。AP降低的功耗要求大大弥补了独立MCU消耗的功率。然而,会消耗更多的板卡空间,系统成本将随着MCU和关联无源组件的成本而增加。

  对于那些尝试设计包含传感器融合的首个系统的设计人员来说,开发图2所示的系统将是一个艰巨任务。融合算法很复杂,需要耗费大量精力。但如果传感器制造商提供在MCU上运行的融合软件,从集成角度来看,该系统将变得非常简单。如果制造商提供子系统的原理图和布局信息,则会更简单。一个例子是飞思卡尔面向Windows 8的12轴Xtrinsic传感器参考平台,拓宽了微软Windows 8对传感融合技术的支持范围。这套完整的硬件和软件解决方案融合了加速度传感器、磁力计和陀螺仪数据,采用飞思卡尔ColdFire+ MCU,以保证高质量。最优传感器融合通过支持Microsoft的硬件和软件,提供轻松集成,加快开发速度,面向平板电脑、手写板、笔记本电脑以及其他移动设备应用。MCU+广泛的传感器,可以实现全面集成的硬件解决方案,12轴解决方案提供低功率设计以适用于便携式设备的需求,可以说传感器融合对Windows 8而言是非常重要系统解决方案 。

  随着MEMS和封装技术的不断发展,传感器制造商现在能够组合图1和2所示的一些传感器类型。如果成本和/或板卡空间是最重要的因素,许多传感器采用普通封装通常就可以。如果精确度是最重要的因素,您可能希望对磁力计采用独立封装,使之与加速度传感器和陀螺仪分开。通常,PCB边缘的磁干扰最小,而加速度传感器和陀螺仪则在器件中心时性能最佳。同样,压力传感器的最佳放置地点是可与外界通风的位置(可能在麦克风附近)。

  图2所示系统可以进一步在两个不同方向发展。从功率角度看,最有效的方法可能是,在与应用处理器相同的芯片上添加一个独立的MCU,配备其自己的电源和时钟管理。但目前通常不提供这种选项。即使(如果)AP制造商提供这种选项,您仍然会有疑问“谁为融合子系统提供软件”。

  另一种方法是将MCU与一个或多个传感器相集成。飞思卡尔称之为“智能传感器集线器”,并曾在2011年推出MMA955x系列器件时介绍了这一概念。其他厂商(特别是Bosch和ST)近期也推出了配备了集成式MCU的设备;飞思卡尔预计将于近期推出另一款产品。

  当选择智能传感器集线器时,您希望查看厂商是仅仅将MCU连接到现有传感器上,还是为传感器融合优化系统。一般来说,这是“优化功率”的代名词。让我们来看看图3所示的系统背景中的一些优化。

  内存:智能传感器集线器通常从闪存运行。就芯片面积和成本而言,闪存和RAM都是昂贵的资源。您是否有足够的内存来完成这项工作?另外,您支付的内存超出了您的需求吗?RAM/闪存比例适合您的应用吗?通常来讲,融合算法需要的RAM比基础控制应用需要的多。每三次或四次闪存采用1KB的RAM可能适合融合应用。人们通常想要更多,而不愿意得到的更少。

  闪存往往是系统中速度最慢的存储器。闪存接入是否妨碍了您的系统性能?或者您是否有某类闪存高速缓存器或面向未来的缓冲器?

  时钟域:当传感器集线器处于低功耗状态时,负责与主系统通信的从端口接口是否能够正常运行?低功耗状态有多低? 理想情况是能够关闭集线器上的所有时钟。这意味着您的串行端口需要外部计时。大部分标准MCU将串行端口时钟看作数据,以2倍或4倍的数据速率来采样数据。这会消耗功率,但在数据穿过集线器内的时钟域时保证不会出现问题。为集线器优化的MCU不会强制您选择这个选项。

  时钟频率:您将系统从慢时钟速率切换到快时钟速率或者再切换回慢速率的速度有多快?MCU经常使用锁相环路功能来执行慢时钟频率乘法运算,达到实用范围。锁相环路运行良好,但会消耗(根据传感器标准)大量功率,也需要花一些时间来锁定最终频率。图3所示系统使用一个按需在两个频率之间切换的振荡器。

  内部派生时钟经常随着温度产生1% -3%变化。针对不同应用,您可能对此并不在乎。但如果您在乎(如果您正在整合速率,您就会在乎),可以考虑采用缓慢外部时基,将其输入到一个片上定时器。根据内部时钟周期测量外部时钟,并根据观察到的比率,动态地调整帧速率。

  采样率:您如何管理采样率? 图3所示系统包括确保恒定帧速率的定制“帧间隔计数器”,与高频/低频操作模式的时长无关。如果您的设备有晶体振荡器,频率(32kHz)是否适度,是否会消耗过多功率?

  模数转换器精确度:您的转换结果的分辨率有多少有效位? 转换精度与转换速度之间是否平衡?

  硬件加速器:您的智能传感器集线器是否提供了识别主要运动事件(在硬件方面,无CPU干预)的所有选件?引擎的通用性如何? 同样,如果硬件中实施了一部分算法,这些算法是否能够通用,还是要求您采用特定的融合库?

  其它设备:您的智能传感器集线器在管理其它设备方面有没有限制? 您是否有足够带宽、用于缓存的RAM,以及用于计算的MIPS?

  开放性:您的集线器是否是固定的功能,或者您是否能够定制其上的代码? 是否有实现这些目的所需库和工具? 如果采用Android操作系统,是否需要提供驱动程序和定制HAL(硬件抽象层)? 如果采用Windows 8操作系统,集线器制造商是否提供HID/I2C或HID/USB接口?

  一般来说,所有这些因素将会推动系统设计人员从下面两个方面来考虑解决办法:最大限度地减少依靠更高级的软件功能实现融合的传感器数量;或者采用传感器制造商打造的高度集成的传感器子系统和参考设计,实现轻松集成和定制。

  Michael Stanley

关注读览天下微信, 100万篇深度好文, 等你来看……