CN110096294B - 一种可任意断点无线升级mcu应用程序的方法 - Google Patents

一种可任意断点无线升级mcu应用程序的方法 Download PDF

Info

Publication number
CN110096294B
CN110096294B CN201910373617.0A CN201910373617A CN110096294B CN 110096294 B CN110096294 B CN 110096294B CN 201910373617 A CN201910373617 A CN 201910373617A CN 110096294 B CN110096294 B CN 110096294B
Authority
CN
China
Prior art keywords
upgrading
mobile phone
phone app
bin
file
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.)
Active
Application number
CN201910373617.0A
Other languages
English (en)
Other versions
CN110096294A (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.)
Ipico Xiamen Technologies Co ltd
Original Assignee
Ipico Xiamen Technologies 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 Ipico Xiamen Technologies Co ltd filed Critical Ipico Xiamen Technologies Co ltd
Priority to CN201910373617.0A priority Critical patent/CN110096294B/zh
Publication of CN110096294A publication Critical patent/CN110096294A/zh
Application granted granted Critical
Publication of CN110096294B publication Critical patent/CN110096294B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种可任意断点无线升级MCU应用程序的方法,包括以下步骤:手机APP向服务器请求将BIN升级文件下载到本地;服务器收到请求后将整个BIN文件下发给手机APP;手机APP向OBD发起升级请求并查询上次下载固件断点位置的数据长度和校验值;OBD终端收到升级请求后,触发软件复位进入boot模式,boot在flash参数区上读取上次下载固件断点位置前的数据长度和校验值并上报给手机APP;手机APP从BIN升级文件断点处开始按多帧数据帧协议下发给OBD。该方法有效的解决了单片机应用程序在蓝牙传输下的无线升级过程中,异常断开后,需重新开始的问题,实现可任意断点续传的升级解决方案,大大提高了升级的成功率和用户体验的满意度。

Description

