如何以最低功耗实现 LoRa 固件空中升级 (FOTA)

作者:Bill Giovino

投稿人:DigiKey 北美编辑

2018 年 10 月,LoRa 联盟公布了一系列规范,针对物联网端点的固件空中升级 (FOTA) 进行了标准化。虽然这对 LoRa 网络来说是个好消息,但同时也对使用闪存微控制器的低功耗物联网 LoRa 端点的设计人员提出了挑战。

与读取相比,写入微控制器闪存会暂时增加微控制器的功耗,但是增加幅度很大,而且需要使用更大的稳压器来处理增加的功率。

这两种情况都是不希望看到的结果,不过,本文将介绍如何使用配备 FRAM 的微控制器作为低功耗方式来写入固件。与传统的闪存微控制器方法相比,通过与新 LoRa 收发器配合使用,新组合可形成针对 FOTA 的低功耗解决方案。

LoRa 是什么?

随着物联网 (IoT) 的兴起,其中一个目标是使用尽可能少的功率对数据进行无线传输。电池供电型传感器应用的设计人员在最大限度地减少电池电量使用的同时,特别关注在数英里内无线发送低速传感器数据。在现有解决方案中,蓝牙和 Zigbee 专为短距离应用而设计,而蜂窝数据的功率相对较大。LoRa 已经发展成为解决这一问题的常用解决方案。

LoRa 是远程 (long range) 英文的缩写。LoRa 无线网络专为非实时数据的低速率、低功耗、远程传输而开发。数据速率介于 0.3 千位元/秒 (Kb/s) 和 5.5 Kb/s 之间,适合定期传输传感器数据。虽然 LoRa 规范说明了网络的调制和电气特性,但 LoRaWAN(广域网)说明了 LoRa 网络的协议和数据格式。

LoRa 信号发送类似于 FM 调频,也是通过改变频率来调制信号。但是,正确调制的 FM 信号可瞬时改变频率,而 LoRa 调制信号需要一段时间才能缓慢地提高或降低频率。这种频率的逐渐提高或降低称为啁啾,这种方法称为啁啾调制。频率随时间的变化率称为“啁啾率”。

LoRaWAN 网络始终以星形拓扑结构排列,信号发送和访问协议的设计目的是使用最小功率,并最大限度地减少多个端点的信号冲突。每个 LoRaWAN 端点会将其数据发送到一个网关,该网关可将数据传输到另一个网络,如以太网或 Wi-Fi。一般来说,网关可接收 LoRaWAN 的所有数据,并可通过网络将数据传输到中央计算机进行存储或进一步处理。

任何无线通信的范围都取决于环境。在市郊和市中心,LoRaWAN 的传输距离预计在 1 - 3 英里之间。农村地区的传输距离可达 3 - 9 英里,直接视距的数据传输最高可达 131 英里。在某个案例中,气象气球中的一个 LoRaWAN 端点仅使用 25 毫瓦 (mW) 的发射功率,就可将数据传输到 436 英里外的地面网关。

每个 LoRa 端点都有以下三种器件:

  1. 一个或多个用于收集数据的传感器
  2. 一个微控制器
  3. 一块 Semtech LoRa 无线电芯片

传感器是端点的主要设备。LoRa 传感器应用可包括温度和湿度监测、水和燃料的液位监测,以及空气和液体压力。这些类型的传感器收集的是静态数据,这种数据不会随时间的推移而快速变化,因此可以仅以 5.5 Kb/s 的速度进行无线传输,而不会对应用产生任何影响。

无线电芯片和天线通过 LoRa 网络直接通信。Semtech 是一家拥有 LoRa 传输方案专利的公司。目前,所有 LoRa 无线电都使用 Semtech 的无线电芯片,或者使用含有此芯片的无线电模块。

Semtech SX1262IMLTRT LoRa 无线电收发器专为电池供电型 LoRa 应用而设计,且符合 LoRaWAN 无线电传输标准(图 1)。发送或接收数据时,该收发器仅消耗 4.2 毫安 (mA) 电流,射频输出功率为 +22 dBm。SX1261 是功耗更低的收发器,其射频输出功率仅为 +15 dBm。这两款收发器均属于半双工收发器,在次 GHz 频率范围内运行,可处理恒定包络调制方案,例如 LoRa 和频移键控 (FSK)。电路板上均配备 DC-DC 降压转换器和线性 LDO 稳压器。

Semtech SX1262IMLTRT 和 SX1261 自足式半双工无线电示意图

图 1:Semtech 的 SX1262IMLTRT 和 SX1261 是针对 LoRa 应用的自足式半双工无线电,电路板上均配备 DC-DC 降压转换器和线性 LDO 稳压器。(图片来源:Semtech)

为 LoRaWAN 端点选择微控制器

