• 物联网IOT 固件升级


    前言

    智能设备的制造,在产品销售出去后,用户在使用产品过程中,会出现各类问题,有些问题则需要通过固件升级的方式来解决。而在我们的物理网云平台中,原先就有固件升级的功能,但存在着各种问题。在这种背景下,需要我作为产品对固件升级的功能,进行整体优化改造。

    固件是什么

    一种软件,或者介于软件与硬件之间的东西,是连接软件与硬件之间的桥梁,机器可以通过固件直接控制硬件(固件负责软件对硬件的识别)。而大部分电子产品都需要拥有固件才能够正常运行。

    固件升级需谨慎

    有时为了增加产品的功能或者修复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蓝牙传输至设备中,完成升级任务。

  • 相关阅读:
    算法通关村第十一关-青铜挑战理解位运算的规则
    刷题记录:牛客NC25088Corn Fields
    MySQL 详解 存储过程 和 存储函数
    最优闭回路问题
    Stable Diffusion 动画animatediff-cli-prompt-travel
    如何利用 Flutter 实现炫酷的 3D 卡片和帅气的 360° 展示效果
    【C语言】【牛客刷题】【BC69】 空心正方形图案
    技术干货 | 提速40%,MindSpore 二阶优化器技术解密!
    Kotlin基础 7
    Java基础知识面试题
  • 原文地址:https://blog.csdn.net/weixin_48181168/article/details/126227147