首页> 中国专利> 更改控制器中软件的方法和装置以及相应的控制器

更改控制器中软件的方法和装置以及相应的控制器

摘要

更改在一个控制器的第一存储区中的软件来控制操作过程的方法和装置,其中通过执行新的软件部分代替执行旧的软件部分,并且在第一存储区中写入旧的软件部分,其中在第二存储区写入新的软件部分,和通过第一存储区内的第一转移,来代替第一存储区内的旧的软件部分而执行第二存储区内的新的软件部分,其中在执行新的软件部分后,通过第二存储区的第二转移,重新跳转回到第一存储区,并且继续执行在第一存储区中的其它的与旧的软件部分不同的软件,其中旧的软件仍保存在第一存储区。

著录项

  • 公开/公告号CN1729449A

    专利类型发明专利

  • 公开/公告日2006-02-01

    原文格式PDF

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

    申请/专利号CN200380106632.6

  • 发明设计人 P·约斯特;

    申请日2003-12-17

  • 分类号G06F9/445;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人吴立明

  • 地址 德国斯图加特

  • 入库时间 2023-12-17 16:59:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-02-29

    未缴年费专利权终止 IPC(主分类):G06F9/445 授权公告日:20080604 终止日期:20101217 申请日:20031217

    专利权的终止

  • 2008-06-04

    授权

    授权

  • 2006-03-29

    实质审查的生效

    实质审查的生效

  • 2006-02-01

    公开

    公开

说明书

本发明涉及对在一个控制器中第一存储区内的软件进行更改的方法和装置以及相应的控制器并且涉及按照独立权利要求实现该方法的计算机程序。

特别是在汽车工业中,借助软件将越来越复杂的功能转换到单个的控制器中。越来越频繁需要在交给最终用户稍前或还有稍后将软件的更改注入控制器。一般可通过以下方式消除控制器的软件的更改,即将更改注入新的软件集成等级,并且将这个新建立的软件完整地装入控制器、特别是通过在所谓的快速EPROM存储器中存储、也即通过快速存储装入。由于现有的软件规模,控制器的快速存储譬如现在已经持续直到30分钟。由于不断提升功能和功能性,并且由于由此更大的软件规模和更多的软件包这个时间在将来提升更大。

因此,本发明的任务是减少用于控制器的快速存储的这种时间耗费,由此也可得到其它优点。

本发明的出发点是更改在一个控制器的第一存储区中软件的方法和装置,以控制操作过程、特别是在车辆以及相应控制器中,其中通过执行新的软件部分来代替执行旧的软件部分,并且在第一存储区中写入旧的软件部分。在大多数情况下,软件更改、特别是程序代码的更改与不需更改的软件部分相比很小。现在优选有目的地将待更改的部分或通常只是一个软件部分装入控制器,其中这些软件部分在说明书中也称为补丁容器或包含在这样一种补丁容器中。

因此,优选地只将新的软件部分写入第二存储区,其中通过在第一存储区的第一转移代替第一存储区的旧的软件部分而执行在第二存储区的新的软件部分,并且在执行新的软件部分后通过第二存储区的第二转移重新跳转回到第一存储区,其中继续执行在第一存储区的与旧软件部分不同的其它的软件,并且旧的软件部分仍存储在第一存储区内。

这就是说,为实现更改现有的软件、也即实现更改旧的软件部分,安装一个特殊的中央补丁管理,用该中央补丁管理有目的地通过跳入和跳出来更改软件的需更改的部分。由此一方面可优选在快速存储大的软件段或软件部分时明显地减少高的时间耗费,因为其一,不如上所述地重新写入整个软件,并且其二也可节省所需的用于更改软件、也即特别清除这些软件和写入新的软件的时间耗费。

此外,由此在更改软件和软件部分时得到一个较高的灵活性,并且另一方面通过尽可能地小的改写也就是清除和写入软件部分来得到一个较小的错误率。

优选地这特别通过以下方式得以实现,即使用第二存储区、也即补丁容器区,只用于记录新的软件部分并且在程序运行或软件运行时连入新的软件部分。

