掌桥专利:专业的专利平台
掌桥专利
首页

一种软件远程升级方法,系统以及存储介质

文献发布时间:2023-06-19 18:37:28


一种软件远程升级方法,系统以及存储介质

技术领域

本发明涉及电流测试领域,具体而言,涉及一种软件远程升级方法,系统以及存储介质,处理系统以及存储介质。

背景技术

嵌入式系统由硬件和软件组成.是能够独立进行运作的器件。其软件内容只包括软件运行环境及其操作系统。硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容。相比于一般的计算机处理系统而言,嵌入式系统存在较大的差异性, 它不能实现大容量的存储功能,因为没有与之相匹配的大容量介质,大部分采用的存储介质有E-PROM、EEPROM 等, 软件部分以API编程接口作为开发平台的核心。

嵌入式设备在使用过程中,经常因功能更新,缺陷修改,性能提升等原因需要进行升级。程序升级的传统手段是维护人员亲赴现场烧写程序,在以下情况下,程序升级将困难重重:

1、当产品需要维护时,由于产品分布范围广,维护人员不能到达产品现场,产品得不到及时维护;

2、设备应用在高温高湿,腐蚀,密闭空间,野外等恶劣偏远环境中,人工程序升级将变得不可实现;

3、如果产品安装在危险地带,产品维护将给工作人员带来安全威胁;

4、人工程序升级速度慢,差旅费有高,尤其是当设备数量庞大,分布范围广时,耗费的成本不可估量。

发明内容

有鉴于此,本发明的目的在于提供一种软件远程升级方法,系统以及存储介质,能够通过4G通信实现升级终端与服务终端交互应答,实现远程升级,同时通过实现升级模式和正常模式的切换,既节省了设备升级的人力和物力,也提高了升级设备的效率。

本发明提供一种软件远程升级方法,所述方法包括:

S100:建立服务终端与升级终端之间的连接。

S200:服务终端将升级文件按照预设规则分成多个升级数据包发送到升级终端,并存储于临时储存区,同时与服务终端进行交互应答直至接受完所有升级数据包。

S300:待升级数据包接收完成且验证正确后,将临时存储区的升级数据转存作为新程序,直至转存完所有升级数据包后,完成升级。

优选的,服务终端为上位机。

具体的,上位机的功能为连接以太网,通过4G基站收发信号与产品进行应答通信,升级产品程序。

优选的,升级终端为嵌入式设备或产品。

具体的,升级终端的MCU模块为32位基于ARM Cortex™-M处理器, 在产品中承担着产品与上位机通信,工作模式分配等功能。

优选的,临时储存区为EEPROM数据存储器。

优选的,所述S100,具体包括:

S101:所述升级终端通过通信模块连接4G网络,并设置所述升级终端的连接参数;所述连接参数至少包括:APN名称、目标IP以及目标端口号。

S102:所述服务终端获取所述连接参数,并根据所述连接参数与所述升级终端进行连接,取得所述升级终端的应答信号,实现所述服务终端与升级终端之间的连接。

优选的,通信模块有4G模块,所述4G模块为有方N58模块;具体的,有方N58模块模块内置丰富的网络协议,集成多个工业标准接口,并支持多种驱动和软件功能;N58模块是有方通信推出的4G无线通信模块,采用前沿通信技术,支持4G高速通信;在产品中承担的功能:实现协议层编码转换,通过通用异步收发传输器与MCU模块交互数据。

进一步,通信模块还包括USIM卡即为 “全球用户识别卡”,支持4G 网络通信,4G网络是时下开始商用的第四代通信网络,信号质量好,通信范围广,产品基于4G在高速通信网络中实现产品互联。在产品中承担的功能:与4G基站进行交互通信。

优选的,所述S200,具体包括:

S201:升级开始时,所述升级终端接受来自所述服务终端的升级参数,并对相应的升级参数进行初始化,同时向所述服务终端反馈应答信息;所述升级参数至少包括:升级文件的大小、每个升级数据包的大小以及升级数据包的总个数;

S202:所述服务终端根据当前的应答信息向所述升级终端发送缺包查询指令,所述升级终端根据缺包查询指令向所述服务终端反馈缺包信息。

S203:所述服务终端根据当前缺包信息发送相对应的升级数据包至升级终端。

重复步骤S202和S203直至所述升级终端接受完所有升级数据包。

优选的,所述S200,还包括:

所述服务终端收到缺包信息后,依据缺包信息逐句发送升级数据包。

所述发送升级数据包采取无应答方式发送,每隔Nms发送一个升级数据包;其中N为大于零的自然数。

