基于工具链构建车辆ECU软件的软件增量更新和异常检测制造技术

技术编号:24105648 阅读:50 留言:0更新日期:2020-05-09 16:49
公开的实施例涉及生成用于更新车辆中的电子控制单元(ECU)上的软件的更新包。操作可以包括:访问要存储在车辆中的ECU上的软件更新的多个属性;访问存储在车辆中的ECU上的当前软件的对应的多个属性;将所述多个属性与所述对应的多个属性进行比较;生成表示在所述比较中确定的所述多个属性和所述对应的多个属性之间的差异的增量文件;以及向所述ECU提供所述增量文件,其中,所述增量文件被配置为由所述ECU中的启动代码处理,所述启动代码使得所述增量文件能够在所述车辆中的所述ECU中执行。

Incremental update and anomaly detection of vehicle ECU software based on tool chain

【技术实现步骤摘要】
【国外来华专利技术】基于工具链构建车辆ECU软件的软件增量更新和异常检测相关申请的交叉引用本申请要求于2017年7月25日提交的第62/536,767号美国临时专利申请和于2017年9月19日提交的第62/560,224号美国临时专利申请的优先权,其全部内容通过引用并入本文。
技术介绍
现代车辆利用许多电子控制单元(ElectronicControlUnit,ECU)来控制诸如发动机、传动系统、变速器、制动器、悬架、车载娱乐系统、通信系统等组件的操作。ECU控制从动力转向到制动再到加速的现代车辆的基本操作。此外,ECU控制车辆中的许多附加功能和分析功能。例如,一些汽车可能配备有被配置为收集和分析驾驶数据的ECU,这些数据可以被提供给保险公司以确定保险费。一些汽车可能配备有被配置为增强驾驶体验的ECU,并且一些可能配备有被配置为提供高级(或自动)驾驶辅助的ECU。随着ECU的复杂度和复杂性不断增加,管理ECU上的软件性能、升级和错误修复正在成为一项挑战。目前,一辆普通汽车中大约有60到70个ECU(并且一辆豪华汽车中大约有180个ECU)。这些ECU对应于数千万行代码。维护代码变得越来越困难。此外,高度复杂的软件倾向于更容易出现漏洞(vulnerabilities),诸如软件错误、小故障和校准问题。ECU的制造商或开发商可能希望一旦发现就立即修复这些漏洞。ECU中另一类型的漏洞与ECU错误或故障有关。ECU错误可以是例如运行时错误、堆栈上溢、堆栈下溢等。ECU故障可以是例如ECU的正常或预期操作中的偏差(例如,每时间间隔执行某功能一定次数,但随后突然或随时间缓慢地“漂移(drifting)”到执行该功能不同的次数)。在ECU软件的运行中缓慢实现的漂移可能是一个特别困难的问题,因为由于缺乏任何ECU操作改变的明显迹象,其很难被立即检测到。解决受影响的车辆中的这些漏洞的一种方法是发出召回。然而,召回可能很耗时,并且不能对受影响的车辆将被及时修复提供任何保证。可选地,制造商或开发商可以尝试通过车载诊断(On-BoardDiagnostic,OBD)端口或空中(例如,使用各种类型的无线通信技术)向受影响的车辆提供修复。然而,OBD端口本身就是车辆的攻击面(attacksurface),并且空中(over-the-air)修复通常效率低下,给车主带来不便,并且容易引入额外的错误。此外,OBD和空中更新技术的当前尝试在时间和空间效率方面仍有限制。例如,空中更新技术的当前尝试要求制造商将整个ECU软件的新版本作为替换包分发给受影响的车辆。当受影响的车辆接收到替换包时,受影响的车辆要求将替换包存储到备用存储器空间(即,ECU未使用的存储器空间),从由ECU使用的存储器空间中擦除当前版本的ECU软件,将替换包从备用存储器空间复制到由ECU使用的存储器空间中,并重新启动ECU,以便它可以加载新版本的ECU软件。由于显著的存储空间限制以及对ECU的运行的中断,这在ECU中几乎是不可能的。ECU几乎已经装满了现有的软件和数据,并且用于新软件或数据的可用存储空间非常有限。此外,向ECU提供新软件存在显著的成本限制。此外,取决于ECU的角色和车辆的状况,中断ECU的处理流可能不方便或非常危险。因此,需要技术解决方案来生成、接收和处理更新包,以便在没有上述缺点的情况下更新ECU上的软件。具体地,需要解决方案来通过空中(overtheair)且在ECU上没有专用客户端的情况下,用差量软件而不是整个软件模块或软件包来更新车辆。此外,解决方案不应要求显著的额外存储器使用,或ECU本身的任何停机(downtime)。此外,这样的解决方案不应需要对ECU的存储器进行重新编程。此外,这样的解决方案应该允许将ECU上的软件版本回滚(rollback)到先前版本,而不需要下载整个软件模块,不需要对存储器进行重新编程(这可能是昂贵的、耗时的和破坏性的),并且同样不需要显著的存储器要求或ECU的任何停机。还需要技术解决方案来生成用于异常检测的数据,其将不会消耗大量的数据吞吐量来存储或传输。利用其所需的所有资源,并且不需要额外所需的资源,这样的技术应该提供精益运行性能,以使ECU上的主要应用保持运行。进一步有利的是利用仅向控制中心或服务器发送动作调用(例如,基于通过机器学习的异常检测)以执行响应动作的分布式车辆架构解决方案。此外,需要技术解决方案来应对基于车辆中的ECU之间的依赖性而产生的问题。例如,当一个ECU上的软件被更新时,它可能使得ECU不能与车辆中的其它ECU通信。例如,当对ECU的更新影响其网络地址、输入或输出通信策略、数据通信的格式或有效载荷、通信的定时、通信协议或其功能的各种其它属性时,这可能发生。因此,能够管理ECU之间的依赖性,使得对ECU的软件更新能够在可能受到更新的影响的所有ECU上进行协调和执行将是有利的。
技术实现思路
所公开的实施例描述了用于生成用于更新车辆中的电子控制单元(ECU)上的软件的更新包的非暂时性计算机可读介质和方法。例如,在示例性实施例中,可以存在包括指令的非暂时性计算机可读介质,当由至少一个处理器运行时,所述指令使得所述至少一个处理器执行用于生成用于更新车辆中的ECU上的软件的更新包的操作。所述操作可以包括:访问要存储在车辆中的ECU上的软件更新的多个属性;访问存储在车辆中的ECU上的当前软件的对应的多个属性;将所述多个属性与对应的多个属性进行比较;生成表示在所述比较中确定的所述多个属性和对应的多个属性之间的差异的增量文件(deltafile);以及向所述ECU提供所述增量文件,其中,所述增量文件被配置为由所述ECU中的启动代码处理,所述启动代码使得所述增量文件能够在所述车辆中的所述ECU中运行。根据所公开的实施例,启动代码被集成到增量文件中。根据所公开的实施例,启动代码在增量文件被ECU接收之前被安装在ECU上。根据所公开的实施例,启动代码被配置为初始化增量文件的运行时库。根据所公开的实施例,启动代码被配置为更新ECU的程序计数器以运行包含在增量文件中的指令。根据所公开的实施例,增量文件包括表示软件更新所引用的变量的值的变量数据。根据所公开的实施例,启动代码被配置为从增量文件中提取变量数据,并将变量数据放置到ECU可访问的存储器中。根据所公开的实施例,增量文件包括用于更新ECU中的存储器地址的代码。根据所公开的实施例,启动代码被配置为提取用于更新存储器地址的代码并更新ECU中的存储器地址。根据所公开的实施例,ECU上的软件被映射到多个功能单元,并且ECU被配置为利用虚拟文件系统(VirtualFileSystem,VFS)来管理和跟踪多个功能单元中的每一个的一个或多个版本。根据所公开的实施例,要存储在ECU上的软件更新的多个属性包括由VFS管理的多个功能单元中的至少一个。根据所公开的实施例,指令还包括:将第一网格应用于软件更新;将第二网格应用于存储在ECU上的当前软件;以及基于第一网格和第二网格的比较来标识多个属性和对应的多个本文档来自技高网
...

