一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

软件更新系统及其控制方法与流程

2021-11-20 04:52:00 来源:中国专利 TAG:


1.本发明涉及基于差分更新(differential updating)的软件更新系统及该系统的控制方法,所述软件更新系统用于减小更新数据的大小。


背景技术:

2.近来,随着车辆中安装的功能数量的增加,车辆中已安装了越来越多的控制器,并且由于其功能的改进,控制器的软件经常更新。常规的更新方法包括通过诊断通信将作为更新目标(例如,整个控制器固件)的软件发送至车辆,但是随着空中下载(over the air,ota)方法的逐步引入,由于电信费用问题,尝试减小更新数据的大小。
3.差分更新方法可以用作该尝试的一部分。差分更新方法是指通过提取差异(即,现有软件映像与更新后的软件映像之间的差分)并将该差分应用于现有软件映像来进行更新的方法。因此,在差分更新方法中,由于减小了现有软件映像和更新后的软件映像之间的差异,因此差分也减小了,从而大幅地减小了更新数据的大小。
4.然而,当将一般的差分更新方法应用于车辆时,仅考虑单个控制器的软件改变,因此,当在近来安装有多个控制器的车辆中更新多个控制器的软件时,难以优化更新数据的大小。
5.具体地,一般的差分更新方法主要基于软件版本的差异(即,时间差异),但是近来同时更新的车辆控制器共享许多架构(例如,针对单个功能的协作控制),因此也具有软件相似性(即,空间相似性)。例如,根据近来的趋势,具有相同开源或相同解决方案的软件已越来越多地用于相似的功能,因此,当对控制器之间的通信功能进行更新时,可以采用相同或相似的方式来应用参与通信的多个控制器的软件中与通信功能有关的部分。
6.因此,需要还考虑更新的控制器软件的相似性来优化更新数据的大小的方法,所述方法适用于在车辆级别而不是单个控制器级别更新整个控制器。


技术实现要素:

7.本发明的目的是提供一种软件更新系统及控制该系统的方法,所述系统用于基于差分更新方法来更高效地进行软件更新。具体地,本发明提供了一种软件更新系统及其控制方法,所述系统用于在多个控制器同时更新时优化更新数据的大小。
8.通过示例性实施方案解决的技术问题不限于以上技术问题,并且根据以下描述,本文中未描述的其他技术问题对于本领域技术人员将变得显而易见。
9.为了实现这些目标和其他优点并且根据本发明的目的,如本文所体现和概括描述的,更新软件的方法可以包括:由更新服务器获取对于车辆中包括的多个更新目标控制器中的每个更新目标控制器的原始映像与更新映像之间的差分数据;获取对多个更新目标控制器中的每一个的差分数据之间的至少一级的下级差分数据;生成对所有多个更新目标控制器的多个差分组合;确定多个差分组合的最优组合,并根据最优组合生成更新数据。
10.在本发明的另一方面中,更新软件的方法可以包括:从包括多个控制器的车辆中
的更新服务器接收更新多个更新目标控制器的软件的更新数据和组合方式;通过将组合方式应用于更新数据中包括的至少一个差分数据和多个下级差分数据,获取多个更新目标控制器中的每一个的与原始映像和更新映像之间的差分相对应的差分数据;利用多个更新目标控制器中的每一个的差分数据进行更新。
11.在本发明的另一方面中,更新服务器可以包括:差分计算器,其配置为获取车辆中包括的多个更新目标控制器中的每一个的原始映像与更新映像之间的差分数据,并获取对多个更新目标控制器中的每一个的差分数据之间的至少一级的下级差分数据;以及差分组合策略确定器,其配置为生成对所有多个更新目标控制器的多个差分组合,确定多个差分组合中的最优组合,并根据最优组合生成更新数据。
12.在本发明的另一方面,一种车辆可以包括网关以及连接至所述网关的多个控制器,其中,所述网关配置为从更新服务器接收更新多个控制器中的多个更新目标控制器的软件的更新数据和组合方式,并且通过将组合方式应用于更新数据中包括的至少一个差分数据和多个下级差分数据,获取与多个更新目标控制器中的每一个的原始映像和更新映像之间的差分相对应的差分数据。
附图说明
13.包括所附附图是为了提供本发明的进一步的理解并且所附附图被纳入并构成本发明的一部分,这些附图示出了本发明的示例性实施方案,并且与说明书一起用于解释本发明的原理。在附图中:
14.图1是示出了显示适用于本发明的示例性实施方案的软件更新系统的配置的示例的示意图;
15.图2a是用于解释根据本发明的示例性实施方案的生成更新数据的构思的示意图,图2b是用于解释利用更新数据的更新过程的构思的示意图;
16.图3是示出根据本发明的示例性实施方案的更新软件的过程的示例的流程图;
17.图4是示出根据本发明的示例性实施方案的准备更新数据的过程的示例的流程图;
18.图5是示出根据本发明的示例性实施方案的更新过程的示例的流程图。
具体实施方式
19.应当理解的是,本文所使用的术语“车辆”或“车辆的”或其它类似术语包括一般机动车辆,例如包括运动型多用途车辆(suv)、大客车、大货车、各种商用车辆的乘用汽车,包括各种舟艇、船舶的船只以及航空器等等,并且包括混合动力车辆、电动车辆、内燃机车辆、插电式混合动力电动车辆、氢动力车辆以及其它替代性燃料车辆(例如,源于非化石能源的燃料)。
20.虽然示例性实施方案描述为使用多个单元以进行示例性的过程,但是应当理解的是,示例性的过程也可以由一个或更多个模块进行。此外,应当理解的是,术语“控制器/控制单元”指的是包括存储器和处理器的硬件设备,并且具体地编程为执行本文所述的处理。存储器配置为对模块进行存储,并且处理器具体配置为执行所述模块以进行以下进一步描述的一个或更多个过程。
21.此外,本发明的控制逻辑可以实施为计算机可读介质上的非易失性计算机可读介质,其包含由处理器、控制器/控制单元等执行的可执行程序指令。计算机可读介质的示例包括但不限于rom、ram、光盘(cd)

