物联网产品设计,聊聊设备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升级出现安全问题,可能导致用户隐私泄露,甚至给用户带来生命危险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/266491.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

simulinkveristandlabview联合仿真——模型导入搭建人机界面

目录 1.软件版本 2.搭建simulink仿真模型 编译错误 3.导入veristand并建立工程 4.veristand导入labview labview显示veristand工程数据 labview设置veristand工程数据 运行labview工程 1.软件版本 matlab2020a,veristand2020 R4,labview2020 SP…

7种常见的网络安全设备及其功能

网络安全设备在现代网络环境中起着至关重要的作用,帮助保护个人和组织免受恶意攻击。本文将介绍7种常见的网络安全设备,包括防火墙、入侵检测系统、反病毒软件、数据加密设备、虚拟私人网络、安全信息和事件管理系统以及网络访问控制设备,并详…

阅读笔记-A Cluster Separation Measure

A Cluster Separation Measure(一种聚类分离测度) 1.这篇论文要解决什么问题?要验证一个什么科学假设? 问题是确定数据中聚类的适当数量,解决这种问题的两种方法都取决于确定指数中相对较大的变化,而不是…

将PPT的图保持高分辨率导入到Word / WPS中

1、将PPT中画好的图组合在一起,选择组合后的图复制(Ctrlc) 2、在Word中,选中左上角的粘贴选项--->选择性粘贴 WPS选择元文件 / Word选择增强型图元文件 这样放大也不模糊了

Gateway API

Gateway API 目录 原文链接 https://onedayxyy.cn/docs/GatewayAPI 本节实战 实战名称🚩 实战:Gateway API在istio里的安装及测试-2023.12.23(测试失败) 前言 Gateway API 是由 SIG-NETWORK 社区管理的开源项目,项目地址:http…

【一起学Rust | 框架篇 | Tauri2.0框架】Tauri2.0环境搭建与项目创建

文章目录 前言一、搭建 Tauri 2.0 开发环境二、创建 Tauri 2.0 项目1.创建项目2.安装依赖4. 编译运行 三、设置开发环境四、项目结构 前言 Tauri在Rust圈内成名已久,凭借Rust的可靠性,使用系统原生的Webview构建更小的App 以及开发人员可以灵活的使用各…

阿里云 ARMS 应用监控重磅支持 Java 21

作者:牧思 & 山猎 前言 今年的 9 月 19 日,作为最新的 LTS (Long Term Support) Java 版本,Java 21 正式 GA,带来了不少重量级的更新,详情请参考 The Arrival of Java 21 [ 1] 。虽然目前 Java 11 和 Java 17 都…

AI创作系统ChatGPT系统源码,支持Midjourney绘画,GPT语音对话+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

【RabbitMQ】RabbitMQ详解(一)

RabbitMQ详解 RabbitMQ介绍四大核心概念RabbitMQ 入门案例Hello RabbitMQ生产者消费者 Work Queues轮询消费 RabbitMQ消息应答与发布自动应答手动应答的方法肯定确认应答否定确认应答拒绝处理该消息恢复到消息队列Multiple的解释消息重新入队手动应答案例 RabbitMQ持久化队列持…

面向对象设计与分析40讲(12)简单工厂方法模式

文章目录 定义示例优缺点 定义 简单工厂模式是一种创建型模式,用于根据客户端的需求创建对象实例,所谓的需求反映到编程语言里就是传入的参数。 简单工厂模式包括三个主要部分: 工厂类(Simple Factory):…

python dash学习2

代码 内有说明: from dash import Dash, html, dcc, callback, Output, Input import plotly.express as px import pandas as pd# 从 Plotly 数据集中读取数据 df pd.read_csv(https://raw.githubusercontent.com/plotly/datasets/master/gapminder_unfiltered.c…

STM32实现流水灯

led.c #include"led.h"void Led_Init(void) {GPIO_InitTypeDef GPIO_VALUE; //???RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//???GPIO_VALUE.GPIO_ModeGPIO_Mode_Out_PP;//???? ????GPIO_VALUE.GPIO_PinGPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_…

Golang 链表的基础知识

文章目录 链表链表基础知识部分链表的存储方式链表的定义链表的操作性能分析 链表 更多有关于go链表的内容可以见这篇文章链表的创建和读取 链表基础知识部分 什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,…

图解LRU缓存

图解LRU缓存 OJ链接 介绍 LRU 缓存机制可以通过哈希表辅以双向链表实现,我们用一个哈希表和一个双向链表维护所有在缓存中的键值对。 双向链表按照被使用的顺序存储了这些键值对,靠近尾部的键值对是最近使用的,而靠近头部的键值对是最久未…

论文润色的原理是什么 PaperBERT

大家好,今天来聊聊论文润色的原理是什么,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 标题:论文润色的原理――探究论文润色背后的科学依据 一、…

nodejs+vue+ElementUi洗衣店订单管理系统4691l

衣服但是找订单的时间太长,体验非常的差。而且对于店家这也很头疼,麻烦的查找订单的方式,让他总是重复着繁琐的步骤,记录的时候也很容易出问题,容易把衣服弄错,再然后就是对于收来的衣服也很麻烦&#xff0…

HarmonyOS构建第一个ArkTS应用(FA模型)

构建第一个ArkTS应用(FA模型) 创建ArkTS工程 若首次打开DevEco Studio,请点击Create Project创建工程。如果已经打开了一个工程,请在菜单栏选择File > New > Create Project来创建一个新工程。 选择Application应用开发&a…

P4 音频知识点——PCM音频原始数据

目录 前言 01 PCM音频原始数据 1.1 频率 1.2 振幅: 1.3 比特率 1.4 采样 1.5 量化 1.6 编码 02. PCM数据有以下重要的参数: 采样率: 采集深度 通道数 ​​​​​​​ PCM比特率 ​​​​​​​ PCM文件大小计算: ​…

如何利用PPT绘图并导出清晰图片

在写论文的过程中,免不了需要绘图,但是visio等软件绘图没有在ppt上绘图比较熟练,尤其流程图结构图. 但是ppt导出的图片也不够清晰,默认分辨率是96dpi,而杂志投稿一般要求至300dpi。解决办法如下: 1.打开注…

神经网络:机器学习基础

【一】什么是模型的偏差和方差? 误差(Error) 偏差(Bias) 方差(Variance) 噪声(Noise),一般地,我们把机器学习模型的预测输出与样本的真实label…