一种物联网MCU空中固件升级系统及方法与流程

文档序号:30420730发布日期:2022-06-15 13:08阅读:297来源:国知局
一种物联网MCU空中固件升级系统及方法与流程
一种物联网mcu空中固件升级系统及方法
技术领域
1.本发明涉及物联网技术领域,具体地说,涉及一种物联网mcu空中固件升级系统及方法。


背景技术:

2.近年来,随着物联网技术的迅速发展,物联网终端设备越来越多,需要不断地升级固件修复系统漏洞或升级系统来满足新的用户需求,为用户提供更好的服务。目前物联网mcu固件升级的主流方法为云端远程固件升级,mcu与云端连接后下载固件升级包进行升级,但是在升级的过程中,如果遇到异常或者断电,很容易出现升级死机的情况,导致升级失败,影响mcu的正常工作,而且重新升级时又需要再次下载固件升级包,升级风险大,升级效率低。


技术实现要素:

3.本发明的目的在于提供一种物联网mcu空中固件升级系统及方法,旨在解决物联网mcu在远程升级过程中遇到异常或者断电导致升级死机的问题。
4.本发明提供了一种物联网mcu空中固件升级系统,包括云控制平台和物联网终端设备,物联网终端设备由通信模组与相同或不同类型的多个物联网mcu组合而成,物联网mcu通过通信模组与云控制平台建立连接进行固件升级,通信模组从云控制平台下载固件升级包并存储在通信模组中;物联网mcu的存储空间划分为互相独立的三个空间,分别用于存放bootloader程序代码、正常应用程序代码和备用应用程序代码;bootloader程序用于在固件升级中设置应用程序启动的方式,正常应用程序用于在固件不升级时运行,备用应用程序用于在固件升级时从通信模组读取固件升级包并写入正常应用程序空间。
5.进一步地,云控制平台连接多个所述物联网终端设备。
6.进一步地,通信模组包括4g模组、2g模组。
7.进一步地,bootloader程序用于在固件升级中设置应用程序的启动方式,包括,
8.mcu获知固件升级包下载完成后,修改bootloader程序中reset函数中的启动地址为备用pc,开机启动方式设置为启动备用应用程序;
9.mcu在固件升级包读写完成后,修改bootloader程序中reset函数中的启动地址为正常pc,开机启动方式设置为启动正常应用程序。
10.进一步地,备用应用程序用于在固件升级时从通信模组读取固件升级包并写入正常应用程序空间,包括,备用应用程序在固件升级时擦除正常pc地址后的数据,和通信模组建立通讯,从通信模组中读取固件升级包并写入正常pc地址后空间。
11.本发明提供了一种物联网mcu空中固件升级方法,具体步骤包括:
12.步骤s1,物联网终端向云控制平台上传mcu固件版本号;
13.步骤s2,云控制平台判断上传的mcu固件版本号是否低于当前保存的mcu固件版本号,若不是则转入最后一步,若是则转入下一步;
14.步骤s3,物联网终端下载相应的mcu升级固件并存储到通信模组本地空间;
15.步骤s4,bootloader设置启动方式为备用应用程序启动,mcu自复位并向云控制平台上传最新mcu版本号;
16.步骤s5,备用应用程序擦除正常应用程序空间,拉取通信模组中存储的升级固件写入正常应用程序空间,修改bootloader启动方式为正常应用程序启动,mcu自复位;
17.步骤s6,mcu进入正常应用工作模式。
18.进一步地,步骤s3包含以下子步骤:
19.步骤s31,云控制平台向物联网终端下发升级使能信号;
20.步骤s32,物联网终端通信模组接收使能信号;
21.步骤s33,物联网终端下载相应的mcu升级固件并存储到通信模组本地空间。
22.进一步地,步骤s4包括,mcu获知通信模组下载完成升级固件包后,修改pc地址为备用应用程序启动地址,然后自复位,待复位完成后进入备用程序运行。
23.进一步地,步骤s5包括,备用应用程序运行后,擦除正常pc地址后的数据,和通信模组建立通讯,从通信模组读取固件升级包并写入正常pc地址后空间,写完后修改reset函数中启动地址为正常pc启动,最后自复位。
24.与相关技术相比,本发明提供的物联网mcu空中固件升级方法能够解决物联网mcu在固件升级过程中遇到异常或者断电时导致升级死机的问题,而且重新上电后可以继续被中断的升级流程,降低了固件升级的风险,提高了物联网终端设备维护的稳定性。在固件升级的过程中,固件升级包会存储到通信模组本地flash内,当物联网mcu重新升级时不再需要重复下载固件升级包,提高了固件升级的效率。
附图说明
25.图1是本发明实施例提供的物联网mcu空中固件升级系统的示意图。
26.图2是本发明实施例提供的物联网mcu空中固件升级系统中存储器映射的示意图。
27.图3是本发明实施例提供的物联网mcu空中固件升级方法的实现流程图。
具体实施方式
28.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
29.以下结合具体实施例对本发明的具体实现进行详细描述:
30.实施例:
31.图1示出了本发明实施例提供的物联网mcu空中固件升级系统的示意图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
32.本发明提供了一种物联网mcu空中固件升级系统,包括云控制平台和物联网终端设备,物联网终端设备由通信模组与相同或不同类型的多个物联网mcu组合而成,物联网mcu通过通信模组与云控制平台建立连接进行固件升级,通信模组从云控制平台下载固件升级包并存储在通信模组中;物联网mcu的存储空间划分为互相独立的三个空间,分别用于存放bootloader程序代码、正常应用程序代码和备用应用程序代码;bootloader程序用于
在固件升级中设置应用程序启动的方式,正常应用程序用于在固件不升级时运行,备用应用程序用于在固件升级时从通信模组读取固件写入正常应用程序空间。
33.云控制平台连接多个类型相同或者不同的物联网终端设备,如一个云控制平台连接多个共享单车、智能汽车、智能门锁等。
34.物联网mcu通过通信模组与云控制平台建立连接,通信模组包括4g模组、2g模组。
35.如图2为物联网mcu的存储器分区映射,物联网mcu的存储空间划分为互相独立的三个空间,bootloader程序代码空间、正常应用程序代码空间和备用应用程序代码空间,分别用于存放bootloader程序、正常应用程序和备用应用程序。
36.其中,bootloader程序用于在固件升级中设置应用程序的启动方式,具体方式为:
37.mcu获知固件升级包下载完成后,修改bootloader程序中reset函数中的启动地址为备用pc,开机启动方式设置为启动备用应用程序;
38.mcu在固件升级包读写完成后,修改bootloader程序中reset函数中的启动地址为正常pc,开机启动方式设置为启动正常应用程序。
39.备用应用程序,用于在固件升级时从通信模组读取固件升级包并写入正常应用程序空间,包括,备用应用程序在固件升级时擦除正常pc地址后的数据,和通信模组建立通讯,从通信模组中读取固件升级包并写入正常pc地址后空间。
40.正常应用程序,用于非固件升级时正常运行。
41.图3示出了本发明提供了一种物联网mcu空中固件升级方法,具体步骤包括:
42.步骤s1,物联网终端向云控制平台上传mcu固件版本号;
43.步骤s2,云控制平台判断上传的mcu固件版本号是否低于当前保存的mcu固件版本号,若不是则转入最后一步,若是则转入下一步;
44.步骤s3,物联网终端下载相应的mcu升级固件并存储到通信模组本地空间;
45.步骤s4,bootloader设置启动方式为备用应用程序启动,mcu自复位并向云控制平台上传最新mcu版本号;
46.步骤s5,备用应用程序擦除正常应用程序空间,拉取通信模组中存储的升级固件写入正常应用程序空间,修改bootloader启动方式为正常应用程序启动,mcu自复位;
47.步骤s6,mcu进入正常应用工作模式。
48.具体地,步骤3包含以下子步骤:
49.步骤s31,云控制平台向物联网终端下发升级使能信号;
50.步骤s32,物联网终端通信模组接收使能信号;
51.步骤s33,物联网终端下载相应的mcu升级固件并存储到通信模组本地空间。
52.具体地,步骤4包括,mcu获知通信模组下载完成升级固件包后,修改pc地址为备用应用程序启动地址,然后自复位,待复位完成后进入备用程序运行。
53.具体地,步骤5包括,备用应用程序运行后,擦除正常pc地址后的数据,和通信模组建立通讯,从通信模组读取固件升级包并写入正常pc地址后空间,写完后修改reset函数中启动地址为正常pc启动,最后自复位。
54.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1