CN113918202A - 一种支持iap功能的单片机远程升级固件的方法与设备 - Google Patents

一种支持iap功能的单片机远程升级固件的方法与设备 Download PDF

Info

Publication number
CN113918202A
CN113918202A CN202111085082.0A CN202111085082A CN113918202A CN 113918202 A CN113918202 A CN 113918202A CN 202111085082 A CN202111085082 A CN 202111085082A CN 113918202 A CN113918202 A CN 113918202A
Authority
CN
China
Prior art keywords
program area
power supply
upgrading
firmware
data packet
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.)
Granted
Application number
CN202111085082.0A
Other languages
English (en)
Other versions
CN113918202B (zh
Inventor
谷兵兵
杨昌友
刘雨
李嘉哲
邓峰
王得道
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hainan Yunzhilian Technology Co ltd
Original Assignee
Hainan Yunzhilian Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hainan Yunzhilian Technology Co ltd filed Critical Hainan Yunzhilian Technology Co ltd
Priority to CN202111085082.0A priority Critical patent/CN113918202B/zh
Publication of CN113918202A publication Critical patent/CN113918202A/zh
Application granted granted Critical
Publication of CN113918202B publication Critical patent/CN113918202B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开一种支持IAP功能的单片机远程升级固件的方法与设备,应用于支持IAP功能的单片机远程升级固件设备,包括以下步骤:将单片机的芯片程序区划分为运行程序区、备份程序区、固件升级功能程序区和用户数据区;运行程序区执行设备主程序,实时接收云服务器发送的升级数据包,并对升级数据包文件进行校验与解密;升级数据包文件校验和解密成功后,将升级数据包文件写入备份程序区;备份程序区接收缓存升级数据包,并通过全局校验,调用固件升级功能程序区的代码将备份程序区接收的文件转移至运行程序区,文件转移完成后,单片机重新启动,进入新的固件系统;软件复位重启,等待新程序运行。解决了现有的设备远程升级技术存在诸多不足的技术问题。

Description

一种支持IAP功能的单片机远程升级固件的方法与设备
技术领域
本申请涉及单片机技术领域,尤其涉及一种支持IAP功能的单片机远程升级固件的方法与设备。
背景技术
随着物联网信息技术的设备增多,用在户外的智能终端通过移动网络利用移动基站直接接入到互联网,设备在使用过程中难免会出现需要对设备进行系统更新升级的过程,这时就需要对设备的内部的程序固件做远程升级,目前也有较多支持IAP进行固件升级的单片机,目前设备的内部的程序固件做远程升级时主要存在下面几个问题:
1、现有方案中将芯片内部的flash划分为用户IAP区和用户程序区。IAP区的代码主要负责接收收到的数据包,并将数据包写入用户程序区。
2、现有的设备远程升级技术,在升级过程中设备不能正常工作,升级过程中若遇到断电断网情况,容易造成设备损坏,需人工现场升级后才能恢复。
3、现有升级技术方案中,将微控制器芯片的存储区主要分为,程序引导区和用户程序区两部分。程序固件升级过程中,引导程序区程序接收升级数据包,然后直接将接收到的数据包写入用户程序区,一旦写入第一个数据包后,原有用户程序已不能正常运行,需等待升级完毕后才能运行新固件,通常需要长时间等待。若出现断电断网情况,则可能导致升级失败,因此造成设备损坏。
4、现有升级方法会先写入引导程序,再写入用户程序,需要分两个步骤才能完成工程制作。
发明内容
本申请实施例提供了一种支持IAP功能的单片机远程升级固件的方法与设备,用以解决现有的设备远程升级技术存在诸多不足的技术问题。
有鉴于此,本申请第一方面提供了一种支持IAP功能的单片机远程升级固件的方法,应用于支持IAP功能的单片机远程升级固件设备,包括以下步骤:
将单片机的芯片程序区划分为运行程序区、备份程序区、固件升级功能程序区和用户数据区;
运行程序区执行设备主程序,实时接收云服务器发送的升级数据包,并对升级数据包文件进行校验与解密;
升级数据包文件校验和解密成功后,将升级数据包文件写入备份程序区;
备份程序区接收缓存升级数据包,并通过全局校验,调用固件升级功能程序区的代码将备份程序区接收的文件转移至运行程序区,文件转移完成后,单片机重新启动,进入新的固件系统;
软件复位重启,等待新程序运行。
可选地,云服务器将升级数据包拆分为若干个分包,将升级数据包传输过程拆分成若干次数据传输,每次数据传输将其中一个分包发送给设备主程序。
可选地,单片机采用两级电源供电机制,在一级电源异常时自动切换二级电源供电,其中一级电源是为设备的工作提供持续能源的外部供电电源,二级电源为内部备用电源,二级电源供电时长,需保证大于通过固件升级功能程序区程序将备份程序区代码转移到运行程序区所需时间,所需时间至少为1.2秒。
可选地,备用电源采用可充电电池,当电量不饱和时通过一级电源充电。
可选地,校验的实现方式包括CRC循环冗余校验、奇偶校验和补码校验中的一种或多种。
本申请第二方面提供了一种支持IAP功能的单片机远程升级固件的设备,包括:云服务器、远程通讯模组、单片机、一级电源和二级电源;
云服务器,用于加密远程升级的数据包,并将数据包拆分为若干个分包,通过远程通讯模组将分包发送给单片机;
远程通讯模组,用于实现云服务器和单片机的数据通信;
单片机,支持用户IAP编程,芯片程序区划分为运行程序区、备份程序区、固件升级功能程序区和用户数据区;
运行程序区,用于运行设备主程序,并实时接收外部通过网络通讯模组发送来的升级数据包,并进行数据包校验和解密;
备份程序区,用于接收缓存从云服务器发送的升级数据包;
固件升级功能程序区,用于升级固件的数据包接收完毕并通过全局校验后,将备份程序区代码转移至运行程序区;
用户程序区,用于存放用户数据,用户数据包括设备ID、程序加密和解密密码;
一级电源为设备的外部供电电源,为设备的工作提供持续能源;
二级电源为一级电源异常时的备份电源。
可选地,远程通讯模组为air724模组、NB-IOT模组或4G/5G模组中的一种。
可选地,云服务器还用于将升级数据包拆分为若干个分包,将升级数据包传输过程拆分成若干次数据传输,每次数据传输将其中一个分包发送给设备主程序;
将升级数据包转移过程拆分成若干次数据转移,每次数据转移将其中一个分包从备份程序区转移至运行程序区。
可选地,二级电源的供电时长至少能满足通过固件升级功能程序区程序将备份程序区代码转移到运行程序区所需时间。
可选地,二级电源的供电时长至少为1.2秒。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请中提供了一种支持IAP功能的单片机远程升级固件的方法,按照单片机的内部芯片程序区实现的功能不同,将内部芯片程序区划分为运行程序区、备份程序区、固件升级功能程序区和用户数据区;运行程序区用于运行设备主程序,并实时接收外部通过网络通讯模组发送来的升级数据包,并进行数据包校验和解密;备份程序区用于接收缓存从云服务器发送的升级数据包;固件升级功能程序区用于升级固件的数据包接收完毕并通过全局校验后,将备份程序区代码转移至运行程序区;用户程序区用于存放用户数据,用户数据包括设备ID、程序加密和解密密码。云服务器向设备主程序发送升级数据包时,利用密码技术对发送的升级数据包文件进行加密,实现信息隐蔽,从而起到保护升级数据包文件的安全的作用,并将加密的升级数据包通过远程通讯模组发送至设备,运行程序区运行设备主程序,对加密的升级数据包进行校验和解密,校验和解密成功后,将升级数据包文件写入备份程序区进行接收缓存便于备份,以防断网时,仍可调用固件升级功能程序区程序将备份程序区代码转移至运行程序区,通过全局校验可及时查找传输错误或缺失的升级数据包文件,可及时补传。将文件转移完成后,结合差分升级算法,通过控制单片机的芯片重新启动升级固件,无需分别写入引导程序和用户程序。通过设置运行程序区、备份程序区、固件升级功能程序区,在文件传输过程中,数据包缓存到备份程序区,因此运行程序区能够正常运行未更新前的设备主程序,设备能够正常工作,解决更新时设备不能正常运行的问题,同时由于数据是传输到备份程序区,能确保单片机的芯片在远程固件升级的全过程中不会因外部电源和网络中断导致固件升级失败。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中提供的一种支持IAP功能的单片机远程升级固件的方法的步骤流程图;
图2为本申请实施例中提供的一种支持IAP功能的单片机远程升级固件的方法的程序流程图;
图3为本申请实施例中提供的一种支持IAP功能的单片机远程升级固件的设备的系统示意图;
图4为本申请实施例中提供的单片机的芯片程序区的功能划分图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例1
为了便于理解,请参阅图1、图2和图4,本申请第一方面提供的一种支持IAP功能的单片机远程升级固件的方法,应用于支持IAP功能的单片机远程升级固件设备,包括以下步骤:
S1、将单片机的芯片程序区划分为运行程序区、备份程序区、固件升级功能程序区和用户数据区。
需要说明的是,按照单片机的内部芯片程序区实现的功能不同,将内部芯片程序区划分为运行程序区、备份程序区、固件升级功能程序区和用户数据区;运行程序区用于运行设备主程序,并实时接收外部通过网络通讯模组发送来的升级数据包,并进行数据包校验和解密;备份程序区用于接收缓存从云服务器发送的升级数据包;固件升级功能程序区用于升级固件的数据包接收完毕并通过全局校验后,将备份程序区代码转移至运行程序区;用户程序区用于存放用户数据,用户数据包括设备ID、程序加密和解密密码。
S2、运行程序区执行设备主程序,实时接收云服务器发送的升级数据包,并对升级数据包文件进行校验与解密。
需要说明的是,设备主程序指的是设备控制中心,运行程序区执行设备主程序的控制指令。云服务器具备公网IP,可以利用密码技术对发送的升级数据包文件进行加密,实现信息隐蔽,从而起到保护升级数据包文件的安全的作用,云服务器通过远程通讯模组向设备主程序发送加密的升级数据包文件,运行程序区接收文件的过程中或接收完毕后,对升级数据包文件进行校验与解密,如果校验出错,云服务器带有保证升级数据包正确性的重发机制,再次发送正确的升级数据包文件,如有漏发,通过查找漏发的文件,直接补发即可。
S3、升级数据包文件校验和解密成功后,将升级数据包文件写入备份程序区。
需要说明的是,运行程序区对升级数据包进行校验,校验的实现方式包括CRC循环冗余校验、奇偶校验和补码校验中的一种或多种,同时对升级的数据包进行解密,将校验正确和解密成功的升级数据包写入备份程序区进行备份。
S4、备份程序区接收缓存升级数据包,并通过全局校验,调用固件升级功能程序区的代码将备份程序区接收的文件转移至运行程序区,文件转移完成后,单片机重新启动,进入新的固件系统。
需要说明的是,备份程序接收缓存升级数据包进行备份,以防断网时,仍可调用固件升级功能程序区程序将备份程序区代码转移至运行程序区,接收升级数据包文件的过程中或接收完毕后,通过全局校验可及时查找传输错误或缺失的升级数据包文件,方便及时补传,校验的实现方式包括CRC循环冗余校验、奇偶校验和补码校验中的一种或多种。将文件转移完成后,结合差分升级算法,通过控制单片机的芯片重新启动升级固件,无需分别写入引导程序和用户程序,启动升级固件完毕后,进入新的固件系统。
S5、软件复位重启,等待新程序运行。
需要说明的是,当电源电压Vcc低于掉电复位检测门槛电压时,就会引起系统复位,软件复位主要包括IAP_CONTR的SWRST所触发的复位,也就是通过控制IAP_CONTR特殊功能寄存器的其中SWRS/SWRST实现复位,复位重启后,新程序运行,远程升级固件程序完毕。
本申请中提供了一种支持IAP功能的单片机远程升级固件的方法,按照单片机的内部芯片程序区实现的功能不同,将内部芯片程序区划分为运行程序区、备份程序区、固件升级功能程序区和用户数据区;运行程序区用于运行设备主程序,并实时接收外部通过网络通讯模组发送来的升级数据包,并进行数据包校验和解密;备份程序区用于接收缓存从云服务器发送的升级数据包;固件升级功能程序区用于升级固件的数据包接收完毕并通过全局校验后,将备份程序区代码转移至运行程序区;用户程序区用于存放用户数据,用户数据包括设备ID、程序加密和解密密码。云服务器向设备主程序发送升级数据包时,利用密码技术对发送的升级数据包文件进行加密,实现信息隐蔽,从而起到保护升级数据包文件的安全的作用,并将加密的升级数据包通过远程通讯模组发送至设备,运行程序区运行设备主程序,对加密的升级数据包进行校验和解密,校验和解密成功后,将升级数据包文件写入备份程序区进行接收缓存便于备份,以防断网时,仍可调用固件升级功能程序区程序将备份程序区代码转移至运行程序区,通过全局校验可及时查找传输错误或缺失的升级数据包文件,可及时补传。将文件转移完成后,结合差分升级算法,通过控制单片机的芯片重新启动升级固件,无需分别写入引导程序和用户程序。通过设置运行程序区、备份程序区、固件升级功能程序区,在文件传输过程中,数据包缓存到备份程序区,因此运行程序区能够正常运行未更新前的设备主程序,设备能够正常工作,解决更新时设备不能正常运行的问题,同时由于数据是传输到备份程序区,能确保单片机的芯片在远程固件升级的全过程中不会因外部电源和网络中断导致固件升级失败。解决现有的设备远程升级技术存在诸多不足的技术问题。
实施例2
为了便于理解,请参阅图1和图2,作为实施例1的进一步改进,云服务器将升级数据包拆分为若干个分包,将升级数据包传输过程拆分成若干次数据传输,每次数据传输将其中一个分包发送给设备主程序。单片机采用两级电源供电机制,在一级电源异常时自动切换二级电源供电,其中一级电源是为设备的工作提供持续能源的外部供电电源,二级电源为内部备用电源,二级电源供电时长,需保证大于通过固件升级功能程序区程序将备份程序区代码转移到运行程序区所需时间,所需时间至少为1.2秒。备用电源采用可充电电池,当电量不饱和时通过一级电源充电。
需要说明的是,云服务器将升级数据包拆分成若干个分包,同时将升级数据包传输过程拆分成若干次数据传输,方便快速传输。单片机采用两级电源供电机制,利用双电源自动转换开关,当一级电源突然故障或断电时,自动切换到二级电源,二级电源一般储能较少,为了避免因断电而导致升级失败、产品功能丧失,需保证二级电源供电时长大于通过固件升级功能程序区程序将备份程序区代码转移到运行程序区所需时长,根据实践表明,固件升级功能程序区程序将备份程序区代码转移到运行程序区所需时长为1.2秒,故二级电源供电时长至少为1.2秒,二级电源的储能量只要能够支撑固件升级功能程序区程序将备份程序区代码转移到运行程序区即可,当断电时,利用二级电源提供电能支撑转移完正在转移的代码后,确保升级继续执行,同时确保在远程固件升级的全过程中不会因外部电源和网络中断导致固件升级失败。备用电源采用可充电电池,电量不饱和时可通过一级电源反复充电,便于长期使用,同时避免使用一次性电池造成资源浪费。
具体地,校验的实现方式包括CRC循环冗余校验、奇偶校验和补码校验中的一种或多种。
需要说明的是,云服务器对升级数据包进行拆分为若干个分包,每个分包都有唯一标识,设备主程序在接收分包的过程中或接收完毕后,对每个分包的标识和分包内数据标识以及分包的CRC值进行校验,对每个分包整体进行校验过程中,由于每个分包的数据量大、重复率高,为提高校验速度,可通过CRC循环冗余校验、奇偶校验和补码校验等简单校验方法,具体应用时,分包中的CRC值是通过CRC循环冗余检验对分包中的数据进行校验得到的,分包标识是通过奇偶校验和补码校验中一种或多种得到的。
实施例3
为了便于理解,请参阅图3和图4,本申请第二方面提供的一种支持IAP功能的单片机远程升级固件的设备,包括:云服务器、远程通讯模组、单片机、一级电源和二级电源;云服务器,用于加密远程升级的数据包,并将数据包拆分为若干个分包,通过远程通讯模组将分包发送给单片机;远程通讯模组,用于实现云服务器和单片机的数据通信;单片机,支持用户IAP编程,芯片程序区划分为运行程序区、备份程序区、固件升级功能程序区和用户数据区;运行程序区,用于运行设备主程序,并实时接收外部通过网络通讯模组发送来的升级数据包,并进行数据包校验和解密;备份程序区,用于接收缓存从云服务器发送的升级数据包;固件升级功能程序区,用于升级固件的数据包接收完毕并通过全局校验后,将备份程序区代码转移至运行程序区;用户程序区,用于存放用户数据,用户数据包括设备ID、程序加密和解密密码;一级电源为设备的外部供电电源,为设备的工作提供持续能源;二级电源为一级电源异常时的备份电源。
需要说明的是,按照单片机的内部芯片程序区实现的功能不同,将内部芯片程序区划分为运行程序区、备份程序区、固件升级功能程序区和用户数据区,四个区域的大小根据实现需求进行调整划分,按照各个区域的功能进行运行,运行程序区的地址为0X0000,用于运行设备主程序,并实时接收外部通过网络通讯模组发送来的升级数据包,并进行数据包校验和解密;备份程序区的地址为0X7000,用于接收缓存从云服务器发送的升级数据包;固件升级功能程序区的地址为0XE000,用于升级固件的数据包接收完毕并通过全局校验后,将备份程序区代码转移至运行程序区;用户程序区的地址为0XF000,用于存放用户数据,用户数据包括设备ID、程序加密和解密密码。云服务器向设备主程序发送升级数据包时,利用密码技术对发送的升级数据包文件进行加密,实现信息隐蔽,从而起到保护升级数据包文件的安全的作用,并将加密的升级数据包通过远程通讯模组发送至设备,运行程序区对加密的升级数据包进行校验和解密,校验和解密成功后,将升级数据包文件写入备份程序区进行接收缓存便于备份,以防断网时,仍可调用固件升级功能程序区程序将备份程序区代码转移至运行程序区,通过全局校验可及时查找传输错误或缺失的升级数据包文件,可及时补传。将文件转移完成后,结合差分升级算法,通过控制单片机的芯片重新启动升级固件,无需分别写入引导程序和用户程序。通过设置运行程序区、备份程序区、固件升级功能程序区,在文件传输过程中,数据包缓存到备份程序区,因此运行程序区能够正常运行未更新前的设备主程序,设备能够正常工作,解决更新时设备不能正常运行的问题,同时由于数据是传输到备份程序区,能确保单片机的芯片在远程固件升级的全过程中不会因外部电源和网络中断导致固件升级失败。具体地,因单片机采用两级电源供电机制,利用双电源自动转换开关,当一级电源突然故障或断电时,自动切换到二级电源,为了避免因断电而导致升级失败、产品功能丧失,需保证二级电源供电时长大于通过固件升级功能程序区程序将备份程序区代码转移到运行程序区所需时长。当断电时,利用二级电源提供电能支撑转移完正在转移的代码后,确保升级继续执行,同时确保在远程固件升级的全过程中不会因外部电源和网络中断导致固件升级失败。
实施例4
为了便于理解,请参阅图3和图4,作为实施例3的进一步改进,远程通讯模组为air724模组、NB-IOT模组或4G/5G模组中的一种。云服务器还用于将升级数据包拆分为若干个分包,将升级数据包传输过程拆分成若干次数据传输,每次数据传输将其中一个分包发送给设备主程序。二级电源的供电时长至少能满足通过固件升级功能程序区程序将备份程序区代码转移到运行程序区所需时间。二级电源的供电时长至少为1.2秒。
需要说明的是,远程通讯模组可直接连接云服务器,接收云服务器发送的升级数据包文件,具体地,远程通讯模组可以为air724模组,air724模组支持CAT.1网络通讯,CAT.1网络通讯的速率可达到10Mbps,在网络覆盖不好或者无信号的地方仍可满足移动宽带通讯的需求。远程通讯模组可以为NB-IOT模组,NB-IOT模组具有覆盖广、连接多、速率快、成本低、功耗低、架构优等特点。远程通讯模组可以为4G/5G模组,全功能的4G/5G模组具有高速率、低时延、大容量和传输速率快的优点。将升级数据包拆分为若干个分包,同时将升级数据包传输过程拆分成若干次数据传输,方便快速传输。为了避免因断电而导致升级失败、产品功能丧失,需保证二级电源供电时长大于通过固件升级功能程序区程序将备份程序区代码转移到运行程序区所需时长,根据实践验证,固件升级功能程序区程序将备份程序区代码转移到运行程序区所需时长为1.2秒,故二级电源供电时长至少为1.2秒,二级电源的储能量只要能够支撑固件升级功能程序区程序将备份程序区代码转移到运行程序区即可,确保升级继续执行,同时确保在远程固件升级的全过程中不会因外部电源和网络中断导致固件升级失败。本申请适用的单片机为STC8A8K64单片机,也可以为STM32F103单片机,具体地,优选STC8A8K64单片机作为试验,申请者已验证本申请可在STC8A8K64单片机上使用。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种支持IAP功能的单片机远程升级固件的方法,其特征在于,应用于支持IAP功能的单片机远程升级固件设备,包括以下步骤:
将单片机的芯片程序区划分为运行程序区、备份程序区、固件升级功能程序区和用户数据区;
运行程序区执行设备主程序,实时接收云服务器发送的升级数据包,并对升级数据包文件进行校验与解密;
升级数据包文件校验和解密成功后,将升级数据包文件写入备份程序区;
备份程序区接收缓存升级数据包,并通过全局校验,调用固件升级功能程序区的代码将备份程序区接收的文件转移至运行程序区,文件转移完成后,单片机重新启动,进入新的固件系统;
软件复位重启,等待新程序运行。
2.根据权利要求1所述的支持IAP功能的单片机远程升级固件的方法,其特征在于,云服务器将升级数据包拆分为若干个分包,将升级数据包传输过程拆分成若干次数据传输,每次数据传输将其中一个分包发送给设备主程序。
3.根据权利要求2所述的支持IAP功能的单片机远程升级固件的方法,其特征在于,单片机采用两级电源供电机制,在一级电源异常时自动切换二级电源供电,其中一级电源是为设备的工作提供持续能源的外部供电电源,二级电源为内部备用电源,二级电源供电时长,需保证大于通过固件升级功能程序区程序将备份程序区代码转移到运行程序区所需时间,所需时间至少为1.2秒。
4.根据权利要求3所述的支持IAP功能的单片机远程升级固件的方法,其特征在于,备用电源采用可充电电池,当电量不饱和时通过一级电源充电。
5.根据权利要求1所述的支持IAP功能的单片机远程升级固件的方法,其特征在于,校验的实现方式包括CRC循环冗余校验、奇偶校验和补码校验中的一种或多种。
6.一种支持IAP功能的单片机远程升级固件的设备,其特征在于,包括:云服务器、远程通讯模组、单片机、一级电源和二级电源;
云服务器,用于加密远程升级的数据包,并将数据包拆分为若干个分包,通过远程通讯模组将分包发送给单片机;
远程通讯模组,用于实现云服务器和单片机的数据通信;
单片机,支持用户IAP编程,芯片程序区划分为运行程序区、备份程序区、固件升级功能程序区和用户数据区;
运行程序区,用于运行设备主程序,并实时接收外部通过网络通讯模组发送来的升级数据包,并进行数据包校验和解密;
备份程序区,用于接收缓存从云服务器发送的升级数据包;
固件升级功能程序区,用于升级固件的数据包接收完毕并通过全局校验后,将备份程序区代码转移至运行程序区;
用户程序区,用于存放用户数据,用户数据包括设备ID、程序加密和解密密码;
一级电源为设备的外部供电电源,为设备的工作提供持续能源;
二级电源为一级电源异常时的备份电源。
7.根据权利要求6所述的支持IAP功能的单片机远程升级固件的设备,其特征在于,远程通讯模组为air724模组、NB-IOT模组或4G/5G模组中的一种。
8.根据权利要求6所述的支持IAP功能的单片机远程升级固件的设备,其特征在于,云服务器还用于将升级数据包拆分为若干个分包,将升级数据包传输过程拆分成若干次数据传输,每次数据传输将其中一个分包发送给设备主程序。
9.根据权利要求8所述的支持IAP功能的单片机远程升级固件的设备,其特征在于,二级电源的供电时长至少能满足通过固件升级功能程序区程序将备份程序区代码转移到运行程序区所需时间。
10.根据权利要求6所述的支持IAP功能的单片机远程升级固件的设备,其特征在于,二级电源的供电时长至少为1.2秒。
CN202111085082.0A 2021-09-16 2021-09-16 一种支持iap功能的单片机远程升级固件的方法与设备 Active CN113918202B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111085082.0A CN113918202B (zh) 2021-09-16 2021-09-16 一种支持iap功能的单片机远程升级固件的方法与设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111085082.0A CN113918202B (zh) 2021-09-16 2021-09-16 一种支持iap功能的单片机远程升级固件的方法与设备

Publications (2)

Publication Number Publication Date
CN113918202A true CN113918202A (zh) 2022-01-11
CN113918202B CN113918202B (zh) 2024-07-16

Family

ID=79235083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111085082.0A Active CN113918202B (zh) 2021-09-16 2021-09-16 一种支持iap功能的单片机远程升级固件的方法与设备

Country Status (1)

Country Link
CN (1) CN113918202B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114816460A (zh) * 2022-06-29 2022-07-29 上海捷勃特机器人有限公司 一种机器人系统远程升级微控制器的装置及其方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130013907A1 (en) * 2005-02-15 2013-01-10 Gytheion Networks, Llc Wireless router remote firmware upgrade
CN103577214A (zh) * 2012-08-09 2014-02-12 罗森伯格(上海)通信技术有限公司 应用程序更新方法和装置
CN105278998A (zh) * 2015-11-17 2016-01-27 北京联合众为科技发展有限公司 一种单片机固件升级方法
CN105740034A (zh) * 2016-04-13 2016-07-06 深圳市高巨创新科技开发有限公司 Mcu在线升级固件的系统及方法
US20180137077A1 (en) * 2016-11-16 2018-05-17 POWER 7 TECHNOLOGY CORP.(Shenzhen) Combination of mobile electronic device and storage module
CN110633097A (zh) * 2018-06-21 2019-12-31 新智数字科技有限公司 一种单片机的ota升级方法及装置
CN111273937A (zh) * 2020-01-18 2020-06-12 四川九洲空管科技有限责任公司 一种基于stm32f746处理器的远程升级方法
CN112925548A (zh) * 2019-12-06 2021-06-08 台达电子工业股份有限公司 在线程序更新方法
CN113254048A (zh) * 2021-06-21 2021-08-13 深之蓝(天津)水下智能科技有限公司 引导程序更新方法、装置、设备及计算机可读介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130013907A1 (en) * 2005-02-15 2013-01-10 Gytheion Networks, Llc Wireless router remote firmware upgrade
CN103577214A (zh) * 2012-08-09 2014-02-12 罗森伯格(上海)通信技术有限公司 应用程序更新方法和装置
CN105278998A (zh) * 2015-11-17 2016-01-27 北京联合众为科技发展有限公司 一种单片机固件升级方法
CN105740034A (zh) * 2016-04-13 2016-07-06 深圳市高巨创新科技开发有限公司 Mcu在线升级固件的系统及方法
US20180137077A1 (en) * 2016-11-16 2018-05-17 POWER 7 TECHNOLOGY CORP.(Shenzhen) Combination of mobile electronic device and storage module
CN110633097A (zh) * 2018-06-21 2019-12-31 新智数字科技有限公司 一种单片机的ota升级方法及装置
CN112925548A (zh) * 2019-12-06 2021-06-08 台达电子工业股份有限公司 在线程序更新方法
CN111273937A (zh) * 2020-01-18 2020-06-12 四川九洲空管科技有限责任公司 一种基于stm32f746处理器的远程升级方法
CN113254048A (zh) * 2021-06-21 2021-08-13 深之蓝(天津)水下智能科技有限公司 引导程序更新方法、装置、设备及计算机可读介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114816460A (zh) * 2022-06-29 2022-07-29 上海捷勃特机器人有限公司 一种机器人系统远程升级微控制器的装置及其方法

Also Published As

Publication number Publication date
CN113918202B (zh) 2024-07-16

Similar Documents

Publication Publication Date Title
CN106569847B (zh) 一种用于车载系统基于移动网络实现iap远程升级的方法
CN103530146B (zh) 低功耗嵌入式设备远程无线升级方法
US11550561B2 (en) Method for upgrading energy storage system remotely, energy management system, and battery management system
CN108011935B (zh) 一种nb-iot设备的程序升级方法、服务器及nb-iot设备
CN109101261A (zh) 一种数据采集传输仪终端的远程在线升级方法及系统
CN107579863A (zh) 终端ota升级方法、装置及系统
CN102609281B (zh) 分布式软件补丁更新方法及系统
CN101907998B (zh) 嵌入式系统的更新系统和方法
CN102023876A (zh) 一种可软件在线升级的嵌入式系统及在线升级方法
CN105278998A (zh) 一种单片机固件升级方法
CN101605189B (zh) 智能平台管理控制器的在线升级系统和方法
CN110471692B (zh) 终端程序的空中升级方法、装置、设备及存储介质
US20160085538A1 (en) Over-the-air updates for ble devices
CN106874054B (zh) 一种直放站内模块程序在线升级方法与系统
CN106411619A (zh) 一种基于低功耗广域网的无线设备升级方法
US7840706B1 (en) Wake-on-LAN design in a load balanced environment
CN101583144A (zh) 无线控制器业务信息的备份方法和设备
CN111240713A (zh) 一种用电检测远程断点续传的方法
CN111918274B (zh) 码号配置、管理方法、装置、电子设备及可读存储介质
CN102487342B (zh) 虚拟互联网协议地址绑定控制装置及方法
CN111045703A (zh) 一种电池管理单元软件升级方法及系统
CN104102519A (zh) 机架式服务器系统的固件更新方法及其装置
CN113918202B (zh) 一种支持iap功能的单片机远程升级固件的方法与设备
CN110245038B (zh) 数据交叉备份与恢复设备及方法
CN101056209A (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
GR01 Patent grant
GR01 Patent grant