0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

物联网设备的无线固件升级

星星科技指导员 来源:嵌入式计算设计 作者:Richa Dham 2022-06-29 10:58 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

物联网IoT) 的规模给部署带来了许多挑战。仅在我们的家中,我们就看到连接设备的数量急剧增加,从路由器和几台个人电脑到远程锁门、激活百叶窗、控制照明、管理温度和湿度以及更多的。为了使众多设备保持相关性和安全性,无线 (OTA) 固件升级必须成为物联网系统不可或缺的一部分。

想象一个巨大的市场,其中部署信标提供有关展示产品的信息。这些信标的位置可能不容易访问,并且这些信标的数量使得它们不可能在部署后单独编程。因此,当出现需要重新部署的新功能或缺陷时,OTA 固件升级成为一项重要的省时功能。

通过 BLE 进行 OTA 固件升级

OTA 的有效性已在手机等应用中得到证明,这些应用通过定期升级接收新功能并修复错误,而相对较新的 OTA 固件升级功能与蓝牙低功耗 (BLE) 为物联网带来了同样的能力。

在 IoT 环境中,推动 OTA 固件升级超过 BLE 要求的主要原因有三个:

广泛和异构的设备部署

设备的数量和不同类型的设备在分布式网络中起着非常重要的作用。标准化的 OTA 接口可确保跨不同节点重用架构。考虑体育场中的智能照明:虽然巨大的泛光灯和走廊灯的功能可能不同,但可以在它们之间重复使用基于 BLE 的标准 OTA 接口。这意味着跨这些异构设备推送新固件的主机设备可以是一个通用平台。这也意味着体育场内所有不同类型的灯都可以从一个控制室进行升级,而不是通过多个单独的升级。

不断变化的需求和新功能

物联网是一个不断增长且瞬息万变的市场,具有新的产品需求,并且会定期添加新的 BLE 功能。安全威胁和隐私泄露是推动这些变化的一些最大因素。为了防止新的病毒攻击,设备固件可以通过 OTA 固件升级过程包含修复和更安全的算法。在任何物联网系统中,都有两部分:硬件和固件。在基于 SoC 的实现中,OTA 固件升级功能不仅可以更新固件,还可以重新配置片上硬件资源。

关键的上市时间需求

物联网系统的设计周期非常短,需要不断创新和部署最新功能。一般的开发过程是对硬件进行过度设计,以在更长的时间内维持不断扩大的市场需求。OTA固件升级支持分阶段部署解决方案。例如,恒温器系统的初始设计只需一个热传感器就可以快速推出,然后进行更新以启用湿度传感器。请注意,使用这种方法,硬件设计是一个深思熟虑的过程,从硬件角度在架构阶段考虑未来的推出。

然而,虽然 OTA 固件升级有利于物联网应用,但产品团队必须注意并避免一些陷阱。现场升级固件的能力以及对上市时间的极端要求可能会导致过快发布固件的压力。例如,争取实现产品的大规模部署可能会促使市场营销依赖于固件可以稍后更新的事实。这反过来可能导致发布尚未完全验证或优化的不稳定软件或产品。此外,最终用户可能不会很好地接受频繁的更新。产品团队应仔细权衡此类决定的影响,并限制过度使用 OTA。

OTA基础

在基础方面,OTA 固件升级与任何其他引导加载程序没有什么不同,例如 UART 引导加载程序或 USB 引导加载程序。图 1 显示了基于固件的可升级系统的基本架构。

pYYBAGK7wAOAHy6vAAA-NLWqZm0312.png

【图1 | UART bootloader系统架构]

如图所示,目标器件的非易失性存储器分为两部分——引导加载程序和可引导加载。引导加载程序是存储负责设备引导操作的代码的内存部分;检查主机是否有可引导加载部分的更新固件映像;通过 UART 接口从主机接收更新的固件映像;并将更新后的映像写入内存的可引导加载部分。内存的可引导加载部分是定义系统功能的实际应用程序代码

同样,要了解 OTA 固件升级,内存可以分为 bootloader 和 bootloadable 部分。这里的主要区别在于通信接口用于从主机接收新的固件映像。在 OTA 固件升级的情况下,无线通信接口,如 WiFi、ZigBee、蓝牙等,用于通过无线接收更新的固件图像。无论接口如何,过程和基本原理都是相同的。

