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

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

3天内不再提示

在具有微管理程序架构的MCU上实现不可阻挡的远程固件更新

星星科技指导员 来源:embedded 作者:Jonathan Williams 2023-05-04 09:36 次阅读

多年来,微控制器一直是各种产品的主要产品,不断革新其功能集、可靠性和性能。摩尔定律为最小和最实惠的消费类产品带来了 16 位和 32 位处理。

更大的内存和CPU能力的存在允许使用实时操作系统(RTOS),而以前开发人员必须依赖“裸机”编码。然而,随着产品发展成为物联网环境中的连接设备,它揭示了微控制器软件开发传统方法的根本缺陷。

本文是涵盖有望缓解的新物联网架构的系列文章中的第一篇:基于微管理程序的方法。

一致的设备可达性是物联网项目的关键

未连接的产品可能包含 90% 的应用程序代码和 10% 的第三方代码(并且不需要持续维护,因为任何攻击都需要物理访问),但连接的产品通常是 20% 的应用程序代码和 80% 的第三方代码,所有这些都必须维护以保护用户和制造商的声誉。

集成和维护外部组件不仅会增加产品的生命周期成本,而且无法在市场上提供任何附加值或差异化,最终用户看不到。这导致大量资源(无论是在时间和金钱方面)被浪费在为每个物联网产品重新创建连接解决方案上,而不是专注于独特的特性或功能。

此外,缺乏相关的领域知识以及复杂性、预算和时间表的压力会导致潜在的安全问题,这些问题可能会在未来危及产品的安全性。为了减轻这些负担,许多企业求助于物联网平台,正如Transforma Insights最近的一项调查所见 - 这是理所当然的。

几个关键因素会影响任何物联网项目的可行性,尤其是在工业领域:

一致的设备可访问性:在连接的设备和云之间保持可靠且一致的通信

值得信赖的设备到云安全性:在硬件和应用程序级别维护连接设备的完整性和机密性

可预测的端到端成本:提前了解长期安全的成本

使用预构建平台进行物联网设备管理的便利性、安全性、OTA 固件更新功能和设备生命周期管理受到许多用户的高度赞赏。但是,这些平台在开发人员灵活性方面也可能受到很大限制,限制了编程语言、操作系统和开发工具的选择。虽然这种级别的控制可能适合不熟悉硬件和固件工程的最终用户,但对于希望将连接集成到现有设备中的经验丰富的开发人员来说,它可能是一个重大障碍。IDC的行业分析师Arnal Dayaratna在最近关于边缘应用程序开发的市场报告中提出了这种开放性要求,他说:

“优先考虑可移植性:边缘开发要求数字解决方案从根本上具有可移植性并与多种基础设施兼容。

物联网平台的微管理程序方法有望缓解。基于微管理程序架构的物联网平台可以提供上述远程固件更新和远程设备生命周期管理功能,但不强加供应商对操作系统或编程语言的选择。此外,它可以提高安全性,并提供全新的物联网功能,例如固件的实时逐行远程调试。

什么是微遮蔽器?

微监控程序是一种使用微控制器虚拟机管理程序的物联网方法,可在连接互联网的设备上实现可靠和安全的远程操作,例如故障安全无线固件更新。

在架构上,微管理程序利用微控制器内的硬件分离(例如意法半导体STM32U585)在启动时将其分为两个部分,例如利用Arm® Trustzone®。

TrustZone 提供了一种经济高效的方法来隔离系统中的安全关键组件,方法是将丰富的操作系统与更小、更安全的操作系统进行硬件分离。外设在启动时分配给微管理程序区域或客户应用程序区域,这两个部分彼此独立运行代码。这允许完全的安全性,并且在应用程序区域运行的操作系统或编程语言方面完全不可知。

由于TrustZone拆分,微管理程序元件在同一MCU上“与”应用程序代码一起运行,但具有不同的安全权限。Microvisor 在应用程序代码空间周围包裹了一层安全性和连接性。

基于微监控程序的物联网平台不会对必须使用的操作系统或语言施加任何限制。它适用于嵌入式开发中的任何方法,无论是

定制的裸机方法

构建在“现成”操作系统之上,例如FreeRTOS或Azure RTOS

使用您选择的任何编程语言

基于微监控程序的架构允许的关键功能之一是无线 (OTA) 固件更新,但在某种程度上,在发生故障时无需在设备上使用 2 个版本的固件。

保证固件更新的设备可用性

微管理程序架构中的职责分工确保了物联网设备的可靠和一致的连接。微监控程序负责维护 IP 堆栈,以及 Wi-Fi 和/或蜂窝调制解调器的固件和驱动程序。即您的设备连接并保持连接所需的一切。

这意味着,即使在发生意外的应用程序故障时,由于微管理程序组件保持连接和可访问,设备仍保持连接和可访问。这包括图中突出显示的所有组件。