一种可任意断点无线升级MCU应用程序的方法
技术领域
本发明涉及电子设备技术领域,具体涉及一种可任意断点无线升级MCU 应用程序的方法。
背景技术
单片机应用程序进行无线传输升级,通用的方式都是借助单片机的 bootloader程序进行数据传输、ISP烧写以及程序引导。在单片机应用程序无线升级过程中,存在多种可能导致中断,异常中断后,现有的做法都是重新发起升级请求,并从头开始覆盖烧写,这样对于信道较差的无线通讯,如蓝牙传输,特别是蓝牙4.0传输技术,其每帧只能传输20个字节,如此对于一个大升级文件,就要拆分成多个数据包,传输时间长(一个200K的升级文件,通常需要传输10分钟),存在传输过程出现多次异常中断的情况,如果每次需要重新开始传输升级,不能实现断点续传,将大大增加升级时间,更严重的将直接导致升级失败,严重影响了产品功能稳定性和客户体验满意度。
发明内容
(一)解决的技术问题
本发明提供一种可任意断点无线升级MCU应用程序的方法,有效的解决了单片机应用程序在蓝牙传输下的无线升级过程中,异常断开后,需重新开始的问题,实现可任意断点续传的升级解决方案,大大提高了升级的成功率和用户体验的满意度。
(二)技术方案
为解决上述技术问题,本发明提供如下技术方案:一种可任意断点无线升级MCU应用程序的方法,包括以下步骤:
步骤1:手机APP向服务器请求将BIN升级文件下载到本地;服务器收到请求后将整个BIN文件下发给手机APP;
步骤2:手机APP向OBD发起升级请求并查询上次下载固件断点位置的数据长度和校验值;
步骤3:OBD终端收到升级请求后,触发软件复位进入boot模式,boot在 flash参数区上读取上次下载固件断点位置前的数据长度和校验值并上报给手机APP;
步骤4:手机APP从BIN升级文件断点处开始按多帧数据帧协议下发给 OBD;
步骤5:下载完后,进行总长度比对,并从flash按总长度读取数据来计算总校验进行比对;
步骤6:OBD设备将新的升级文件内容,从备份区拷贝到执行区,并擦除 flash参数区的升级标志;
步骤7:OBD应答升级成功给手机APP,手机APP删除本地BIN升级文件并清除升级标志,OBD终端跳转至执行区运行。
优选的,步骤1还包括以下步骤:
步骤11:服务器从给定的BIN的指定位置读取升级文件的版本号并储存,以供收集APP读取;
步骤12:手机APP端获取服务器和OBD两端的版本号信息,即手机APP 通过蓝牙协议下发查询当前OBD终端版本号;同时手机APP向服务器请求查询BIN升级文件升级版本号;
步骤13:手机APP端对比服务端和OBD端的两个版本号,验证是否需要升级,不是则结束,是则进入步骤14;
步骤14:手机APP向服务器请求将BIN升级文件下载到本地;服务端算出给定的BIN升级文件的总长度和校验值,并追加到BIN文件的版本号字段的后面位置,然后将整个BIN文件下发给手机APP;
步骤15:手机APP检验收到的BIN升级文件的校验值和长度是否正确,正确,则置位升级标志,错误,则判断重试次数是否大于1,是则结束,不是则回到步骤14。
优选的,步骤1和步骤2之间还包括以下步骤:
步骤21:手机APP检测升级标志是否有效,无效则结束,有效则进入步骤22;
步骤22:手机APP弹窗提示升级选择,等待用户选择是否升级,不升级,则结束,升级则进入步骤2。
优选的,步骤4包括以下步骤:
步骤41:手机APP根据断电位置的长度和校验值,在新升级BIN文件中读取对应的长度来计算校验值并对比,判断校验值是否相等,是,则进入步骤42,否则进入步骤44;
步骤42:手机APP发起断电续传升级请求;
步骤43:手机APP从BIN升级文件断点处开始按多帧数据帧协议下发给 OBD;如果长度已经等于总长度则发送传输结束指令;
步骤44:手机APP发起重新开始升级请求;
步骤45:手机APP从BIN升级文件首地址开始按多帧数据帧协议下发给 OBD,结束后发送传输结束指令。
优选的,步骤5和步骤6之间还包括以下步骤:
步骤51:判断总长度和总校验是否一致,是则进入步骤6,否则,进入步骤52;
步骤52:OBD应答升级失败;
步骤53:再重新开始,再次尝试,尝试的次数是否大于1次,是则结束,否则进入步骤44。
(三)有益效果
本发明提供的一种可任意断点无线升级MCU应用程序的方法,有效的解决了在蓝牙传输下的无线升级单片机应用程序过程中,异常断开后,需重新开始的问题;实现可任意断点续传的升级解决方案,大大提高了升级的成功率和用户体验的满意度。
附图说明
图1为服务器与手机APP交互内容流程图;
图2为手机APP与OBD终端交互内容流程图;
图3为单片机STM32F747内存分区规划图;
图4为参数区的储存信息规划图。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的一种可任意断点无线升级MCU应用程序的方法,在此以 STM32F747单片机为例,来阐述实现步骤。
该升级方法中三方的通讯方式为:BIN文件→服务器→手机APP→OBD终端(STM32F7);其中服务器到手机APP采用4G网络传输,手机APP到STM32F7 采用蓝牙传输。以下具体说明断点升级交互流程:
首先,参阅图1所示,图1为服务器与手机APP交互内容流程图,服务器与手机APP交互流程如下:
手机APP向服务器请求将BIN升级文件下载到本地;服务器收到请求后将整个BIN文件下发给手机APP;
具体的包括以下步骤:
步骤1:服务器从给定的BIN的指定位置读取升级文件的版本号并储存,以供收集APP读取;
手机APP端获取服务器和OBD两端的版本号信息,即手机APP通过蓝牙协议下发查询当前OBD终端版本号;同时手机APP向服务器请求查询BIN升级文件升级版本号;
手机APP端对比服务端和OBD端的两个版本号,验证是否需要升级,不是则结束,是则进入步骤14;
手机APP向服务器请求将BIN升级文件下载到本地;服务端算出给定的BIN升级文件的总长度和校验值,并追加到BIN文件的版本号字段的后面位置,然后将整个BIN文件下发给手机APP;
手机APP检验收到的BIN升级文件的校验值和长度是否正确,正确,则置位升级标志,错误,则判断重试次数是否大于1,是则结束,不是则回到步骤14。
进一步结合图2所示,图2为手机APP与OBD终端交互内容流程图,手机APP与OBD终端交互流程如下:
手机APP检测升级标志是否有效,无效则结束,有效则进入步骤22;
手机APP弹窗提示升级选择,等待用户选择是否升级,不升级,则结束,升级则进入步骤2。
步骤2:手机APP向OBD发起升级请求并查询上次下载固件断点位置的数据长度和校验值。
步骤3:OBD终端收到升级请求后,触发软件复位进入boot模式,boot在 flash参数区上读取上次下载固件断点位置前的数据长度和校验值并上报给手机APP。
步骤4:手机APP从BIN升级文件断点处开始按多帧数据帧协议下发给 OBD;具体的,包括以下步骤:
手机APP根据断电位置的长度和校验值,在新升级BIN文件中读取对应的长度来计算校验值并对比,判断校验值是否相等,是,则进入步骤42,否则进入步骤44;手机APP发起断电续传升级请求;手机APP从BIN升级文件断点处开始按多帧数据帧协议下发给OBD;如果长度已经等于总长度则发送传输结束指令;手机APP发起重新开始升级请求;手机APP从BIN升级文件首地址开始按多帧数据帧协议下发给OBD,结束后发送传输结束指令。
步骤5:下载完后,进行总长度比对,并从flash按总长度读取数据来计算总校验进行比对;
判断总长度和总校验是否一致,是则进入步骤6,否则,OBD应答升级失败;再重新开始,再次尝试,尝试的次数是否大于1次,是则结束,否则手机APP发起重新开始升级请求。
步骤6:OBD设备将新的升级文件内容,从备份区拷贝到执行区,并擦除 flash参数区的升级标志;
步骤7:OBD应答升级成功给手机APP,手机APP删除本地BIN升级文件并清除升级标志,OBD终端跳转至执行区运行。
关于断点备份和可任意断点的实现机制
参阅图3所示,图3为单片机STM32F747内存分区规划图,首先进行内存分区,以STM32F747为实施例的MCU是2M内存,内存共分为6个区:BOOT 运行区、参数区、临时存储1区、APP运行区、APP备份区和临时存储2区。
参数区的存储信息如图4所示,图4为参数区的储存信息规划图,其中,参数区的存储信息如下:
参数区内的前16字节作为版本号,接着2字节作为升级标志;
总校验和总长度代表整个升级BIN文件的CRC校验和内容长度;
断点校验和断点长度代表上次升级断点处的已经存在单片机FLASH里面的数据的CRC校验和内容长度。
校验策略:单片机读取断点长度后,根据断点长度截取存在flash的内容,进行CRC校验,并发给手机APP,手机APP截取要升级的文件对应的长度进行比对,如果一定,则进行断点升级处理,否则重新开始升级。
断点存储策略:规定单片机每次往flash写512个字节,写完后同步累加断点长度,分别在参数区的存储信息断点长度位置和临时存储1区的前2 个字节位置交替存储;需要读出断点的长度的时候,需将两个存储位置的长度读出,并分别截取数据计算校验,传送给手机APP进行比对,如果大的数值校验一致,则取大数,否则取小的,这样做的目的是为了预防单片机在更新断点的时候,发送意外断电,导致断点长度信息没写成功的情况,而这种断点丢失情况,可能导致断点被擦除为0XFFFF或者是一个随机数。
可任意断点的实现策略:可任意断点的实现主要考虑当断点产生后,从断点以后的数据擦除策略,即升级被中断后,可能有一个数据包的数据还在往flash写且未写完,此时断点未被更新,但扇区已部分被写,如要再写该扇区需要重新擦除;解决方法是计算断点处的所在扇区,将从扇区头到断点处干净的数据先搬移到临时存储2区(扇区较大,动态内存无法存储),然后擦除脏扇区,再把数据从备份区里恢复,之后即可写入新数据。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (4)

