软件批量升级方法、装置和计算机设备与流程

未命名 09-08 阅读:71 评论:0


1.本技术涉及数据处理技术领域,特别是涉及一种软件批量升级方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.控制器局域网总线(can,controller area network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一,被广泛应用于工业控制或汽车电子领域。
3.can总线是一种广播类型的总线,可以支持多种拓扑形式,例如最常见的线形拓扑形式等,总线上可以布置多个节点终端设备,在需要对各节点的终端设备中的软件升级时,传统的依次升级方式占用资源时间较长,升级效率低。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高软件升级效率的软件批量升级方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供了一种软件批量升级方法,应用于通信总线上的终端设备,所述方法包括:
6.接收所述通信总线的主控端基于各目标升级设备批量发送的软件升级总包;
7.对所述软件升级总包的文件名称进行解析,得到第一校验信息;其中,所述第一校验信息被所述通信总线的主控端在下发所述软件升级总包时添加至所述软件升级总包的文件名称;
8.当基于所述第一校验信息验证通过时,根据所述软件升级总包对软件进行升级。
9.在其中一些实施例中,在所述接收所述通信总线的主控端基于各目标升级设备批量发送的软件升级总包的步骤之前,还包括:
10.接收所述主控端根据当前通信总线的匹配电阻阻值发送的匹配电阻调整请求,所述匹配电阻调整请求携带有待调整匹配电阻的电阻标识;
11.当根据所述电阻标识确定终端电阻为待调整匹配电阻时,调整所述终端电阻的运行状态。
12.在其中一些实施例中,所述根据所述软件升级总包对软件进行升级,包括:
13.在预设标志区域写入下载成功标志,运行启动加载程序,删除所述应用程序存储区域的历史软件升级文件;
14.执行复制操作,将所述软件升级总包由升级程序存储区域复制到应用程序存储区域;
15.当所述复制操作完成后,删除所述预设标志区域的下载成功标志。
16.第二方面,本技术还提供了一种软件批量升级方法,应用于通信总线上的主控端,所述方法包括:
17.接收所述通信总线上的至少一个终端设备发送的升级确认信息,根据所述升级确认信息确定各目标升级设备;
18.获取软件升级总包,调用预设校验规则对所述软件升级总包进行校验,得到所述软件升级总包的第一校验信息;
19.在所述软件升级总包的文件名称中添加所述第一校验信息,将所述软件升级总包发送给各目标升级设备。
20.在其中一些实施例中,在所述将所述软件升级总包发送给各目标升级设备的步骤之前,所述方法还包括:
21.获取当前通信总线的匹配电阻阻值;
22.当所述匹配电阻阻值与预设电阻阻值不相等时,对所述通信总线中接入的匹配电阻数量进行调整。
23.在其中一些实施例中,所述当所述匹配电阻阻值与预设电阻阻值不相等时,对所述通信总线中接入的匹配电阻数量进行调整,包括:
24.当所述匹配电阻阻值与预设电阻阻值不相等时,获取所述预设电阻阻值对应的匹配电阻开启数量;
25.根据所述匹配电阻开启数量确定待调整的匹配电阻对应的电阻标识;
26.基于所述电阻标识生成匹配电阻调整请求,将所述匹配电阻调整请求发送至所述通信总线的各终端设备。
27.在其中一些实施例中,在所述软件升级总包的文件名称中添加所述第一校验信息,包括:
28.获取所述软件升级总包的原文件名称;
29.将所述第一校验信息与所述原文件名称进行叠加,得到目标文件名称;
30.根据所述目标文件名称更新所述软件升级总包的原文件名称。
31.第三方面,本技术还提供了一种软件批量升级装置,设置于通信总线上的终端设备,所述装置包括:
32.总包接收模块,用于接收所述通信总线的主控端基于各目标升级设备批量发送的软件升级总包;
33.解析模块,用于对所述软件升级总包的文件名称进行解析,得到第一校验信息;其中,所述第一校验信息被所述通信总线的主控端在下发所述软件升级总包时添加至所述软件升级总包的文件名称;
34.升级模块,用于当基于所述第一校验信息验证通过时,根据所述软件升级总包对软件进行升级。
35.第四方面,本技术还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
36.第五方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
37.上述软件批量升级方法、装置、计算机设备、存储介质和计算机程序产品,通信总线上的终端设备接收通信总线的主控端基于各目标升级设备批量发送的软件升级总包,对软件升级总包的文件名称进行解析,得到被主控端在下发软件升级总包时添加至软件升级
总包的文件名称中的第一校验信息,终端设备基于第一校验信息对软件升级总包进行校验,若校验通过,则说明软件升级文件没有丢失或被人篡改,根据软件升级总包对终端设备上的软件进行升级。主控端通过批量发送软件升级总包,能够批量对通信总线各节点终端设备中的软件进行统一升级,相较于传统的升级方式能够有效提高通信总线各节点的软件升级效率,且将校验信息添加至软件升级总包的文件名称中,由终端设备自行根据校验信息进行升级文件的安全性和完整性校验,在保证下发的升级文件安全性与完整性的同时,不会占用通信总线中通信帧的数据位,能够进一步减少升级所需时间,提高升级效率。
附图说明
38.图1为一些实施例中通讯系统的网络拓扑示意图;
39.图2为一些实施例中软件批量升级方法的流程示意图;
40.图3为另一些实施例中软件批量升级方法的流程示意图;
41.图4为一些实施例中根据软件升级总包对软件进行升级步骤的流程示意图;
42.图5为另一些实施例中软件批量升级方法的流程示意图;
43.图6为一些实施例中在软件升级总包的文件名称中添加第一校验信息步骤的流程示意图;
44.图7为一些实施例中当匹配电阻阻值与预设电阻阻值不相等时,对通信总线中接入的匹配电阻数量进行调整步骤的流程示意图;
45.图8为另一些实施例中软件批量升级方法的流程示意图;
46.图9为一些实施例中软件批量升级装置的结构框图;
47.图10为另一些实施例中软件批量升级装置的结构框图;
48.图11为一些实施例中计算机设备的内部结构图。
具体实施方式
49.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
50.本技术实施例提供的软件批量升级方法,可以应用于如图1所示的通讯系统中。其中,通讯系统中包括有一个主控端102和至少一个终端设备104,主控端102与终端设备104通过通信总线(can)进行通信连接。数据存储系统可以存储主控端102和终端设备104需要处理的数据。数据存储系统可以集成在主控端102和终端设备104上,也可以放在云上或其他网络服务器上。
51.当需要进行软件升级时,主控端102接收通信总线上的至少一个终端设备104发送的升级确认信息,根据升级确认信息确定需要升级的终端设备。主控端102获取软件升级总包,调用预设校验规则对软件升级总包进行校验,得到软件升级总包的第一校验信息,在软件升级总包的文件名称中添加第一校验信息,将软件升级总包发送给需要升级的终端设备104。终端设备104接收主控端102发送的软件升级总包,对软件升级总包的文件名称进行解析,得到第一校验信息,基于第一校验信息对软件升级总包进行校验,当校验通过时,根据软件升级总包对软件进行升级。可以理解的,主控端102可以是任意一种具备逻辑处理能力
的控制芯片,例如mcu、cpu等。终端设备104可以根据通讯系统的实际使用环境确定,例如若通讯系统应用在汽车通信场景中,则终端设备104可以是汽车上的各个电子设备,若通讯系统应用在电池组网场景中,则终端设备104可以是电池组网中的各个电池。
52.在一些实施例中,如图2所示,提供了一种软件批量升级方法,以该方法应用于图1中的终端设备为例进行说明,包括以下步骤:
53.步骤202,接收通信总线的主控端基于各目标升级设备批量发送的软件升级总包。
54.其中,软件升级总包是包含了软件升级时所需的所有升级数据的数据集合文件。当终端设备的软件需要进行升级时,研发人员会将软件升级所需的数据进行打包,得到软件升级所需的软件升级总包。
55.具体地,在传统的软件升级方案中,通信总线上的主控端获取到软件升级总包后,会对软件升级总包进行拆分,得到对应的多个升级数据包,在每个数据包中插入序号和本升级数据包的数据长度以及经过计算得到的校验信息,按照序号将数据包依次下发,直至整个文件发送完毕。由通信总线通讯一帧数据最多包含8个数据位,传统升级方案由于分包发送的原因需要在数据包中插入了过多的信息,将占用较多的数据空间,需要传输更多的数据帧数,对升级时间需要较大。
56.为了提高软件升级效率,主控端在确定了需要同时进行升级的目标升级设备后,获取软件升级所需的软件升级总包,不对软件升级总包进行分包处理,而是直接将软件升级总包批量发送至各个需要升级的终端设备。终端设备接收通信总线的主控端基于各目标升级设备批量发送的软件升级总包。
57.步骤204,对软件升级总包的文件名称进行解析,得到第一校验信息;其中,第一校验信息被通信总线的主控端在下发软件升级总包时添加至软件升级总包的文件名称。
58.其中,第一校验信息是主控端在获取软件升级总包后,对软件升级总包使用预设校验规则进行校验后得到的校验信息,用于对软件升级总包的安全性和完整性进行校验。主控端在下发软件升级总包时,为了不占用较多的数据空间,会将校验得到的第一校验信息添加至软件升级总包的文件名称中。可以理解的,第一校验信息可以为单一的校验码,也可以为校验码与其他验证信息组合的验证信息,例如第一校验信息可以为第一校验码和文件内存数据,即软件文件总包的数据大小。
59.具体地,终端设备在接收到主控端下发的软件升级总包后,调用预设解析方法对软件升级总包的文件名称进行解析,得到主控端添加的第一校验信息。可以理解的,预设解析方法根据主控端将第一校验信息添加至文件名称中的方法确定,例如若主控端是将第一校验信息叠加式添加在文件名称中,则预设解析方法可以是对文件名称进行拆分的解析方法。若主控端在将第一校验信息与原文件名称叠加后,还对叠加后的名称进行了压缩,得到软件升级总包的文件名称,则预设解析方法可以是先解压,后拆分的解析方法。
60.步骤206,当基于第一校验信息验证通过时,根据软件升级总包对软件进行升级。
61.具体地,终端设备对文件名称进行解析得到第一校验信息后,基于第一校验信息对接收的软件升级总包进行安全性与完整性校验,当软件升级总包通过验证后,再根据软件升级总包对软件进行升级。
62.在其中一些实施例中,基于第一校验信息对接收的软件升级总包进行校验包括:调用预设校验规则对软件升级总包进行校验,得到第二校验信息,将第一校验信息与第二
校验信息进行匹配,若匹配成功,则确定软件升级总包验证成功。
63.具体地,终端设备中存储有与主控端一样的预设校验规则,在得到软件升级总包后,若软件升级总包在传输过程中并未被篡改或丢失数据,则终端设备在根据预设校验规则对接收的软件升级总包进行校验后,得到的第二校验信息应该与第一校验信息一致,若第一校验信息与第二校验信息匹配成功,则可以认为软件升级总包在传输过程中并未被篡改或丢失数据,验证成功。
64.上述软件批量升级方法中,通信总线上的终端设备接收通信总线的主控端基于各目标升级设备批量发送的软件升级总包,对软件升级总包的文件名称进行解析,得到被主控端在下发软件升级总包时添加至软件升级总包的文件名称中的第一校验信息,终端设备基于第一校验信息对软件升级总包进行校验,若校验通过,则说明软件升级文件没有丢失或被人篡改,根据软件升级总包对终端设备上的软件进行升级。主控端通过批量发送软件升级总包,能够批量对通信总线各节点终端设备中的软件进行统一升级,相较于传统的升级方式能够有效提高通信总线各节点的软件升级效率,且将校验信息添加至软件升级总包的文件名称中,由终端设备自行根据校验信息进行升级文件的安全性和完整性校验,在保证下发的升级文件安全性与完整性的同时,不会占用通信总线中通信帧的数据位,能够进一步减少升级所需时间,提高升级效率。
65.在其中一些实施例中,终端设备基于第一校验信息对软件升级总包进行校验,若校验不通过,则生成错误提示信息,错误提示信息用于提示主控端下发的软件升级总包校验失败,将错误提示信息发送至主控端。
66.在其中一些实施例中,将错误提示信息发送至主控端后,终端设备记录软件升级总包的校验失败次数,将校验失败次数与预设次数阈值进行比较,当校验失败次数大于预设次数阈值时,生成升级失败提示信息,将升级失败提示信息上报给主控端,提示软件升级失败,结束升级操作。以此避免持续性的总包下发和验证占用系统资源。
67.由于通信总线上存在多个终端设备,为了准确对需要进行升级的软件进行准确升级,在一些实施例中,如图3所示,在接收通信总线的主控端基于各目标升级设备批量发送的软件升级总包的步骤之前,方法还包括:
68.步骤302,接收主控端发送的软件升级指令,软件升级指令包括软件版本信息。
69.其中,软件升级指令是用于指示各终端设备进行软件升级确认的指令,软件升级指令包含有软件版本信息。
70.具体地,在需要对通信总线上终端设备中的软件进行升级时,主控端会根据待升级的软件版本信息生成软件升级指令,将软件升级指令批量发送给通信总线上的各终端设备。终端设备接收主控端发送的软件升级指令。
71.步骤304,获取当前软件的使用版本信息。
72.具体地,终端设备在接收到软件升级指令后,响应软件升级指令对当前终端设备中运行的软件进行软件升级确认,终端设备从预设版本信息存储区域获取当前软件的使用版本信息。
73.步骤306,当根据软件版本信息与使用版本信息确定当前软件的使用版本低于待更新版本时,生成升级确认信息。
74.具体地,终端设备将当前软件的使用版本信息与软件升级指令中携带的软件版本
信息进行比较,当根据软件版本信息与使用版本信息确定当前软件的使用版本低于待更新版本时,生成升级确认信息。可以理解的,升级确认信息中可以携带终端设备的终端标识。
75.在其中一些实施例中,若当前软件的使用版本信息与软件升级指令中携带的软件版本信息相同,则认为当前终端设备的软件已经是最新版本,无需升级。
76.在其中一些实施例中,若根据当前软件的使用版本信息与软件升级指令中携带的软件版本信息进行匹配,确定二者不属于同一软件,则可以认为当前终端设备的软件无需升级。
77.在其中一些实施例中,若根据当前软件的使用版本信息与软件升级指令中携带的软件版本信息进行匹配,确定二者属于同一软件,但版本信息内容不同,则可以认为当前终端设备的软件的使用版本低于待更新版本,需要进行升级。
78.步骤308,将所述升级确认信息发送至所述主控端。
79.具体地,终端设备将生成的升级确认信息通过通信总线发送给主控端,提示主控端当前软件需要升级。
80.本实施例中,终端设备在接收到主控端发送的软件升级指令后,自动确认配置的软件是否需要升级,在软件需要升级生成升级确认信息告知主控端,能够帮助主控端准确批量下发软件升级总包,提高软件升级效率。
81.终端设备中的软件升级可以认为是一个周期性的操作,每个软件开发周期可能都会产生相应的软件更新版本,因此,为了能够持续准确对终端设备中的软件进行升级,在一些实施例中,如图4所示,根据软件升级总包对软件进行升级,包括:
82.步骤402,在预设标志区域写入下载成功标志,运行启动加载程序,删除应用程序存储区域的历史软件升级文件。
83.其中,预设标志区域是用于存储下载成功标志的存储区域,下载成功标志用于在对软件进行更新时,告知软件更新进程当前需要更新的软件升级文件已经全部下载完成,可以进行软件更新。可以理解的,下载成功标志由终端设备根据软件版本信息生成。
84.在其中一些实施例中,预设标志区域设置于flash存储区域中。
85.其中,整个软件可以认为分为三个部分,即启动加载程序区、应用程序区和升级程序区。每次重启运行时,会先运行启动加载程序,这个期间会检查预设标志区域是否有写入的下载成功标志,若没有则会跳转到应用程序区域,如果有就会擦除应用程序存储区域中的历史软件升级文件,将新接收的软件升级文件拷贝到应用程序存储区域。
86.具体地,终端设备基于第一校验信息对软件升级总包的安全性和完整性进行校验,当验证通过时,终端设备生成下载成功标志,并将下载成功标志写入预设标志区域。随后终端设备运行软件的启动加载程序,在预设标志区域存在写入的下载成功标志的情况下,擦除应用程序存储区域中的历史软件升级文件。历史软件升级文件即前一次进行软件升级操作时,使用的历史软件升级总包。
87.步骤404,执行复制操作,将软件升级总包由升级程序存储区域复制到应用程序存储区域。
88.具体地,终端设备在擦除了应用程序存储区域中的历史软件升级文件后,将新接收的软件升级总包复制到应用程序存储区域,以对软件进行升级。
89.步骤406,当复制操作完成后,删除预设标志区域的下载成功标志。
90.具体地,在完成软件更新后,删除预设标志区域的下载成功标志,避免下一次运行启动加载程序时,再次对软件进行更新,造成软件更新混乱。
91.本实施例中,通过标志信息的写入和删除,可以有效帮助终端设备准确的对软件进行升级,不会造成终端设备中升级混乱。
92.在对软件进行批量升级时,总线的传输效率和传输稳定性也是需要考虑的重要因素。基于此,在一些实施例中,在接收通信总线的主控端基于各目标升级设备批量发送的软件升级总包的步骤之前,软件批量升级方法还包括:接收主控端根据当前通信总线的匹配电阻阻值发送的匹配电阻调整请求,匹配电阻调整请求携带有待调整匹配电阻的电阻标识;当根据电阻标识确定终端电阻为待调整匹配电阻时,调整终端电阻的运行状态。
93.其中,匹配电阻是用于匹配总线阻抗的电阻配件,可以提高数据通信的抗干扰性和可靠性,如果阻抗不连续或不匹配便会产生信号反射,从而对传输的信号产生干扰,降低数据通信传输的稳定性。根据大量实验表明,在1米以内,电路中的匹配电阻为120欧姆时,通信总线是稳定的,而超过1米后,通信总线相对来说就没有那么稳定,相反在10米以内,匹配电阻为60欧姆,通信总线是稳定的。因此,使用场景不同,对应通信总线所需的匹配电阻值也不相同。
94.通信总线的匹配电阻阻值是通信总线中接入相应匹配电阻后对应的电阻阻值参数,可以反映当前通信总线中接入的匹配电阻数量。
95.具体地,为了提高软件升级总包下发时通信总线的通信稳定性,在主控端下发软件升级总包之前,主控端会先获取当前通信总线的匹配电阻阻值,当根据匹配电阻阻值确定需要对通信总线中接入的匹配电阻数量进行调整时,主控端会根据匹配电阻阻值生成匹配电阻调整请求,匹配电阻请求中将携带有待调整匹配电阻的电阻标识。主控端将匹配电阻调整请求发送给通信总线上的各个终端设备。
96.终端设备接收主控端发送的匹配电阻调整请求,根据匹配电阻调整请求中携带的电阻标识确定终端电阻为待调整电阻时,对终端电阻的运行状态进行调整。可以理解的,终端设备对终端电阻的运行状态的调整方式可以是开启终端电阻,将终端电阻接入通信总线中,成为通信总线的匹配电阻之一。也可以是关闭终端电阻,将终端电阻从通信总线中移出。
97.在其中一些实施例中,终端设备将匹配电阻调整请求中携带的电阻标识与终端电阻的电阻标识进行比较,当匹配电阻调整请求中携带的电阻标识与终端电阻的电阻标识匹配成功时,确定终端电阻为待调整电阻。
98.在其中一些实施例中,若匹配电阻调整请求中携带的电阻标识与终端电阻的电阻标识匹配不成功,则确定终端电阻不是待调整电阻,终端设备将不作调整。
99.上述实施例中,在通信总线传输软件升级总包之前,通过通信总线中的实时匹配电阻阻值动态调整接入总线中的匹配电阻数量,可以有效提高总线传输的稳定性,提高传输效率以及保障软件升级总包传输过程中的完整性。
100.在一些实施例中,如图5所示,提供了一种软件批量升级方法,以该方法应用于图1中的主控端为例进行说明,方法包括以下步骤:
101.步骤502,接收通信总线上的至少一个终端设备发送的升级确认信息,根据升级确认信息确定各目标升级设备。
102.其中,目标升级设备即需要对设备中配置的软件进行升级的终端设备。
103.具体地,主控端接收至少一个终端设备基于通信总线发送的升级确认信息,升级确认信息中携带由终端设备的终端标识。主控端根据升级确认信息中的终端标识确定需要进行软件升级的各目标升级设备。
104.步骤504,获取软件升级总包,调用预设校验规则对软件升级总包进行校验,得到软件升级总包的第一校验信息。
105.其中,预设校验规则是用于根据软件升级总包生成对应校验信息的规则。
106.具体地,当需要对软件进行升级时,例如技术人员对软件进行功能增加或功能修改后,会对应生成用于更新的软件升级总包。主控端获取软件升级总包,调用预设校验规则对软件升级总包进行校验,得到软件升级总包的第一校验信息。
107.在其中一些实施例中,在接收通信总线上的至少一个终端设备发送的升级确认信息,根据升级确认信息确定各目标升级设备的步骤之前,还包括:获取软件升级请求,根据软件升级请求生成软件升级指令;将软件升级指令发送至通信总线上的至少一个终端设备;接收终端设备基于软件升级指令返回的升级确认信息。
108.具体地,当终端设备的软件需要进行更新时,技术人员会基于技术终端生成软件升级请求,将软件升级请求发送给主控端。主控端接收软件升级请求,根据软件升级请求中携带的软件版本信息生成对应的软件升级指令,将软件升级指令发送至通信总线上的各个终端设备,终端设备接收到软件升级指令后,根据软件升级指令中的软件版本信息进行升级判断,在确认升级后,发送升级确认信息给主控端。主控单接收各终端设备发送的升级确认信息。
109.在其中一些实施例中,技术人员生成了软件升级总包后,将软件升级总包发送至云平台。主控端可以直接从云平台获取对应的软件升级总包。
110.在其中一些实施例中,技术人员直接将软件升级总包由服务器发送给主控端。
111.在其中一些实施例中,第一校验信息为第一校验码,预设校验规则为使用哈希算法对软件升级总包进行哈希计算,得到第一校验码。
112.在其中一些实施例中,第一校验信息为第一校验码和文件内存数据,预设校验规则为使用哈希算法对软件升级总包进行哈希计算,得到第一校验码,获取软件升级总包的文件内存数据,将第一校验码与文件内存数据确定为第一校验信息。
113.步骤506,在软件升级总包的文件名称中添加第一校验信息,将软件升级总包发送给各目标升级设备。
114.具体地,主控端在得到第一校验信息后,在软件升级总包的文件名称中添加第一校验信息,并将文件名称中添加了第一校验信息的软件升级总包批量下发给各目标升级设备。
115.上述实施例中,主控端通过批量发送软件升级总包,能够批量对通信总线各节点终端设备中的软件进行统一升级,相较于传统的升级方式能够有效提高通信总线各节点的软件升级效率,且将校验信息添加至软件升级总包的文件名称中,由终端设备自行根据校验信息进行升级文件的安全性和完整性校验,在保证下发的升级文件安全性与完整性的同时,不会占用通信总线中通信帧的数据位,能够进一步减少升级所需时间,提高升级效率。
116.进一步的,在一些实施例中,如图6所示,在软件升级总包的文件名称中添加第一
校验信息,包括:
117.步骤602,获取软件升级总包的原文件名称。
118.具体地,主控端从软件升级总包中解析得到软件升级总包的原文件名称,原文件名称可以包含有软件升级总包的版本号、软件名称等信息。
119.步骤604,将第一校验信息与原文件名称进行叠加,得到目标文件名称。
120.具体地,主控端将生成的第一校验信息与原文件名称进行叠加,得到软件升级总包下发时的目标文件名称。
121.步骤606,根据目标文件名称更新软件升级总包的原文件名称。
122.具体地,主控端根据叠加生成的目标文件名称对软件升级总包的原文件名称进行替换,将目标文件名称作为软件升级总包的文件名称,将更新名称后的软件升级总包批量下发给各目标升级终端。
123.本实施例中,通过将第一校验信息与原文件名称进行叠加,将第一校验信息添加至软件升级总包的文件名称中,在保证下发的升级文件安全性与完整性的同时,不会占用通信总线中通信帧的数据位,能够进一步减少升级所需时间,提高升级效率。
124.同样的,在向通信总线的各终端设备下发文件时,通信总线的传输效率和传输稳定性是需要考虑的重要因素。在一些实施例中,在将软件升级总包发送给各目标升级设备的步骤之前,软件批量升级方法还包括:
125.获取当前通信总线的匹配电阻阻值,当匹配电阻阻值与预设电阻阻值不相等时,对通信总线中接入的匹配电阻数量进行调整。
126.其中,预设电阻阻值是可以保证通信总线稳定运行的匹配电阻阻值,预设电阻阻值由技术人员预先根据通信总线的实际使用场景配置,例如若通信总线的实际使用场景在1米内,则预设电阻阻值可以为120欧姆,若通信总线的实际使用场景大于1米小于10米,则预设电阻阻值可以为60欧姆。
127.具体地,为了提高通信总线的通信稳定性,主控端获取当前通信总线的匹配电阻阻值,调用预先存储的预设电阻阻值,将当前通信总线实时的匹配电阻阻值与预设电阻阻值进行比较,当匹配电阻阻值与预设电阻阻值不相等时,可以认为此时通信总线处于不稳定状态,需要对通信总线的匹配电阻阻值进行调整。主控端对通信总线中接入的匹配电阻数量进行调整,进而实现对通信总线的匹配电阻阻值进行调整,使通信总线的匹配电阻阻值满足稳定传输的要求。
128.进一步的,在一些实施例中,如图7所示,当匹配电阻阻值与预设电阻阻值不相等时,对通信总线中接入的匹配电阻数量进行调整,包括:
129.步骤702,当匹配电阻阻值与预设电阻阻值不相等时,获取预设电阻阻值对应的匹配电阻开启数量。
130.具体地,主控端在确定当前通信总线的匹配电阻阻值与预设电阻阻值不相等时,调用预设数量映射表,根据预设电阻阻值从预设数量映射表中获取预设电阻阻值对应的匹配电阻开启数量。可以理解的,预设数量映射表用于存储预设电阻阻值与达到该预设电阻阻值所需的匹配电阻开启数量之间的对应关系。
131.步骤704,根据匹配电阻开启数量确定待调整的匹配电阻对应的电阻标识。
132.具体地,主控端确定了通信总线的匹配电阻开启数量后,根据匹配电阻开启数量
以及当前通信总线中接入的电阻数量,确定待调整的匹配电阻,并获取待调整匹配电阻的电阻标识。可以理解的,电阻标识是各终端电阻的唯一标识信息。
133.在其中一些实施例中,根据匹配电阻开启数量以及当前通信总线中接入的电阻数量,确定待调整的匹配电阻包括:主控端根据匹配电阻开启数量与当前通信总线中接入的电阻数量的差值,确定待调整匹配电阻数量,根据待调整匹配电阻数量确定待调整的匹配电阻。
134.例如,若匹配电阻开启数量与当前通信总线中接入的电阻数量的差值为1,说明此时需要在通信总线中接入一个匹配电阻,才能使通信总线的传输稳定。主控端从未处于开启状态的终端电阻中选择一个终端电阻作为待调整的匹配电阻,该终端电阻对应的电阻标识即为待调整匹配电阻对应的电阻标识。若匹配电阻开启数量与当前通信总线中接入的电阻数量的差值为-1,说明此时需要在通信总线中移出一个匹配电阻,才能使通信总线的传输稳定。主控端从处于开启状态的终端电阻中选择一个终端电阻作为待调整的匹配电阻,该终端电阻对应的电阻标识即为待调整匹配电阻对应的电阻标识。
135.步骤706,基于电阻标识生成匹配电阻调整请求,将匹配电阻调整请求发送至通信总线的各终端设备。
136.具体地,主控端在确定待调整的匹配电阻对应的电阻标识后,基于电阻标识生成匹配电阻调整请求,将匹配电阻调整请求发送给通信总线上的各终端设备,控制各终端设备根据匹配电阻调整请求对终端电阻进行调整,以使通信总线的传输稳定性得到保障。
137.上述实施例中,主控端通过通信总线中的实时匹配电阻阻值动态调整接入总线中的匹配电阻数量,可以有效提高总线传输的稳定性,提高传输效率。
138.在其中一些实施例中,如图8所示,提供了一种软件批量升级方法,以该方法应用与图1中的can通信系统为例进行说明,can通信系统为电池组网通信系统。
139.首先,主控端获取can总线的匹配电阻阻值r

,当匹配电阻阻值r

与预设电阻阻值r

不相等时,获取r

对应的匹配电阻开启数量sr,根据sr确定待调整匹配电阻以及待调整匹配电阻的电阻标识,根据电阻标识生成匹配电阻调整请求,将匹配电阻调整请求发送给can总线上的各个终端设备。
140.终端设备接收到主控端发送的匹配电阻调整请求后,根据匹配电阻调整请求中携带的电阻标识确定自身的终端电阻是否为待调整电阻,若是待调整电阻,则调整终端设备的运行状态,以使can总线中接入的匹配电阻满足稳定传输的需求。可以理解的,由于电池是具备一定体积的设备,可能两个电池之间的距离就超过了1米,因此在电池组网can通信系统中,通过控制系统中的第一个匹配电阻r1和最后一个匹配电阻r2开启,使can总线的r

为60欧姆,以保证can总线的稳定性,同时为了防止升级后,程序刷新会关闭匹配电阻,因此为第一台电池和最后一台电池配置一个标识位,写入外部flash里面,等待重启后,首先读取flash里面存储的标识位,将第一台和最后一台的匹配电阻打开接入电路中。
141.匹配电阻接入完成后,主控端接收软件升级请求,根据软件升级请求生成软件升级指令,软件升级指令中包含升级方式(广播升级或单机升级)和程序版本信息等。主控端通过can总线向网络内的各终端设备发送软件升级指令。
142.can总线上的各终端设备接收到软件升级指令后,对软件升级指令进行数据分析,根据软件升级指令携带的程序版本信息判断自身是否需要升级。若确定需要升级,则生成
升级确认信息,将升级确认信息发送给主控端。
143.主控端接收各终端设备发送的升级确认信息,根据升级确认信息确定需要升级的目标终端设备,并获取软件升级需要的软件升级文件。
144.主控端对软件升级文件按照预设校验规则进行校验,得到第一校验码,获取软件升级文件的原文件名称,将第一校验码与原文件名称进行叠加,得到目标文件名称,根据目标文件名称更新软件升级文件的原文件名称。将名称更新后的软件升级文件以总包的形式不拆分直接发送至各个目标终端设备。
145.目标终端设备接收到软件升级文件后,将软件升级文件写入flash升级文件存储区中,对软件升级文件的文件名称进行解析,得到软件升级文件的第一校验码,同时目标终端设备根据预设校验规则对接收到的软件升级文件进行同样的校验操作,得到第二校验码,将第一校验码与第二校验码进行匹配,若匹配不成功,则记录校验错误且重发次数,将校验错误且重发次数与预设阈值进行比较,若校验错误且重发次数未达到预设阈值,则生成校验失败提示信息,将校验失败提示信息发送给主控端,想主控端请求重发软件升级文件。若校验错误且重发次数达到预设阈值,则生成升级失败提示信息,将升级失败提示信息上报给主控端,结束升级。
146.若软件升级文件校验成功,则根据软件升级文件的软件版本信息在flash升级标志存储区写入下载成功标志,并重启软件程序。重启后的软件程序在bootloader进程中读取到flash升级标志存储区的下载成功标志后,将软件存储区的内容替换为flash升级文件存储区中的软件升级文件内容,替换完成后清除flash升级标志存储区的下载成功标志,软件程序从bootloader进程跳转到软件运行进程。
147.本实施例中的软件批量升级方法有效降低了基于电池组网can通信系统的程序升级时间,提高用户体验。
148.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
149.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的软件批量升级方法的软件批量升级装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个软件批量升级装置实施例中的具体限定可以参见上文中对于软件批量升级方法的限定,在此不再赘述。
150.在一些实施例中,如图9所示,提供了一种软件批量升级装置900,包括:总包接收模块901、解析模块902和升级模块903,其中:
151.总包接收模块901,用于接收通信总线的主控端基于各目标升级设备批量发送的软件升级总包。
152.解析模块902,用于对软件升级总包的文件名称进行解析,得到第一校验信息;其中,第一校验信息被通信总线的主控端在下发软件升级总包时添加至软件升级总包的文件
名称。
153.升级模块903,用于当基于第一校验信息验证通过时,根据软件升级总包对软件进行升级。
154.上述软件批量升级装置,通信总线上的终端设备接收通信总线的主控端基于各目标升级设备批量发送的软件升级总包,对软件升级总包的文件名称进行解析,得到被主控端在下发软件升级总包时添加至软件升级总包的文件名称中的第一校验信息,终端设备基于第一校验信息对软件升级总包进行校验,若校验通过,则说明软件升级文件没有丢失或被人篡改,根据软件升级总包对终端设备上的软件进行升级。主控端通过批量发送软件升级总包,能够批量对通信总线各节点终端设备中的软件进行统一升级,相较于传统的升级方式能够有效提高通信总线各节点的软件升级效率,且将校验信息添加至软件升级总包的文件名称中,由终端设备自行根据校验信息进行升级文件的安全性和完整性校验,在保证下发的升级文件安全性与完整性的同时,不会占用通信总线中通信帧的数据位,能够进一步减少升级所需时间,提高升级效率。
155.在一些实施例中,软件批量升级装置还包括:
156.请求接收模块,用于接收所述主控端根据当前通信总线的匹配电阻阻值发送的匹配电阻调整请求,所述匹配电阻调整请求携带有待调整匹配电阻的电阻标识。
157.调整模块,用于当根据所述电阻标识确定终端电阻为待调整匹配电阻时,调整所述终端电阻的运行状态。
158.在一些实施例中,升级模块还用于:在预设标志区域写入下载成功标志,运行启动加载程序,删除所述应用程序存储区域的历史软件升级文件;执行复制操作,将所述软件升级总包由升级程序存储区域复制到应用程序存储区域;当所述复制操作完成后,删除所述预设标志区域的下载成功标志。
159.在一些实施例中,如图10所示,提供了一种软件批量升级装置1000,包括:信息接收装置1001、校验装置1002和文件发送装置1003,其中:
160.信息接收模块1001,用于接收通信总线上的至少一个终端设备发送的升级确认信息,根据升级确认信息确定各目标升级设备。
161.校验模块1002,用于获取软件升级总包,调用预设校验规则对软件升级总包进行校验,得到软件升级总包的第一校验信息。
162.文件发送模块1003,用于当在软件升级总包的文件名称中添加第一校验信息,将软件升级总包发送给各目标升级设备。
163.上述软件批量升级装置,主控端通过批量发送软件升级总包,能够批量对通信总线各节点终端设备中的软件进行统一升级,相较于传统的升级方式能够有效提高通信总线各节点的软件升级效率,且将校验信息添加至软件升级总包的文件名称中,由终端设备自行根据校验信息进行升级文件的安全性和完整性校验,在保证下发的升级文件安全性与完整性的同时,不会占用通信总线中通信帧的数据位,能够进一步减少升级所需时间,提高升级效率。
164.在一些实施例中,软件批量升级装置还包括:
165.阻值获取模块,用于获取当前通信总线的匹配电阻阻值。
166.电阻调整模块,用于当所述匹配电阻阻值与预设电阻阻值不相等时,对所述通信
总线中接入的匹配电阻数量进行调整。
167.在一些实施例中,电阻调整模块还用于:当所述匹配电阻阻值与预设电阻阻值不相等时,获取所述预设电阻阻值对应的匹配电阻开启数量;根据所述匹配电阻开启数量确定待调整的匹配电阻对应的电阻标识;基于所述电阻标识生成匹配电阻调整请求,将所述匹配电阻调整请求发送至所述通信总线的各终端设备。
168.在一些实施例中,文件发送模块还用于:获取软件升级总包的原文件名称;将第一校验信息与原文件名称进行叠加,得到目标文件名称;根据目标文件名称更新软件升级总包的原文件名称。
169.上述软件批量升级装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
170.在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端设备或主控端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储软件升级总包、第一校验信息、软件升级总包的文件名称等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种软件批量升级方法。
171.本领域技术人员可以理解,图11中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
172.在一些实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述软件批量升级方法的具体实施步骤。
173.在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述软件批量升级方法的具体实施步骤。
174.在一些实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述软件批量升级方法的具体实施步骤。
175.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
176.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,
pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
177.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
178.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:
1.一种软件批量升级方法,其特征在于,应用于通信总线上的终端设备,所述方法包括:接收所述通信总线的主控端基于各目标升级设备批量发送的软件升级总包;对所述软件升级总包的文件名称进行解析,得到第一校验信息;其中,所述第一校验信息被所述通信总线的主控端在下发所述软件升级总包时添加至所述软件升级总包的文件名称;当基于所述第一校验信息验证通过时,根据所述软件升级总包对软件进行升级。2.根据权利要求1所述的方法,其特征在于,在所述接收所述通信总线的主控端基于各目标升级设备批量发送的软件升级总包的步骤之前,还包括:接收所述主控端根据当前通信总线的匹配电阻阻值发送的匹配电阻调整请求,所述匹配电阻调整请求携带有待调整匹配电阻的电阻标识;当根据所述电阻标识确定终端电阻为待调整匹配电阻时,调整所述终端电阻的运行状态。3.根据权利要求1所述的方法,其特征在于,所述根据所述软件升级总包对软件进行升级,包括:在预设标志区域写入下载成功标志,运行启动加载程序,删除所述应用程序存储区域的历史软件升级文件;执行复制操作,将所述软件升级总包由升级程序存储区域复制到应用程序存储区域;当所述复制操作完成后,删除所述预设标志区域的下载成功标志。4.一种软件批量升级方法,其特征在于,应用于通信总线上的主控端,所述方法包括:接收所述通信总线上的至少一个终端设备发送的升级确认信息,根据所述升级确认信息确定各目标升级设备;获取软件升级总包,调用预设校验规则对所述软件升级总包进行校验,得到所述软件升级总包的第一校验信息;在所述软件升级总包的文件名称中添加所述第一校验信息,将所述软件升级总包发送给各目标升级设备。5.根据权利要求4所述的方法,其特征在于,在所述将所述软件升级总包发送给各目标升级设备的步骤之前,所述方法还包括:获取当前通信总线的匹配电阻阻值;当所述匹配电阻阻值与预设电阻阻值不相等时,对所述通信总线中接入的匹配电阻数量进行调整。6.根据权利要求5所述的方法,其特征在于,所述当所述匹配电阻阻值与预设电阻阻值不相等时,对所述通信总线中接入的匹配电阻数量进行调整,包括:当所述匹配电阻阻值与预设电阻阻值不相等时,获取所述预设电阻阻值对应的匹配电阻开启数量;根据所述匹配电阻开启数量确定待调整的匹配电阻对应的电阻标识;基于所述电阻标识生成匹配电阻调整请求,将所述匹配电阻调整请求发送至所述通信总线的各终端设备。7.根据权利要求4至6任一项所述的方法,其特征在于,在所述软件升级总包的文件名
称中添加所述第一校验信息,包括:获取所述软件升级总包的原文件名称;将所述第一校验信息与所述原文件名称进行叠加,得到目标文件名称;根据所述目标文件名称更新所述软件升级总包的原文件名称。8.一种软件批量升级装置,其特征在于,设置于通信总线上的终端设备,所述装置包括:总包接收模块,用于接收所述通信总线的主控端基于各目标升级设备批量发送的软件升级总包;解析模块,用于对所述软件升级总包的文件名称进行解析,得到第一校验信息;其中,所述第一校验信息被所述通信总线的主控端在下发所述软件升级总包时添加至所述软件升级总包的文件名称;升级模块,用于当基于所述第一校验信息验证通过时,根据所述软件升级总包对软件进行升级。9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

技术总结
本申请涉及一种软件批量升级方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:接收通信总线的主控端基于各目标升级设备批量发送的软件升级总包;对软件升级总包的文件名称进行解析,得到第一校验信息;其中,第一校验信息被通信总线的主控端在下发软件升级总包时添加至软件升级总包的文件名称;当基于第一校验信息验证通过时,根据软件升级总包对软件进行升级。采用本方法能够在保证下发的升级文件安全性与完整性的同时,不会占用通信帧的数据位,能够进一步减少升级所需时间,提高升级效率。提高升级效率。提高升级效率。


技术研发人员:黄言 岳冰 徐良
受保护的技术使用者:深圳市拓邦锂电池有限公司
技术研发日:2023.05.25
技术公布日:2023/9/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