OTA固件升级对于物联网设备的重要性

简介:

物联网(IoT)代表着一个重要的发展趋势,逐渐将日常生活中的各个方面相互连接在一起。不同于早期的路由器等无线设备(每个房间或者办公室安装一个)在数量上的局限性,物联网将会非常深入的渗透到方方面面,并且可以连接大量的设备。简单举几个例子,譬如在一个家庭环境中,我们可以远程锁门、开关窗帘、控制照明以及管理温度和湿度等等。

本文引用地址:http://www.eepw.com.cn/article/201703/345668.htm

物联网规模化部署面临着众多挑战,例如:众多设备近距共终端和庞大数量的设备互连。这些挑战催生出对无线(OTA)固件升级的需求,它将是物联网系统必不可缺的一个组成部分。OTA的有效性已在许多应用程序中得到验证,例如手机会通过定期升级来接收新功能和修补漏洞。

基于BLE的OTA固件升级功能相对而言是一个新生事物,试想,将一个beacon部署在一个大型市场中以推送在展的产品信息。这些beacon的位置有可能难以触及,而且它们的庞大数量也让用户不可能在部署后对它们进行逐个编程。因此,当有新功能或需要修补的漏洞出现时,OTA固件升级就会成为一个重要的省时性能。

对于物联网而言,有三大原因正在推升市场对基于BLE的OTA固件升级的需求:

  • 广泛和种类各异的设备:设备的数量和种类在分布式网络中扮演重要角色,如体育场智能照明应用。一个标准OTA接口可确保其固件升级架构通用于不同的节点。因此,虽然一个大型泛光灯和一个走廊灯在功能上不同,但一个基于BLE的标准OTA接口可以在它们之间通用。这意味着,向这些种类各异的设备推送新固件的主机设备可以是一个通用平台。同时这还意味着,可以在一个控制室中升级体育场中所有不同类型的照明灯,而不是对它们进行逐个升级。
  • 不断变化的需求和新功能:物联网是一个迅速变化和发展的市场,新的产品需求和BLE功能不断涌现。例如,安全威胁和隐私泄露是物联网设备管理领域面临的最大挑战之一。为了防范病毒攻击,设备固件可通过OTA固件升级流程获得最新补丁和更多安全算法。任何物联网系统都由两个部分组成:硬件和固件。在基于SoC的应用中,OTA固件升级功能不仅能够更新固件,而且还能重新配置片上硬件资源。
  • 紧迫的产品上市需求:物联网系统的设计周期很短,而市场需要持续创新和部署最新功能。一个总的发展进程是:对硬件进行过度设计,以便在一个较长的时期内满足不断升高的市场需求。OTA固件升级可实现渐进式部署。例如,一个恒温器系统最初可以只部署一个热传感器实现快速部署,之后再部署湿度传感器。请注意,这种方法使得硬件设计成为一个深思熟虑的过程,在架构阶段从硬件角度考虑了未来的部署。

物联网领域具有多样性,应用和最终解决方案需求也是如此。某些产品看重成本,而另一些则与众不同,旨在定义新的细分市场。为了保持灵活性,OTA bootloader(引导加载程序)架构应能适应不同的需求。下面我们探讨这种灵活性的驱动因素和架构选项。

虽然OTA固件升级是物联网应用的福音,但产品团队也必须留意和避免一些陷阱。现场升级固件的能力外加紧迫的上市需求有可能给团队带来压力,迫使其太快发布固件。例如,大规模部署产品的竞赛可能让营销人员依赖以下事实:今后可以更新固件。这有可能导致企业发布不稳定、未经过全面验证或优化的软件或产品。产品团队应仔细权衡这些决策的影响,通过运用约束条件达到不过度使用OTA的目的。此外,频繁更新也可能不受最终用户的欢迎。

OTA的基本原理

让我们了解一下OTA固件升级的原理。就基本原理而言,OTA与UART 引导加载程序或USB 引导加载程序等其它引导加载程序没有什么差异。图1显示了一个可升级、基于固件的系统的基本架构。

  图1: UART 引导加载程序系统

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

与此类似,为了理解OTA固件升级,可将存储器分为引导加载区和应用程序区。与UART 引导加载程序相比,此处最大的不同是用于从主机接收新固件的接口。OTA固件升级使用一个无线通信接口接收更新后的固件映像。取决于具体应用,逐个接口可能是WiFi、ZigBee、蓝牙或任何其它无线接口。无论何种接口,其过程和基本原理都是相同的。