rom、磁带、软盘、闪盘驱动器、智能卡和光学数据存储设备。计算机可读记录介质还可以分布在网络连接的计算机系统上,使得计算机可读介质例如通过远程信息处理服务器或控制器局域网(can)以分布方式存储和执行。
22.本文所使用的术语仅为了描述特定实施方案的目的,并非旨在限制本发明。如本文中所使用的,单数形式“一”、“一个”和“所述”旨在也包括复数形式,除非上下文另有清楚的说明。还将理解的是,当在本说明书中使用术语“包括”和/或“包含”时,其指明存在所述特征、数值、步骤、操作、元件和/或组件,但是不排除存在或加入一种或更多种其它的特征、数值、步骤、操作、元件、组件和/或其群组。如本文中所使用的,术语“和/或”包括一种或多种相关列举项的任何和所有组合。
23.除非特别声明或者从上下文显而易见的,本文中所使用的术语“大约”理解为在本领域的正常公差范围内,例如在平均值的2个标准差内。“大约”可以理解为在指定值的10%、9%、8%、7%、6%、5%、4%、3%、2%、1%、0.5%、0.1%、0.05%或者0.01%之内。除非上下文另有清楚的说明,否则本文中所提供的所有数值通过术语“大约”进行修饰。
24.参照附图详细地描述了本发明的示例性实施方案,使得本领域一般技术人员可以容易地实现它们。然而,本发明可以采用不同方式来实现,而不限于这些示例性实施方案。为了清楚地描述本发明,从附图中省略了与描述无关的部分,并且在整个说明书中,相似的附图标记表示相似的元件。贯穿附图和说明书,相同的附图标记指代相同的部件。
25.根据本发明的示例性实施方案,当对多个控制器的软件进行更新时,具有最优大小的更新数据可以通过如下来生成:对作为更新目标的每个控制器生成差分数据,在差分数据中生成的至少一级的下级差分数据,以及比较差分数据和下级差分数据之间的组合。
26.图1是示出了显示适用于本发明的示例性实施方案的软件更新系统的配置的示例的示意图。参考图1,软件更新系统可以包括更新服务器100和车辆200,更新服务器100配置为准备和提供更新数据,车辆200配置为从更新服务器100接收更新数据和对软件进行更新。
27.更新服务器100可以包括:差分计算器110、差分组合策略确定器120、存储单元130和通信器140,车辆200可以包括网关210和连接至网关210的多个车辆控制器220、230和240。首先,将描述更新服务器100的部件。
28.差分计算器110可以配置为当多个更新目标设备(在下文中,为方便起见而假定为“控制器”)的软件需要通过进行一次更新而一起被更新时,生成至少两级的差分数据(differential data)。具体地,差分计算器110可以配置为对于安装在多个控制器中的每个软件,通过将对应于软件的先前版本的原始映像与对应于软件的最近版本的更新映像(即,更新软件)进行比较来生成差分数据。对于相同控制器的原始映像与更新映像之间的差分数据可以称为初级差分。
29.差分计算器110可以配置为通过将不同控制器的初级差分进行比较来生成下级差分数据(即,二级差分)。当在相对应的回合(round)中作为软件更新目标的控制器的数量是三个时,也可以生成作为二级差分之间的差分的三级差分。换句话说,当作为软件更新目标的控制器的数量是n(这里,n是大于或等于2的自然数)时,根据示例性实施方案的差分计算
器110可以配置为生成最小的二级差分,并且根据需要可以配置为生成最大的n级差分。
30.差分组合策略确定器120可以配置为基于由差分计算器110生成的差分数据及其下级差分数据,为所有控制器生成作为更新目标的差分组合,并且差分组合策略确定器120可以配置为确定每个差分组合的总大小。差分组合策略确定器120可以配置为通过将各个差分组合的总大小进行比较并选择最优的(例如,总大小为最小的)差分组合来生成更新数据,并且可以得出关于其组合方式的信息。
31.存储单元130可以配置为存储在差分计算器110和差分组合策略确定器120的操作过程中需要或生成的源数据、中间数据和最终数据,例如,源数据可以包括作为软件更新目标的每个控制器的原始映像和更新映像。中间数据可以包括每个控制器的差分数据和下级差分数据、每个差分组合的总大小数据以及每个差分组合的组合方式。
32.最终数据可以包括具有最优大小的更新数据和关于其组合方式的信息,但是本发明不限于此。通信器140可以配置为与车辆200的网关210进行无线通信,并且通信器140可以配置为响应于从车辆200接收到更新请求,发送对应车辆200的更新数据和关于组合方式的信息。
33.在下文中,将描述车辆200的每个部件。网关210可以配置为与车辆内部和外部的组件进行通信,从而可以配置为从更新服务器100获取更新数据,可以配置为以控制器能够进行更新的级别重组数据,然后可以配置为将重组后的数据发送到每个车辆控制器220、230和240。因此,网关210可以包括外部通信器211、存储单元212、差分重组单元213和内部通信器214,外部通信器211配置为至少与更新服务器100进行通信;存储单元212配置为存储从更新服务器100获取的更新数据;差分重组单元213配置为生成基于更新数据生成的每个控制器的差分数据或更新映像;内部通信器214配置为与车辆内部的组件(例如,车辆控制器220、230和240)进行通信。
34.车辆控制器220、230和240可以具有类似的配置,因此将根据车辆控制器1 220进行描述。内部通信器221可以配置为与网关210或与相应车辆网络中的其他控制器230和240进行通信,更新单元222可以配置为根据是否支持差分更新,基于网关210提供的差分数据或更新映像,在相应的控制器220上进行软件更新。
35.网关210的内部通信器214和相应的车辆控制器220、230和240的内部通信器221、231和241可以配置为根据相同的车辆通信协议进行通信。例如,车辆通信协议可以包括can、can

