在将电子基础设施转变为物联网 (IoT) 的过程中,传感器正成为无处不在的元素。传感器将提供用于管理和控制汽车、家庭、工作场所、工厂车间以及介于两者之间的任何地方的电子系统的数据。传感器不仅在其范围内,而且在其功能上都在扩展。当多个传感器位于同一位置时,可以创建令人兴奋的新功能,并且可以交换和增强单个测量值。在这些类型的设计中,传感器可以实现高级功能,通常被称为传感器“融合”,从而提供新的创新功能。
传感器融合算法已经在化学过程控制系统中实施了几十年,所以这个概念并不是什么新鲜事。大多数化学过程控制系统需要各种传感器读数来确定值、流速或设置的正确设置。您不会考虑在没有感应压力、温度和体积的情况下管理化学过程,对吧?(还记得 PV = nRT 吗?)
很容易要求您的新传感器融合设计包含各种传感器,以便您的新算法拥有它需要的所有数据;但在某些时候,您的 MCU 将需要连接到所有这些传感器,同时以您的算法所需的速率提供数据。哦,顺便说一句,您需要保留大量 MCU 计算能力,因此处理器不会为实时管理所有传感器数据而烦恼。
幸运的是,MCU 制造商一直在扩展其 MCU 外设的功能,因此设计可以使用多个接口的全部功能,而不会给处理器带来大量开销。本文将着眼于传感器融合设计的示例实现,以说明如何为每个传感器选择正确的外设对您的设计成功至关重要。
示例设计
我们将在未来几年看到的一种更常见的传感器融合设计将用于跟踪和记录感兴趣对象周围的环境。感兴趣的对象可以是运输中的包裹、停放的汽车、移动中的自行车或院子里的狗。显然,传感器日志和任何传感器融合算法都将寻找特定的环境测量值,但我们可以在示例设计中包含一些流行的测量值。假设我们要提供温度、湿度、振动、压力和加速度。让我们还添加一个捕获声音的要求,以涵盖使用语音命令或需要捕获环境噪声的情况,也许是为了验证是否符合噪声水平的工业标准。
我们的示例设计的简化框图如图 1 所示。关键设计目标是找到用于每个传感器的最佳 MCU 接口,这种连接可以以传感器融合算法所需的速率提供传感器数据。在我们的示例设计中,低功耗也是一个关键要求,因为假设电池运行。因此,在有限的功率下获得最多的数据和最多的处理能力将是我们的主要设计目标。
图 1:环境监测传感器简化框图。
音频、温度、压力、加速度、振动和湿度传感器都直接连接到 MCU。无线连接,可能是低功耗短距离标准,例如低功耗蓝牙,允许传感器通过聚合单元向云端提供数据。可以通过从云端下载 MCU 代码更新来进行算法增强或维护更新。这些更新可用于延长传感器寿命或针对不同条件或不断变化的要求重新分配传感器任务。
每个传感器对速度、延迟、功率和测量频率都有不同的限制。主要的设计任务是优化这些接口,以在最佳时间和尽可能少的功耗为融合算法提供所需的数据。确定最佳连接的第一步是区分低速连接和高性能连接要求。
低速连接
许多传感器不需要高速连接,因此可能使用较旧的低速串行接口,例如 UART。在我们的示例设计中,我们将假设压力传感器使用 UART 风格的接口,并且每秒只进行几次通信。该速率通常足以跟踪长期和突然的压力变化。使用 UART 接口会给设计带来一个可能不直观的设计问题。由于频率较低,您可能期望功率要求也较低。不幸的是,您可能会遇到这样的情况,因为传输频率较低,UART 需要长时间保持开启。只要 UART 处于活动状态,就会消耗功率。
在我们的示例设计中,我们需要一个节能的 UART 外设,它在活动时消耗的电量很少,并且在不需要时可以轻松关闭。现在,一些 MCU 包含具有这些特性的专用低功耗 UART,下图 2 中STMicroelectronics所示的低功耗 UART 显示了 UART 的节能能力。
图 2:STM32L 低功耗 UART 框图。(意法半导体提供)
典型的 UART 功能——发送数据寄存器、接收数据寄存器、控制寄存器、波特率选择和整体控制单元——在框图中都很明显,但不容易发现的是,即使在 MCU 的情况下,UART 也可以运行处于低功耗停止模式。UART 可以等待传入的数据帧并通过中断将 MCU 从停止模式中唤醒。然后,如果 UART 数据是传感器融合算法中的重要元素,CPU 可以将数据移动到内存或立即开始处理。由于低功耗UART外设可以在CPU处于停止模式时接收数据,因此传输过程中所需的电量大大减少,从而大大提高了我们的电源效率。当您需要连接到 MCU 的低速串行接口时,请寻找类似的低功耗特性。
高性能连接
在某些传感器应用中,频繁或以高数据速率访问传感器数据很重要。在我们的示例设计中,音频传感器需要最高带宽。其他类型的传感器,例如光、温度、压力和位置,很少变化,因此可以以低得多的速率进行监控。大多数 MCU 上提供的高速接口有多种选择,其中 SPI、QSPI 和 I²C 是流行的选择。例如,Atmel SAM4S4A MCU支持具有多个通道的 SPI 和 I²C。该器件的另一个功能是即使在极低功耗模式下也可以保留 SRAM,因此传感器数据包在存储在 SRAM 中时不会丢失。当低功耗是最重要的问题时,请寻找此功能。
许多 MCU 支持流行的 I²S 音频接口,这通常是音频处理应用的明显选择。然而,现代音频编****通常支持多个接口,因此您可以为您的应用程序选择一个合适的接口。Texas Instruments TLV320AIC3254立体声音频编****(图 3)支持 I²S、I²C 和 SPI,因此您有多种接口选项。
图 3:Texas Instruments 的音频编****支持多种串行接口。(德州仪器提供)
当您的应用程序正在流式传输音频数据时,I²S 接口是一个很好的选择。假设在我们的示例中,传感器需要不频繁地测量音频电平和频率(可能最多每秒一次),以测试环境是否符合工厂车间员工的声音暴露法规。在不丢失任何数据且不干扰其他测量的情况下捕获几分之一秒的声音非常重要。在这种情况下,I²S 接口是一个不错的选择,它允许独立于其他 I²C 或 SPI 端口进行操作。
I²S 的使用还可以让我们最大限度地减少功耗,因为它仅在音频捕获期间打开。通常 I²S 可以与 DMA 结合使用,以便 CPU 可以处于低功耗模式,直到数据全部被捕获并准备好处理。或者,CPU 可以在捕获数据的同时处理数据。如果音频功能的总“开启时间”减少,这可能最终会降低功率。考虑在您的设计中比较这两种方法,并根据您的要求选择效率最高的一种。
不要忘记模拟
尽管许多传感器使用串行接口,但不要忘记简单的模数转换器 (ADC) 可用于许多传感器应用。一些 ADC 可以独立于 CPU 运行,这使得在进行转换时可以轻松地将 CPU 置于低功耗模式。例如,STM32F4 MCU 有一个 ADC,可以使用直接内存访问 (DMA) 控制器将捕获的数据直接移动到内存中。ADC 也可以通过定时器计数器模块启动,这样就可以在没有 CPU 干预的情况下轻松进行定期测量。这些启动触发信号如图 4 中 STM32F4 ADC 框图的底部所示。
图 4:STMicroelectronics STM32F4 MCU ADC 框图。(意法半导体提供)
为了进一步提高效率,模拟看门狗功能允许非常精确地监控一个、部分或所有选定通道的转换电压。当转换后的电压超出编程阈值时会产生中断。这在我们的示例环境监控设计中特别有用,因为 CPU 不需要处于活动状态,除非测量值偏离“安全”区域。这降低了功耗并允许 CPU 专注于关键处理要求。
结论
对于传感器融合设计,减少 CPU 开销的高效接口至关重要。释放 CPU 以便它可以使用算法处理各种传感器数据,这些算法结合或融合数据以识别重要事件,从而创建智能传感器融合设备。这些智能设备将成为不断扩大的物联网环境中的关键要素。