1.一种可任意断点无线升级MCU应用程序的方法,其特征在于,包括以下步骤:
步骤1:手机APP向服务器请求将BIN升级文件下载到本地;服务器收到请求后将整个BIN文件下发给手机APP;步骤1还包括以下步骤:
步骤11:服务器从给定的BIN的指定位置读取升级文件的版本号并储存,以供收集APP读取;
步骤12:手机APP端获取服务器和OBD两端的版本号信息,即手机APP通过蓝牙协议下发查询当前OBD终端版本号;同时手机APP向服务器请求查询BIN升级文件升级版本号;
步骤13:手机APP端对比服务端和OBD端的两个版本号,验证是否需要升级,不是则结束,是则进入步骤14;
步骤14:手机APP向服务器请求将BIN升级文件下载到本地;服务端算出给定的BIN升级文件的总长度和校验值,并追加到BIN文件的版本号字段的后面位置,然后将整个BIN文件下发给手机APP;
步骤15:手机APP检验收到的BIN升级文件的校验值和长度是否正确,正确,则置位升级标志,错误,则判断重试次数是否大于1,是则结束,不是则回到步骤14;
步骤2:手机APP向OBD发起升级请求并查询上次下载固件断点位置的数据长度和校验值;
步骤3:OBD终端收到升级请求后,触发软件复位进入boot模式,boot在flash参数区上读取上次下载固件断点位置前的数据长度和校验值并上报给手机APP;
步骤4:手机APP从BIN升级文件断点处开始按多帧数据帧协议下发给OBD;
步骤5:下载完后,进行总长度比对,并从flash按总长度读取数据来计算总校验进行比对;
步骤6:OBD设备将新的升级文件内容,从备份区拷贝到执行区,并擦除flash参数区的升级标志;
步骤7:OBD应答升级成功给手机APP,手机APP删除本地BIN升级文件并清除升级标志,OBD终端跳转至执行区运行。
2.根据权利要求1所述的可任意断点无线升级MCU应用程序的方法,其特征在于,步骤1和步骤2之间还包括以下步骤:
步骤21:手机APP检测升级标志是否有效,无效则结束,有效则进入步骤22;
步骤22:手机APP弹窗提示升级选择,等待用户选择是否升级,不升级,则结束,升级则进入步骤2。
3.根据权利要求1所述的可任意断点无线升级MCU应用程序的方法,其特征在于,步骤4包括以下步骤:
步骤41:手机APP根据断电位置的长度和校验值,在新升级BIN文件中读取对应的长度来计算校验值并对比,判断校验值是否相等,是,则进入步骤42,否则进入步骤44;
步骤42:手机APP发起断电续传升级请求;
步骤43:手机APP从BIN升级文件断点处开始按多帧数据帧协议下发给OBD;如果长度已经等于总长度则发送传输结束指令;
步骤44:手机APP发起重新开始升级请求;
步骤45:手机APP从BIN升级文件首地址开始按多帧数据帧协议下发给OBD,结束后发送传输结束指令。
4.根据权利要求1所述的可任意断点无线升级MCU应用程序的方法,其特征在于,步骤5和步骤6之间还包括以下步骤:
步骤51:判断总长度和总校验是否一致,是则进入步骤6,否则,进入步骤52;
步骤52:OBD应答升级失败;
步骤53:再重新开始,再次尝试,尝试的次数是否大于1次,是则结束,否则进入步骤44。
CN201910373617.0A 2019-05-07 2019-05-07 一种可任意断点无线升级mcu应用程序的方法 Active CN110096294B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910373617.0A CN110096294B (zh) 2019-05-07 2019-05-07 一种可任意断点无线升级mcu应用程序的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910373617.0A CN110096294B (zh) 2019-05-07 2019-05-07 一种可任意断点无线升级mcu应用程序的方法