fd、lin或以太网,但是本发明不限于此。
36.图2a是用于解释根据本发明的示例性实施方案的生成更新数据的构思的示意图。图2b是用于解释利用更新数据的更新过程的构思的示意图。首先,参考图2a,可以假定更新服务器100在两个控制器(控制器1和2)上进行软件更新。
37.在更新服务器100的差分计算器110中,控制器1的初级差分a可以通过将控制器1的原始映像a与更新映像a

进行比较(即,a
′‑
a)来生成,控制器2的初级差分b可以通过将控制器2的原始映像b与更新映像b

进行比较(即,b
′‑
b)来生成。具体地,当控制器1的初级差分a包括仅与控制器1相对应的部分10以及与控制器1和控制器2共同相对应的部分20,并且控制器2的初级差分b包括仅与控制器2相对应的部分30以及与控制器1和控制器2共同相对应的部分20时,如果初级差分a b中的每一个都包括在更新数据中,则共同部分20不必要地冗余。
38.因此,根据本示例性实施方案,可以通过经由初级差分之间的比较(即,a

b)来获取二级差分a

b

,以及配置更新数据以包含控制器1的初级差分a和二级差分a

b

,从而优化更新数据的大小。具体地,更新数据的接收侧(即,车辆)需要恢复初级差分b以更新差分,因此,基于更新数据来恢复初级差分b的组合方式(即,a a

b

=b)可以一起提供给接收侧。
39.如图2a所示,当生成的更新数据和组合方式被发送到车辆200时,车辆200可以配置为获取如图2b所示的更新映像。参考图2b,首先,控制器1的初级差分a最初包括在更新数据中,因此,当初级差分a应用于控制器1的原始映像a时,可以立即获取控制器1的更新映像a

