资源受限分布式嵌入式系统的动态软件更新
1. 引言
如今,嵌入式系统中微控制器的使用数量不断增加。在更复杂的系统里,会采用多个不同微控制器组成的网络,从而形成大小节点混合的异构系统。特别是分布式嵌入式系统,一方面存在资源极度受限的设备,另一方面也有功能更强大的设备。
以传感器网络为例,它由大量小型、低成本且资源受限的节点构成,这些节点配备传感器来收集环境数据并具备通信能力。通常,这些传感器节点由一个更强大的节点——基站来支持和管理。
一旦系统初始设置完成,由于漏洞修复、功能改进、扩展以及参数更改等原因,选择性的软件更新就变得必要。例如,若校准过程未能得出理想的参数集,就需要进行软件修改,可能会替换采样或预处理算法,或者添加使用其他传感器的软件。而且,考虑到系统预计有几年的使用寿命,一个具有前瞻性的系统必须能够替换系统的任何部分,如调度系统或通信协议。
在更新节点软件时,我们希望尽可能减少影响。鉴于传感器节点资源有限,更新过程本身不能消耗过多资源。此外,不同的更新会影响系统的不同部分,应用程序的更新不应影响系统服务。例如,添加传感器驱动程序导致整个节点重启是不可接受的,因为节点重启会导致应用程序和操作系统库的状态信息丢失。像多跳通信协议会存储路由信息来表示网络拓扑,重启后这些信息丢失,需要重新构建,这不仅影响本地节点,还会影响其他节点的通信。
我们的目标是动态更新传感器节点,同时保留应用程序和系统状态。在更新过程中,节点会暂停,但更新完成后无需重启。这样做的优势是显著缩短离线时间,并由于更新后系统状态无需不必要地重建,从而实现快速恢复,提升性能。
我们描述了一种基于应用程序二进制代码对节点进行动态重新编程的更新基础设施。更
超级会员免费看
订阅专栏 解锁全文
298

被折叠的 条评论
为什么被折叠?