Publications (2)

Publication Number Publication Date
CN110096294A CN110096294A (zh) 2019-08-06
CN110096294B true CN110096294B (zh) 2022-08-16

Family

ID=67447098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910373617.0A Active CN110096294B (zh) 2019-05-07 2019-05-07 一种可任意断点无线升级mcu应用程序的方法

Country Status (1)

Country Link
CN (1) CN110096294B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633091A (zh) * 2019-08-28 2019-12-31 西安超霸电气科技有限公司 一种电子模块及其软件无线升级方法
CN110535938B (zh) * 2019-08-29 2021-07-27 腾讯科技(深圳)有限公司 一种基于智能合约的数据处理方法、设备及存储介质
CN110621011B (zh) * 2019-09-12 2022-11-04 北京方研矩行科技有限公司 一种基于蓝牙设备端的ota固件升级方法及系统
CN111427606B (zh) * 2020-03-13 2023-03-10 常州新途软件有限公司 一种基于全双工spi的车机mcu升级方法
CN111787098B (zh) * 2020-06-30 2022-10-04 歌尔科技有限公司 一种耳机升级方法、装置及一种耳机和存储介质
CN111913727B (zh) * 2020-08-14 2023-06-30 电子科技大学中山学院 一种采用STM32单片机内部Flash实现AISG-V3协议固件存储的方法
CN112256297A (zh) * 2020-09-24 2021-01-22 苏宁智能终端有限公司 一种蓝牙外设固件升级方法、系统及手机终端
CN112241161A (zh) * 2020-10-22 2021-01-19 贝思特门机(嘉兴)有限公司 一种门机控制器软件升级方式
CN113568636A (zh) * 2021-07-08 2021-10-29 深圳市骁巨智能科技有限公司 一种智能手表ota升级系统及方法
CN113608769B (zh) * 2021-08-16 2024-05-03 广东亿云智控技术有限公司 一种基于多单片机并行处理及自我升级的方法
CN113986285A (zh) * 2021-10-15 2022-01-28 深圳市芯智科技有限公司 一种用于tpms产品的低频无线升级方法、系统及存储介质
CN114020297B (zh) * 2021-11-05 2024-10-18 三川智慧科技股份有限公司 一种基于蓝牙智能水表程序升级方法、装置、设备和介质
CN114675851A (zh) * 2022-04-21 2022-06-28 福建中维动力科技股份有限公司 程序烧录控制方法及下位机
CN116382724B (zh) * 2022-12-30 2023-12-12 深圳市盛思达通讯技术有限公司 基于云打印机的一种远程升级方法与系统
CN115996222B (zh) * 2023-03-24 2023-06-06 宁波均胜新能源汽车技术有限公司 一种基于移动通信和蓝牙通信的车载充电桩在线升级方法
CN116594661B (zh) * 2023-07-19 2023-09-19 成都泰格微电子研究所有限责任公司 一种编译阶段确保固件与工程匹配的单片机升级方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855151B (zh) * 2012-08-21 2016-06-08 武汉电信器件有限公司 不打断业务的光模块固件在应用升级方法
CN106951253A (zh) * 2017-03-21 2017-07-14 广州慧睿思通信息科技有限公司 一种嵌入式固件在线升级方法
CN108021410A (zh) * 2017-12-06 2018-05-11 九阳股份有限公司 一种智能家电设备的固件升级方法及系统
CN108279920A (zh) * 2018-01-22 2018-07-13 郑州云海信息技术有限公司 一种断电情况下无线升级固件的方法及系统
CN109240721A (zh) * 2018-08-24 2019-01-18 江苏恒宝智能系统技术有限公司 一种mcu在线升级的方法

