首页> 中国专利> 用于更新目标设备上的软件的方法

用于更新目标设备上的软件的方法

摘要

本发明涉及一种用于借助于更新装置(106)更新目标设备(100)上的软件的方法。在此,在第一步骤中,从指向外部数据处理装置(118)的接口(116)接收区别信息(110),区别信息代表在目标设备(100)上已安装的当前软件和在目标设备(100)上要安装的新软件之间的区别。在第二步骤中,将区别信息(110)与当前软件的存储在更新装置(106)中的副本组合,以便创建代表新软件的数据包(302)。最后,在第三步骤中,将数据包(302)和/或区别信息(110)输出给指向目标设备(100)的接口(126),以便更新目标设备(100)上的软件。

著录项

  • 公开/公告号CN112567339A

    专利类型发明专利

  • 公开/公告日2021-03-26

    原文格式PDF

  • 申请/专利权人 罗伯特·博世有限公司;

    申请/专利号CN201980053946.5

  • 发明设计人 L·普里施克;G·鲁道夫;W·费舍;

    申请日2019-05-27

  • 分类号G06F8/658(20060101);G07C5/00(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人赵林琳;张鹏

  • 地址 德国斯图加特

  • 入库时间 2023-06-19 10:22:47

说明书

技术领域

本发明涉及根据独立权利要求的前序部分的方法或设备。本发明的主题还涉及一种计算机程序。

背景技术

可以使用所谓的增量方法(Deltaverfahren)来更新部件的软件。在此,计算两个软件版本之间的差异并传输给相应的组件。

发明内容

在这种背景下,借助在此提出的方案介绍根据独立权利要求的一种用于借助于更新装置更新目标设备上的软件的方法、一种相应的更新装置、一种用于借助于目标设备处理数据包和/或区别信息的方法、一种相应的目标设备,以及最后介绍一种相应的计算机程序。通过从属权利要求中列出的措施,独立权利要求中说明的设备的有利的改进形式和改善方案是可行的。

本发明提出了一种借助于更新装置更新在目标设备上的软件的方法,其中该方法包括以下步骤:

从指向外部数据处理装置的接口接收区别信息,区别信息代表在目标设备上已安装的当前软件和在目标设备上要安装的新软件之间的区别;

将区别信息与当前软件的存储在更新装置中的副本组合,以便创建代表新软件的数据包;并且

将数据包和/或区别信息输出给指向目标设备的接口,以便更新目标设备上的软件。

目标设备和/或更新装置可以例如在车辆中或在工业设施或机器中或在包括各种其他软件的且彼此连接的设备中使用和/或设置。

目标设备或目标单元可以理解为处理传感器信号的且根据其输出控制和/或数据信号的电气设备,例如控制设备。目标设备可以具有硬件和/或软件方式构成的接口。

在一个设计方案中,通过目标设备控制车辆。为此,目标设备例如可以访问传感器信号,例如加速度传感器信号、压力传感器信号、转向角传感器信号或环境传感器信号。可以经由相应的执行器(即例如制动或转向执行器)来进行操控。

更新装置可以理解为例如构建在车辆中的装置,该装置用于在增量方法中存储备份并控制更新过程。例如,第一接口可以是用于例如与车辆无线通信的无线电接口。替选地或附加地,可以以线缆连接的方式经由第一接口进行通信。第二接口例如可以是车辆总线,例如CAN总线。外部数据处理装置例如可以理解为例如服务器或移动终端设备。例如,区别信息可以理解为所谓的增量文件。称作增量更新文件的这种增量文件例如可以理解为用于软件更新到新版本的软件更新包。区别信息与新软件的完整版本相比可以代表显著更小的数据量。例如,数据包可以是压缩的或未压缩的、用于安装新软件的完整版本的更新包。

输出的步骤可以根据目标设备仅具有软件更新器或附加地具有更新单元(例如具有增量安装器的更新单元)来执行增量方法。例如,在第一种情况下可以输出数据包,而在第二种情况下仅输出区别信息就足够了。

此处介绍的方案涉及具有软件更新或由多个部件构成的设备,其中部件分别支持软件更新,但是具有自身的存储器并且彼此连接。在此,各个部件由于其资源情况而会受到限制。此处介绍的方案基于如下知识:为了将例如车辆的各个部件的软件更新到新版本可以使用包含当前安装的版本和新版本之间的区别的所谓的增量文件并且例如可以使用当前安装版本的例如存储在车辆中的副本,以便在新版本安装到相关部件上之前,例如在车辆本身中计算和检查新版本。因此,可以将在更新时将损害例如车辆的安全性的错误限制到最小程度。此外,这种更新方法具有以下优点:代替软件的完整版本,仅需要将与相关的部件相关联的增量文件传输给车辆,以执行更新。由此,尤其当更新例如经由无线电接口装入时,可以尤其快速且有效地进行更新。

通过例如在车辆中存在旧软件和新软件作为中央存储的备份,例如在故障情况下可行的是根据需要执行完整更新或回滚,特别是各种部件由于其资源情况通常不能够存储器相应的软件的备份版本。因此可以防止相关的部件在更新错位的情况下变得不可正常工作并且需要维修。因此可以确保部件在软件更新时也还在现场正常工作。

在此介绍的方案包括系统范围内的增量更新方法,增量更新方法在更新装置中、例如在具有集成的备份服务器的中央增量安装器中从增量文件中计算、存储和验证新版本,以便在第二步骤中将新软件分布到总体系统中的相应的目标单元处。在此,无论是无线方式或在内部系统中、例如经由车辆总线进行,总是应当仅传输增量更新版本。其中,仅当目标单元还具有增量更新时才可以传递增量更新文件。

在更新装置中必须对于各个目标单元存在备份软件或者至少可以下载备份软件。

更新装置例如可以借助具有一个或多个增量安装器的一个或多个中央安装单元与相应的存储器资源对接,尽管更常见的是只有一个中央点,该中央点必要时支持多个增量安装器。具有增量安装器的中央安装单元可以具有一个或多个增量更新方法,并且同样必须具有目标单元的相应的当前的软件作为备份,或者至少可以对其访问。与目标单元是否使用具有或没有增量安装器的更新单元无关地使用所述增量更新方法。因此,更新过程中的安全性不仅单独地通过单独部件保证,而且主要重要地通过更新装置来保证。另一点是:与完整更新相比,具有单独部件的增量安装器的更新单元仅需要最少的附加资源,并且发生更少的存储器访问。

因此,此处介绍的方案的主要优点在于:可以省去目标单元、例如RAM或闪存的资源相关的扩展,并且尽管如此仍可以支持包括回滚的安全更新。因此,小型目标系统也可以使用增量更新方法。

另一优点是:原则上可以通过增量更新方法最小化到总体系统的例如无线的数据传输。这也适用于本身不支持增量更新的单独部件,并且还适用于应经由内部总线进行完全更新的情况。

此外,如果目标单元本身具有带有增量安装器的更新单元,则目标系统中的总线负载可以被最小化。

另外,目标单元可以非常快速地执行增量更新方法,因为不需要附加的存储器访问。

还有利的是:目标单元的具有增量安装器的安装单元对于每个部件不需要任何回滚功能,因为所述回滚功能可以中央地在更新装置中实施。

可选地,如果这种情况可以归类为罕见并且然后可以通过由中央增量安装器发动的完整更新进行修复,则可以省去对各部件的增量安装器进行保护以防中断。

由于具有中央增量安装器的更新装置可以自给自足地运行并且可以在不影响目标单元的情况下检查接收到的软件并作为备份存储在新版本中,所以在用户会完全因软件更新而受到损害之前,可以检查软件是否正确。

另外,可以避免目标单元的故障,因为预先检查软件或者在具有中央增量安装器的更新装置中存在旧软件或新软件的完整版本的备份。

这种方法可以简单地集成到现有的中央单元中,例如集成到中央网关中。另外,只要有足够的存储空间,这种方法就可以应用于任意多的部件。

通过使用不那么复杂的增量更新机制最终还可以减少更新时的错误频率。

根据一个实施方式,该方法可以包括对数据包检查错误的步骤。在此,在输出的步骤中,可以根据检查结果输出数据包和/或区别信息。例如,在检查的步骤中,可以根据校验和检查数据包的完整性,以便识别数据包中的位错。由此可以及早地识别或还有校正数据包中的错误。因此,可以避免错误地更新目标设备上的软件。替选地,已经可以通过软件更新过程来处理位错。

根据另一实施方式,如果在检查时得出数据包有错,则可以在禁止的步骤中禁止输出数据包和/或区别信息。由此可以防止将错误的更新数据转录到目标设备上。因此,可以避免由于错误更新而导致目标设备的功能失效。

根据另一实施方式,由更新装置接收的数据包可以在没有事先计算的情况下直接转发给目标设备。在第二步骤中,目标设备和更新装置并行或依次地计算新软件。

在标识步骤中,如果来自目标设备的结果信息指示更新成功,则可以将新软件标识为当前的软件。附加地或替选地,如果目标设备的结果信息指示没有成功进行更新,输出步骤可以由更新装置重新执行,以便将用于将目标设备重置到软件的先前版本的重置信息和/或副本输出给指向目标设备的接口。由此可以将由于更小导致目标设备功能失效的风险降低到最小程度。

根据另一实施方式,在将目标设备重置到软件的先前版本的情况下,具有中央增量安装器的更新装置还可以计算新版本和旧版本之间的增量版本,以便从新版本再次恢复到旧版本,为此具有中央的增量安装器的安装单元还需要增量生成器。

附加地,此处介绍的方案创建具有如下单元的更新装置,该单元被设计用于执行和/或操控根据前述实施方式之一的方法。

此处介绍的方案还创建一种用于借助于例如车辆的目标设备处理来自根据上述实施方式之一的方法中的数据包和/或区别信息的方法,其中该方法包括以下步骤:

经由指向更新装置的接口接收数据包和/或区别信息;和

利用数据包和/或区别信息更新当前安装在目标设备上的软件。

此处介绍的方案的主题还是一种具有单元的目标设备,该单元被设计用于执行和/或操控根据上述实施方式的处理方法。

所提及的方法例如可以以软件或硬件或者以软件和硬件的混合形式例如在目标设备或更新装置中实施。

有利的还是一种具有程序代码的计算机程序产品或计算机程序,其可以存储在机器可读载体或存储介质、例如半导体存储器、硬盘或光存储器上,并且特别是当在计算机或设备上执行程序产品或程序时,用于执行\实施和/或操控根据上述实施方式之一的方法的步骤。

附图说明

在附图中示出本发明的实施例,并且在下面的描述中对其进行详细阐述。附图示出:

图1示出在根据一个实施例的方法中在目标设备上更新软件时的数据流的示意图;

图2示出创建图1中的数据包的示意图;

图3示出在更新过程的三个彼此相随的时间点的图1中的更新装置的示意图;

图4示出图1中的在目标设备上更新软件时的数据流的示意图;

图5示出根据一个实施例的用于更新软件的方法的流程图;

图6示出根据一个实施例的用于处理数据包和/或区别信息的方法的流程图;和

图7示出根据一个实施例的车辆的示意图。

在本发明的有利的实施例的以下描述中,将相同或相似的附图标记用于在各个附图中示出的且起类似作用的元件,其中放弃重复描述这些元件。

具体实施方式

图1示出在根据一个实施例的方法中在三个目标设备100、102、104上(在此仅示例性地为机器的控制设备上)更新软件时的数据流的示意图,其中该机器在此仅示例性地是车辆的机器。示出借助更新装置106进行的空中下载更新过程的示例性的流程,其中更新装置包括:具有用于具有增量更新的目标设备100、102和用于没有增量更新的目标设备104的增量安装器的安装单元102。三个目标设备100、102、104分别与例如车辆的中央的更新装置106耦联。更新装置106包括接收单元108,接收单元用于经由指向外部数据处理装置118的第一接口116(在此示例性地为无线电接口)接收与第一目标设备100相关联的第一区别信息110、与第二目标设备102相关联的第二区别信息112以及与第三目标设备104相关联的第三区别信息114,其中该接口可能也还是线缆连接或USB介质。区别信息110、112、114例如分别是在所谓的增量方法中用于更新软件的增量更新文件。在此,区别信息分别代表已安装在相应的目标设备100、102、104上的当前软件和要安装在相应的目标设备100、102、104上的新软件之间的区别。

根据该实施例,更新装置106用作用于经由第一接口116无线接收区别信息110、112、114的OTA主机(OTA=空中下载)。集成到更新装置106中的、也称作中央增量安装器的安装单元120被设计用于将由接收单元108接收的区别信息110、112、114分别与已安装在相应的目标设备100、102、104上的当前软件的、存储在适合的存储器单元122、例如闪存存储器中的副本组合成数据包。特别地,这三个数据包在此分别代表要安装在相应的目标设备100、102、104上的新软件的完整版本。

为了避免错误更新,安装单元120有利地例如借助于校验和或其他合适的校验值对数据包检查其相应的完整性。仅当数据包没有错误并且新软件的完整版本的计算也成功时,安装单元120才触发用于更新相关目标设备100、102、104的更新过程。

根据图1中所示的实施例,安装单元120例如在成功检查与第一目标设备100相关联的数据包之后将第一区别信息110,在成功检查与第二目标设备102相关联的数据包之后将第二区别信息112,并且在成功检查数据包124之后将与第三目标设备104相关联的数据包124分别输出给第二接口126,在此示例性地输出给车辆的CAN总线。目标设备100、102、104分别包括用于经由第二接口126读入数据的目标设备接收单元128以及用于更新其相应的软件的更新单元130。更新单元130分别包括适当的软件更新器。除了软件更新器之外,第一目标设备100和第二目标设备102分别包括具有用于在第一目标设备100的情况下借助于第一区别信息110或在第二目标设备104的情况下借助于第二区别信息112执行增量更新的增量安装器的更新单元。相反,在该实例中,第三目标设备104的更新单元130被设计用于借助于第三数据包124执行更新仅作为完整更新。在此,增量安装器可以理解为作为扩展成软件更新器的软件部件。相反,软件更新器可以理解为负责其自身软件更新的目标设备中的软件部件。

图2示出创建图1中的数据包的示意图。示出了接收单元108和安装单元120。为了计算要更新的软件的新版本,更新装置106首先从接收单元108接收相应的增量文件(在此例如为第一区别信息110),然后在步骤200中在存储单元中搜索当前软件的相应的副本,在随后的步骤202中通过计算新软件的完整版本利用区别信息110创建数据包,并最后在成功检查数据包后,在另一步骤204中将新软件的完整版本存储在存储单元中。

图3示出在更新过程的三个彼此相随的时间点的图1中的更新装置106的示意图。例如,在此应将版本1.0将更新为版本1.1。在左图中示出的更新过程开始时,仅目标设备、在此例如第一目标设备的软件的当前版本1.0的副本300处于存储单元122上。在接收到区别信息110之后,存储单元122除了副本300之外具有第一区别信息110,第一区别信息代表软件的版本1.0和新版本1.1之间的增量,如这在中间图中示出。右图示出在计算完整版本1.1之后的存储单元122的内容。

图4示出在更新图1中的目标设备上、在此示例性地在第一目标设备100上的软件时的数据流的示意图。如图3所示,副本300、第一区别信息110和数据包302位于更新装置106的存储单元122上。根据实施例,目标设备100以三种方式被更新。

在定期更新的情况下,更新装置106为目标设备100仅提供区别信息110。然后,目标设备100借助于增量安装器执行当前软件的更新,并最终将新软件的版本存储在目标设备存储单元400、例如闪存存储器中。

替选地,例如如果借助于增量安装器更新失败,则更新装置106为目标设备100提供具有完整版本1.1的数据包302,以更新当前软件。

第三,例如在更新出错的情况下,将目标设备100的软件重置为较早的版本,这也称为回滚。为此,例如更新装置106向目标设备100提供版本1.0的副本300。

图5示出根据一个实施例的用于更新软件的方法500的流程图。方法500可以例如借助于以上根据图1至图4描述的更新装置来执行。在此,首先在步骤510中,经由指向例如车辆外部的数据处理装置的第一接口来接收区别信息,或者根据要更新的目标设备的数量来接收多个分别与目标设备相关联的区别信息。在第二步骤502中,将区别信息分别与存在于相应的目标设备上的当前软件版本的存储在更新装置中的副本组合。所得出的数据包在此例如分别代表各目标设备的要安装的新软件的完整版本。最后在第三步骤530中,根据实施例,经由指向目标设备的第二接口示出相应的数据包或相应的区别信息。例如,如果要更新的目标设备具有合适的增量安装器,则可以仅借助于传输给目标设备的区别信息和目标设备上的当前版本以特别节省资源的方式更新到新软件版本。

图6示出根据一个实施例的用于处理数据包和/或区别信息的方法600的流程图。如上面根据图1至图5所描述的那样,方法600例如可以利用目标设备之一来执行。在此根据实施例,在第一步骤610中,经由第二接口、例如CAN总线接收相应的数据包或相应的区别信息。在第二步骤620中,只要目标设备构成用于执行增量方法,就利用例如代表要安装的新软件的完整版本的数据包或利用区别信息,更新存在于相关的目标设备上的当前的软件。与数据包相反,区别信息仅代表当前和新软件版本之间的差异。

换言之,下文再次描述了在此提出的方案的各种实施例。

借助于图1所示的更新过程,应当通过软件更新将整个系统、例如车辆内的软件置于当前版本。在此不重要的是更新是在车间还是无线地在现场进行。车辆中的每个目标单元(在图1中在该实例中为三个目标设备100、102、104)为此各具有软件更新器128,软件更新器具有完整更新功能和必要时具有增量安装前130。与具有增量安装前的软件更新器不同,没有增量安装器的软件更新器不接收增量数据,而是接收用于软件更新的完整版本。

除了标准处于车辆中的模块外,车辆具有中央增量安装器。该中央增量安装器、以前称为安装单元120或者是已经存在的部件、例如中央网关或空中下载主机的一部分,或者被实现为独立的单元。在扩展现有的中央部件时,安装单元120或中央部件例如是更新主机。

安装单元120可以经由存储单元122直接访问系统中的应通过该方法更新的所有软件的备份。特别地,所有部件的当前使用的软件的版本应当作为完整版本存在并且存储在相应大型持久性的存储单元122中。例如,这些软件备份在生产时已经一次性地被闪存或甚至预闪存。

安装单元120接受每个单独目标单元的增量更新文件,在存储单元122中搜索相应的备份,并借助于增量安装器在存储单元122中应用该组合,如这示意地在图2中示出。现在,安装单元120对所计算的新软件检查正确性,并将其本地存储为新的备份版本302。因此,更新装置106具有每个目标单元的当前软件的完整版本、每个目标单元的新软件的完整版本以及每个目标单元的相应的增量更新文件。这从图3和图4可见。

在成功计算并检查所有彼此关联的版本之后,整个系统或子系统置于更新模式中。在此,将之前接收的增量更新文件或新软件的完整版本作为更新包根据目标单元的配设提供给目标单元的各个软件更新。现在,目标单元的软件更新器例如同样使用增量更新方法并且为安装单元120确认相应的结果。

在由于预先检查而很少发生的错误的情况下,安装单元120将之前本身计算的新完整版本以数据包302的形式作为完整更新压缩地或未压缩地发送给相关的目标单元,如这在图4中示出。在回滚到旧版本的情况下,例如将副本300形式的旧备份版本作为完整更新传输。在成功更新之后,在安装单元120中注明软件的新版本302作为当前有效的版本,使得新版本可以作为用于其他更新的基准。

此外,何时且是否删除安装单元120中的旧版本,取决于存储单元122的大小。重要的是不删除要更新的部件的当前的软件的备份。

借助于增量方法更新的条件还在于安装单元120中的增量安装器和要更新的目标单元中的增量安装器兼容。

在例如经由车辆总线直接更新的情况下,应当附加地更新安装单元120,以便使版本保持相同。否则,仅可通过完整更新在现场进行随后的空中下载更新。

根据一个实施例,当前软件的副本300分别非永久地处于存储单元122中,而是在需要时才从相关的目标单元下载。因此可以取消存储单元122的初始闪存。

为了进一步减少更新的总时间,例如还可行的是将区别信息110直接地(即在没有事先检查或其他的中间步骤的情况下)转发给目标单元。

根据另一实施例,安装单元120附加地包括增量生成器,例如以便可以将通过包302和300计算的回滚文件同样作为增量文件传输。

图7示出根据一个实施例的车辆700的示意图。车辆700、例如用于客运的公路车辆具有目标设备100。目标设备100例如是具有在已知控制设备中实施的功能的发动机控制设备或安全气囊控制设备。目标设备100具有用于存储用以运行目标设备100的软件的可覆写的存储器。为了更新软件,在车辆700中集成了更新装置106,更新装置被设计用于将数据包302和附加地或替选地将包括区别信息110的信号传输给目标设备100。根据一个实施例,数据包包括用于存储在目标设备100的存储器中的软件的更新版本。根据一个实施例,区别信息110包括定义在目标设备100中存储的软件和软件的更新版本之间的差异的数据。根据一个实施例,数据包302和区别信息110以电信号的形式传递。更新装置106被设计用于从设置在车辆外部的数据处理设备118接收包括区别信息110的信号,并用于生成数据包302。为此,数据处理设备118具有组合装置,组合装置被设计用于将区别信息110与当前存储在目标设备100中的软件的存储在更新装置106的存储器中的副本300组合。数据处理装置118可选地具有检查装置,检查装置被设计用于对数据包302检查错误。根据一个实施例,更新装置106被设计用于根据在检查装置中执行的检查的结果将数据包302或区别信息110传输给目标设备100。

如果一个实施例在第一特征和第二特征之间包括“和/或”关联,则这可以解读为该实施例根据一个实施方式不仅具有第一特征而且具有第二特征,并且根据另一实施方式或者仅具有第一特征或者仅具有第二特征。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号