。相反,控制器2的初级差分b不包括在更新数据中,因此,控制器2的初级差分可以通过根据组合方式将控制器1的初级差分a和二级差分a

b

进行组合而获得(即,a a

b

=b)。可以通过再次将控制器2的初级差分b与控制器2的原始映像b进行组合来获得更新映像b


40.具体地,当单独的控制器提供差分更新功能时,车辆的网关可以配置为基于更新数据针对每个控制器仅恢复差分数据,并将恢复的差分数据发送至每个控制器,然后,控制器可以配置为对差分数据进行更新。相反,当单独的控制器不提供差分更新功能时,网关可以配置为通过从每个控制器获取原始映像,然后将差分数据应用于获取的原始映像来生成更新映像,然后网关可以配置为将相应的更新映像提供至单独的控制器。
41.目前为止所描述的根据本示例性实施方案的更新过程概括在图3的流程图中。图3是示出根据本发明的示例性实施方案的更新软件的过程的示例的流程图。参考图3,更新服务器100可以配置为基于以上参考图2a描述的方法来准备更新数据(s310)。
42.当车辆生成并向更新服务器发送请求以更新数据时(s320),更新服务器可以配置为向车辆发送准备好的更新数据和与更新数据相对应的组合方式(s330)。具体地,可以响应于在更新服务器完全准备好更新数据时首先发送至车辆的通知来进行对更新数据的请求(s320),或者可以通过周期性地检查车辆中是否准备了更新数据来进行对更新数据的请求(s320)。
43.车辆的网关可以配置为利用更新数据和组合方式来获取或恢复每个控制器的差分数据(s340),并且单独的更新目标控制器可以配置为基于差分数据来更新控制器(s350)。当更新目标控制器的数量为两个时,可以如图2b所示进行恢复操作s340,当更新目标控制器的数量为三个时,如果接收到a、a

b

和b

c

作为更新数据,则控制器1的差分数据a已经包括在更新数据中,因此可以不需要为恢复而进行单独计算。可以根据a a

b

=b来获取控制器2的差分数据b,并且可以根据b b

c

=c来获取控制器3的差分数据c。
44.不用说,当单独的控制器不支持基于差分数据的更新功能时,网关可以配置为通过将原始映像应用于差分数据来生成更新映像,然后可以配置为向单独的控制器提供更新映像。在下文中,将参考图4更详细地描述图3的数据准备操作s310。
45.图4是示出根据本发明的示例性实施方案的准备更新数据的过程的示例的流程图。参考图4,当选择出需要更新的目标控制器时,更新服务器100可以配置为重复进行以下过程:搜索差分组合以发送对整个车辆而言的最小大小的更新数据,并计算每个组合的数据的总大小。
46.具体地,差分计算器110可以配置为提取作为软件更新目标的单独的控制器的差分数据(即,初级差分)(s311)。如上所述,可以利用单独的控制器的更新映像与原始映像之间的差分来进行本过程。例如,当控制器1 220的原始映像是a并且更新映像是a

时,可以根
据a
′‑
a获取控制器1 220的差分数据a。可以针对所有更新目标控制器中的每一个来进行该过程。
47.随后,差分计算器110可以配置为针对生成的差分数据的所有组合(即,初级差分),生成与差分数据之间的至少一级相对应的下级差分数据(s313)。例如,控制器1 220、控制器2 230和控制器3 240的初级差分分别是a、b和c,二级差分可以是a与b之间的差分a'b'、b与c之间的差分b'c'以及a与c之间的差分a'c

,并且可以分别根据a'b'=a

b,a'c'=a

c和b'c'=b

