通信设备及其MCU的远程升级方法
文献发布时间:2023-06-19 09:43:16
技术领域
本发明涉及通信设备技术领域,特别涉及一种通信设备及其MCU的远程升级方法。
背景技术
微控制单元(Microcontroller Unit,简称MCU)是通信设备(如嵌入式通信设备)的核心组成部件,主流的MCU内部程序是通过个人电脑(Personal Computer,简称PC)使用专门的烧录工具进行升级,所以MCU程序一旦需要升级,则需要将MCU设备从嵌入式通信设备中取出,再使用PC烧录工具对MCU升级;但是,这样的升级方式存在升级过程繁琐、升级效率较低等问题。另外,当MCU无法从嵌入式通信设备中取出时,则无法对MCU进行升级,这样MCU每次升级都要进行返厂处理,从而造成了时间和成本上的浪费。
发明内容
本发明要解决的技术问题是为了克服现有技术中通信设备的MCU需要通过专门的烧录工具进行程序升级,导致必须返厂或无法取出MCU进而无法升级的缺陷,提供一种通信设备及其MCU的远程升级方法。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供一种通信设备中MCU的远程升级方法,所述通信设备包括通信连接的MCU和无线通信模块,所述远程升级方法包括:
所述无线通信模块向云端服务器发送查询请求,并在接收所述云端服务器根据所述查询请求发送的第一反馈信息时从所述云端服务器中下载MCU 升级包;
其中,所述第一反馈信息用于表征所述云端服务器存储有用于升级MCU的MCU更新信息;
所述无线通信模块向所述MCU发送升级指令;
所述MCU对所述升级指令进行解析并获取解析结果,并在解析结果满足预设条件时向所述无线通信模块发送第二反馈信息;
所述无线通信模块根据所述第二反馈信息将所述MCU升级包发送至所述MCU;
所述MCU根据接收的所述MCU升级包进行升级。
较佳地,所述无线通信模块向云端服务器发送所述MCU查询请求的步骤之前还包括:
所述MCU向所述无线通信模块发送所述MCU的版本号信息;
所述无线通信模块将接收的所述版本号信息发送至所述云端服务器;
所述在接收所述云端服务器根据所述查询请求发送的第一反馈信息时从所述云端服务器中下载MCU升级包的步骤包括:
所述无线通信模块在所述云端服务器根据所述版本号信息查询到存储有所述MCU更新信息时,接收所述云端服务器发送的所述第一反馈消息。
较佳地,所述无线通信模块向云端服务器发送MCU查询请求的步骤之前还包括:
所述MCU向所述无线通信模块发送触发指令;
所述无线通信模块根据所述触发指令向所述云端服务器发送所述查询请求。
较佳地,所述接收所述云端服务器发送的第一反馈信息时从云端服务器中下载MCU升级包的步骤包括:
所述无线通信模块在接收到所述第一反馈信息时生成下载请求并发送至所述云端服务器;
所述无线通信模块在接收到所述云端服务器根据所述下载请求发送的第三反馈信息时下载与所述MCU更新信息对应的所述MCU升级包;
其中,所述第三反馈信息用于表征所述云端服务器允许所述无线通信模块下载所述MCU升级包的信息。
较佳地,所述MCU对所述升级指令进行解析并获取解析结果,并在解析结果满足预设条件时向所述无线通信模块发送第二反馈信息的步骤包括:
所述MCU对所述升级指令进行解析并获取所述解析结果;
其中,所述解析结果用于表征所述MCU升级包的大小;
所述MCU判断所述MCU升级包的大小是否大于所述MCU自身的存储空间,若是,则所述MCU向所述无线通信模块发送第四反馈信息;若否,则所述MCU向所述无线通信模块发送所述第二反馈信息;
所述第四反馈信息用于表征无法执行升级操作的信息。
较佳地,所述无线通信模块根据所述第二反馈信息将所述MCU升级包发送至所述MCU的步骤包括:
所述无线通信模块根据所述第二反馈信息对MCU升级包进行分包处理以获取多个分包数据,并按照时序依次将所述分包数据发送至所述MCU。
较佳地,所述远程升级方法还包括:
所述MCU根据所述MCU升级包的大小和所述无线通信模块每次传输的数据大小计算得到初始接收次数;
所述无线通信模块按照时序依次将所述分包数据发送至所述MCU的步骤之后还包括:
所述MCU统计接收所述分包数据实际接收次数;
所述MCU比较所述初始接收次数和所述实际接收次数是否一致,若是,则所述MCU向所述无线通信模块发送用于表征所述MCU升级包传输成功的第五反馈信息;若否,生成数据接收出现异常的提醒信息。
较佳地,所述升级指令包括参考CRC(Cyclic Redundancy Check,循环冗余校)校验码;
在全部接收所述MCU升级包之后、在所述MCU根据所述MCU升级包进行升级之前,所述远程升级方法还包括:
所述MCU对获取的所述MCU升级包进行校验并获取第一CRC校验码,并判断所述第一CRC校验码和所述参考校验码是否一致,若是,则所述MCU向所述无线通信模块发送用于表征所述MCU升级包传输成功的第五反馈信息;若否,则所述MCU重新生成新的所述第二反馈信息并发送至所述无线通信模块,并重新执行所述无线通信模块根据所述第二反馈信息将所述MCU升级包发送至所述MCU的步骤。
本发明还提供一种通信设备,所述通信设备包括通信连接的MCU 和无线通信模块;
所述无线通信模块用于向云端服务器发送查询请求,并在接收所述云端服务器发送的第一反馈信息时从所述云端服务器中下载MCU升级包;
其中,所述第一反馈信息用于表征所述云端服务器存储有用于升级 MCU的MCU更新信息;
所述无线通信模块用于向所述MCU发送升级指令;
所述MCU还用于对所述升级指令进行解析并获取解析结果,并在解析结果满足预设条件时向所述无线通信模块发送第二反馈信息;
所述无线通信模块还用于根据所述第二反馈信息将所述MCU升级包发送至所述MCU;
所述MCU还用于根据接收的所述MCU升级包进行升级。
较佳地,所述MCU还用于向所述无线通信模块发送所述MCU的版本号信息;
所述无线通信模块还用于将接收的所述版本号信息发送至所述云端服务器;
所述无线通信模块还用于在所述云端服务器根据所述版本号信息查询到存储有所述MCU更新信息时,接收所述云端服务器发送的所述第一反馈消息。
较佳地,所述MCU还用于向所述无线通信模块发送触发指令;
所述无线通信模块还用于根据所述触发指令向所述云端服务器发送所述查询请求。
较佳地,所述无线通信模块还用于在接收到所述第一反馈信息时生成下载请求并发送至所述云端服务器;
所述无线通信模块还用于在接收到所述云端服务器根据所述下载请求发送的第三反馈信息时下载与所述MCU更新信息对应的所述MCU升级包;
其中,所述第三反馈信息用于表征所述云端服务器允许所述无线通信模块下载所述MCU升级包的信息。
较佳地,所述MCU还用于对所述升级指令进行解析并获取所述解析结果;
其中,所述解析结果用于表征所述MCU升级包的大小;
所述MCU还用于判断所述MCU升级包的大小是否大于所述MCU自身的存储空间,若是,则所述MCU向所述无线通信模块发送第四反馈信息;若否,则所述MCU向所述无线通信模块发送所述第二反馈信息;
所述第四反馈信息用于表征无法执行升级操作的信息。
较佳地,所述无线通信模块还用于根据所述第二反馈信息对MCU升级包进行分包处理以获取多个分包数据,并按照时序依次将所述分包数据发送至所述MCU。
较佳地,所述MCU还用于根据所述MCU升级包的大小和所述无线通信模块每次传输的数据大小计算得到初始接收次数;
所述无线通信模块还用于按照时序依次将所述分包数据发送至所述 MCU的步骤之后还包括:
所述MCU还用于统计接收所述分包数据实际接收次数;
所述MCU还用于比较所述初始接收次数和所述实际接收次数是否一致,若是,则所述MCU向所述无线通信模块发送用于表征所述MCU升级包传输成功的第五反馈信息;若否,生成数据接收出现异常的提醒信息。
较佳地,所述升级指令包括参考CRC校验码;
在全部接收所述MCU升级包之后、在所述MCU根据所述MCU升级包进行升级之前,所述MCU还用于对获取的所述MCU升级包进行校验并获取第一CRC校验码,并判断所述第一CRC校验码和所述参考校验码是否一致,若是,则所述MCU向所述无线通信模块发送用于表征所述MCU升级包传输成功的第五反馈信息;若否,则所述MCU重新生成新的所述第二反馈信息并发送至所述无线通信模块,并重新执行所述无线通信模块根据所述第二反馈信息将所述MCU升级包发送至所述MCU的步骤。
较佳地,所述通信设备包括嵌入式通信设备。
较佳地,所述MCU和所述无线通信模块通过UART(Universal AsynchronousReceiver/Transmitter,通用异步收发传输器)、USB(Universal Serial Bus,通用串行总线)或PCIE(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)硬件接口通信连接。
本发明的积极进步效果在于:
(1)通过无线通信模块向云端服务器发送查询请求,并在云端服务器确定MCU对应的程序升级更新信息后,根据云端服务器的反馈信息请求从云端服务器下载对应的MCU升级包,并在MCU允许传输的情况下传输给 MCU,以实现对MCU远程在线升级,避免了需要将MCU从通信设备中取出或者通过返厂才能升级的情况,实现了MCU的远程自动升级,大大地简化了MCU的升级流程,提高了MCU升级效率,减少了MCU升级的成本。
(2)由于无线通信模块每次发送给MCU的数据量受到通信协议的限制,通过将MCU升级包进行分包处理以获取多个分包数据,并按照时序依次将分包数据发送至MCU,使无线通信模块可以通过各种通信协议连接向 MCU传输升级包;MCU先对传输次数进行检查和对接收的升级包进行CRC 校验,再根据接收的升级包进行升级,保证了升级过程的成功率;在无法升级时及时发出反馈信息以便于及时处理;另外,通过无线通信模块重新发送升级包给MCU,进一步地保证了MCU升级的成功率。
附图说明
图1为本发明实施例1的通信设备中MCU的远程升级方法的流程图。
图2为本发明实施例2的通信设备中MCU的远程升级方法的流程图。
图3为本发明实施例3的通信设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,本实施例提供一种通信设备中MCU的远程升级方法,该通信设备包括通信连接的MCU和无线通信模块,该远程升级方法包括:
S101、无线通信模块向云端服务器发送查询请求;
S102、无线通信模块在接收云端服务器根据查询请求发送的第一反馈信息时从云端服务器中下载MCU升级包;
其中,第一反馈信息用于表征云端服务器存储有用于升级MCU的MCU 更新信息;
S103、无线通信模块向MCU发送升级指令;
S104、MCU对升级指令进行解析并获取解析结果,并在解析结果满足预设条件时向无线通信模块发送第二反馈信息;
S105、无线通信模块根据第二反馈信息将MCU升级包发送至MCU;
S106、MCU根据接收的MCU升级包进行升级。
本实施例中的远程升级方法,通过无线通信模块向云端服务器发送查询请求,并在云端服务器确定MCU对应的程序升级更新信息后,根据云端服务器的反馈信息请求从云端服务器下载对应的MCU升级包,并在MCU允许传输的情况下传输给MCU,以实现对MCU远程在线升级,避免了需要将 MCU从通信设备中取出或者通过返厂才能升级的情况,实现了MCU的远程自动升级,大大地简化了MCU的升级流程,提高了MCU升级效率,减少了MCU升级的成本。
实施例2
如图2所示,本实施例的通信设备中MCU的远程升级方法是对实施例 1的进一步改进,具体地:
步骤S101之前还包括:
S10101、MCU向无线通信模块发送触发指令;
S10102、MCU向无线通信模块发送MCU的版本号信息;
其中,步骤S10101和S10102的执行顺序可以根据实际需求进行互换。
步骤S101包括:
S1011、无线通信模块根据触发指令向云端服务器发送查询请求,并将接收的版本号信息发送至云端服务器;
步骤S102包括:
S1021、无线通信模块在云端服务器根据版本号信息查询到存储有MCU 更新信息时,接收云端服务器发送的第一反馈消息;
S1022、无线通信模块在接收到第一反馈信息时生成下载请求并发送至云端服务器;
S1023、无线通信模块在接收到云端服务器根据下载请求发送的第三反馈信息时下载与MCU更新信息对应的MCU升级包;
其中,第三反馈信息用于表征云端服务器允许无线通信模块下载MCU 升级包的信息。
本实施例中的升级指令的形式可以为:
升级指令A(5个字节):
步骤S104包括:
S1041、MCU对升级指令进行解析并获取解析结果;
其中,解析结果用于表征MCU升级包的大小;
S1042、MCU判断MCU升级包的大小是否大于MCU自身的存储空间,若是,则执行步骤S1043;若否,则执行步骤S1044;
S1043、MCU向无线通信模块发送第四反馈信息;
其中,第四反馈信息用于表征无法执行升级操作的信息;
S1044、MCU向无线通信模块发送第二反馈信息。
步骤S105包括:
S1051、无线通信模块根据第二反馈信息对MCU升级包进行分包处理以获取多个分包数据,并按照时序依次将分包数据发送至MCU。
另外,本实施例的远程升级方法还包括:
MCU根据MCU升级包的大小和无线通信模块每次传输的数据大小计算得到初始接收次数;
其中,当MCU和无线通信模块通过UART协议连接时每次传输数据 2048B(字节)。
根据MCU升级包的大小和2048B的比值计算得到初始接收次数;其中在无法整除时则通过在比值取值加1的方式得到。
无线通信模块按照时序依次将分包数据发送至MCU的步骤之后还包括:
MCU统计接收分包数据实际接收次数;
MCU比较初始接收次数和实际接收次数是否一致,若是,则MCU向无线通信模块发送用于表征MCU升级包传输成功的第五反馈信息;若否,生成数据接收出现异常的提醒信息。
本实施例的升级指令包括参考CRC校验码;
在全部接收MCU升级包之后、在MCU根据MCU升级包进行升级之前,远程升级方法还包括:
MCU对获取的MCU升级包进行校验并获取第一CRC校验码,并判断第一CRC校验码和参考校验码是否一致,若是,则MCU向无线通信模块发送用于表征MCU升级包传输成功的第五反馈信息;若否,则MCU重新生成新的第二反馈信息并发送至无线通信模块,并重新执行步骤105。
由于无线通信模块每次发送给MCU的数据量受到通信协议的限制,本实施例中的远程升级方法将MCU升级包进行分包处理以获取多个分包数据,并按照时序依次将分包数据发送至MCU,使无线通信模块可以通过各种通信协议连接向MCU传输升级包;MCU先对传输次数进行检查和对接收的升级包进行CRC校验,再根据接收的升级包进行升级,保证了升级过程的成功率;在无法升级时及时发出反馈信息以便于及时处理;另外,通过无线通信模块重新发送升级包给MCU,进一步地保证了MCU升级的成功率。
实施例3
如图3所示,本实施例提供一种通信设备,包括通信连接的MCU1和无线通信模块2。
无线通信模块2用于向云端服务器发送查询请求,并在接收云端服务器发送的第一反馈信息时从云端服务器中下载MCU升级包;
其中,第一反馈信息用于表征云端服务器存储有用于升级MCU的MCU 更新信息;
无线通信模块2用于向MCU1发送升级指令;
MCU1还用于对升级指令进行解析并获取解析结果,并在解析结果满足预设条件时向无线通信模块发送第二反馈信息;
无线通信模块2还用于根据第二反馈信息将MCU升级包发送至MCU1;
MCU1还用于根据接收的MCU升级包进行升级。
具体地,本实施例中的通信设备为嵌入式通信设备,MCU1和无线通信模块2通过UART通信连接。
本实施例中的通信设备,通过无线通信模块向云端服务器发送查询请求,并在云端服务器确定MCU对应的程序升级更新信息后,根据云端服务器的反馈信息请求从云端服务器下载对应的MCU升级包,并在MCU允许传输的情况下传输给MCU,以实现对MCU远程在线升级,避免了需要将MCU 从通信设备中取出或者通过返厂才能升级的情况,实现了MCU的远程自动升级,大大地简化了MCU的升级流程,提高了MCU升级效率,减少了MCU 升级的成本。
实施例4
如图3所示,本实施例的通信设备是对实施例3的进一步改进,具体地:
MCU1用于向无线通信模块2发送触发指令;
MCU1还用于向无线通信模块2发送MCU1的版本号信息;
无线通信模块2用于根据触发指令向云端服务器发送查询请求;
无线通信模块2还用于将接收的版本号信息发送至云端服务器;
无线通信模块2还用于在云端服务器根据版本号信息查询到存储有 MCU1更新信息时,接收云端服务器发送的第一反馈消息;
无线通信模块2还用于在接收到第一反馈信息时生成下载请求并发送至云端服务器;
无线通信模块2还用于在接收到云端服务器根据下载请求发送的第三反馈信息时下载与MCU1更新信息对应的MCU1升级包;
其中,第三反馈信息用于表征云端服务器允许无线通信模块2下载 MCU1升级包的信息。
无线通信模块2还用于向MCU1发送升级指令;
MCU1还用于对升级指令进行解析并获取解析结果;
其中,解析结果用于表征MCU1升级包的大小;
MCU1还用于判断MCU1升级包的大小是否大于MCU1自身的存储空间,若是,则MCU1向无线通信模块2发送第四反馈信息;
第四反馈信息用于表征无法执行升级操作的信息;
若否,则MCU1向无线通信模块2发送第二反馈信息;
无线通信模块2还用于根据第二反馈信息对MCU1升级包进行分包处理以获取多个分包数据,并按照时序依次将分包数据发送至MCU1。
另外,MCU1还用于根据MCU1升级包的大小和无线通信模块2每次传输的数据大小计算得到初始接收次数;
MCU1还用于统计接收分包数据实际接收次数;
MCU1还用于比较初始接收次数和实际接收次数是否一致,若是,则 MCU1向无线通信模块2发送用于表征MCU1升级包传输成功的第五反馈信息;
否则MCU1生成数据接收出现异常的提醒信息;
本实施例的升级指令包括参考CRC校验码;
MCU1还用于对获取的MCU1升级包进行校验并获取第一CRC校验码,并判断第一CRC校验码和参考校验码是否一致,若是,则MCU1向无线通信模块2发送用于表征MCU1升级包传输成功的第五反馈信息;若否,则 MCU1重新生成新的第二反馈信息并发送至无线通信模块2,并重新执行无线通信模块2根据第二反馈信息将MCU1升级包发送至MCU1的步骤;
MCU1还用于根据接收的MCU1升级包进行升级。
由于无线通信模块每次发送给MCU的数据量受到通信协议的限制,本实施例中的通信设备将MCU升级包进行分包处理以获取多个分包数据,并按照时序依次将分包数据发送至MCU,使无线通信模块可以通过各种通信协议连接向MCU传输升级包;MCU先对传输次数进行检查和对接收的升级包进行CRC校验,再根据接收的升级包进行升级,保证了升级过程的成功率;在无法升级时及时发出反馈信息以便于及时处理;另外,通过无线通信模块重新发送升级包给MCU,进一步地保证了MCU升级的成功率。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
- 通信设备及其MCU的远程升级方法
- 一种高可靠性MCU远程升级系统和方法