嵌入式微控制器应用中的无线(OTA)更新:设计权衡与经验教训

时间:2022-03-10作者:佚名

摘要

许多嵌入式系统部署在操作人员难以或无法接近的地方。物联网(IoT)应用尤其如此,这些应用通常大量部署并且电池寿命有限。实例包括监控人员或机器健康状况的嵌入式系统。这些挑战加上快速迭代的软件生命周期,导致许多系统需要支持无线(OTA)更新。OTA更新用新软件替换嵌入式系统的微控制器或微处理器上的软件。虽然很多人非常熟悉移动设备上的OTA更新,但在资源受限的系统上设计和实施会带来许多不同的挑战。本文将介绍针对OTA更新的若干不同软件设计,并讨论其优缺点。我们将了解OTA更新软件如何利用两款超低功耗微控制器的硬件特性。

构建模块

服务器和客户端

OTA更新用新软件替换器件上的当前软件,新软件以无线方式下载。在嵌入式系统中,运行此软件的器件通常是微控制器。微控制器是一种小型计算器件,其存储器、速度和功耗均很有限。微控制器通常包含微处理器(核心)和用于执行特定操作的数字硬件模块(外设)。工作模式下典型功耗为30μA/MHz至40μA/MHz的超低功耗微控制器是此类应用的理想选择。使用这些微控制器上的特定硬件外设并将其置于低功耗模式,是OTA更新软件设计的重要组成部分。图1显示了一个可能需要OTA更新的嵌入式系统实例。可以看到,一个微控制器与无线电和传感器相连,这可用在物联网应用中,利用传感器收集有关环境的数据,并利用无线电定期报告数据。系统的这一部分称为边缘节点或客户端,是OTA更新的目标。系统的另一部分称为云或服务器,是新软件的提供者。服务器和客户端利用收发器(无线电)通过无线连接进行通信。

嵌入式微控制器应用中的无线(OTA)更新:设计权衡与经验教训

图1.示例嵌入式系统中的服务器/客户端架构

何为软件应用程序?

OTA更新过程的大部分操作是将新软件从服务器传输到客户端。软件从源格式转换为二进制格式之后,作为一个字节序列进行传输。转换过程会编译源代码文件(例如c、cpp),将其链接成一个可执行文件(例如exe、elf),然后将可执行文件转换为可移植的二进制文件格式(例如bin、hex)。概言之,这些文件格式包含一个字节序列,此字节序列属于微控制器中存储器的特定地址。通常,我们将通过无线链路发送的信息概念化为数据,例如更改系统状态的命令或系统收集的传感器数据。就OTA更新而言,数据就是二进制格式的新软件。在很多情况下,二进制文件非常大,无法通过单次传输从服务器发送到客户端,这意味着需要将二进制文件放入多个不同的数据包中,此过程称为“分包”。为了更好地说明此过程,图2演示了软件的不同版本如何生成不同的二进制文件,从而在OTA更新期间发送不同的数据包。在这个简单例子中,每个数据包包含8字节数据,前4个字节表示客户端存储器中用来存储后4个字节的地址。

主要挑战

基于对OTA更新过程的这种高层次描述,OTA更新解决方案必须应对三大挑战。第一个挑战与存储器有关。软件解决方案必须将新软件应用程序组织到客户端器件的易失性或非易失性存储器中,以便在更新过程完成时可以执行它。解决方案必须确保将前一版本的软件保留为后备应用程序,以防新软件出现问题。此外,当复位和断电重启时,我们必须让客户端器件的状态——例如当前运行的软件版本以及它在存储器中的位置——保持不变。第二大挑战是通信。新软件必须以离散数据包的形式从服务器发送到客户端,每个数据包都要放在客户端存储器中的特定地址。分包方案、数据包结构和数据传输协议必须在软件设计中考虑周全。最后一个主要挑战是安全性。当新软件以无线方式从服务器发送到客户端时,我们必须确保服务器是可信任方。这种安全挑战称为身份验证。我们还必须对新软件进行模糊处理以防观察者偷窥,因为其中可能包含敏感信息。这种安全挑战称为保密。安全性的最后一个要素是完整性,即确保新软件在通过无线方式发送时不会损坏。

嵌入式微控制器应用中的无线(OTA)更新:设计权衡与经验教训

图2.软件应用程序的二进制转换和分包过程

第二阶段引导加载程序(SSBL)

了解引导序列

主引导加载程序是一种软件应用程序,永久驻留在微控制器的只读存储器中。主引导加载程序所在的存储区域称为信息空间,有时用户无法访问。每次复位都会执行该应用程序,一般完成一些必要的硬件初始化,并且可能将用户软件加载到存储器中。但是,如果微控制器包含片内非易失性存储器(如闪存),则引导加载程序不需要进行任何加载,只需将控制权转移到闪存中的程序即可。如果主引导加载程序不支持OTA更新,则必须有第二阶段引导加载程序。与主引导加载程序一样,SSBL会在每次复位时运行,但将实施OTA更新过程的一部分。此引导序列如图3所示。本节将说明为什么需要第二阶段引导加载程序,并解释如何指定此应用程序的作用是一个重要设计权衡。

