用于有效重新编程的车载装置及其控制方法与流程

文档序号:16854402发布日期:2019-02-12 23:05阅读:148来源:国知局
用于有效重新编程的车载装置及其控制方法与流程

本申请要求于2017年7月31日提交的第10-2017-0096914号韩国专利申请的优先权的权益,该申请通过引用并入本文,如同在此完全阐述。

本发明涉及一种用于车辆的控制器的重新编程,并且更具体地,涉及一种用于多个控制器的有效重新编程的网关及其控制方法。



背景技术:

近来,车辆以如下方式配置,在该方式中,车辆网络的大多数节点包括用于控制电子部件和底盘部件的电子控制单元(ecu),例如车身控制模块/电子时间和警报控制系统(bcm/etacs)、防抱死制动系统(abs)ecu、发动机ecu和安全气囊ecu。这些ecu设置有用于安全且经济的车辆驱动的车辆诊断服务,以防止由此引起的汽车故障,并且设置有各种车辆信息项,例如车辆驱动记录管理和统计信息。另外,ecu还设置有软件升级,即,根据需要进行重新编程,例如,改变规格并升级功能,这将参考图1进行描述。

图1是示出一般车辆中的重新编程过程的示例的示图。

参考图1,通过诊断器120、车辆的诊断器连接器130和中央网关(cgw)140将最新的固件110发送至车辆的控制器150中的作为升级对象的目标控制器。目标控制器通过预定过程、认证固件来验证诊断器,并且通过使用完全认证的固件160进行升级。这里,车辆的诊断器连接器130连接至车辆的车载诊断(obd)2节点。

在此过程中,例如固件签名工具(fst)和标准重新编程工具(srt)的安全性解决方案用于控制器的固件安全性。fst是用于通过预定过程来认证控制器的固件以获得车辆制造商的许可的工具。未经车辆制造商许可,固件不能够被认证,并且因此防止制造的固件被注入控制器中。srt是用于许可访问对应控制器的工具,以允许仅认证证书和加密密钥的所有者被授权重新编程,以用于固件重新编程。

然而,由于车辆控制器的数量和技术细节的增加,控制器被高度关联,并且因此需要相对于共同的技术/功能来更新多个控制器。例如,智能巡航控制(scc)的功能与例如发动机控制器、制动器控制器和传感器控制器的多个控制器关联。然而,通过根据诊断器和控制器的一一对应对固件重新编程来升级通用控制器的固件。将参考图2描述该过程。

图2a至图2c是用于说明一般车辆中的诊断器和控制器之间的重新编程过程的示例的示图。

参考图2a,准备了用于三个相应控制器的固件。这里,伴随着针对每个控制器的固件分别计算的认证信息。也就是说,当存在三个固件时,认证信息的数量也是3。

当使用固件同时更新控制器时,重新编程请求发送至与由诊断器准备的固件对用的控制器中的任何一个,如图2b所示(s210)。相应地,对应控制器将种子(seed)值发送至诊断器(s220)。诊断器可以使用种子值经由预定方法(位计算、加密等)来计算密钥值,并将密钥值返回至控制器(s230)。控制器使用发送至诊断器的种子值经由预定方法来计算密钥值,然后将所计算的密钥值与从诊断器接收的密钥值进行比较,以认证诊断器(s240)。当完成对诊断器的验证时,控制器将验证消息发送至诊断器(s250),并且诊断器发送固件和认证信息(s260)。控制器通过确定通过接收到的固件计算的认证信息和接收到的认证信息是否彼此相同来认证固件(s270)。

需要通过每个控制器来进行参考图2b描述的过程。例如,假设如图2c所示存在n个控制器和n个固件,每个固件需要从安全性管理器获取签名,以通过固件注入设备(诊断器)将签名分别发送至车辆中的控制器,并且由每个控制器进行认证。最后,当相对于不同控制器对固件1至n中的全部都重复进行图2b的操作s210至s270时,完全更新了n个固件。

由于该问题,特别是在更新与一个功能关联的多个固件时,即使使用相同的诊断器,也需要针对每个固件重复进行上述重新编程过程以更新每个固件,并且因此,存在的问题在于效率降低,安装在控制器中的固件在重新编程之后没有被重新认证,并且当出现问题时通过重新连接诊断器能够重新安装固件。



技术实现要素:

本发明的目的在于提供一种用于有效重新编程的装置及其控制方法。

具体地,本发明的目的在于提供一种用于多个控制器的有效重新编程的装置及其控制方法。

本发明的附加优点、目的和特征将在下面的描述中被部分地阐述,并且对于本领域普通技术人员来说,在研究以下内容时将部分地变得显而易见,或者可以从本发明的实践中获得。本发明的目的和其他优点可以通过在书面说明书及其权利要求书以及附图中特别指出的结构来实现和获得。