在此,优选地通过至少一个链表实现第一转移和第二转移。在此,链表提供节省储存数据的位置的可能性、特别是储存软件部分,这些软件部分同时具有时间上的而且也有逻辑的顺序。由于按照这种可比较的或相同的软件部分的方式方法具有多种版本,所以链表是一个适当的附件以储存事先不可确定数量的不同软件部分的版本。在链表中,对软件部分的每个版本或对每个软件部分都导入一个指向这个软件部分的下一个版本的指针。可使用一个特殊的指针状态以对下面情况进行编码,即所属的版本是各软件部分的当前版本。同样,这种特殊的指针状态用作为相应的软件部分的识别符或标识符。在此,作为指针使用相对的或绝对的地址。在一个链表中,由此与分别存储的软件部分一起或与如包括软件部分的一个数据记录的一个信息单元一起,存储一个指向各下一个逻辑相连的信息单元的存储位置的指针、特别是在这里指向下一个新软件部分的存储位置,或是指向具有新软件部分的数据记录的存储位置,或也指向其它的跟随在旧软件部分的后边的软件的存储位置。这样,首先在该时刻能够占据这些储存位置,在这个时刻提供待存储的或待执行的信息。此外,给这个信息分配各下一个空闲的储存位置是可能的,由此这个过程此外也导致无缝隙地使用存储器。

现在,优选地将一个新软件部分的起始地址用作第一转移,拟用于从第一存储区跳出,其中能够用这个地址至少部分地改写旧的软件部分、也即需更改的软件部分。作为替代方案也可在第一存储区中设置存储单元以嵌入跳出地址。由此,在第一存储区内设置一个到补丁容器内的跳转。然后优选将其它与旧软件部分不同的软件的起始地址用作第二转移,拟用于跳回,以使无缝隙地在转换旧的软件部分以后使用或处理在第一存储区的其它的跟随的软件。

优选在新的软件部分包含这样的信息,该信息给出应代替哪些旧的软件部分和/或这种信息说明了在通过哪些新的软件部分代替旧的软件部分。对此,第二存储区、也即特别是在包括新的软件部分以及也许包括附加信息的补丁表内的每个读入的补丁容器,除至少一个新的软件部分外,还包括一个用于第一转移的地址、用于第二转移的地址、和用于可通过至少一个新的软件部分代替的旧的软件部分的开始的地址。作为附加的信息,优选可在补丁容器中包括至少一个新的软件部分的长度和/或也包括至少一个旧的软件部分的长度。这些元素、也即用于第一转移的地址、用于第二转移的地址、用于旧的软件部分的开始的地址、以及也许还有新的软件部分的长度和/或旧的软件部分的长度都可综合成在补丁容器中的一个数据记录、也即在第二存储区的、特别是在补丁表中的一个数据记录。这样,为代替旧的软件部分所需的信息,优选地针对每个旧的软件部分分别综合在一个这样的数据记录内。

在此,优选第一存储区作为第一表格和优选第二存储区作为第二表格(补丁表格)在同一存储器中得以实现。

在此,此外第一存储区和第二存储区都可优选地划分成相同大小的软件段,其中在第二存储区中的每个软件段中可写入一个新的软件部分。

然后,优选地也可给每个数据记录或每个软件段根据实施方案配备一种识别符,该识别符允许列入一个旧的软件部分和一个代替此的新的软件部分。

其它的优点和优选的方案可从说明书中以及权利要求的特征中得到。

根据在附图中所示的进一步详细说明本发明。图中:

图1示出了一个具有相应的软件的控制器,其中旧的软件部分用新的软件部分代替,并且

图2示出了具有控制器软件的第一存储区以及按照本发明所述的补丁容器,并且

图3举例示出了在补丁容器中的一个可能的数据记录。

图1示出了具有处理单元101、特别是具有微控制器以及存储装置102、特别是被划分成两个存储区103和104的控制器100。这些存储区103和104可位于控制器100的同一存储器或不同的存储器内。通过除了线路连接的通信连接以外还可表现为无线的通信连接的接口105,相应的新的软件部分由一个带有第二存储装置107的信源106、譬如另一个计算机导入控制器100。通过只传送需更改的数据、也即只传送新的软件部分和不传送整个软件,这导致明显小的传输速率,特别是也能够使用空中接口、也即无线电、超声、红外等等。除此之外,在这个位置还可同样使用线路连接的传输。

现在,图2示出了第一存储区200和第二存储区201、特别是以表格形式所示的。在此,第一存储区包括单元格或软件段205-216。单元格205-216的相应的地址分别存储在块203中。同样,第二存储区201、也即补丁表包括多个单元格217-223,也是软件段,其中能够存入所谓的补丁容器。还有在这里在块204中,对各单元格、也即对各补丁容器存储相应的地址。

如在图2中所看到的,在从第一存储区200中的旧的软件部分内,在软件段207后在软件段208中产生一个跳出到补丁表201中。在此,用跳转地址亦即到软件段218的转移将旧的软件部分208至少部分地改写。这就是说,第一更改A1以从第一存储区200到第二存储区201的转移V1A1开始。在软件段218、219运行完之后,从带有第二转移V2A1的软件段220重新转回或跳回第一存储区软件段210。如此则通过在段218和219中的新的软件部分代替软件段208和209内的旧的软件部分、也即来回跳转。在此,旧的软件部分仍包含在第一存储区中的段208和209内。