经验教训:务必有一个SSBL

从概念上讲,省略SSBL并将所有OTA更新功能放入用户应用程序似乎更简单,因为这样的话,OTA过程可以无缝利用现有的软件框架、操作系统和设备驱动程序。图4显示了一个选择此方法的系统的存储器映射和引导序列。

应用程序A是部署在现场微控制器上的原始应用程序。此应用程序包含OTA更新相关软件,当服务器请求时,利用该软件可下载应用程序B。下载完成且应用程序B经过验证之后,应用程序A将对应用程序B的复位处理程序执行分支指令,以将控制权转移给应用程序B。复位处理程序是一小段代码,用作软件应用程序的入口点,并在复位时运行。在这种情况下,复位是通过执行一个分支来模拟,这相当于函数调用。这种方法有两大问题:

► 许多嵌入式软件应用程序采用实时操作系统(RTOS),其允许将软件拆分为多个并发任务,每个任务在系统中具有不同的职责。例如,图1所示的应用程序可能有用于读取传感器的RTOS任务,对传感器数据运行某种算法的RTOS任务,以及与无线电接口的RTOS任务。RTOS本身始终处于活动状态,负责根据异步事件或特定的基于时间的延迟切换这些任务。因此,从RTOS任务分支到新程序是不安全的,因为其他任务会在后台继续运行。对于实时操作系统,终止某个程序的唯一安全方法是通过复位。

嵌入式微控制器应用中的无线(OTA)更新:设计权衡与经验教训

图3.使用SSBL的存储器映射和引导流程示例

嵌入式微控制器应用中的无线(OTA)更新:设计权衡与经验教训

图4.没有SSBL的存储器映射和引导流程示例

相关阅读

推动轨道交通与新能源融合发展的关键技术

轨道交通与新能源融合一体化发展尚处于萌芽阶段,亟需新一代信息通信技术、电力变换与控制技术、新能源牵引网群控制技术、先进储能技术、广域保护与自愈技术、能量自洽调度技...
2024-03-27
推动轨道交通与新能源融合发展的关键技术

0.7米生死线!电气设备不停电安全距离全解析

新闻和网络上经常报道触电事故大多都是对安全距离了解不足而引发的触电事故。以下就为大家把不同电压等级设备的不停电安全距离解析下,因为这些不仅是数字,更是电气行业的生死...
2026-06-23
0.7米生死线!电气设备不停电安全距离全解析

浅谈酒店亮化建设的重要性

大多数的酒店都是夜晚的时候火爆,可是夜晚的时候天空一片漆黑,很多外来客人找寻酒店都是比较麻烦的。为了吸引更多的顾客,目前很多酒店都选择了酒店亮化,酒店在夜晚的时候...
2022-07-15

建筑照明设计的功能性

照明设计 不仅要强调最基本的功能性,还要与艺术美学先结合,根据建筑空间的不同特点,有针对性的采用不同的灯光进行区域划分,而不是采用传统的对称天花的灯具点位布置。如果...
2022-07-15

断路器导线保护规范详解

断路器导线保护最大长度规范详解 本文基于《民用建筑电气设计标准》等现行国家标准,系统梳理断路器对配电导线短路保护的核心要求、导线最大长度计算逻辑、参考标准及实际应...
2026-04-10
断路器导线保护规范详解

热销商品

硅胶垫片/硅胶垫/硅胶垫片圆形/硅胶垫圈/橡胶垫片/氟胶垫片

硅胶垫片(又称硅胶垫、硅胶垫圈)是一种由硅橡胶制成的密封材料,具有优异的耐高低温(-60℃~230℃)、耐老化、绝缘和环保无毒特性,广泛用于食品、医疗、电子及家电等领域...
1

厂家直销一字十字螺丝刀改锥螺丝批工具配送迷你单头螺丝刀起子

厂家直销一字十字螺丝刀改锥螺丝批工具,精选优质合金钢材质,硬度高、耐磨损,使用寿命长。迷你单头设计,小巧轻便,便于携带与收纳,适合家庭维修、电子产品拆装、眼镜修理...
0.4

暗装开关插座面板单开双控一开五孔二三极USB快充肤感超薄家用4开

暗装开关插座面板,简约设计,完美融入家居环境。单开双控,轻松实现远程控制,方便实用。一开五孔,满足多种电器插孔需求;二三极USB快充,快速充电,高效便捷。超薄设计,节省空...
1.34

室外电线电缆JKLYJ4X16/25/35/50/70平方国标4芯平行线集束架空线

JKLYJ4X16/25/35/50/70平方国标4芯平行线集束架空线是一种专为室外电力传输设计的电缆。它采用高强度的聚氯乙烯(PVC)材料制造,具备优良的耐候性和抗老化性能,适用于...
3.8

光伏组件压块光伏板中压块光伏铝合金压块支架连接紧固件边压中压

光伏组件压块是用于固定光伏组件的关键连接紧固件,广泛应用于太阳能发电系统的支架结构中。其中,边压块和中压块是两种常见类型,分别用于组件边缘和中部位置的夹持固...
1.2

网站栏目