为了实现这些目的和其他优点,并且根据本发明的目的,如在本文中体现和广泛描述的,车辆的重新编程方法包括:通过网关认证诊断器;通过固件集成管理装置从完全认证的诊断器接收集成固件,该集成固件包括与多个目标控制器分别对应的多个固件;通过固件集成管理装置认证集成固件;通过固件集成管理装置加密并存储集成固件中包括的多个固件;以及通过固件集成管理装置生成与多个目标控制器分别对应的加密密钥,其中,加密和存储包括将多个固件加密并存储到与多个固件分别对应的加密密钥。

在本发明的另一方面中,车辆包括:多个控制器;网关,配置为认证诊断器;以及固件集成管理装置,配置为:在从完全认证的诊断器接收集成固件时,认证集成固件,其中该集成固件包括与多个控制器中的多个目标控制器分别对应的多个固件;并且加密和存储集成固件中包括的多个固件,其中,固件集成管理装置生成与多个目标控制器分别对应的加密密钥,并且将多个固件加密并存储到与多个固件分别对应的加密密钥。

附图说明

包括用于提供对本发明的进一步理解并被并入和构成该申请的一部分的附图与用以解释本发明的原理的说明书一起示出本发明的实施例。在附图中:

图1是示出一般车辆中的重新编程过程的示例的示图;

图2a至图2c是用于说明一般车辆中的诊断器和控制器之间的重新编程过程的示例的示图;

图3是用于说明根据本发明的实施例使用集成固件和固件集成管理装置的更新过程的概念的示图;

图4是示出根据本发明的实施例的固件更新系统的结构的框图;

图5是示出根据本发明的实施例的固件更新消息的格式的示例的示图;

图6是示出根据本发明的实施例的集成固件和通过固件集成管理装置进行的固件更新过程的示例的流程图;以及

图7是示出根据本发明的实施例的固件集成管理装置检查和恢复安装在单独控制器中的固件的过程的示例的流程图。

具体实施方式

详细描述本发明的示例性实施例,以使得本领域普通技术人员能够参考附图容易地实施。然而,本发明可以以各种不同的形式来实施,并且不限于这些实施例。为了清楚地描述本发明,在附图中省略了与描述无关的部分,并且在说明书中相同的附图标记表示相同的元件。

贯穿本说明书,除非明确地相反地描述,否则词语“包括”和例如“包含”或“具有”的变型将被理解为暗示包括陈述的要素,但不排除任何其他要素。另外,贯穿附图将使用相同的附图标记来指示相同或相似的部分。

根据本发明的实施例,包括多个固件的集成固件发送至车辆,并且车辆包括用于认证和管理集成固件的单独对象(以下称为“固件集成管理装置”)。

为此,根据本发明的实施例,一个信息项用于整个集成固件,而不是认证信息项对应于集成固件中包括的相应固件。另外,根据本发明的实施例,由网关进行针对诊断器的认证,并且通过固件集成管理装置进行针对集成固件的认证以及集成固件中包括的多个固件的管理。这里,固件的管理可以包括备份功能、用于单独控制器的固件传送功能、用于被完全重新编程的固件的完整性管理功能以及当固件完整性被损坏时控制器的恢复功能。

首先,将参考图3描述根据本发明的实施例的固件更新概念。

图3是用于说明根据本发明的实施例使用集成固件和固件集成管理装置的更新过程的概念的示图。

参考图3,当在固件开发操作中准备多个固件时,可以将多个固件组合成一个集成固件。例如,固件1、固件2和固件3可以包括在集成固件a中。一个集成固件中包括的固件的引用可以是车辆中实施的功能(例如,智能巡航控制、前部碰撞预防、车道偏离警告等)中涉及的控制器或更新数据,并且可以是示例性的,并且因此本发明可以不限于一个集成固件中包括的固件的引用。

在接下来的安全性管理器操作中,可以以包括分离的固件的一个集成固件为单位进行认证,而不是对单独的固件进行认证。相应地,集成固件可以包括签名信息。

可以经由诊断通信将包括签名信息的集成固件发送至车辆,并且车辆的固件集成管理装置可以认证和备份所发送的集成固件。这里,可以通过使用集成固件中包括的签名信息以集成固件为单位进行认证。固件集成管理装置可以将集成固件分成分离的固件,然后在备份期间加密并存储分离的固件,并且在这种情况下,可以生成与每个控制器对应的加密密钥,并且使用加密密钥来加密固件。

