CN106325947A - 一种基于状态机的ota固件升级方法 - Google Patents
一种基于状态机的ota固件升级方法 Download PDFInfo
- Publication number
- CN106325947A CN106325947A CN201610743510.7A CN201610743510A CN106325947A CN 106325947 A CN106325947 A CN 106325947A CN 201610743510 A CN201610743510 A CN 201610743510A CN 106325947 A CN106325947 A CN 106325947A
- Authority
- CN
- China
- Prior art keywords
- file
- state
- embedded device
- files
- version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于状态机的OTA固件升级方法,包括1)嵌入式设备处于初始状态,然后判断嵌入式设备是否收到批量升级指令,若是进入步骤2),反之进入步骤3);2)、嵌入式设备发送版本更新检测数据包到服务器端,服务端根据当前版本号查询是否有更新文件,若没有,则结束操作;若有,则向嵌入式设备返回更新文件信息数据包;3)嵌入式设备每天发送版本更新检测数据包到服务器端,服务端根据当前版本号,查询是否有更新文件,若没有,则结束操作;若有,则向嵌入式设备返回更新文件信息数据包;4)嵌入式设备升级;5)若嵌入式设备当前状态文件块结束状态则跳转至升级指令状态,并做相应处理然后重启完成升级;反之则丢弃指令不作处理。
Description
技术领域
本发明属于物联网领域,具体涉及一种基于状态机的OTA固件升级方法。
背景技术
OTA固件升级是指终端通过无线下载的方式获取固件版本并对终端固件进行升级。移动终端的空中下载软件升级(Firmware Over-The Air,简称FOTA)目前已被开放移动联盟(Open Mobile Alliance)标准化,被称为固件升级管理对象(FUMO,Firmware UpdateManagement Object)。但是目前主要用于手机端、平板等大型嵌入式设备。
随着物联网产业的兴起,越来越多的低功耗嵌入式设备涌现,传统的FOTA技术对于这种低功耗、存储计算资源有限的小型嵌入式设备并不适用,目前小型嵌入式设备的OTA固件升级都是各个厂家自己实现的。
同时由于小型嵌入式设备的存储、计算资源有限以及网络传输的不可靠性,这就使得OTA固件升级面临文件分片、文件损坏、文件篡改、文件乱序等问题,同时随着物联网的兴起,小型嵌入式设备的爆发式增长,一旦升级文件本身存在缺陷,将导致大量设备升级后瘫痪。
发明内容
发明目的:本发明针对上述现有技术存在的问题做出改进,即本发明公开了一种基于状态机的OTA固件升级方法,可以有效解决小型嵌入式系统在OTA升级时面临的文件分片、文件损坏、文件篡改、文件乱序等问题,同时提供小规模的批量升级,用以验证升级文件本身是否可靠。
技术方案:一种基于状态机的OTA固件升级方法,包括以下步骤:
(1)嵌入式设备处于初始状态,然后判断嵌入式设备是否收到批量升级指令,若嵌入式设备收到批量升级指令,进入步骤(2),反之,直接进入步骤(3)
(2)、嵌入式设备收到服务器端发送的批量升级指令后跳转状态至批量升级状态,嵌入式设备立刻发送包含当前固件版本号的版本更新检测数据包到服务器端,嵌入式设备状态跳转至版本检测状态,服务端根据收到的更新检测数据包中的当前版本号,查询是否有更新文件,若没有,则结束本次操作;若有,则向嵌入式设备返回更新文件信息数据包,嵌入式设备收到更新文件信息数据包后跳转至获取文件信息状态,并进入步骤(4),
(3)、嵌入式设备每天随机发送包含当前固件版本号的版本更新检测数据包到服务器端,嵌入式设备状态跳转至版本检测状态,服务端根据收到的更新检测数据包中的当前版本号,查询是否有更新文件,若没有,则结束本次操作;若有,则向嵌入式设备返回更新文件信息数据包,嵌入式设备收到更新文件信息数据包后跳转至获取文件信息状态,并进入步骤(4),
(4)、嵌入式设备升级
(41)服务器端将更新文件切片,
(42)服务器端发送第一个分片文件至嵌入式设备,嵌入式设备收到第一个分片文件后,跳转至文件块开始状态,计算第一个分片文件的CRC校验码,并写入本地存储器中,若CRC校验码计算成功,并且写入本地存储器成功,则返回成功,则进入步骤(43);反之,则返回失败,服务器端重新发送第一个分片文件至嵌入式设备;
(43)服务端收到成功返回后依次发送中间分片文件至嵌入式设备,嵌入式设备收到中间分片文件后跳转至文件块流状态,同样计算分片文件的CRC校验码,并写入本地存储器中,若CRC校验码计算成功,并且写入本地存储器成功,则返回成功,服务端发送下一个分片文件至嵌入式设备;反之,则返回失败,服务器端重新发送当前分片文件至嵌入式设备;
(44)服务器端发送最后一个分片文件时,数据包中文件结束标志位被置为1,嵌入式设备读取到文件结束标志位后跳转至文件块结束状态,写入本地存储器中,同样计算分片文件的CRC校验码,并将计算结果与步骤(2)或(3)中收到的CRC校验码作比较,若二者相同,则返回成功,写入本地存储器中并进入步骤(5),反之则返回失败;
(5)服务器端发送升级指令,嵌入式设备收到升级指令后若当前状态文件块结束状态则为跳转至升级指令状态,并做相应处理然后重启完成升级;若当前状态不是文件块结束状态则丢弃指令不作处理。
进一步地,步骤(2)中的更新文件信息数据包中包含更新文件的版本号、文件大小、文件CRC校验码、以及文件所属。
进一步地,步骤(3)中的更新文件信息数据包中包含更新文件的版本号、文件大小、文件CRC校验码、以及文件所属。
进一步地,步骤(4)中若嵌入式设备若累计返回失败3次,则终止此次更新。
有益效果:本发明公开的一种基于状态机的OTA固件升级方法具有以下有益效果:
1、将升级文件切片,然后在文件块流中依次进行分片传输,每一片都会进行完整性验证以保证文件不被篡改和损坏并由终端确认正确之后服务端才会下发下一分片文件,保证文件传输的有序性;
2、提供了批量升级状态,用以进行批量升级。
附图说明
图1为本发明公开的一种基于状态机的OTA固件升级方法的状态转换示意图;
图2为本发明公开的一种基于状态机的OTA固件升级方法的流程图。
具体实施方式:
下面对本发明的具体实施方式详细说明。
如图1和2所示,一种基于状态机的OTA固件升级方法,包括以下步骤:
(1)嵌入式设备处于初始状态,然后判断嵌入式设备是否收到批量升级指令,若嵌入式设备收到批量升级指令,进入步骤(2),反之,直接进入步骤(3)
(2)、嵌入式设备收到服务器端发送的批量升级指令后跳转状态至批量升级状态,嵌入式设备立刻发送包含当前固件版本号的版本更新检测数据包到服务器端,嵌入式设备状态跳转至版本检测状态,服务端根据收到的更新检测数据包中的当前版本号,查询是否有更新文件,若没有,则结束本次操作;若有,则向嵌入式设备返回更新文件信息数据包,嵌入式设备收到更新文件信息数据包后跳转至获取文件信息状态,并进入步骤(4),
(3)、嵌入式设备每天随机发送包含当前固件版本号的版本更新检测数据包到服务器端,嵌入式设备状态跳转至版本检测状态,服务端根据收到的更新检测数据包中的当前版本号,查询是否有更新文件,若没有,则结束本次操作;若有,则向嵌入式设备返回更新文件信息数据包,嵌入式设备收到更新文件信息数据包后跳转至获取文件信息状态,并进入步骤(4),
(4)、嵌入式设备升级
(41)服务器端将更新文件切片,
(42)服务器端发送第一个分片文件至嵌入式设备,嵌入式设备收到第一个分片文件后,跳转至文件块开始状态,计算第一个分片文件的CRC校验码,并写入本地存储器中,若CRC校验码计算成功,并且写入本地存储器成功,则返回成功,则进入步骤(43);反之,则返回失败,服务器端重新发送第一个分片文件至嵌入式设备;
(43)服务端收到成功返回后依次发送中间分片文件至嵌入式设备,嵌入式设备收到中间分片文件后跳转至文件块流状态,同样计算分片文件的CRC校验码,并写入本地存储器中,若CRC校验码计算成功,并且写入本地存储器成功,则返回成功,服务端发送下一个分片文件至嵌入式设备;反之,则返回失败,服务器端重新发送当前分片文件至嵌入式设备;
(44)服务器端发送最后一个分片文件时,数据包中文件结束标志位被置为1,嵌入式设备读取到文件结束标志位后跳转至文件块结束状态,写入本地存储器中,同样计算分片文件的CRC校验码,并将计算结果与步骤(2)或(3)中收到的CRC校验码作比较,若二者相同,则返回成功,写入本地存储器中并进入步骤(5),反之则返回失败;
(5)服务器端发送升级指令,嵌入式设备收到升级指令后若当前状态文件块结束状态则为跳转至升级指令状态,并做相应处理然后重启完成升级;若当前状态不是文件块结束状态则丢弃指令不作处理。
进一步地,步骤(2)中的更新文件信息数据包中包含更新文件的版本号、文件大小、文件CRC校验码(循环冗余校验码)、以及文件所属(即是wifi模块更新还是mcu固件更新)。
进一步地,步骤(3)中的更新文件信息数据包中包含更新文件的版本号、文件大小、文件CRC校验码(循环冗余校验码)、以及文件所属(即是wifi模块更新还是mcu固件更新)。
进一步地,步骤(4)中若嵌入式设备若累计返回失败3次,则终止此次更新。
上面对本发明的实施方式做了详细说明。但是本发明并不限于上述实施方式,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
Claims (4)
1.一种基于状态机的OTA固件升级方法,其特征在于,包括以下步骤:
(1)嵌入式设备处于初始状态,然后判断嵌入式设备是否收到批量升级指令,若嵌入式设备收到批量升级指令,进入步骤(2),反之,直接进入步骤(3);
(2)嵌入式设备收到服务器端发送的批量升级指令后跳转状态至批量升级状态,嵌入式设备立刻发送包含当前固件版本号的版本更新检测数据包到服务器端,嵌入式设备状态跳转至版本检测状态,服务端根据收到的更新检测数据包中的当前版本号,查询是否有更新文件,若没有,则结束本次操作;若有,则向嵌入式设备返回更新文件信息数据包,嵌入式设备收到更新文件信息数据包后跳转至获取文件信息状态,并进入步骤(4);
(3)嵌入式设备每天随机发送包含当前固件版本号的版本更新检测数据包到服务器端,嵌入式设备状态跳转至版本检测状态,服务端根据收到的更新检测数据包中的当前版本号,查询是否有更新文件,若没有,则结束本次操作;若有,则向嵌入式设备返回更新文件信息数据包,嵌入式设备收到更新文件信息数据包后跳转至获取文件信息状态,并进入步骤(4);
(4)嵌入式设备升级
(41)服务器端将更新文件切片;
(42)服务器端发送第一个分片文件至嵌入式设备,嵌入式设备收到第一个分片文件后,跳转至文件块开始状态,计算第一个分片文件的CRC校验码,并写入本地存储器中,若CRC校验码计算成功,并且写入本地存储器成功,则返回成功,则进入步骤(43);反之,则返回失败,服务器端重新发送第一个分片文件至嵌入式设备;
(43)服务端收到成功返回后依次发送中间分片文件至嵌入式设备,嵌入式设备收到中间分片文件后跳转至文件块流状态,同样计算分片文件的CRC校验码,并写入本地存储器中,若CRC校验码计算成功,并且写入本地存储器成功,则返回成功,服务端发送下一个分片文件至嵌入式设备;反之,则返回失败,服务器端重新发送当前分片文件至嵌入式设备;
(44)服务器端发送最后一个分片文件时,数据包中文件结束标志位被置为1,嵌入式设备读取到文件结束标志位后跳转至文件块结束状态,写入本地存储器中,同样计算分片文件的CRC校验码,并将计算结果与步骤(2)或(3)中收到的CRC校验码作比较,若二者相同,则返回成功,写入本地存储器中并进入步骤(5),反之则返回失败;
(5)服务器端发送升级指令,嵌入式设备收到升级指令后若当前状态文件块结束状态则为跳转至升级指令状态,并做相应处理然后重启完成升级;若当前状态不是文件块结束状态则丢弃指令不作处理。
2.根据权利要求1所述的一种基于状态机的OTA固件升级方法,其特征在于,步骤(2)中的更新文件信息数据包中包含更新文件的版本号、文件大小、文件CRC校验码、以及文件所属。
3.根据权利要求1所述的一种基于状态机的OTA固件升级方法,其特征在于,步骤(3)中的更新文件信息数据包中包含更新文件的版本号、文件大小、文件CRC校验码、以及文件所属。
4.根据权利要求1所述的一种基于状态机的OTA固件升级方法,其特征在于,步骤(4)中若嵌入式设备若累计返回失败3次,则终止此次更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610743510.7A CN106325947A (zh) | 2016-09-18 | 2016-09-18 | 一种基于状态机的ota固件升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610743510.7A CN106325947A (zh) | 2016-09-18 | 2016-09-18 | 一种基于状态机的ota固件升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106325947A true CN106325947A (zh) | 2017-01-11 |
Family
ID=57791742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610743510.7A Pending CN106325947A (zh) | 2016-09-18 | 2016-09-18 | 一种基于状态机的ota固件升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106325947A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109302456A (zh) * | 2018-09-10 | 2019-02-01 | 海信集团有限公司 | 一种基于空中下载ota技术的文件传输方法及装置 |
CN110025316A (zh) * | 2019-04-08 | 2019-07-19 | 广东工业大学 | 一种低功耗可无线升级的智能鞋嵌入式系统 |
CN110597545A (zh) * | 2019-09-04 | 2019-12-20 | 北京方研矩行科技有限公司 | 一种基于ota组件的热补丁智能升级方法及系统 |
CN110633092A (zh) * | 2019-09-09 | 2019-12-31 | 北京方研矩行科技有限公司 | 用于ota升级的服务端及嵌入式设备升级方法及装置 |
CN110780902A (zh) * | 2019-10-25 | 2020-02-11 | 上海信耀电子有限公司 | 一种嵌入式设备网络批量升级的方法 |
CN111327475A (zh) * | 2020-02-20 | 2020-06-23 | 杭州涂鸦信息技术有限公司 | 一种嵌入式设备升级的方法及其系统和装置 |
CN111538518A (zh) * | 2020-04-27 | 2020-08-14 | 深圳忆联信息系统有限公司 | 实现测试机的自动批量测试方法、装置和计算机设备 |
CN111722860A (zh) * | 2020-06-16 | 2020-09-29 | 东软睿驰汽车技术(沈阳)有限公司 | 基于有穷状态机的ota升级方法和装置 |
CN113079145A (zh) * | 2021-03-25 | 2021-07-06 | 深圳友讯达科技股份有限公司 | 一种微功率无线通信单元批量分拣检测方法及装置 |
CN113296819A (zh) * | 2021-06-10 | 2021-08-24 | 南京创通微新通信有限公司 | 网桥设备集中管理升级系统及方法 |
CN113656061A (zh) * | 2021-08-20 | 2021-11-16 | 成都亨通光通信有限公司 | 5g通信电源固件更新方法及更新装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425018A (zh) * | 2008-12-05 | 2009-05-06 | 深圳创维数字技术股份有限公司 | 基于分段式的嵌入式固件升级方法及装置 |
CN101467129A (zh) * | 2006-07-14 | 2009-06-24 | 三星电子株式会社 | 能够空中下载的移动终端的程序升级系统和方法 |
CN102098590A (zh) * | 2009-12-15 | 2011-06-15 | 中兴通讯股份有限公司 | 光网络单元固件版本自动升级方法及系统 |
-
2016
- 2016-09-18 CN CN201610743510.7A patent/CN106325947A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101467129A (zh) * | 2006-07-14 | 2009-06-24 | 三星电子株式会社 | 能够空中下载的移动终端的程序升级系统和方法 |
CN101425018A (zh) * | 2008-12-05 | 2009-05-06 | 深圳创维数字技术股份有限公司 | 基于分段式的嵌入式固件升级方法及装置 |
CN102098590A (zh) * | 2009-12-15 | 2011-06-15 | 中兴通讯股份有限公司 | 光网络单元固件版本自动升级方法及系统 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109302456A (zh) * | 2018-09-10 | 2019-02-01 | 海信集团有限公司 | 一种基于空中下载ota技术的文件传输方法及装置 |
CN110025316A (zh) * | 2019-04-08 | 2019-07-19 | 广东工业大学 | 一种低功耗可无线升级的智能鞋嵌入式系统 |
CN110597545B (zh) * | 2019-09-04 | 2023-05-30 | 北京方研矩行科技有限公司 | 一种基于ota组件的热补丁智能升级方法及系统 |
CN110597545A (zh) * | 2019-09-04 | 2019-12-20 | 北京方研矩行科技有限公司 | 一种基于ota组件的热补丁智能升级方法及系统 |
CN110633092A (zh) * | 2019-09-09 | 2019-12-31 | 北京方研矩行科技有限公司 | 用于ota升级的服务端及嵌入式设备升级方法及装置 |
CN110780902A (zh) * | 2019-10-25 | 2020-02-11 | 上海信耀电子有限公司 | 一种嵌入式设备网络批量升级的方法 |
CN111327475A (zh) * | 2020-02-20 | 2020-06-23 | 杭州涂鸦信息技术有限公司 | 一种嵌入式设备升级的方法及其系统和装置 |
CN111538518A (zh) * | 2020-04-27 | 2020-08-14 | 深圳忆联信息系统有限公司 | 实现测试机的自动批量测试方法、装置和计算机设备 |
CN111722860A (zh) * | 2020-06-16 | 2020-09-29 | 东软睿驰汽车技术(沈阳)有限公司 | 基于有穷状态机的ota升级方法和装置 |
CN111722860B (zh) * | 2020-06-16 | 2024-02-02 | 东软睿驰汽车技术(沈阳)有限公司 | 基于有穷状态机的ota升级方法和装置 |
CN113079145A (zh) * | 2021-03-25 | 2021-07-06 | 深圳友讯达科技股份有限公司 | 一种微功率无线通信单元批量分拣检测方法及装置 |
CN113296819A (zh) * | 2021-06-10 | 2021-08-24 | 南京创通微新通信有限公司 | 网桥设备集中管理升级系统及方法 |
CN113296819B (zh) * | 2021-06-10 | 2023-12-08 | 南京创通微新通信有限公司 | 网桥设备集中管理升级系统及方法 |
CN113656061A (zh) * | 2021-08-20 | 2021-11-16 | 成都亨通光通信有限公司 | 5g通信电源固件更新方法及更新装置 |
CN113656061B (zh) * | 2021-08-20 | 2023-12-15 | 成都亨通光通信有限公司 | 5g通信电源固件更新方法及更新装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106325947A (zh) | 一种基于状态机的ota固件升级方法 | |
CN110377570B (zh) | 节点切换方法、装置、计算机设备及存储介质 | |
CN105867941A (zh) | 软件升级系统及其实现方法 | |
CN101179393A (zh) | 一种实现文件断点续传的方法及系统 | |
TW200610371A (en) | System and method for managing resources and applications of a wireless communication device | |
CN106227568A (zh) | 终端设备开机、升级方法和设备 | |
CN106126203B (zh) | 一种ota开机加速方法及系统 | |
CN1505433A (zh) | 升级无线移动站的装置和方法 | |
CN109413186A (zh) | 应用程序更新方法、终端、服务器及系统 | |
CN105743948A (zh) | 一种网络版本升级的方法及装置 | |
CN101854623B (zh) | 一种m2m终端远程升级的系统和方法 | |
CN104484242B (zh) | 一种写时拷贝快照备份过程中可断点传输的方法 | |
CN101593119A (zh) | 一种独占闪存组合设备空中固件升级方法及装置 | |
CN105786549A (zh) | 智能设备及其升级方法 | |
CN103024782A (zh) | 一种基站软件版本管理的方法和系统 | |
CN109802995B (zh) | 消息推送方法、装置、设备及存储介质 | |
CN104301428A (zh) | 一种数据同步方法及服务器 | |
CN105072139A (zh) | 推荐方法和装置 | |
CN110597545A (zh) | 一种基于ota组件的热补丁智能升级方法及系统 | |
CN105279436A (zh) | 软件更新方法及系统 | |
CN105407475A (zh) | 配置文件启用处理方法和eUICC | |
CN110007941A (zh) | 一种智能垃圾分类回收系统的mcu固件及升级方法 | |
CN113132267B (zh) | 一种分布式系统、数据聚合方法和计算机可读存储介质 | |
CN105701168A (zh) | 一种数据存储方法、装置及电子设备 | |
CN100556192C (zh) | 移动终端信息自动上报的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170111 |
|
RJ01 | Rejection of invention patent application after publication |