Also Published As

Publication number Publication date
CN110096294A (zh) 2019-08-06

Similar Documents

Publication Publication Date Title
CN110096294B (zh) 一种可任意断点无线升级mcu应用程序的方法
CN107179909B (zh) 软件升级方法、装置及计算机可读存储介质
CN110621011B (zh) 一种基于蓝牙设备端的ota固件升级方法及系统
CN106569847B (zh) 一种用于车载系统基于移动网络实现iap远程升级的方法
CN101557583B (zh) 直放站设备嵌入式软件的远程升级与版本切换方法
US10268471B2 (en) Method for upgrading terminal system, terminal, and system
CN109189445B (zh) 一种物联网设备程序升级的方法
CN110730104A (zh) 一种mesh网络设备的多设备批量固件升级的方法
CN1650256B (zh) 通信终端的软件更新方法、通信终端以及软件更新系统
CN102646043B (zh) 移动终端软件升级方法、升级装置及移动终端
WO2014146256A1 (zh) 一种升级方法、智能终端及升级系统
KR101541112B1 (ko) Fota 시스템 및 그 실행 방법
US20160170735A1 (en) Operating system updating method by using a checklist
CN113821238B (zh) 智能穿戴设备外设固件更新方法、装置、移动终端及介质
CN108449198A (zh) 一种ota升级的方法、系统及存储设备
CN102004657B (zh) 一种电子设备及其升级方法
CN112181455B (zh) 微控制器的在线升级方法、微控制器及存储介质
CN110580167A (zh) 一种系统升级方法、智能设备及服务器
CN112667265B (zh) 一种引导程序更新方法及装置
CN110597545A (zh) 一种基于ota组件的热补丁智能升级方法及系统
CN112416411A (zh) 升级方法及装置、设备端、服务器、计算机可读介质
CN103336698A (zh) 一种wifi设备软件升级的方法及wifi设备和系统
CN111813597A (zh) 一种空调器
CN109992280A (zh) 一种嵌入式软件升级的方法、终端装置及存储装置
CN115102855B (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
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Method for Wireless Upgrading MCU Applications with Arbitrary Breakpoints

Granted publication date: 20220816

Pledgee: Agricultural Bank of China Limited Xiamen Siming Sub branch

Pledgor: IPICO (XIAMEN) TECHNOLOGIES Co.,Ltd.

Registration number: Y2024980008864