在完成认证和备份时,固件集成管理装置可以将与单独控制器对应的加密密钥和固件发送至对应的单独控制器,并且单独控制器可以对接收到的固件进行重新编程,并将结果发送至固件集成管理装置。在这种情况下,固件集成管理装置可以将加密的固件数据发送至单独控制器,或者可以在发送之前对加密的固件进行解密,并以明文的形式将固件发送至单独控制器。当发送加密的固件数据时,对应控制器可以通过使用利用固件数据获取的加密密钥来对加密的固件数据进行解密。

当使用上述方法时,通过集成多个固件而不是以单独的固件为单位进行签名和认证,可以减少签名的数量和认证的次数,由此简化更新操作和签名,并且可以将对单独控制器的认证负载移动到集成管理装置,以减轻控制器的负担。

在下文中,将参考图4描述根据本发明的实施例的固件更新系统的结构。

图4是示出根据本发明的实施例的固件更新系统的结构的框图。

参考图4,固件更新系统可以分成车辆部分和非车辆部分。在图4中,诊断器230可以对应于非车辆部分,其余部件可以对应于车辆部分。

更详细地,诊断器230可以经由诊断通信(例如,obd-2)连接至车辆的中央网关(cgw),并且cgw240可以通过数据路径(例如,can总线)连接至固件集成管理装置210以及单独控制器251、252和253。

诊断器230可以具有将新的集成固件注入车辆并在由cgw240认证之后访问固件集成管理装置210的功能。

cgw240可以是用于从车辆外部访问车辆网络的网关,并且可以认证诊断器230。

固件集成管理装置210可以加密并存储相应控制器的固件211。固件集成管理装置210可以包括用于确保数据完整性和机密性的相应控制器的加密密钥215或用于单独存储认证数据的安全性模块213。为此,固件集成管理装置210可以包括存储器以及用于存储相应控制器的固件211的区域,并且分配到安全性模块213的区域可以在逻辑上或物理上彼此分离。固件集成管理装置210可以包括处理模块,该处理模块对应于相应功能,例如集成固件的认证、加密和备份以及针对相应控制器的固件的完整性检查,并且在一些实施例中,可以包括与相应处理模块对应的软件以及用于驱动/计算软件的处理器。

控制器251、252和253中的每个都可以存储与相应控制器对应的加密密钥和固件,并且通过使用加密密钥对加密的固件进行解密,或者可以通过预定算法(例如,hmac、sha等)来自主检查固件完整性。在这种情况下,为了检查固件完整性,可以使用从固件集成管理装置210发送的随机数,并且可以将检查结果重新发送至固件集成管理装置210,这将参考图7进行更详细的描述。

在下文中,将参考图5描述发送集成固件的形式。

图5是示出根据本发明的实施例的固件更新消息的格式的示例的示图。

如图5所示,可以以固件更新消息的形式将集成固件从诊断器发送至车辆。固件更新消息可以包括报头、多个固件数据(固件1、固件2、固件3、固件x等)和签名信息(签名)。

这里,报头可以实现消息的报头功能,并且这里,包括以下中的至少一个:包括报头的版本信息的报头版本、用于从其他集成固件识别集成固件的集成固件标识信息、对应消息中包括的固件编号信息、与每个固件对应的控制器标识(id)信息、消息长度信息以及单独固件的版本信息。

签名信息可以是认证信息,指示包括报头的每个固件的签名值,并且以例如“signature=do_sign(header,firm1,firm2,firm3,…,firmx)”的形式表示。

由于使用上述形式的更新消息,所以可以排列和管理针对每个集成固件的安全性强度、认证元素、认证方法等。当集成固件时,根据控制器软件制造商,可以减少由安全性管理器和车辆制造商管理的原始设备制造商(oem)的固件的数量,从而提高管理效率。另外,如果根据控制器操作功能来集成固件,则当根据添加的或改变的车辆功能来更新多个控制器时,可以同时更新对应功能涉及的控制器,并且当根据数据/时间集成和管理控制器时,可以容易地管理版本。

在下文中,将参考图6更详细地描述固件更新过程。

图6是示出根据本发明的实施例的集成固件和通过固件集成管理装置进行的固件更新过程的示例的流程图。在图6中,假定集成固件包括与控制器1和控制器2分别对应的两个固件。

参考图6,更新过程可以主要包括:在诊断器和车辆网关之间进行的车辆访问安全性认证操作s610、固件集成管理装置接收集成固件并进行更新预处理的固件认证操作s620以及进行实际重新编程的固件重新编程操作s630。在下文中,将详细描述每个操作。

首先,现在将描述车辆访问安全性认证操作s610。