LoRaWAN 端点中的微控制器可以读取并处理传感器数据,并且与 SX1262 相连,以通过网络传输数据。该微控制器必须有足够内存,以满足 SX1262 驱动程序、传感器驱动程序和应用程序代码的需要。表 1 显示的是对使用 Semtech SX1262 无线电芯片的 LoRaWAN 端点中微控制器的要求。

LoRaWAN 微控制器要求 最低要求 建议要求
闪存 128 KB 256 KB 或更多
RAM 8 KB 16 KB 或更多
AES-128 加密 固件例程 硬件块(多播下行链路需要)
具有 1 毫秒分辨率的实时时钟 (RTC) 如果内部定时器用作时基,则不需要 OTA 固件升级、多播和网络时钟同步需要
用于 SX126x 生成中断的外部中断引脚 两个 IRQ 引脚:BUSY 和一个可编程 IRQ (DIO1) 四个 IRQ 引脚:BUSY 和三个可编程 IRQ (DIO1:3)
连接 SX126x 的 SPI 接口 需要:SCK、MOSI、MISO、CS 需要:SCK、MOSI、MISO、CS
IEEE 64 位 EUI 生成 需要,固件例程 需要,固件例程或硬件块
微控制器 CPU 8 位 16 位或 32 位

表 1:表中显示的微控制器最低要求是针对简单 LoRaWAN 端点而言的,此类端点需要以最少的处理量来收集和传输传感器数据。对于较复杂的端点,建议要求提供了更强大的系统。(表格来源:Semtech)

根据此表格,使用一个 8 位微控制器,即可满足基本的独立 LoRaWAN 端点的最低要求。这可能是一个简单的低功耗 LoRaWAN 端点,只需要偶尔将原始传感器数据传回网关。

不过,如果端点要处理大量流量,或者必须对传感器数据执行某些处理,则应遵循表 1 中的建议要求。当然,随着 LoRaWAN 端点中存储器容量和处理功率的增加,端点的功耗也会随之增加,从而需要具有更多容量的电池,这与 LoRaWAN 针对低功耗物联网端点的设计意图相矛盾。

设计 LoRaWAN 端点时,重点关注以下事实非常重要:端点是个低功耗系统,不允许发生特征蠕变,否则会使系统复杂化,并最终导致消耗的功率超出必要的水平。在为 LoRaWAN 端点选择微控制器时应时刻注意,尽量降低时钟速度和存储器大小,因为这些因素也会影响功耗。

更新 LoRaWAN 端点中的微控制器固件

2018 年 10 月,LoRa 联盟就如何对所有 LoRa 网络的 LoRa 端点进行固件空中升级 (FUOTA) 的标准作出了规定。新标准规定了网络范围的时钟同步,大幅减少了丢失数据包的数量,并且规定了多播传输标准,这种通信方式是在将相同的固件更新传输到多个端点时必须使用的方式。由于时钟同步和多播传输都需要精确时基,因此所有 LoRa 端点的微控制器都必须配有一个精确到 1 毫秒的 RTC。

虽然更新 LoRaWAN 端点中的固件是一项重要功能,但也带来了新问题。在现场更新固件意味着,需要对微控制器的程序存储器(通常是非易失性闪存)进行重新编程。对闪存进行编程需要向存储单元施加 10 伏或更高的电压,因此,需要有更大的稳压器及相关电路才能实现闪存编程。由于某些联网系统中的固件每年可能只需要更新几次,因此这算是一项投资,会增加成本并低效地使用了额外的电路板空间。

有一种办法可以替代带有闪存的微控制器,就是使用配有铁电随机存取存储器 (FRAM) 的微控制器。FRAM 存储器只需要 1.5 伏电压,即可对存储单元进行编程。可以满足 LoRaWAN 节点建议要求的很好示例是:Texas Instruments 基于 FRAM 的 16 位 MSP430FR6047 微控制器。该控制器配有 256 KB 的 FRAM 程序存储器以及一个带日历和警报功能的 RTC,并带一个支持 AES-128 和 AES-256 的加密块。MSP430FR6047 支持多达四个 SPI 端口,并具有足够的外部中断输入,以支持 Semtech SX1262 所需的四个输入,从而使得两个器件的连接非常容易。此外,IEEE 64 位扩展唯一标识符 (EUI) 生成可以在固件中轻松实现(图 2)。

Texas Instruments MSP430FR6047 示意图(点击放大)

图 2:MSP430FR6047 配有 256 KB FRAM、8 KB SRAM 以及适合基于传感器应用的各种外设。(图片来源:Texas Instruments)

MSP430FR6047 专为电池供电型智能电表设计,具有集成的超声波检测外设,可提供高精度的水流量检测和液位检测。这些高级功能可轻松适应许多不同的传感器应用。