c来计算。不用说,必要时,也可以获取三级、四级或更高的下级差分。
48.当获取差分数据和下级差分数据时,差分组合策略确定器120可以配置为生成所有更新目标控制器的差分组合(s315),并确定每个差分组合的大小(s317)。具体地,差分组合可以指生成单独控制器的所有差分数据(例如,a、b和c)的任何组合。因此,差分组合策略确定器120可以配置为基于具有最小大小的差分组合来生成更新数据(s319)。
49.在下文中,将参考图5更详细地描述图3的控制器更新过程s350。图5是显示根据本发明的示例性实施方案的更新过程的示例的流程图。
50.参考图5,网关210可以配置为确定每个更新目标控制器是否支持差分更新(s351)。具体地,在该过程中,连接至相应的网关210的每个控制器是否支持差分更新可以参考预写表,并且根据车辆的配置,可以根据预设逻辑直接进行操作s352或s354,而无需诸如本过程的确定过程。在支持差分更新的情况下(s351的“是”),网关可以配置为发送与每个支持差分更新的控制器相对应的差分数据(s352),并且接收差分数据的单独的控制器可以配置为基于差分更新进行更新(s353)。
51.当存在不支持差分更新的控制器时(s351的“否”),网关可以配置为从每个相对应的控制器获取原始映像(s354)。网关可以配置为通过将相对应的差分数据应用于每个获取的原始映像来生成更新映像(s355),然后可以配置为将更新映像发送至相对应的控制器(s356)。因此,单独的控制器可以配置为利用更新映像来进行软件更新(s357)。如上所述,由于网关考虑是否每个控制器支持差分更新,因此有利地,不需要根据单独的控制器改变更新方法。
52.在根据上述示例性实施方案的更新系统及其控制方法中,假定了车辆控制器的软件更新,但是本发明不限于此,并且可以应用于进行软件更新的任何设备。根据示例性实施方案的车辆的网关210可以被另一车辆中的控制器(例如,远程信息处理单元或avn系统)代替,所述另一车辆中的控制器连接至车辆内部的网络并且可以无线地连接至车辆外部的更新服务器100。
53.根据本发明的示例性实施方案,描述了利用获取控制器的更新映像和原始映像之间的差分数据(即,初级差分),随后获取下级差分数据(即,二级差分)来提取更新数据的情况。然而,根据本发明的方法可以修改为以下方法:获取控制器之间的差分(即,更新映像之间的初级差分),然后获取原始映像的二级差分。
54.根据本发明的示例性实施方案,网关恢复差分数据,但是根据另一示例性实施方案,单独的控制器可以配置为恢复差分数据。另外,根据本发明的示例性实施方案,选择最优差分组合的方法被假定为使用于更新的数据的大小最小化的方法,但是根据另一示例性实施方案,也可以应用差分组合,其数量依据车辆和服务器的情况(例如,更新目标控制器的数量或服务器的计算能力和存储能力)而改变。
55.根据本发明的前述示例性实施方案,当车辆的控制器软件更新时要发送到车辆的数据的大小可以被最小化。换句话说,当控制器之间的软件存在相似性时,可以通过在控制器之间的软件中生成附加的差分数据来使发送数据的大小最小化。可以利用车辆网关来恢复差分,可以通过将差分数据应用于原始映像来生成更新映像,因此,本发明的示例性实施方案也可以应用于控制器不支持差分更新方法的情况。
56.另外,可以使数据传输率最小化,因此可以减少从更新服务器接收更新数据的时间和数据成本,并且可以减少在更新期间通过车辆内部的网络传输数据所花费的时间。此外,通过同时更新以车辆为单位的控制器软件而不是依次更新以控制器为单位的软件,可以减少更新整个车辆所花费的时间。
57.如上配置的本发明的至少一个示例性实施方案涉及的软件更新系统可以基于差分更新方法更高效地更新软件。具体地,根据本发明,以两级或更多级提取差分数据,因此当多个控制器同时更新时,可以优化更新数据的大小。
58.本领域的技术人员将理解的是,利用本发明可实现的效果不限于上文已经具体描述的效果,本发明的其它优点将从详细描述中更清楚地理解。
59.前述的本发明也可以实现为存储在非易失性计算机可读记录介质上的计算机可读代码。非易失性计算机可读记录介质是能够存储随后可被计算机读取的数据的任何数据存储器件。非易失性计算机可读记录介质的示例包括:硬盘驱动器(hard disk drive,hdd)、固态驱动器(solid state drive,ssd)、硅盘驱动器(silicon disk drive,sdd)、只读存储器(rom)、随机存储器(ram)、cd

rom、磁带、软盘、光数据存储器件等。
60.对于本领域技术人员显而易见的是,在不偏离本发明的精神或范围的情况下,可以对本发明进行各种修改和改变。因此,本发明旨在覆盖提供的本发明的修改形式和变化形式,本发明的修改形式和变化形式在所附权利要求及其等同形式的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献