概述
前言
智能设备的制造,在产品销售出去后,用户在使用产品过程中,会出现各类问题,有些问题则需要通过固件升级的方式来解决。而在我们的物理网云平台中,原先就有固件升级的功能,但存在着各种问题。在这种背景下,需要我作为产品对固件升级的功能,进行整体优化改造。
固件是什么
一种软件,或者介于软件与硬件之间的东西,是连接软件与硬件之间的桥梁,机器可以通过固件直接控制硬件(固件负责软件对硬件的识别)。而大部分电子产品都需要拥有固件才能够正常运行。
固件升级需谨慎
有时为了增加产品的功能或者修复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蓝牙传输至设备中,完成升级任务。
最后
以上就是醉熏羽毛为你收集整理的物联网IOT 固件升级的全部内容,希望文章能够帮你解决物联网IOT 固件升级所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复