如今,BLE 无处不在,因为它提供了更低的功耗,并且在大多数 PC 和手机中都得到了支持。这种广泛的可用性使其成为物联网应用程序的首选。话虽如此,BLE 是一个不断发展的标准。几乎每年都会发布一个新版本,以包含更多功能来满足物联网应用不断变化的需求。

在这个竞争激烈的市场中,芯片供应商竞相提供符合新版规范的解决方案。在大多数情况下,芯片供应商在多个 BLE 堆栈/IDE 版本上分阶段支持这些功能。此外,不断变化的规范为版本之间的广泛测试留下了最少的时间,因此硅供应商的每个新 BLE 堆栈版本通常都有由客户报告或在测试或开发期间在内部捕获的缺陷修复。因此,当 BLE 用于使物联网设备保持最新时,应用程序代码可能需要升级,但核心 BLE 堆栈也可能需要更新。强大的引导加载程序架构应该能够支持这些不同的用例,并且足够灵活以适应不断变化的应用需求。

OTA 引导加载程序架构

物联网空间是多种多样的,应用程序和最终解决方案的要求也是如此。为了保持灵活性,产品团队应选择满足其应用需求的 OTA 引导加载程序架构。

有两种类型的 OTA 引导加载程序架构可用于基于 BLE 的设备:

固定堆栈 OTA 引导加载程序

在固定堆栈 OTA 引导加载程序实施中,堆栈不会升级 - 只能升级特定于应用程序的固件。通过这样的实现,堆栈存储在内存的写保护/引导加载程序部分。图 2 显示了一个典型的固定堆栈 OTA 引导加载程序实现。

poYBAGK7wAqALfzjAACAW7PloII601.png

【图2 | 基于 BLE 的固定堆栈 OTA 引导加载程序]

固定堆栈 OTA 引导加载程序的优点是升级固件所需的时间更少,因为只能升级特定于应用程序的代码。另一方面,缺点是即使部署后发现严重错误,也无法升级堆栈代码。

可升级堆栈 OTA 引导加载程序

在可升级堆栈引导加载程序实施中,堆栈和应用程序固件都可以升级。尽管引导加载程序的实际实现可能因供应商而异,但在典型的可升级堆栈实现中,内存分为三个部分:

启动器: 启动器基本上是一个没有通信接口的引导加载程序。它检查是否需要引导加载并将控制权相应地传递给堆栈或应用程序部分。如果有新图像可用,它还负责升级存储堆栈的内存部分。

堆栈: 此部分存储 BLE 堆栈。当主机设备有新的固件映像时,堆栈部分负责与主机设备通信。此外,此部分与 BLE 连接应用程序共享。实际上,这部分就像一个引导加载程序和一个可引导加载程序。该部分由启动器通过向该部分写入新的堆栈固件来引导加载。然后,此部分引导加载应用程序部分。

应用程序: 这部分是实际的应用程序代码,就像上面提到的任何其他实现一样。

一个可升级栈OTA bootloader的操作可以通过三步来理解:

步骤1: 图 3 显示了目标设备(即需要无线升级的设备)和主机设备(即具有新固件并负责将其发送到目标设备的设备)。目标使用其现有的 BLE 协议栈接收新的 BLE 协议栈。这个新的 BLE 协议栈存储在内存的特定应用固件部分。由于物联网设备通常具有有限的内存,因此特定应用的固件部分被新的 BLE 协议栈覆盖。额外的内存会增加设备成本,并且不能仅用于引导加载目的。请注意,不能直接覆盖现有的 BLE 协议堆栈,因为这会破坏当前正在与主机通信的现有堆栈代码,从而在升级完成之前中断通信。

pYYBAGK7wBKAFR3vAAEhIkHw16I243.png

【图3 | 第 1 步:现有堆栈从主机接收新堆栈并写入特定于应用程序的内存]

第 2 步: 启动器从特定应用固件部分复制新的 BLE 协议栈,并将其写入 BLE 协议部分(参见图 4)。到这一步结束时,BLE 协议部分就有了新的 BLE 协议栈。

