开发者社区> boxti> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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(转载)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于证书的物联网设备安全认证(上)
在当前物联网发展的过程中,越来越多的企业开始接受物联网,拥抱物联网。随着应用的普及,行业也对设备安全有了更高的要求。如何保障设备合法未被冒用,如何保障设备与服务端通道安全可靠,能否对通信数据进行业务层面的加密,都是从业者们频繁面对的问题。本文将介绍一种基于PKI整数体系认证设备,确保设备合法的方式
329 0
HaaS轻应用(Python):连接物联网平台并控制设备硬件
今天要介绍的是HaaS100如何使用micropython ,连接阿里云的物联网平台,并通过云端来控制设备的LED 灯。
373 0
阿里云智能接入网关SAG通过可信云SD-WAN方案认证
在2020中国可信云大会上,阿里云智能接入网关SAG凭借独特的云原生的SDWAN理念和业界领先的智能、可靠、安全性设计,通过可信云SD-WAN解决方案(服务型)认证,成为国内率先通过可信云SD-WAN认证的云厂商。
2363 0
【阿里云IoT+YF3300】7.物联网设备表达式运算
很多时候从设备采集的数据并不能直接使用,还需要进行处理一下。如果采用脚本处理,有点太复杂了,而采用表达式运算,则很方便地解决了此类问题。
690 0
IoT物联网设备OTA固件升级开发实践
通过OTA方式,我们可以对分布在全球各地的IoT设备进行设备固件升级,而不必让运维人员各地奔波。
5913 0
论好用的云主机对于网站运营的重要性
网站的运营对于企业来说,其重要性是不必多言的,不管是企业还是个人,网搭建好后,只有很好地运营起来才能带来收益。既然后期的网站运营对于企业或个人网站来说如此重要,那影响网站后期运营的重要因素又有哪些呢?提供阿里云、腾讯云、百度云等大品牌云服务器代金券免费领取的“尊托云数zuntop.cn”平台为你分析,主要有以下几点: 一、影响最大的就是网站空间,即用来放置网站的服务器空间,现在很多网站都是使用云服务器,也叫做云主机。
1527 0
C#热敏打印图片 串口打印图片
原文:C#热敏打印图片 串口打印图片 如图,一步一步慢慢调出来的 //串口通信类 public System.
1037 0
STM32C8T6 JTAG使用到PB3|PB4|PA13|PA14|PB15端口做普通IO时,需禁止JTAG!
 GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);  /********************** 1.
1328 0
+关注
boxti
12535
文章
问答
文章排行榜
最热
最新
相关电子书
更多
物联网专场-智能人居设备应用规范发布
立即下载
阿里云IoT芯片模组合作策略介绍
立即下载
企业物联网设备上云解决方案
立即下载