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用于存储更新的固件映像的存储器对它们进行分类:
- 内部存储器OTA bootloader
- 外部存储器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(转载)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
AWE见证物联网落地,从概念走入家庭日常
与德国IFA、美国CES齐名的中国家电及消费电子博览会2017AWE已于近日成功闭幕。作为国内家电行业规格最高的展会之一,来自全球各地的家电相关品牌和产品在这里集中亮相。与以往不同的是,今年AWE在见证了家电行业风向的同时,更目睹了物联网的落地,从科技概念走入老百姓的日常生活。 AWE黑科技亮眼,家居走入智慧时代 以“智慧生活,全球平台”为主题,今年AWE更加强调智慧生活对于消费升级的多元影响与深刻变革,现场达到了创纪录的8个展馆,参展人数预计将超过20万人次。其中不少智慧家电的黑科技吸引现场消费者围观体验。 在现场记者看到不少智慧单品:航嘉最新推出的黑科技小家电——爸爸小炒(Dadcooker),通过APP可下载大量专业厨师开发的菜谱,用户可以任意选择一个按开始,菜谱程序就会自动下载到爸爸小炒机器,机器就可以开始自动炒菜了;福玛特(fmart)不仅展示了其多款全新系列的扫地机器人,更展示了包括目前业内技术最尖端的智家(icheeck)——含有brain-map精准算法、陀螺仪全局规划系统,等等,不一而足。 除了单个产品抢镜外,海尔展区的智慧家庭场景体验区也吸引了众多关注。 海尔展示的...
- 下一篇
极棒(GeekPwn)实验室:物联网安全堪忧 loT设备存大量低级漏洞
近两年来,智能设备席卷全球,随之而来的安全威胁却在不断演变和升级,在刚刚过去的2016年发生的几起全球重大网络安全事件中,都能看到物联网攻击的身影。在温哥华举办的国际信息安全大会Cansecwest上,来自极棒实验室(GeekPwn Lab)的安全专家宋宇昊与刘惠民带来了IoT设备漏洞挖掘与利用的演讲,通过对GeekPwn(极棒)大赛上陆续失守的IoT设备进行技术和数据分析,揭示了物联网安全不容乐观的现状。 史上最大规模DDoS元凶现身 僵尸网络席卷物联网 2016年末,一个代号为“Mirai”的病毒通过感染IoT设备,致使美国东部大面积网络瘫痪。攻击者利用网络摄像机及电子录音设备袭击了美国域名解析服务提供商Dyn公司,包括Twitter、Facebook在内的多家美国网站无法通过域名访问。对此,极棒实验室专家宋宇昊在Cansecwest上介绍到,造成半个美国互联网瘫痪的罪魁祸首,是Mirai僵尸网络控制下的数以10万计的物联网设备。该僵尸网络是通过物联网设备——如网络摄像头、路由器等展开一系列攻击。 其实,早在Mirai病毒发酵前的2015年,GeekPwn极客大赛选手就展示了对多款...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境