pYYBAGK7wBqAMRNFAAEW6qb6S7c997.png

【图4 | 第 2 步:Launcher 用新堆栈覆盖现有堆栈]

第 3 步: 目标设备使用新的 BLE 协议栈从主机设备接收新的特定应用固件,并将其写入特定应用固件存储器(参见图 5)。

poYBAGK7wCKABDxyAAEwsE-2pqc052.png

【图5 | 第 3 步:新堆栈正在接收新的特定于应用程序的固件并写入特定于应用程序的部分]

完成此步骤后,目标设备固件配置如图 6 所示,堆栈和特定于应用程序的固件升级均已完成。

poYBAGK7wCmAQpR_AAC7lh9HlDo406.png

【图6 | 升级完成后,内存具有新的 BLE 堆栈和特定于应用程序的固件]

可升级堆栈引导加载程序的一个关键优势是它允许在部署产品后升级堆栈和应用程序。

基于内存的 OTA 引导加载程序分类

OTA 引导加载程序也可以根据用于存储更新固件映像的内存进行分类:

内部存储器 OTA 引导加载程序

使用这种类型的引导加载程序,更新的固件映像(新的 BLE 堆栈和特定于应用程序的固件或只是新的特定于应用程序的固件)被直接写入设备的内部闪存。到目前为止,本文讨论的引导加载程序架构结构都基于使用内部存储器。这种引导加载程序的优点是不需要外部存储器,因此降低了实现升级功能的有效成本。

外部存储器 OTA 引导加载程序

使用外部存储器 OTA 引导加载程序,现有堆栈可以接收新的特定于应用程序的固件或新的堆栈固件和特定于应用程序的固件。这些存储在外部存储器中。稍后,设备根据存储器类型(可以是 I2C 或 SPI 或任何其他串行存储器)使用有线接口从外部存储器读取新固件,然后升级内部闪存。这种实现增加了外部存储器的总系统成本。当设备的内部内存有限并需要升级其堆栈时使用它。请注意,对于某些应用程序用例,堆栈大小可能大于特定于应用程序的固件的大小。

结论

在为物联网应用选择组件时,研究芯片和开发工具支持的 OTA 固件升级方法非常重要。在评估具有内部闪存的设备时,基于内部存储器的 OTA 升级提供了一种经济的方法。某些设备可能不允许堆栈升级,只允许特定应用程序的固件升级。一些可升级堆栈 OTA 引导加载程序实施可能只允许独立升级堆栈和特定于应用程序的固件,以减少升级时间。在为您的应用选择设备时,提前了解这些限制非常重要。

在无线升级设备固件时,数据是通过无线传输的,很容易被黑客入侵。因此,验证并确保主机设备仅与预期的目标设备通话非常重要。通过空中发送的数据也应该加密,以便其他监听 BLE 通信的设备无法解码数据。BLE 4.2 改进了安全机制,增强了对中间人攻击和被动窃听的保护,以减少对 IP 盗窃和黑客接管设备的处理。如果使用的是旧版本的 BLE,明智的做法是手动添加加密层以保护您的 IP 免受被动窃听者的侵害。

