当前位置:网站首页>物联网IOT 固件升级
物联网IOT 固件升级
2022-08-11 05:24:00 【打小又皮又闹】
前言
智能设备的制造,在产品销售出去后,用户在使用产品过程中,会出现各类问题,有些问题则需要通过固件升级的方式来解决。而在我们的物理网云平台中,原先就有固件升级的功能,但存在着各种问题。在这种背景下,需要我作为产品对固件升级的功能,进行整体优化改造。
固件是什么
一种软件,或者介于软件与硬件之间的东西,是连接软件与硬件之间的桥梁,机器可以通过固件直接控制硬件(固件负责软件对硬件的识别)。而大部分电子产品都需要拥有固件才能够正常运行。
固件升级需谨慎
有时为了增加产品的功能或者修复Bug,需要对固件进行升级,。比如:升级BIOS板,让主板支持同款插槽的CPU。
但是固件升级的时候需要谨慎,因为在设备在升级过程中停电,导致固件升级失败,那么设备可能永远变“砖”,并且无法再次通过升级固件解决。因为固件升级的前提就是要有正常的固件,告诉系统怎么升级,如果升级失败了,人们可能需要通过工具重新进行烧录,正常用户是没有这个能力的。
当然还有些固件是不能进行升级,比如存在ROM中,也就是只读芯片。
应用层怎么支持固件升级
概述
这里主要讲述偏向应用层的固件升级,应该怎么设计。用户需要通过一个系统,对固件进行管理、升级派发、记录监控等需要,那么FOTA应运而生。
固件升级的核心逻辑是将固件包推送到设备中,在设备中最终完成固件升级操作。
而推送固件包的过程中,根据产品类型与实际业务的不同,存在不同的通讯方式:
- 有线通讯技术
以太网、RS-232、RS-485、M-Bus、PLS等
- 无线通讯技术
蓝牙、蜂窝移动通信(2G/3G/4G)、WIFI、ZigBee、Zwave等
各系统的协作关系
通过蓝牙升级,需要由三端同步,分别是:APP端、升级设备端、云服务器端。
主要升级流程
根据FOTA的模式,优化后的固件升级系统,产品流程分为以下几个部分:
1. 上传固件包
将固件包上传至云平台,并人为对该固件包进行定义,如添加版本号、支持升级设备、版本说明等
2. 固件包合并
因为每个设备包含多个固件,实际业务只能对设备中的多个固件进行统一升级,所以有了固件包合并的环节。
3. 建立升级任务
选中需要下发升级的固件包,通过任务配置,将固件包升级的前置步骤完成。比如定义可升级时间、指定设备SN、指定特定用户升级等。
4.执行升级步骤
最终进行升级步骤的执行。比如在升级任务中,选择了蓝牙升级,则用户靠近设备,在APP上通过蓝牙连接了该设备,就能从云服务器下载固件升级包到APP,通过APP蓝牙传输至设备中,完成升级任务。
边栏推荐
- 第七届集美大学程序设计竞赛(个人赛)题解
- 【转载】图表:数读2022年上半年国民经济
- 浙江大学软件学院2020年保研上机真题练习
- 梅科尔工作室-HarmonyOS应用开发第四次培训
- vmware不可恢复错误vmui
- The selection points you need to know about the helmet identification system
- LAGRANGIAN FLUID SIMULATION WITH CONTINUOUS CONVOLUTIONS
- Node-3.构建Web应用(二)
- Realize data exchange between kernel and userspace through character device virtual file system (passed based on kernel 5.8 test)
- 目标检测——Faster R-CNN 之 Fast R-CNN
猜你喜欢
CVPR2022——A VERSATILE MULTI-VIEW FRAMEWORK
OpenPCDet installs the latest version: spconv in one step
基于ijkplayer 0.8.8编译的完整so. libijkffmpeg.so等,支持ssl h265, rm, rmvb
The selection points you need to know about the helmet identification system
Joint 3D Instance Segmentation and Object Detection for Autonomous Driving
.Net6 MiNiApi +EFCore6.0高B格操作的WebApi
安全帽识别系统-解决监管难题
梅科尔工作室-Pr第一次培训笔记(安装及项目创建)
Node-2.垃圾回收机制
Node-3.构建Web应用(二)
随机推荐
微信小程序-腾讯云即时通信 IM 小程序直播(一)
CMT2380F32模块开发10-高级定时器例程
【mysql】查询不区分大小写(用户密码登录不区分大小写)
Realize data exchange between kernel and userspace through character device virtual file system (passed based on kernel 5.8 test)
Mei cole studios - fifth training DjangoWeb application framework + MySQL database
CVPR2020:Seeing Through Fog Without Seeing Fog
梅科尔工作室-DjangoWeb 应用框架+MySQL数据库第二次培训
Kotlin 增量编译的新方式 | 技术解析
CMT2380F32模块开发9-可编程计数阵列 PCA例程
@2022-02-22:每日一语
梅科尔工作室-HarmonyOS应用开发的第二次培训
安全帽识别算法
Mei cole studios - sixth DjangoWeb application framework + MySQL database training
博客目录
Maykel Studio - Django Web Application Framework + MySQL Database Second Training
AIDL 简介以及使用
Maykle Studio - HarmonyOS Application Development First Training
LiDAR Snowfall Simulation for Robust 3D Object Detection
Mei cole studios - deep learning second BP neural network
通用的 kernel和 userspace Makefile