所述升级终端收到升级数据后,按照升级数据包的序号,从大到小存储于临时存储区中。

优选的,所述S300,具体包括:

S301:依次对升级数据包进行外设初始化。

S302:依次检查升级数据包的升级标志位,判断当前升级数据包升级标志位是否有效,若是,则将当前接收到的升级数据包转存作为新程序,进入S304;否则,进入S305。

S303:判断当前升级数据包是否正确,若是,则将当前接收到的升级数据包转存作为新程序,进入S304;否则,进入S305。

S305:清除当前升级数据包的升级标志位,并跳转结束本轮升级。

作为另一种优选的,本发明还提供一种软件远程升级系统,所述系统至少包括:

升级终端,用于下载来自服务终端的升级数据包,并根据服务终端的控制指令对待升级终端进行升级。

以及服务终端,用于将升级文件按照预设规则分成多个升级数据包发送到升级终端,与服务终端进行交互应答直至发送完所有升级数据包。

优选的,所述升级终端,至少包括:

通过通用异步收发传输器与通信模块连接的MCU处理模块。

所述MCU处理模块还与临时储存器连接。

所述通信模块用于与4G网络取得连接。

所述MCU处理模块,至少包括:划分为第一程序区和第二程序区的片内存储器。

所述第一程序区用于放置IAP程序。

所述第二程序区用于放置APP应用程序。

所述临时储存器,用于临时存储来自服务终端下载的升级包数据。

优选的,所述片内存储器的基地址处前20KB区域为所述第一程序区,其余区域为第二程序区。

作为另一种优选的,本发明还提供一种上位机,所述上位机为上述系统中的服务终端。

作为另一种优选的,本发明还提供一种存储介质,位于任意控制单元,所述存储介质包括可被处理器执行的计算机程序,所述计算机程序用于执行如上所述的软件远程升级方法。

与现有技术相比,本发明的有益效果在于:

通过4G通信实现产品与上位机服务端连接,交互应答,实现远程升级;通过IAP,APP程序分区管理,实现产品两种工作模式(升级模式和正常模式)的切换;本发明打破时间和空间的限制,当产品需要维护时,不管设备应用在高温高湿,腐蚀,密闭空间,野外等恶劣偏远环境中,也能以4G通信的方式实现远程更新,减少了产品维护将给工作人员带来安全威胁,同时本发明升级程序时,上位机可以一对多,实现多个产品同时远程更新程序,节省了设备升级的人力和物力,也提高了升级设备的效率。

附图说明

图1为本发明一种软件远程升级方法的流程图。

图2为本发明一实施例中IAP程序在线升级原理示意图;

图3为本发明一实施例中IAP程序工作的流程图。

图4为本发明一实施例中APP程序工作的流程图。

图5为本发明一种软件远程升级系统的示意图。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施方式。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施方式。

请参考图1,本发明提供一种软件远程升级方法,所述方法包括:

S100:建立服务终端与升级终端之间的连接。

S200:服务终端将升级文件按照预设规则分成多个升级数据包发送到升级终端,并存储于临时储存区,同时与服务终端进行交互应答直至接受完所有升级数据包。

S300:待升级数据包接收完成且验证正确后,将临时存储区的升级数据转存作为新程序,直至转存完所有升级数据包后,完成升级。

优选的,服务终端为上位机。

具体的,上位机的功能为连接以太网,通过4G基站收发信号与产品进行应答通信,升级产品程序。

优选的,升级终端为嵌入式设备或产品。

具体的,升级终端的MCU模块为32位基于ARM Cortex™-M处理器, 在产品中承担着产品与上位机通信,工作模式分配等功能。

优选的,临时储存区为EEPROM数据存储器。

优选的,所述S100,具体包括:

S101:所述升级终端通过通信模块连接4G网络,并设置所述升级终端的连接参数;所述连接参数至少包括:APN名称、目标IP以及目标端口号。

S102:所述服务终端获取所述连接参数,并根据所述连接参数与所述升级终端进行连接,取得所述升级终端的应答信号,实现所述服务终端与升级终端之间的连接。

优选的,通信模块有4G模块,所述4G模块为有方N58模块;具体的,有方N58模块模块内置丰富的网络协议,集成多个工业标准接口,并支持多种驱动和软件功能;N58模块是有方通信推出的4G无线通信模块,采用前沿通信技术,支持4G高速通信;在产品中承担的功能:实现协议层编码转换,通过通用异步收发传输器与MCU模块交互数据。