连接的可靠性消除了设备“砖砌”的风险,为固件开发开辟了新的机会。这允许将硬件制造过程与固件开发过程分离。由于能够执行频繁且可靠的固件更新,硬件制造商甚至可以在固件经过完整测试之前生产设备。(然而,这种以前只在Web和云开发中看到的敏捷性是否会被设备制造商采用还有待观察。

与任何FOTA(无线固件更新)方法一样,节省带宽至关重要,特别是对于产生数据使用成本的蜂窝连接设备。更新服务必须知道设备的当前操作清单,该清单定义了应存储在每个定义的内存区域中的代码/数据 - 在片上闪存或 QSPI 闪存中。因此,当新包排队等待FOTA时,只有不匹配的区域才会部署到设备中。

基于微监控程序的方法也不例外,微监控程序负责将更新从云应用到设备 QSPI 存储中的暂存区域所需的数据,并在其中保持加密状态。一旦设备将应用程序的所有更改部分安全地存储在暂存区域中,它将以故障安全和可重启的方式应用升级,以确保从应用程序的角度来看,升级似乎是原子的。

可以在升级暂存过程中通知应用程序,因为它可能希望向最终用户指示进度。暂存过程完成后,应用程序会收到通知,并可以选择方便的时间执行升级。如果需要,客户可以在暂存后随时强制应用升级;例如,如果旧代码行为不佳,则可以使用此方法。

审核编辑:郭婷

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

    关注

    48

    文章

    7565

    浏览量

    151574
  • 物联网
    +关注

    关注

    2909

    文章

    44713

    浏览量

    374276
  • OTA
    OTA
    +关注

    关注

    7

    文章

    582

    浏览量

    35269
收藏 人收藏

    评论

    相关推荐

    基于labview员工管理程序

    基于labview员工管理程序
    发表于 04-21 19:33

    管理程序选择

    亲爱的社区,如果需要多个虚拟机(最多8个),每个虚拟机需要2Mb vGPU,我们希望听到您对虚拟机管理程序选择问题的看法。我正在对可用的虚拟机管理程序功能与网格配对进行一些探索,并发现WMware
    发表于 09-10 17:09

    VM虚拟机管理程序上的NVIDIA GRID vGPU有适当的测试计划来协助测试吗?

    测试?有关此功能的进展的任何更新?我知道我可以特定卡使用passthrough用于各个GPU。我正在寻找KVM管理程序下的vGPU支持,与VMware和XenServer平台可用的
    发表于 09-18 16:14

    请问stm32如何实现iap远程固件更新

    请问stm32如何实现iap远程固件更新
    发表于 11-26 06:29

    介绍下STM32远程固件更新的方法

    经常有项目要求固件远程更新,通过串口、GPRS、4G等等方式。下面介绍下STM32远程固件更新
    发表于 01-26 06:42

    如何使用NFC更新MCU固件

    你好,我想使用 NFC 更新 MCU 固件。 我有一部 iphone,将创建一个应用程序或使用现有应用程序,以及使用 I2c 连接 stm3
    发表于 12-27 07:36

    如何在S32G运行管理程序

    我正在尝试 NXP S32 运行管理程序。(基于 L4Re 微内核的管理程序)我已经构建了 Arm Trusted 固件并使用了 ubo
    发表于 03-23 09:11

    ADAM设备管理程序DevMgr.exe安装

    【LabVIEW从入门到精通】5.7.1.1 ADAM设备管理程序DevMgr.exe安装
    发表于 01-08 15:50 0次下载

    Xen开源管理程序为 Zynq Ultrascale+ MPSoC 实现虚拟化

    Xilinx  选择联盟高级会员  DornerWorks   Zynq MPSoC  支持开源  Xen  管理程序,从而可在 4  核  ARM® Cortex®-A53 
    发表于 02-09 06:31 421次阅读
    Xen开源<b class='flag-5'>管理程序</b>为 Zynq Ultrascale+ MPSoC <b class='flag-5'>实现</b>虚拟化

    基于Zynq UltraScale+ MPSoC运行 Xen 管理程序

    熟悉运行在赛灵思 Zynq UltraScale+ MPSoC 的 Xen 管理程序。 赛灵思和 DornerWorks 的系统软件团队赛灵思的 Zynq® Ultrascale+™ MPSoC
    发表于 11-16 20:17 3500次阅读
    基于Zynq UltraScale+ MPSoC<b class='flag-5'>上</b>运行 Xen <b class='flag-5'>管理程序</b>

    Zynq通过 Xen 管理程序实现快速的软件集成和更高的系统安全性与保密性

    领域。DornerWorks 新型 Zynq® UltraScale+ MPSoC 器件提供 Xen 支持,为赛灵思用户带来多种优势。Xen Zynq 管理程序不仅实现快速的软件集
    发表于 11-17 05:28 1460次阅读

    赛灵思 Zynq UltraScale+ MPSoC 的 Xen 管理程序教程

    通过这篇有趣的教程,熟悉运行在赛灵思 Zynq UltraScale+ MPSoC 的 Xen 管理程序。 赛灵思和 DornerWorks 的系统软件团队赛灵思的 Zynq
    发表于 02-01 01:38 1336次阅读

    AT32 MCU如何使用OTA通过USART实现固件的在线升级更新

    AT32 MCU如何使用OTA通过USART实现固件的在线升级更新
    的头像 发表于 10-26 17:09 2603次阅读
    AT32 <b class='flag-5'>MCU</b>如何使用OTA通过USART<b class='flag-5'>实现</b>对<b class='flag-5'>固件</b>的在线升级<b class='flag-5'>更新</b>

    AT32 MCU如何使用IAP通过USART实现固件的在线升级更新

    AT32 MCU如何使用IAP通过USART实现固件的在线升级更新
    的头像 发表于 09-19 16:51 2356次阅读
    AT32 <b class='flag-5'>MCU</b>如何使用IAP通过USART<b class='flag-5'>实现</b>对<b class='flag-5'>固件</b>的在线升级<b class='flag-5'>更新</b>

    MSP430 MCU的USB现场固件更新

    电子发烧友网站提供《MSP430 MCU的USB现场固件更新.pdf》资料免费下载
    发表于 10-18 09:27 0次下载
    MSP430 <b class='flag-5'>MCU</b><b class='flag-5'>上</b>的USB现场<b class='flag-5'>固件</b><b class='flag-5'>更新</b>