虽然 MSP430FR6047 只有 8 KB RAM 而不是建议的 16 KB,但如果不需要复杂的传感器融合处理,这在 LoRaWAN 传感器端点中也许算不上问题。此外,MSP430FR6047 具有高集成度特点,可在提高性能的同时可节省存储器和电路板空间。针对超声波检测应用的模拟前端包括了一个可编程脉冲发生器、一个 12 位模数转换器 (ADC) 以及一个可编程增益放大器,所有这些器件在从模拟传感器收集数据时都非常有用。

MSP430FR6047 配有一个 32 位硬件乘法器以及一个低功耗加速器 (LEA) 信号处理内核,能够独立于 MSP430 内核执行 256 点 FFT 计算。LEA 可加速低功耗应用的信号处理,从而延长电池寿命。

MSP430FR6047 具有极低功耗,即使在 8 位和 16 位微控制器(已经是低功耗器件)的环境中也是如此。在运行 MSP430 16 位内核和外设的情况下,该微控制器的电流消耗只有 120 微安每兆赫 (µA/MHz)。在 RTC 运行的待机模式下仅消耗 450 纳安 (nA) 电流。此微控制器还具有仅耗电 30 nA 的关断模式,但关断模式需要关闭实时时钟 (RTC),因此不建议对 LoRaWAN 端点使用关断模式。

使用 FRAM 进行 FUOTA 设计

对于 MSP430FR6047 固件开发,可以使用 EVM430-FR6047 评估板。该评估板采用 USB 供电,含有评估应用中 MSP430 所需的所有硬件,并且配有用于 BoosterPack™ 模块的连接器,可为此电路板添加其他功能。该电路板上还有用于连接传感器的其他引脚。

Texas Instruments EVM430-FR6047 评估板图片

图 3:Texas Instruments 用于 MSP430FR6047 的 EVM430-FR6047 评估板配有 LCD 显示屏,且可访问 MSP430FR6047 上的所有引脚。(图片来源:Texas Instruments)

为评估和开发 SX1262,Semtech 提供了 SX1262MB2CAS LoRa MBED 盾板(图 4)。

用于 SX1262 的 Semtech MBED 盾板图片

图 4:用于 SX1262 的 Semtech MBED 盾板是一块包含 SX1262 射频收发器的简单评估板。(图片来源:Semtech)

MSP430 BoosterPack 连接器提供了将 MSP430 连接到 Semtech SX1262 MBED 盾板所需的所有必要信号。BoosterPack 连接器具有四个必要的 SPI 引脚,以及三个额外的 GPIO 引脚,这些引脚既可配置为 MSP430 的轮询输入,也可配置为外部中断。如果还需要一个外部中断,则可将 BoosterPack 连接器上的四个引脚连接到其中一个 MSP430 UART。这些 UART 引脚可配置为 GPIO 或 MBED 盾板的外部中断。虽然 BoosterPack 和 MBED 盾板物理引脚不兼容,但它们可以很容易进行跳线连接,从而实现 MSP430 和 SX1262 之间的必要连接。

此外,Texas Instruments 还提供 Code Composer Studio™,这是一种支持 MSP430 代码编写和调试的 IDE。

总结

LoRa 已经成为传输物联网传感器数据的流行标准。该标准已经扩展纳入 FUOTA,为长电池寿命带来了新挑战。通过选择基于 FRAM(而不是基于闪存)的微控制器,设计人员可以大幅降低将这些设备存储器的更新写入所需的功率。

此外,如上所示,选择微控制器变得愈发重要,不但要为应用提供足够的处理能力,还要尽量减少电池消耗。

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此作者

Bill Giovino

Bill Giovino 是一名电子工程师,拥有美国雪城大学的电气工程学士学位,是先后从设计工程师、现场应用工程师跨界到技术营销部门的少数成功人士之一。

25 年来,Bill 一直喜欢在技术和非技术用户面前为包括 STMicroelectronics、Intel 和 Maxim Integrated 在内的许多公司推广新技术。在 STMicroelectronics 工作期间,Bill 作为领头人帮助该公司在微控制器领域取得了早期成功。在 Infineon,经过 Bill 精心策划,该公司的首个微控制器设计便在美国汽车领域大获全胜。作为 CPU Technologies 公司的营销顾问,Bill 帮助了许多公司,让其表现不佳的产品大获成功。

Bill 是物联网的早期尝试者,包括将第一个完整的 TCP/IP 协议栈植入微控制器。Bill 秉持“教育式销售”信条,在通过在线促销产品时强调清晰明了的书面沟通的重要性。他是广受欢迎的 LinkedIn 半导体市场营销群的群主,精通 B2E。

关于此出版商

DigiKey 北美编辑