进一步,通信模块还包括USIM卡即为 “全球用户识别卡”,支持4G 网络通信,4G网络是时下开始商用的第四代通信网络,信号质量好,通信范围广,产品基于4G在高速通信网络中实现产品互联。在产品中承担的功能:与4G基站进行交互通信。

优选的,所述S200,具体包括:

S201:升级开始时,所述升级终端接受来自所述服务终端的升级参数,并对相应的升级参数进行初始化,同时向所述服务终端反馈应答信息;所述升级参数至少包括:升级文件的大小、每个升级数据包的大小以及升级数据包的总个数;

S202:所述服务终端根据当前的应答信息向所述升级终端发送缺包查询指令,所述升级终端根据缺包查询指令向所述服务终端反馈缺包信息。

S203:所述服务终端根据当前缺包信息发送相对应的升级数据包至升级终端。

重复步骤S202和S203直至所述升级终端接受完所有升级数据包。

优选的,所述S200,还包括:

所述服务终端收到缺包信息后,依据缺包信息逐句发送升级数据包。

所述发送升级数据包采取无应答方式发送,每隔Nms发送一个升级数据包;其中N为大于零的自然数。

所述升级终端收到升级数据后,按照升级数据包的序号,从大到小存储于临时存储区中。

优选的,所述S300,具体包括:

S301:依次对升级数据包进行外设初始化。

S302:依次检查升级数据包的升级标志位,判断当前升级数据包升级标志位是否有效,若是,则将当前接收到的升级数据包转存作为新程序,进入S304;否则,进入S305。

S303:判断当前升级数据包是否正确,若是,则将当前接收到的升级数据包转存作为新程序,进入S304;否则,进入S305。

S305:清除当前升级数据包的升级标志位,并跳转结束本轮升级。

示例性的,以上S200至S300可通过以下方式实现:

首先,请参考表1,通过程序配置,将片内存储器分为两部分,一部分存储IAP程序,称为IAP程序区;另一分存储正常的APP应用程序,称为APP程序区。Flash 存储器组织结构如下表,IAP程序放置在Flash基地址处(0x080000000),将前20KB区域划为IAP程序区,其余划为APP程序区。

表1

在产品生产阶段,将IAP和APP程序按照上表1区域划分烧写到MCU对应区域。当正常工作时,运行APP区域代码;软件复位后,运行IAP区域代码。

应当理解的是,S200为APP程序过程,S300为IAP程序过程。

请参考图2,IAP程序在线升级原理:

产品上电后,系统复位从0x08000004地址取出复位中断指针,跳转到IAP程序main()函数执行,如标号①所示。在IAP程序main()函数判断是否接更新程序。如果更新程序,就执行程序更新;如果不更新程序,从IAP跳转到APP,取出APP中断向量指针,跳转到APP复位中断函数执行,如标号②所示。

执行完成APP复位中断函数后,返回到APP的main()函数继续执行,如标号③所示,这样就完成了从IAP向APP的跳转。

在APP的main()函数执行过程中,如果发生中断,PC指针仍跳转到0x08000004地址中断向量表,如标号④所示,根据APP中设置的中断向量表偏移量跳转到APP对应中断服务程序执行,执行完成后再返回APP程序的main()函数,如标号⑤,标号⑥所示。

请参考图3,其中,IAP程序设计过程:

MCU上电后,程序从Flash主存储区(起始位置为0x08000000)启动,执行IAP程序,依次进行外设初始化,“升级标志”检查,升级数据验证。

如果“升级标志”有效,MCU将接收到的升级数据转存到APP程序区。

完成升级数据转存后,清除“升级标志”,然后跳转到APP程序区执行。

在APP程序区轮询时,如果“升级标志”无效,则跳转到APP程序入口继续执行。

请参考图3,其中,APP程序设计过程如下:

升级开始,上位机发送“升级开始”指令,MCU收到后记录代码大小,每包大小,总包数等信息,进行相应参数的初始化,并向上位机返回应答信息。

上位机收到“就绪”应答信息后,上位机向MCU发送“缺包查询”指令,MCU向上位机返回缺包序号。

上位机收到缺包信息后,依据缺包号逐句发送升级程序。发送升级包时采取无应答方式发送,每隔一段时间(400ms)发送一包数据。MCU收到升级数据后,按照包序号,大小顺序存储在临时存储区中。

上位机按照缺包信息发完所有包数据后,再次发送缺包查询指令。MCU返回缺包序号,上位机按照新的缺包信息,逐包发送升级包。

重复步骤5.3,5.4,直至所有升级包发送完成。