【技术保护点】
1.一种包括指令的非暂时性计算机可读介质,当由至少一个处理器运行时,所述指令使得所述至少一个处理器执行用于生成用于更新车辆中的电子控制单元ECU上的软件的更新包的操作,所述操作包括:/n访问要存储在所述车辆中的所述ECU上的软件更新的多个属性;/n访问存储在所述车辆中的所述ECU上的当前软件的对应的多个属性;/n将所述多个属性与所述对应的多个属性进行比较;/n生成表示在所述比较中确定的所述多个属性和所述对应的多个属性之间的差异的增量文件;以及/n向所述ECU提供所述增量文件,其中,所述增量文件被配置为由所述ECU中的启动代码处理,所述启动代码使得所述增量文件能够在所述车辆中的所述ECU中运行。/n

【技术特征摘要】
【国外来华专利技术】20170725 US 62/536,767;20170919 US 62/560,2241.一种包括指令的非暂时性计算机可读介质,当由至少一个处理器运行时,所述指令使得所述至少一个处理器执行用于生成用于更新车辆中的电子控制单元ECU上的软件的更新包的操作,所述操作包括:
访问要存储在所述车辆中的所述ECU上的软件更新的多个属性;
访问存储在所述车辆中的所述ECU上的当前软件的对应的多个属性;
将所述多个属性与所述对应的多个属性进行比较;
生成表示在所述比较中确定的所述多个属性和所述对应的多个属性之间的差异的增量文件;以及
向所述ECU提供所述增量文件,其中,所述增量文件被配置为由所述ECU中的启动代码处理,所述启动代码使得所述增量文件能够在所述车辆中的所述ECU中运行。