目前,蓝牙低功耗(BLE)标准无所不在,因为它功耗较低,而且获得了大多数PC和手机的支持,这种普及程度使其成为物联网应用的首选。说到这里,BLE是一个不断演进的标准,几乎每年都有一个新版本发布,其中包含更多新特性,以满足物联网应用不断变化的需求。市场中的各大芯片厂商正在展开一场竞赛,推出遵从新版标准的解决方案。大多数情况下,芯片厂商在几个BLE协议栈、IDE版本中支持这些特性。此外,标准的快速变化给版本之间留下的测试时间也很短。因此,芯片厂商发布的每一个新的BLE协议栈版本通常都会被客户反馈存在缺陷,或由内部团队在测试期间发现缺陷。因此,当使用BLE升级物联网设备时,不仅应用代码需要升级,核心BLE协议栈可能也需要升级。一个合理、可靠的引导加载程序架构应能支持这些不同的应用,而且应足够灵活,能够满足不断变化的应用需求。

对于基于BLE的设备而言,有两种OTA bootloader架构:

固定协议栈OTA bootloader

可升级协议栈OTA bootloader

固定协议栈OTA bootloader – 在一个固定协议栈OTA bootloader系统中,协议栈不升级,只能升级应用固件。协议栈存储在存储器的写保护/引导加载程序区。图2显示了一个典型的固定协议栈OTA bootloader系统。

  图2:基于BLE的固定协议栈OTA bootloader

固定协议栈OTA bootloader的优点是:升级固件的时间较短,因为只能升级应用代码;其缺点是:即使部署后发现重大问题也无法升级协议栈代码。

可升级协议栈OTA bootloader – 在可升级协议栈bootloader系统中,协议栈和应用固件都能升级。虽然不同厂商实现bootloader的方式不同,但在一个典型的可升级协议栈系统中,存储器分为三个区:–

Launcher(启动器)区 – 基本上而言,launcher是一个无通信接口的引导加载程序。它负责检查是否需要引导加载,然后相应地将控制权交给协议栈区或应用区。如果有一个新协议栈映像,它还负责升级协议栈的存储区。

协议栈区 – 该区存储BLE协议栈。当主机设备有一个新映像时,协议栈区负责与主机设备通信。此外,该区与应用共享,用于建立BLE连接,该区即扮演引导加载程序区的角色,也扮演可应用程序区的角色。该区由launcher将新协议栈固件写入该区。然后,该区引导加载应用区。

应用区 – 与上述其它实现相同,该区是实际应用代码。

可升级协议栈OTA bootloader的运行分为三步:

第1步:图3显示了目标设备(即需要得到OTA升级的设备)和主机设备(即有新固件并负责将其发送给目标设备的设备)。目标设备使用其现有的BLE协议栈接收新的BLE协议栈。这个新的BLE协议栈存储在存储器的应用固件区。应用固件区被新的BLE协议栈覆盖,因为物联网设备的内存通常有限。增大内存会增加设备成本,而且出于引导加载原因而增大存储器也不合理。请注意,现有BLE协议栈不能被直接覆盖,因为这将破坏正与主机通信的现有协议栈代码,从而在升级结束前中断通信。

  图3:第1步:现有协议栈从主机设备接收新协议栈,并将其写入应用存储器

第2步: launcher复制应用固件区的BLE协议栈,并将其写入现有BLE协议区(见图4)。此步结束时,BLE协议区将有新的BLE协议栈。

  图4:第2步: Launcher使用新协议栈覆盖现有协议栈

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

  图5:第3步:新协议栈接收新应用固件,然后将其写入应用区

此步之后,目标设备固件的配置如图6所示,协议栈和应用固件升级全部结束。

  图6:升级结束后,存储器有了新的BLE 协议栈和应用固件

可升级协议栈bootloader的一大优势是:部署产品后,允许升级协议栈和应用。

还可以根据OTA Bootloader用于存储更新的固件映像的存储器对它们进行分类:

  1. 内部存储器OTA bootloader
  2. 外部存储器OTA bootloader

内部存储器OTA bootloader – 对于这种类型的引导加载程序,更新后的固件映像 – 新的BLE协议栈及应用固件或新的应用固件 – 被直接写入设备的内部闪存。本文至此所描述的引导加载程序架构都基于内部存储器。此类引导加载程序的优势是:无需外部存储器,因此降低了升级功能的实现成本。

外部存储器OTA bootloader – 对于外部存储器OTA bootloader,现有协议栈接收新的应用固件或新的协议栈固件及应用固件。它们被存储在外部存储器中。在以后的某个时刻,根据存储器类型(I2C、SPI或其它串口存储器),设备使用一个有线接口从外部存储器读取新固件,然后升级内部闪存。这种方式增加了外部存储器的总成本,用于设备内部存储器有限但却需要升级其协议栈的情况。请注意,在某些应用中协议栈大于应用固件。

为某个物联网应用选择组件时,必需了解芯片厂商和开发工具所支持的OTA固件升级方法。评估一个配备内部存储器的设备时,基于内部存储器的OTA升级是一种经济高效的方法。某些设备可能不允许升级协议栈,只允许升级应用固件。某些可升级协议栈OTA bootloader架构可能只允许单独升级协议栈或应用固件,从而缩短升级时间。在为您的应用选择设备时,最好提前了解这些局限性。