成功发送所有升级包后,上位机发“升级结束”指令,其中包含整个升级文件的CRC校验码,MCU收到结束指令后,对接收到的全部升级数据进行CRC校验,如果校验码和上位机发送的一致,则认为升级数据正确,置位“升级标志”,MCU软件重启,程序指针进入IAP程序区,接下来遵循“IAP工作流程图”工作过程,将临时存储区的升级数据复制到APP程序区,程序指针跳转到新程序入口开始运行,至此升级完成。

综上所述,上位机和与设备远程升级工作交互过程如下:

4G模块与4G网络进行通信连接:

4G模块上电复位后,自动检测SIM卡,自动附着4G网络。网络附着成功后,自动设置APN名称,目标IP,目标端口号等参数,然后激活PDP场景,打开网络连接,这样,MCU就通过4G无线网络接入网络。

上位机通过以太网与目标IP服务端进行连接,取得MCU应答信号,显示MCU状态数据。

上位机作为一个服务终端,可以实现与多少产品MCU在线连接,进行交互应答,实现多个产品同时升级程序。

将升级更新包调入上位机软件,上位机将升级文件按照规则分多包发送到MCU,在发送过程中做好缺包查询,重发,校验等工作,确保数据传递的正确性。

MCU运行在APP程序区,收到升级数据包后,临时存储在EEPROM中,并与上位机进行交互应答,返回缺包序号。

MCU继续接收升级数据包,待所有升级包接收完成且验证正确后,“升级标志”置位,MCU软件复位重启系统,程序指针进入IAP程序区,接下来将升级数据从EEPROM转存到MCU内Flash的APP程序区,程序指针跳转到新程序入口开始运行,至此升级完成。

至此,上述过程可通过搭建通信平台验证产品远程升级可行性,可行性验证如下:

本设计使用STM32F103 MCU 和 有方N58 4G模块套件评估完成;

使用Keil MDK完成IAP 和 APP程序后,使用JTAG分别烧写IAP 和APP区。系统启动后从IAP跳转到APP开始工作;

上位机作为服务端通过4G通信与产品进行连接;

上位机发送升级数据包,产品接收数据并与上位机进行交互应答。218KB .bin文件以每包1K字节发送,升级全程只需100s;

产品升级完成后,程序自动切换到新的APP程序区执行。

请参考图5,作为另一种优选的,本发明还提供一种软件远程升级系统,所述系统至少包括:

升级终端,用于下载来自服务终端的升级数据包,并根据服务终端的控制指令对待升级终端进行升级。

以及服务终端,用于将升级文件按照预设规则分成多个升级数据包发送到升级终端,与服务终端进行交互应答直至发送完所有升级数据包。

优选的,所述升级终端,至少包括:

通过通用异步收发传输器与通信模块连接的MCU处理模块。

所述MCU处理模块还与临时储存器连接。

所述通信模块用于与4G网络取得连接。

所述MCU处理模块,至少包括:划分为第一程序区和第二程序区的片内存储器。

所述第一程序区用于放置IAP程序。

所述第二程序区用于放置APP应用程序。

所述临时储存器,用于临时存储来自服务终端下载的升级包数据。

优选的,所述片内存储器的基地址处前20KB区域为所述第一程序区,其余区域为第二程序区。

作为另一种优选的,本发明还提供一种上位机,所述上位机为上述系统中的服务终端。

作为另一种优选的,本发明还提供一种存储介质,位于任意控制单元,所述存储介质包括可被处理器执行的计算机程序,所述计算机程序用于执行如上所述的软件远程升级方法。

与现有技术相比,本发明的有益效果在于:

通过4G通信实现产品与上位机服务端连接,交互应答,实现远程升级;通过IAP,APP程序分区管理,实现产品两种工作模式(升级模式和正常模式)的切换;本发明打破时间和空间的限制,当产品需要维护时,不管设备应用在高温高湿,腐蚀,密闭空间,野外等恶劣偏远环境中,也能以4G通信的方式实现远程更新,减少了产品维护将给工作人员带来安全威胁,同时本发明升级程序时,上位机可以一对多,实现多个产品同时远程更新程序,大量的节省了人力和物力,降低了设备维护的成本。

尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本发明的各个系统及方法实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的系统程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述功能的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个工具或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

虽然对本发明的描述是结合以上具体实施例进行的,但是,熟悉本技术领域的人员能够根据上述的内容进行许多替换、修改和变化是显而易见的。因此,所有这样的替代、改进和变化都包括在附后的权利要求的精神和范围内。

技术分类

06120115638676