2.根据权利要求1所述的非暂时性计算机可读介质,其中,所述启动代码被集成到所述增量文件中。


3.根据权利要求1所述的非暂时性计算机可读介质,其中,所述启动代码在所述增量文件被所述ECU接收之前被安装在所述ECU上。


4.根据权利要求1所述的非暂时性计算机可读介质,其中,所述启动代码被配置为初始化所述增量文件的运行时库。


5.根据权利要求1所述的非暂时性计算机可读介质,其中,所述启动代码被配置为更新所述ECU的程序计数器以运行包含在所述增量文件中的指令。


6.根据权利要求1所述的非暂时性计算机可读介质,其中,所述增量文件包括表示由所述软件更新所引用的变量的值的变量数据。


7.根据权利要求6所述的非暂时性计算机可读介质,其中,所述启动代码被配置为从所述增量文件中提取所述变量数据,并将所述变量数据放置到所述ECU可访问的存储器中。


8.根据权利要求1所述的非暂时性计算机可读介质,其中,所述增量文件包括用于更新所述ECU中的存储器地址的代码。


9.根据权利要求8所述的非暂时性计算机可读介质,其中,所述启动代码被配置为提取用于更新存储器地址的代码并更新所述ECU中的所述存储器地址。


10.根据权利要求1所述的非暂时性计算机可读介质,其中,所述ECU上的软件被映射到多个功能单元,并且所述ECU被配置为利用虚拟文件系统VFS来管理和跟踪所述多个功能单元中的每一个的一个或多个版本。


11.根据权利要求10所述的非暂时性计算机可读介质,其中,要存储在所述ECU上的所述软件更新的所述多个属性包括由所述VFS管理的所述多个功能单元中的至少一个。


12.根据权利要求1所述的非暂时性计算机可读介质,其中,所述指令还包括:
将第一网格应用于所述软件更新;
将第二网格应用于存储在所述ECU上的所述当前软件;以及
基于所述第一网格和所述第二网格的比较来标识所述多个属性和所述对应的多个属性。


13.根据权利要求12所述的非暂时性计算机可读介质,其中,所述第一网格在一个...

【专利技术属性】
技术研发人员:Z福克斯
申请(专利权)人:奥罗拉实验室有限公司
类型:发明
国别省市:以色列;IL

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1