对设备固件进行OTA升级时,通过在空中传输,容易遭受攻击。因此,必需确保主机设备只与相关目标设备通信。此外,应对空中传输的数据进行加密,以便让其它监听BLE通信的设备无法解码这些数据。BLE 4.2改进了安全机制,能够更好地防范中间人攻击和被动监听攻击,降低IP被盗或设备被黑客劫持的风险。如果使用的是一个旧版BLE,明智的做法是手动增加一个加密层,以保护您的IP免遭被动监听。

总而言之,物联网市场中的产品需求比传统产品变化更快。此外,已得到广泛普及的BLE通信标准仍在不断演进,芯片厂商需要较长时间来支持新特性。将产品更快推向市场的压力也可能影响测试时间或产品的现场试验。鉴于这些原因,在部署产品后,OTA固件升级可让开发人员随着时间的推移增强产品功能,并修补产

本文转自d1net(转载)

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
打赏
0
0
0
0
209
分享
相关文章
请问:如何使用python对物联网平台上设备的属性进行更改?
为验证项目可行性,本实验利用阿里云物联网平台创建设备并定义电流、电压两个整型属性。通过Python与平台交互,实现对设备属性的控制,确保后续项目的顺利进行。此过程涵盖设备连接、数据传输及属性调控等功能。
基于Web攻击的方式发现并攻击物联网设备介绍
基于Web攻击的方式发现并攻击物联网设备介绍
73 4
智能物联网安全:物联网设备的防护策略与最佳实践
【10月更文挑战第26天】随着物联网(IoT)技术的快速发展,智能设备已广泛应用于智能家居、工业控制和智慧城市等领域。然而,设备数量的激增也带来了严重的安全问题,如黑客攻击、数据泄露和恶意控制,对个人隐私、企业运营和国家安全构成威胁。因此,加强物联网设备的安全防护至关重要。
181 7
物联网卡:物联网卡不支持语音通话,是如何实现设备间的数据传输和通信的?
物联网卡(IoT SIM卡)通常被设计用于支持物联网(IoT)设备之间的数据传输,而不直接支持语音通话功能。这是因为物联网设备主要关注的是数据的收集、传输和处理,而不是语音通信。为了实现设备间的数据传输和通信,物联网卡及其背后的技术采用了多种方法,主要包括但不限于以下几种方式:
物联网卡:物联网卡不支持语音通话,是如何实现设备间的数据传输和通信的?
物联网设备精细化管理系统解决方案
随着科技的进步,物联网技术作为新一代信息技术的核心部分,正在深刻改变各行业的生产和管理方式。其在资产管理、智慧城市、能源管理和智慧医疗等多个领域的广泛应用,不仅提高了运营效率,还促进了资源优化配置和精细化管理。本文详细介绍了物联网的基础概念及其在设备精细化管理系统中的具体应用方案,展示了如何通过智能感知层建设、数据处理分析平台以及精细化管理应用,实现设备的实时监控、预测性维护和能耗管理等功能,从而帮助企业提升竞争力,降低成本,并推动社会向更智能化、绿色化的方向发展。
148 2
物联网设备精细化管理系统解决方案
物联网卡不能使用在什么设备上
“物联网卡不能使用在什么设备上”这一操作或规定,通常基于物联网卡的特性、使用条款以及设备兼容性等因素。以下是对这一问题的详细分析和操作建议:
医疗物联网设备精细化管理系统解决方案
华汇数据智慧医院物联网管理系统解决方案是一种集物联网、云计算、大数据和人工智能等先进技术于一体的综合性解决方案,旨在提升医院的运营效率、医疗质量和患者满意度。
135 3
物联网卡可以升级套餐吗
物联网卡(IoT SIM卡)主要用于物联网设备,如智能家居、智能城市基础设施、远程监控等,以实现设备与互联网的连接。对于物联网卡是否可以升级套餐,这主要取决于几个因素,包括你与物联网服务提供商的合同条款、服务提供商的政策,以及你当前使用的物联网卡套餐类型。
物联网卡不能更换设备使用吗
物联网卡(IoT SIM卡)是否允许更换设备使用,这主要取决于物联网服务提供商的具体政策和服务条款。通常,物联网卡是为特定设备或应用场景设计的,因此一些服务提供商会限制卡的更换使用,主要是出于安全、管理、网络优化和避免滥用等考虑
2G网络和基站的撤销对物联网设备的影响
2G网络和基站的撤销对物联网设备的影响是多方面的,以下是对这一影响的详细分析:
2G网络和基站的撤销对物联网设备的影响

物联网

+关注

相关产品

  • 物联网平台