物联网产品设计,聊聊设备OTA的升级

物联网产品设计部分的OTA设备固件是一个非常重要的部分,能够实现升级用户服务、保障系统安全等功能。

在迅速变化和发展的物联网市场,新的产品需求不断涌现,因此对于智能硬件设备的更新需求就变得空前高涨,设备不再像传统设备一样一经出售就不再变更。

随着物联网技术发展,一个技术变得极为重要,即OTA空中下载技术。物联网平台支持通过OTA方式进行设备固件升级,是智能设备修复系统漏洞、实现系统升级的手段,通过固件升级用户提供更好的服务。OTA固件升级功能不仅能够更新固件,而且还能重新配置片上硬件资源。同时,设备固件可通过OTA固件升级流程获得更新的补丁和更多安全算法防范病毒攻击。

一、OTA固件升级对设备的重要性

物联网领域具有多样性,应用和最终解决方案需求也是如此。面对和传统设备的需求差异,OTA升级显得尤其重要,主要体现在以下几方面:

1. 市场端的快速上线需求

天下武功唯快不破,物联网设备产品往往留给设计者的时间不长,并且市场需要持续不断地创新和更新功能。在设备设计时,往往会预留一些后加载的需求,先期快速实现一些功能即开始上线,上线后可以通过OTA升级的方式更新更多功能,实现渐进式部署,有那么一点类似于互联网的敏捷研发了。只要在架构设计阶段,在硬件层面考虑到了未来的足够需求,就不可以源源不断地优化完善设备功能。

2. 设备部署需求的多样性

在物联网产品应用过程中,有个很有意思的事情,设备需要确定推送信息的云主机。那么问题就来了,有可能是一个通用的云主机,也有可能因为部署需要又需要更新推送的云主机,这个时候如果设备已经生产出来了,已经在渠道或者客户手中,那么OTA固件升级就显得很重要了。

还有一个比较常见的现象,一些设备在安装以后,对于输入输出部件的控制模式需要变更,那么可能需要对部分设备进行固件升级。比如,一开始在一个城市部署了相同智能路灯的设备,但是某些区域的设备关于灯光强度或者时间性需要做变更,那么OTA固件升级也可以帮助解决灯光控制方式的变更。

备注:如果预留了远程下行控制指令,且已经支持的,也可以不用升级固件。

3. 设备安全性及完善性

任何物联网设备不外乎都是两部分组成的:硬件+固件程序。在基于SoC的应用中,OTA固件升级功能不仅能够更新固件,而且还能重新配置片上硬件资源。

有了OTA固件升级的备案,那么产品不一定等到完全没有缺陷再上市,只要在不存在较为致命的缺陷下,就可以提前上市,解决问题后在远程完成升级修补缺陷。同时基于日益严峻的安全形势威胁,备固件可通过OTA固件升级流程获得最新补丁和更多安全算法,做到不断加固的。

二、OTA固件升级流程

1. 升级步骤

step1:云控制平台添加估计升级需求。

step2:设备在唤醒后上报自己的固件版本。

step3:云端判断是否需要升级后,下发升级固件包URL。

step4:设备下载固件后进行升级,下载成功后上报结果。

step5:设备升级成功后,上报升级结果及最新版本,云端更新为升级成功。

2. 注意事项及设计要点

  1. 设备固件版本信息不需要单独设置周期性上报事件,在设备重新启动或者心跳时上报即可。

  2. 物联网平台添加新的固件版本启动升级需求后,一直为待升级,直到设备上报升级进度。

  3. 升级成功唯一判断标准是上报的版本号。

  4. 设备离线状态下不能进行升级,需要等到设备上线后上报数据。

  5. 设备下载固件后对于升级结果需要上报。

三、云端控制系统设计

1. 固件新增

固件新增主要面向产品进行设计,按照单个产品为单位进行添加,添加固件时不用考虑设备升级的范围,仅仅作为产品的一个固件包。但是,尤其要主要固件版本的管理,不能低于当前所有该产品运行的设备版本号,并且命名的版本号要与新增填写时的相同。

新增固件的字段:名称、版本号、所属产品、备注。

2. 验证固件

固件新增加成功后,就可以进行验证固件操作了。验证固件是指在系统内小范围查找一两个设备进行升级测试,验证通过后再考虑批量进行操作处理。验证固件的操作就是在现存该产品的不同版本号的产品中分别选择最低一个产品进行升级。

验证固件字段:版本号(采用下来筛选,仅筛选现有产品存在的版本号)、产品编号(通过产品唯一识别号进行查找添加)。

备注:选择产品编号前需要先确定版本号。

3. 选择设备批量升级

固件验证通过后就可以进行批量处理了,批量处理就是在现有的设备范围内选择需要升级的设备,同时设置升级策略,比如升级时间、重复次数等。

批量升级可以采用页面方式按照特定条件进行筛选后处理,也需要能够采用excel文件导入形式进行处理,excel导入形式主要是为了定向对某一些设备升级,升级设备没有一定的共性,或者系统内暂时无法通过筛选方式查找出共性。

主要涉及的字段:升级范围、升级时间、升级策略(失败后再次间隔时间、重复次数、定时升级等)

4. 查看升级结果

批量执行升级后,回到管理固件的列表,就可以实时查看升级结果,获取升级情况!

5. 统计数据

在设计固件管理时,还可以对产品的固件分布、升级设备的状态分布占比等进行一些数据可视化设计,帮助管理员更好的查看和分析。

四、安全性考虑

以上部分其实我们都在说为什么需要OTA固件升级、固件升级的原理是什么、流程是什么、云端控制系统如何设计,但是我们没有强调其中的一个重要事情"安全性"!安全性希望引起产品和技术人员的足够重视!

  1. 对设备固件进行OTA升级时,通过在空中传输,容易遭受攻击。因此,必需确保主机设备只与相关目标设备通信。

  2. 应对空中传输的数据进行加密,以便让其它监听方无法解码这些数据。

  3. OTA服务是智能设备修复系统漏洞、实现系统升级的手段,拥有非常高的权限,掌握着系统更新的安全命脉。如果OTA升级出现安全问题,可能导致用户隐私泄露,甚至给用户带来生命危险。

相关推荐
dr李四维12 小时前
iOS构建版本以及Hbuilder打iOS的ipa包全流程
前端·笔记·ios·产品运营·产品经理·xcode
梓贤Vigo1 天前
【Axure视频教程】自制上传按钮
交互·产品经理·axure·原型·教程
我码玄黄1 天前
Figma入门-设计过程基本操作
产品经理·figma·交互设计·原型图
Jing_jing_X2 天前
心情追忆-首页“毒“鸡汤AI自动化
java·前端·后端·ai·产品经理·流量运营
jjyangyou2 天前
物联网核心安全系列——智能汽车安全防护的重要性
算法·嵌入式·产品经理·硬件·产品设计
陪学2 天前
AI时代,百度的三大主义
大数据·人工智能·百度·产品运营·互联网·生活·产品经理
PM大明同学3 天前
Axure PR 9 穿梭框 设计&交互
ui·交互·产品经理·axure·photoshop
Yan-英杰4 天前
解决Anaconda出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url
大数据·网络·人工智能·python·网络协议·http·产品经理
孟健4 天前
移动互联网:一个时代的崛起与变革(上)
产品经理·创业
月月月1236 天前
零售项目管理的核心问题:如何让协作更高效?
产品运营·产品经理