第二更改A2举例示出了在段212后的一个跳出,跳转到在第二存储区201中的段223的起点,并且示出了一个跳回,跳回到存储段214的起点。这就是说,通过第一转移V1A2和跳回或第二转移V2A2,用软件段223在软件运行方面代替软件段213,其中至少部分地仍然保持在软件段213中的旧的软件部分。只代替包括补丁表的跳转地址的部分。

为产生如图2所示的这种状态,需要这样的信息,即哪种软件部分、也即从存储区200的哪些旧的软件部分应如何更改。该信息被装入补丁表201中。

在控制器重新启动时,用补丁管理建立存储区200和存储区201之间的地址关系。补丁管理譬如放置在引导装入器中、也即在启动控制器时被处理的启动程序中。在此,按照本发明根据花费在补丁表中可包括许多在补丁管理范围内的许多信息。这些信息、这些元素可综合在单个的数据记录内,如这在图3所示的那样。该管理也可由控制器的管理单元101以自身方式实现,方式是通过将相应的信息存放在补丁容器内。

为产生补丁表的数据记录,在此提供一个辅助装置、特别是在计算机106内的辅助装置,该辅助装置上分析源代码的更改,并且据此产生补丁表的数据记录或软件部分。这些数据记录譬如由一个跳出地址、由原始软件、也即旧的软件部分,补丁表的目的地址、也即指向一个补丁容器的指针、由新的软件部分、也即譬如更改的或新的十六进制代码组成,譬如也可由已更改的程序代码的长度、也即旧的软件部分长度或新的程序代码也即新的软件部分的长度组成,以及由到第一存储区的跳回地址、也即跳回到与旧的软件部分不同的其它软件、也即特别到原始程序的跳回地址组成。此外,可给补丁容器分配一个标始符和识别符,并且它们由此被包含在数据记录中。

在此,实现本发明所述方法的信息不是都需要的,这样,譬如从起始地址和软件部分的长度可确定最终地址。尽管如此,信息的使用或者意味着时间优势,因为一个地址不须计算,而是给出了,或者在这点上的冗余信息使得检验软件的更改成为可能,和由此可能提高安全性。

同样地,用一个如此建立起来的补丁管理重新取消在软件中的更改。然后,在这样一种取消中,在第一存储区中可设置针对跳出地址的存储空间,以致于在重新使用旧的软件部分时该部分不被部分地改写。

作为这样一个补丁容器或数据记录的例子,在图3中示出了存储块300。在此,用301譬如给出了一个程序地址、也即旧的需代替的软件部分的地址,用块302给出了在补丁表中的地址。程序块303给出了新的特殊的程序代码,也即应代替旧的软件部分的新的软件部分。用块304给出了譬如新的软件部分的长度、也即以比特、字节或任意其它量为单位的代码长度,并且最后块305给出了到其它软件部分的返回地址、也即特别到第一存储区200中源程序的返回地址。

除此以外,如上所述,同样也包括识别符、也即标识符,譬如代替给出的代码长度或者附加的。这样一个如程序块300的补丁容器或整个的补丁表可很简单地通过总线系统装入控制器,譬如通过具有CAN消息的CAN总线系统。如果象所谈到的那样使用识别符或标识符、也即将其分配给一个补丁容器,则可有目的地完全实现和跟踪譬如给用户的误差报告的更改,并且也可建立并存储更改的历史,无须损失稳定测试过的程序代码、也即无错误的软件的透明度。如果纠错并无所期望的反应,则很容易恢复旧的状态、也即简单地从补丁容器中取出。通过服务于本发明方法的小的数据率,一种简单的通过空中接口的软件改正或改进,如所提到的,是可能的。

此外,有利的是,将数据的存储区、也即软件分段成同样大小的数据文件、也即同样大小的软件段,这些软件段然后同样如上述的方法那样彼此链接并且针对更改存储在补丁表中。也就是说,在第一存储区200和第二存储区201中的单元格或数据包或在其中所保存的软件无须大小一定相同,而是通过地址和补丁管理进行管理。但是,使用在第一和第二存储区的大小相同的软件段是有利的,并且作为数据记录总是交换这样完整的软件段或通过新的软件段代替旧的软件段。

由此,通过详尽描述的本发明,得到具有全部优点的控制器的一个递增的快速存储。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号