CN111240885A - 一种嵌入式在线升级防错检测方法 - Google Patents
一种嵌入式在线升级防错检测方法 Download PDFInfo
- Publication number
- CN111240885A CN111240885A CN201911384841.6A CN201911384841A CN111240885A CN 111240885 A CN111240885 A CN 111240885A CN 201911384841 A CN201911384841 A CN 201911384841A CN 111240885 A CN111240885 A CN 111240885A
- Authority
- CN
- China
- Prior art keywords
- data
- upgrade
- detection method
- upgrading
- check
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 20
- 238000012795 verification Methods 0.000 claims description 33
- 230000001174 ascending effect Effects 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 abstract description 5
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 125000004122 cyclic group Chemical group 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明涉及一种嵌入式在线升级防错检测方法,设备收到升级指令后,基于约定发出校验参数,升级数据发送方处理校验参数并发送升级数据,设备接收完毕升级数据后对升级数据进行数据正确性检测,在数据正确的前提下,对升级数据进行数据合法性检测,数据合法则启动并运行升级数据,完成升级。本发明中,通过对指定偏移位置写入固定确认参数来判断当前固件的合法性,实现过程中,除对每包报文和整包数据进行CRC校验之外,同时对指定程序位置的参数进行校验确认,确保传输过程中的数据正确的同时还可以确保升级中传输的内容为合法数据,升级安全可靠。
Description
技术领域
本发明涉及电数字数据处理的技术领域,特别涉及一种嵌入式在线升级防错检测方法。
背景技术
随着电子技术、通信技术以及计算机技术的发展,嵌入式系统广泛应用于各个领域,反之,对于嵌入式设备的系统功能、性能以及规模的要求也日益提高,在嵌入式软件开发设计中,经常涉及到程序在线升级或远程更新固件的应用,开发者必须能够针对客户的需求及时对系统进行维护和升级,延长系统的使用周期,改善系统的性能。
嵌入式系统在升级过程中,接收服务器发送的程序代码,以及在flash区域固化程序代码等,一般来说,服务器与远程终端通过Internet进行通信。
嵌入式系统升级的程序中需要进行校验、纠错,现有技术中主要包括两种方式:
其一,也是当前主要的纠错方案,为采用CRC校验对程序包进行校验,CRC校验在正常升级中虽然可以大大降低出错的风险,但当升级固件为正常时,仍可能将非法程序烧录成功,导致设备工作失效;
其二,将待升级的软件的代码拆分成固定长度的多个数据单元,嵌入式系统每接收到一个数据包,都返回确认信息,若数据包校验无误,则在规定的FLASH区域进行旧程序的擦除以及新程序的复制,从而达到远程终端的嵌入式系统软件的在线升级目的;这种情况也存在如一中所述的问题,且分包较多,反复确认较为繁杂。
发明内容
本发明解决了现有技术中,嵌入式在线升级过程中,存在只能识别传输数据的准确性,不能判断传输内容的合法性,而导致嵌入式系统的在线升级存在风险的问题,提供了一种优化的嵌入式在线升级防错检测方法。
本发明所采用的技术方案是,一种嵌入式在线升级防错检测方法,所述方法包括以下步骤:
步骤1:任一设备收到升级指令,基于约定发出校验参数;
步骤2:升级数据发送方处理校验参数,发送升级数据;
步骤3:所述设备接收升级数据,接收完毕,则进行下一步;
步骤4:设备对升级数据进行数据正确性检测,若数据正确,则进行下一步,否则,丢弃数据包,返回步骤1;
步骤5:设备对升级数据进行数据合法性检测,若数据合法,则进行下一步,否则,丢弃数据包,返回步骤1;
步骤6:启动并运行升级数据,完成升级。
优选地,所述步骤1中,约定为在升级数据中的指定位置增加预设的校验信息。
优选地,所述校验参数为偏移值、校验信息及结束字符串加密后的散列。
优选地,所述校验参数通过Md5进行一次加密得到散列A,所述散列A通过Md5进行二次加密得到散列B。
优选地,所述步骤2中,合法升级数据发送方获得校验信息,解密,去除约定的结束字符串,取出校验信息并放置在偏移值对应的升级数据中。
优选地,所述步骤4中,正确性检测为CRC校验。
优选地,所述步骤5中,设备基于约定及发送的散列,对升级数据中偏移值对应的位置进行检测;
若未出现校验信息,则数据不合法;
若出现校验信息及结束字符串的1个或多个字符,则数据不合法;
若出现校验信息且校验信息不全,则数据不合法。
优选地,对出现数据不合法的升级数据发送方进行上报,并置于黑名单中。
本发明涉及一种优化的嵌入式在线升级防错检测方法,设备收到升级指令后,基于约定发出校验参数,升级数据发送方处理校验参数并发送升级数据,设备接收完毕升级数据后对升级数据进行数据正确性检测,在数据正确的前提下,对升级数据进行数据合法性检测,数据合法则启动并运行升级数据,完成升级。
本发明中,通过对指定偏移位置写入固定确认参数来判断当前固件的合法性,实现过程中,除对每包报文和整包数据进行CRC校验之外,同时对指定程序位置的参数进行校验确认,确保传输过程中的数据正确的同时还可以确保升级中传输的内容为合法数据,升级安全可靠。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合实施例对本发明做进一步的详细描述,但本发明的保护范围并不限于此。
本发明涉及一种嵌入式在线升级防错检测方法,在升级过程中,将FLASH进行分区处理,一般包括启动代码区、程序运行区和固件升级区,设备正常运行过程中收到升级指令时,将接收到的数据保存在固件升级区,待数据传输结束后对固件升级区的数据进行校验确认,数据合法时重启或跳转至启动代码区执行,启动代码区运行、将固件升级区的固件拷贝至程序运行区,运行程序。
本发明的方法为在固件升级区中进行,所述方法包括以下步骤。
步骤1:任一设备收到升级指令,基于约定发出校验参数。
所述步骤1中,约定为在升级数据中的指定位置增加预设的校验信息。
所述校验参数为偏移值、校验信息及结束字符串加密后的散列。
所述校验参数通过Md5进行一次加密得到散列A,所述散列A通过Md5进行二次加密得到散列B。
步骤2:升级数据发送方处理校验参数,发送升级数据。
所述步骤2中,合法升级数据发送方获得校验信息,解密,去除约定的结束字符串,取出校验信息并放置在偏移值对应的升级数据中。
本发明中,整个校验参数加密处理,校验参数中主要包括了偏移值、校验信息及结束字符串加密后的散列,即基于约定在升级数据中的某个位置插入校验参数,需要在升级数据发送方收到加密后的校验参数后,基于约定进行解密,分解出校验参数,找到约定的插入位置,基于偏移值确认最后的增加位置,自偏移值的结尾分离校验信息和结束字符串,仅将校验信息至于升级代码中,作为整体的升级数据。
本发明中,加密可以基于本领域技术人员的需求进行,事实上校验参数的加密通过Md5执行一次亦可。
步骤3:所述设备接收升级数据,接收完毕,则进行下一步。
本发明中,一般来说,升级数据中带有结束标识符,当接收到结束标识符时,表示升级数据接收完毕。
步骤4:设备对升级数据进行数据正确性检测,若数据正确,则进行下一步,否则,丢弃数据包,返回步骤1;。
所述步骤4中,正确性检测为CRC校验。
本发明中,CRC校验为常规技术,本领域技术人员可以依据需求自行设置。
本发明中,若CRC校验未通过,则表示升级数据本身不合格,故直接丢弃。
步骤5:设备对升级数据进行数据合法性检测,若数据合法,则进行下一步,否则,丢弃数据包,返回步骤1;。
所述步骤5中,设备基于约定及发送的散列,对升级数据中偏移值对应的位置进行检测;
若未出现校验信息,则数据不合法;
若出现校验信息及结束字符串的1个或多个字符,则数据不合法;
若出现校验信息且校验信息不全,则数据不合法。
对出现数据不合法的升级数据发送方进行上报,并置于黑名单中。
本发明中,设备基于约定,首先找到对应的应当插入校验信息的位置,基于最初由己方发送的散列,找到偏移位置,随后进行合法性验证。
本发明中,无校验信息、校验信息缺少或多余字符都视为不合法,应当对数据包直接丢弃。
本发明中,升级数据发送方可能被黑,需要先将其置于黑名单中,等待处理,不再继续从当前发送方接收数据。
步骤6:启动并运行升级数据,完成升级。
本发明中,设备收到升级指令后,基于约定发出校验参数,升级数据发送方处理校验参数并发送升级数据,设备接收完毕升级数据后对升级数据进行数据正确性检测,在数据正确的前提下,对升级数据进行数据合法性检测,数据合法则启动并运行升级数据,完成升级。
本发明中,通过对指定偏移位置写入固定确认参数来判断当前固件的合法性,实现过程中,除对每包报文和整包数据进行CRC校验之外,同时对指定程序位置的参数进行校验确认,确保传输过程中的数据正确的同时还可以确保升级中传输的内容为合法数据,升级安全可靠。
Claims (8)
1.一种嵌入式在线升级防错检测方法,其特征在于:所述方法包括以下步骤:
步骤1:任一设备收到升级指令,基于约定发出校验参数;
步骤2:升级数据发送方处理校验参数,发送升级数据;
步骤3:所述设备接收升级数据,接收完毕,则进行下一步;
步骤4:设备对升级数据进行数据正确性检测,若数据正确,则进行下一步,否则,丢弃数据包,返回步骤1;
步骤5:设备对升级数据进行数据合法性检测,若数据合法,则进行下一步,否则,丢弃数据包,返回步骤1;
步骤6:启动并运行升级数据,完成升级。
2.根据权利要求1所述的一种嵌入式在线升级防错检测方法,其特征在于:所述步骤1中,约定为在升级数据中的指定位置增加预设的校验信息。
3.根据权利要求2所述的一种嵌入式在线升级防错检测方法,其特征在于:所述校验参数为偏移值、校验信息及结束字符串加密后的散列。
4.根据权利要求3所述的一种嵌入式在线升级防错检测方法,其特征在于:所述校验参数通过Md5进行一次加密得到散列A,所述散列A通过Md5进行二次加密得到散列B。
5.根据权利要求3所述的一种嵌入式在线升级防错检测方法,其特征在于:所述步骤2中,合法升级数据发送方获得校验信息,解密,去除约定的结束字符串,取出校验信息并放置在偏移值对应的升级数据中。
6.根据权利要求1所述的一种嵌入式在线升级防错检测方法,其特征在于:所述步骤4中,正确性检测为CRC校验。
7.根据权利要求3所述的一种嵌入式在线升级防错检测方法,其特征在于:所述步骤5中,设备基于约定及发送的散列,对升级数据中偏移值对应的位置进行检测;
若未出现校验信息,则数据不合法;
若出现校验信息及结束字符串的1个或多个字符,则数据不合法;
若出现校验信息且校验信息不全,则数据不合法。
8.根据权利要求7所述的一种嵌入式在线升级防错检测方法,其特征在于:对出现数据不合法的升级数据发送方进行上报,并置于黑名单中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911384841.6A CN111240885A (zh) | 2019-12-28 | 2019-12-28 | 一种嵌入式在线升级防错检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911384841.6A CN111240885A (zh) | 2019-12-28 | 2019-12-28 | 一种嵌入式在线升级防错检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111240885A true CN111240885A (zh) | 2020-06-05 |
Family
ID=70874154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911384841.6A Pending CN111240885A (zh) | 2019-12-28 | 2019-12-28 | 一种嵌入式在线升级防错检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240885A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707585A (zh) * | 2024-02-05 | 2024-03-15 | 广州市赛科自动化控制设备有限公司 | 一种软件远程升级方法、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436141A (zh) * | 2008-11-21 | 2009-05-20 | 深圳创维数字技术股份有限公司 | 基于数字签名的固件升级、固件封装方法与装置 |
CN103455354A (zh) * | 2013-09-06 | 2013-12-18 | 南京南自信息技术有限公司 | 一种防止固件升级失败的方法和设备 |
CN104166565A (zh) * | 2014-08-11 | 2014-11-26 | 成都瑞博慧窗信息技术有限公司 | 一种智能显示终端固件升级方法 |
CN105487888A (zh) * | 2015-11-26 | 2016-04-13 | 武汉光迅科技股份有限公司 | 一种生成在系统升级和/或在应用升级的升级文件的方法 |
CN106843942A (zh) * | 2016-12-31 | 2017-06-13 | 歌尔科技有限公司 | 穿戴式设备的固件升级方法及穿戴式设备 |
CN107479924A (zh) * | 2017-08-09 | 2017-12-15 | 四川长虹电器股份有限公司 | 基于Android系统的软件升级校验方法 |
-
2019
- 2019-12-28 CN CN201911384841.6A patent/CN111240885A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436141A (zh) * | 2008-11-21 | 2009-05-20 | 深圳创维数字技术股份有限公司 | 基于数字签名的固件升级、固件封装方法与装置 |
CN103455354A (zh) * | 2013-09-06 | 2013-12-18 | 南京南自信息技术有限公司 | 一种防止固件升级失败的方法和设备 |
CN104166565A (zh) * | 2014-08-11 | 2014-11-26 | 成都瑞博慧窗信息技术有限公司 | 一种智能显示终端固件升级方法 |
CN105487888A (zh) * | 2015-11-26 | 2016-04-13 | 武汉光迅科技股份有限公司 | 一种生成在系统升级和/或在应用升级的升级文件的方法 |
CN106843942A (zh) * | 2016-12-31 | 2017-06-13 | 歌尔科技有限公司 | 穿戴式设备的固件升级方法及穿戴式设备 |
CN107479924A (zh) * | 2017-08-09 | 2017-12-15 | 四川长虹电器股份有限公司 | 基于Android系统的软件升级校验方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707585A (zh) * | 2024-02-05 | 2024-03-15 | 广州市赛科自动化控制设备有限公司 | 一种软件远程升级方法、系统及存储介质 |
CN117707585B (zh) * | 2024-02-05 | 2024-05-03 | 广州市赛科自动化控制设备有限公司 | 一种软件远程升级方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109829294B (zh) | 一种固件验证方法、系统、服务器及电子设备 | |
CN106843957A (zh) | 系统固件升级方法及装置 | |
CN107992753B (zh) | 用于更新车辆的控制设备的软件的方法 | |
CN101924607A (zh) | 基于固件空中传输技术的固件处理方法、装置及系统 | |
CN105897461A (zh) | 多系统ota升级方法和多系统设备 | |
CN111240713A (zh) | 一种用电检测远程断点续传的方法 | |
CN1906574A (zh) | 更新移动终端中的数据 | |
CN104052818A (zh) | 一种移动终端的版本升级方法及装置 | |
CN107643882A (zh) | 一种数据可靠性的存储及恢复方法、系统及存储装置 | |
US20210019418A1 (en) | Technique for authentication and prerequisite checks for software updates | |
CN105468393A (zh) | 模块版本升级方法及终端装置 | |
WO2019057023A1 (zh) | 数据恢复方法、发送/接收装置和计算机可读存储介质 | |
CN110633092A (zh) | 用于ota升级的服务端及嵌入式设备升级方法及装置 | |
WO2021231686A1 (en) | Controlled scope of authentication key for software update | |
CN115080088B (zh) | 基于ota技术的软件升级方法、系统及介质 | |
WO2022257927A1 (zh) | 密钥烧录方法、装置、电子设备板卡及存储介质 | |
CN112087475B (zh) | 一种云平台组件应用的消息推送方法、装置及消息服务器 | |
CN111427609A (zh) | 一种基于多节点服务器的应用自动升级方法 | |
CN111489156A (zh) | 基于区块链的交易方法、电子装置及可读存储介质 | |
CN111240885A (zh) | 一种嵌入式在线升级防错检测方法 | |
KR20130018397A (ko) | 원격 소스로부터의 명령을 수행하는 시스템 및 방법 | |
KR100453504B1 (ko) | 소프트웨어 인증 방법 및 시스템 | |
CN110851821A (zh) | 一种Android智能设备APK安全管控方法 | |
CN112559546B (zh) | 数据库同步方法、装置、计算机设备及可读存储介质 | |
CN114245183B (zh) | 推流数据鉴权方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200605 |
|
RJ01 | Rejection of invention patent application after publication |