物联网市场产品需求的变化速度快于传统产品的需求。此外,广泛采用的 BLE 通信接口标准仍在不断发展,芯片供应商需要大量时间来支持新功能。还有更快进入市场的压力,这可能会影响产品的测试时间和现场试验。由于这些原因,无线固件升级可以让开发人员随着时间的推移增强产品功能并在产品部署后推出缺陷修复,从而为物联网产品增加显着价值。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    462

    文章

    53574

    浏览量

    459395
  • 存储器
    +关注

    关注

    39

    文章

    7715

    浏览量

    170882
  • 物联网
    +关注

    关注

    2939

    文章

    47341

    浏览量

    408197
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Bootloader固件升级的步骤

    固件升级。 单分区的优点程序内存可用率高,能够存放更大的代码量,只需要一个分区就能实现固件升级,对之前版本的 FW 进行全部擦除和覆盖,不需要设置备份区。缺点是在进行
    发表于 11-19 07:41

    芯源半导体在联网设备中具体防护方案

    联网设备固件的安全性,芯源半导体提供了以下固件安全防护方案:​ 固件加密存储:
    发表于 11-18 08:06

    请问如何协同工作来保障联网设备固件安全的?

    固件加密存储和安全启动与固件验证这两种固件安全防护手段,是如何协同工作来保障联网设备
    发表于 11-18 07:30

    使用RTT的维护云进行远程固件升级(OTA),怎么没有网络升级的方式?

    使用RTT的维护云进行远程固件升级(OTA),怎么没有网络升级的方式的?只有蓝牙,近距离的固件升级。详细如图所示,只有蓝牙,没有连接互
    发表于 10-13 06:36

    学习联网可以做什么工作?

    健康、智能制造等领域。以下是一些常见的职业方向: 联网工程师:从事物联网系统的设计、开发、测试、维护和升级等工作,包括传感器、无线通信、云
    发表于 10-11 16:40

    联网蓝牙模块有哪些优势?

    的续航时间。这对于需要长时间运行的联网设备来说,是非常重要的一个优势。传输距离远:相较于其他无线通信技术,蓝牙模块的传输距离较远,可以在100米以内的范围内实现稳定的通信。这使得其在
    发表于 06-28 21:49

    联网的应用范围有哪些?

    情况;网络通信技术保障数据在不同设备、系统间稳定传输,像 4G、5G 甚至未来的 6G 网络;大数据与云计算技术则对海量的感知数据进行存储、分析和处理,挖掘其中有价值的信息,为决策提供支持。 联网
    发表于 06-16 16:01

    联网工程师为什么要学Linux?

    依赖Linux的安全启动机制。 三、职业需求与就业优势 1)岗位技能硬性要求 企业招聘中,约70%的联网开发岗位明确要求具备Linux系统编程、内核移植或驱动开发经验。例如,设备
    发表于 05-26 10:32

    超低功耗Wi-Fi 6模块联网:NRF7002

    在智能终端爆发式增长的背景下,迅通科技推出的‌PTR7002超低功耗Wi-Fi 6模块‌,凭借其高性能和紧凑设计,迅速成为联网设备开发者的关注焦点。这款模块不仅适配智能家居、工业自动化等场景,更以
    发表于 05-21 17:10

    基于Nordic nRF52840无线键盘、鼠标联网解决方案

    方案通过BLE蓝牙模块和联网技术,将传统的有线键盘鼠标升级无线设备,为用户带来更大的自由度和便利性。该方案使用低功耗蓝牙技术进行连接,可
    发表于 03-25 17:44

    蜂窝联网怎么选

    、数据传输、固件更新、额外的基础设施设置和维护等)至关重要,因为不同技术的成本可能会因预期使用情况的不同而大相径庭。蜂窝联网有多种连接模式,从统一费率到按数据付费,带来了可预测的成本,并消除了与自身基础设施
    发表于 03-17 11:46

    为什么选择蜂窝联网

    的基础设施。 数据传输速率和稳健性: 由于 LPWAN 技术通常用于不频繁发送/接收数据的设备,因此许多技术都针对这种使用情况进行了优化。然而,某些操作(如远程固件更新)需要更高的数据传输速率。这正是蜂窝
    发表于 03-17 11:42

    IoT联网平台如何解决工厂数字化问题?

    设备管理功能,包括设备注册、配置、监控和固件升级等。此外,平台还能够从各种传感器和设备中收集数据,通过有线或
    的头像 发表于 01-06 17:45 660次阅读

    联网(IoT)智能设备是什么?

    什么是iot智能设备联网(IoT)智能设备是指接入互联网并搭载了各种传感器和执行器,能够收集、交换、处理和执行操作的各种
    的头像 发表于 01-02 15:51 4679次阅读
    <b class='flag-5'>物</b><b class='flag-5'>联网</b>(IoT)智能<b class='flag-5'>设备</b>是什么?

    【OTA升级】无需数据线,一条命令即可完成固件升级

    OTA无线升级过程视频演示:OTA介绍OTA(Over-The-Air,空中升级)是一种通过无线通信技术实现远程更新设备
    的头像 发表于 12-11 01:00 5466次阅读
    【OTA<b class='flag-5'>升级</b>】无需数据线,一条命令即可完成<b class='flag-5'>固件</b><b class='flag-5'>升级</b>!