诊断器可以连接至车辆,并且然后可以向中央网关(cgw)发送认证请求(s611)。因此,cgw可以认证诊断器(s613),并且在成功认证诊断器时,cgw可以将指示认证完成的认证信息返回至诊断器(s615)。

在固件认证操作s620中,由cgw成功认证的诊断器可以访问固件集成管理装置并将集成固件发送至固件集成管理装置(s621)。固件集成管理装置可以通过使用集成固件中包括的签名来认证集成固件,并且在成功认证集成固件时,固件集成管理装置可以生成与集成固件中包括的相应固件对应的诊断器的加密密钥,并通过使用生成的加密密钥来存储单独的固件(s623)。在成功认证集成固件时,固件集成管理装置可以将与其对应的认证结果返回至诊断器(s625)。

在固件重新编程操作s630中,首先,固件集成管理装置可以将与相应控制器对应的固件和加密密钥发送至控制器(s631a和s631b)。接收固件和加密密钥的每个控制器都可以通过使用接收到的固件来更新固件并存储加密密钥(s633a和s633b)。然后,在成功更新固件时,每个控制器都可以将更新结果返回至固件集成管理装置(s635a和s635b)。因此,固件集成管理装置可以将整个集成固件的重新编程结果发送至诊断器(s637)。

当通过图6所示的过程完成重新编程时,固件集成管理装置还可以进行重新编程的后检查和恢复,这将参考图7在下面进行描述。

图7是示出根据本发明的实施例的固件集成管理装置检查和恢复安装在单独控制器中的固件的过程的示例的流程图

参考图7,在固件更新之后由固件集成管理装置进行的管理功能可以主要分为固件完整性检查功能(s710)和用于固件恢复的重新编程功能(s720)。

首先,可以如下进行完整性检查功能(s710)。

首先,固件集成管理装置可以生成随机数(s711)并将随机数发送至目标控制器(s712)。固件集成管理装置可以通过使用随机数、固件和用于对应控制器的加密密钥来进行mac计算(s713a),并且目标控制器可以通过使用接收到的随机数、在固件更新期间接收到的加密密钥以及安装在目标控制器中的固件来进行mac计算(s713b)。目标控制器可以将作为计算结果而生成的mac值发送至固件集成管理装置(s714),并且固件集成管理装置可以将接收到的mac值和由装置生成的mac值进行比较,以确定两个值是否相同,确定目标控制器的固件完整性方面不存在问题,否则,进行到固件重新编程(s720)以用于恢复(s715)。

上述完整性检查功能可以以预定时间段(基于时间或车辆里程数)进行,或者基于事件(例如,当车辆启动时等)进行。可以针对相应控制器以不同的时间段或根据事件条件来触发完整性检查。

在下文中,将描述用于恢复的固件重新编程(s720)。

当在固件完整性方面存在问题时(即,当mac值不同时),固件集成管理装置可以确定与在备份至装置的加密固件和加密密钥中存在完整性方面的问题的控制器对应的固件(s721),并将加密固件发送至对应的控制器(s723)。控制器可以通过使用预先存储的加密密钥对加密固件数据进行解密,然后进行重新编程以恢复固件(s725)。在完成固件恢复时,对应控制器可以将重新编程结果信息发送至固件集成管理装置(s727)。固件集成管理装置可以重新进行前述固件完整性检查操作(s710)以重新检查重新编程结果(s729)。

尽管图7示出了针对一个控制器的固件完整性检查和恢复操作,但固件集成管理装置可以在单独控制器的至少一个部分或整个部分上进行固件完整性检查和恢复操作,而与管理固件和加密密钥的控制器的数量无关。

前述的本发明也可以被实现为存储在计算机可读记录介质上的计算机可读代码。计算机可读记录介质是可以存储随后可由计算机读取的数据的任何数据存储设备。计算机可读记录介质的示例包括硬盘驱动器(hdd)、固态驱动器(ssd)、硅盘驱动器(sdd)、只读存储器(rom)、随机存取存储器(ram)、cd-rom、磁带、软盘、光数据存储设备等。

可以通过与如上所述配置的本发明的至少一个实施例相关的固件集成管理装置来高效地实现多个控制器。

具体地,可以通过使用一个认证信息项,由固件集成管理装置来认证和管理多个固件,并且因此可以不需要在逐个控制器的基础上进行重复认证,并且可减小认证信息的大小。

本领域技术人员将理解的是,可以通过本发明实现的效果不限于上文具体描述的内容,并且从结合附图的上述详细描述中将更清楚地理解本发明的其他优点。

对本领域的技术人员显而易见的是,在不脱离本发明的精神或范围的情况下,可以在本发明中进行各种修改和变型。因此,本发明旨在涵盖在所附权利要求及其等同物的范围内的本发明的修改和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1