CN113454584A - 经由v2v通信且由车辆社区进行验证的到车辆的软件更新分发 - Google Patents

经由v2v通信且由车辆社区进行验证的到车辆的软件更新分发 Download PDF

Info

Publication number
CN113454584A
CN113454584A CN201980092507.5A CN201980092507A CN113454584A CN 113454584 A CN113454584 A CN 113454584A CN 201980092507 A CN201980092507 A CN 201980092507A CN 113454584 A CN113454584 A CN 113454584A
Authority
CN
China
Prior art keywords
update
vehicle
vehicles
update package
package
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980092507.5A
Other languages
English (en)
Inventor
K.米歇尔索恩
A.阿什基纳齐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Red Bend Ltd
Original Assignee
Red Bend Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Red Bend Ltd filed Critical Red Bend Ltd
Publication of CN113454584A publication Critical patent/CN113454584A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/46Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for vehicle-to-vehicle communication [V2V]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种使用经由车辆对车辆(V2V)通信信道接收的更新来更新车辆的电子控制单元(ECU)的方法包括:经由V2V通信信道从附近车辆接收多个更新包中的一个或多个更新包,所述多个更新包被分发用于更新部署在多个车辆中的多个ECU,附近车辆中的每个附近车辆位于所述V2V通信信道的接收区域内;对从每个更新包提取的标识符进行分析,以确定所述更新包是否针对于所述车辆的ECU;在肯定确定的情况下经由所述V2V通信信道与各自维持使每个更新包与相应的验证代码相关联的本地日志的所述车辆的子集进行通信,以根据所述子集的共识来证实从所述更新包提取的所述验证代码;以及在成功证实的情况下发起使用所述更新包对所述ECU的更新。

Description

经由V2V通信且由车辆社区进行验证的到车辆的软件更新 分发
背景技术
本文描述的一些实施方案涉及更新车辆的电子控制单元(ECU),并且更具体地(却非排外地)涉及使用经由车辆对车辆(V2V)通信信道而接收并且根据车辆社区的共识而验证的更新包来更新车辆的ECU。
随着汽车行业的不断进步,诸如例如汽车、卡车、摩托车等现代车辆的操作严重依赖于自动化系统,所述自动化系统利用部署在车辆中的多个电子控制单元(ECU)来控制车辆的操作的几乎每个方面。
这些ECU可控制车辆的各种系统,所述系统的范围是从关键系统到用户体验系统,例如,发动机控制系统、变速器控制系统、制动系统、照明系统、信息娱乐系统、导航系统、通信系统、门锁系统、窗户升降系统等等。
所述ECU可以是包括一个或多个处理器的处理装置,所述一个或多个处理器执行软件、固件和/或中间件模块以提供所需的功能性和特征。所述ECU还可包括一个或多个可编程逻辑装置,例如现场可编程门阵列(FPGA)等,所述一个或多个可编程逻辑装置可加载有固件以映射所述FPGA的逻辑门来提供所需的功能性和特征。
由于汽车行业的动态性质和由车辆支持的特征,在车辆离开生产和配送中心之后,ECU可偶尔需要更新。ECU因此可被配置为支持使用输送至所部署的车辆的更新包对软件、固件和/或中间件模块进行动态更新。
发明内容
根据本文描述的第一方面,提供一种使用经由车辆对车辆(V2V)通信信道而接收并且通过车辆共识而验证的更新来更新车辆的电子控制单元(ECU)的方法,所述方法包括使用车辆的一个或多个处理器执行代码来用于:
-经由一个或多个V2V通信信道从一个或多个附近车辆接收所分发的用于更新部署在多个车辆中的多个ECU的多个更新包中的一个或多个更新包。所述附近车辆中的每个车辆位于V2V通信信道的接收区域内。
-分析从更新包提取的标识符以确定所述更新包是否针对于车辆的一个或多个ECU。
-在肯定确定的情况下经由V2V通信信道与各自维持使多个更新包中的每个更新包与相应的验证代码相关联的本地日志的多个车辆的至少子集进行通信,以根据所述车辆子集的共识来证实从更新包提取的验证代码。
-在成功证实的情况下,发起使用更新包对ECU的更新。
根据本文描述的第二方面,提供一种使用经由车辆对车辆(V2V)通信信道而接收并且通过车辆共识而验证的更新来更新车辆的电子控制单元(ECU)的系统,所述系统包括:
-部署在车辆中的用于连接至一个或多个V2V通信信道的一个或多个V2V通信接口。
-车辆的耦合到一个或多个V2V通信接口的一个或多个处理器。所述处理器中的一个或多个处理器执行代码,所述代码包括:
■用以经由V2V通信信道从一个或多个附近车辆接收所分发的用于更新部署在多个车辆中的多个ECU的多个更新包中的一个或多个更新包的代码指令。所述附近车辆位于V2V通信信道的接收区域内。
■用以分析从更新包中的每个更新包提取的标识符以确定所述更新包是否针对于车辆的一个或多个ECU的代码指令。
■用以进行以下操作的代码指令:在肯定确定的情况下经由V2V通信信道与各自维持使多个更新包中的每个更新包与相应的验证代码相关联的本地日志的多个车辆的至少子集进行通信以根据所述车辆子集的共识来证实从每个更新包提取的验证代码。
■用以在成功证实的情况下发起使用更新包中的一个或多个更新包对ECU中的一个或多个ECU的更新的代码指令。
在第一方面和/或第二方面的另一实现形式中,V2V通信信道中的每个V2V通信信道是用于在紧密接近定位的车辆之间建立通信的短程通信信道。
在第一方面和/或第二方面的另一实现形式中,多个更新包中的每个更新包是由以下各项组成的群组的成员:固件更新、中间件更新和软件更新。
在第一方面和/或第二方面的任选的实现形式中,多个更新包中的每个更新包与到期时间标签相关联,相应的更新包在所述到期时间标签之后是无效的。
在第一方面和/或第二方面的另一实现形式中,多个更新包中的每个更新包源自一个或多个受信任分发系统,所述一个或多个受信任分发系统适于将多个更新包传输至多个车辆中的至少一些车辆。
在第一方面和/或第二方面的另一实现形式中,通过在针对更新包提取的一个或多个包属性与和相应的ECU相关联的一个或多个ECU属性之间进行比较来确定每个更新包针对于相应的ECU。
在第一方面和/或第二方面的另一实现形式中,多个车辆中的每个车辆与多个车辆中的至少一些其他车辆通信以连续地更新和同步其相应的本地日志。
在第一方面和/或第二方面的任选的实现形式中,由所述车辆子集中的每个车辆维持的本地日志是由区块链实施,所述区块链包括多个不可变、不可逆的区块,由一个或多个受信任分发系统针对多个更新包中的相应一个更新包创建的所述多个不可变、不可逆的区块中的每个区块使所述相应的更新包的标识符与所述相应的更新包的验证代码关联。
在第一方面和/或第二方面的另一实现形式中,首先认证一个或多个附近车辆中的每个车辆的身份和车辆子集中的每个车辆的身份以在进一步的数据交换之前建立受信任通信会话。
在第一方面和/或第二方面的另一实现形式中,验证代码是使用一个或多个散列函数针对一个或多个更新包中的每个更新包计算出的散列值,使得多个更新包中的每个更新包的相应的标识符在车辆子集中的每个车辆的日志中与相应的散列值相关联。
在第一方面和/或第二方面的另一实现形式中,所述子集的车辆的数目是根据一个或多个安全参数而设置。
在第一方面和/或第二方面的另一实现形式中,所接收的更新包中的一个或多个更新包经由V2V通信信道被传输至多个车辆中的一个或多个其他附近车辆。
在第一方面和/或第二方面的另一实现形式中,不记载对更新包的传输。
在第一方面和/或第二方面的另一实现形式中,所接收的更新包在本地存储预定义时间段并且可用于传输至一个或多个其他附近车辆。在所述预定义时间段到期时丢弃更新包。
在第一方面和/或第二方面的任选的实现形式中,所述预定义时间段根据车辆的一个或多个操作参数而调整。所述操作参数可包括车辆的地理区域、周围地形、车辆的开/关状态和/或车辆的速度。
在第一方面和/或第二方面的任选的实现形式中,在更新包的后续传输之间应用预定义不传输时间段,在预定义不传输时间段期间不传输更新包。
在第一方面和/或第二方面的任选的实现形式中,在接收到更新包之后应用预定义不接收时间段,在预定义不接收时间段期间禁止接收更新包。
在第一方面和/或第二方面的任选的实现形式中,在多个单独的接收会话中累积地接收更新包中的一个或多个更新包。在与多个车辆中的一个或多个车辆建立的多个接收会话中的每个接收会话期间,重新开始对相应的更新包的接收以接收相应的更新包的一个或多个附加部分。
在第一方面和/或第二方面的任选的实现形式中,与车辆相关联的一个或多个移动装置接收更新包中的一个或多个更新包;确定更新包是否针对于相关联的车辆的一个或多个ECU;证实所述更新包中的每个更新包;以及发起使用更新包中的一个或多个更新包的更新。
除非另外限定,否则本文所使用的所有技术和/或科技术语具有与本文描述的实施方案所属的领域中的普通技术人员通常理解的含义相同的含义。虽然可在本文描述的实施方案的实践或测试中使用与本文描述的方法和材料类似或等效的方法和材料,但在下文描述示例性方法和/或材料。在冲突的情况下,将以专利说明书(包括定义)为准。另外,材料、方法和示例仅为说明性的,而无意一定是限制性的。
本文描述的一些实施方案的方法和/或系统的实现方式可涉及手动地、自动地或其组合执行或完成选定任务。另外,根据本文描述的实施方案的方法和/或系统的实施方案的实际仪表化和装备,若干选定任务可由硬件、软件或固件或其组合使用操作系统来实施。
例如,用于执行根据本文描述的实施方案选定任务的硬件可被实施为芯片或电路。作为软件,根据本文描述的实施方案的选定任务可被实施为由使用任何合适的操作系统的计算机执行的多个软件指令。在本文描述的一些示例性实施方案中,方法和/或系统的一个或多个任务是由诸如用于执行多个指令的计算平台的数据处理器执行。任选地,所述数据处理器包括用于存储指令和/或数据的易失性存储器和/或用于存储指令和/或数据的非易失性存储装置,例如,磁性硬盘和/或可移除介质。任选地,还提供网络连接。还任选地提供显示器和/或用户输入装置,诸如键盘或鼠标。
附图说明
参考附图,在本文仅通过示例描述一些实施方案。现在特别详细参考附图,要强调的是,所示出的详情是通过示例并且用于说明性地讨论本文描述的实施方案。在此方面,与附图一起进行的描述让本领域技术人员明白可如何实践本文描述的实施方案。
在附图中:
图1是根据本文描述的一些实施方案的使用经由车辆对车辆(V2V)通信信道而接收并且通过车辆共识而验证的更新包来更新车辆的电子控制单元(ECU)的示例性过程的流程图;
图2是根据本文描述的一些实施方案的使用经由V2V通信信道而接收并且通过车辆共识而验证的更新来更新车辆的ECU的示例性系统的示意性绘示;
图3A和图3B是根据本文描述的一些实施方案的使用相关联的移动装置来使用经由V2V通信信道而接收并且通过车辆共识而验证的更新来更新车辆的ECU的系统的示例性实施方案的示意性绘示;
图4是根据本文描述的一些实施方案的使用V2V通信信道来分发和证实针对于车辆的ECU的更新包的连网车辆的示例性社区的示意性绘示;以及
图5A和图5B是根据本文描述的一些实施方案的由连网车辆的社区使用以传递和证实针对于车辆的ECU的更新包的示例性控制平面和数据平面的示意性绘示。
具体实施方式
本文描述的一些实施方案涉及更新车辆的ECU,并且更具体地(却非排外地)涉及使用经由V2V通信信道而接收并且根据车辆社区的共识而验证的更新包来更新车辆的ECU。
根据本文描述的一些实施方案,提供了用于使用经由V2V通信信道而接收并且通过包括多个车辆的社区中的至少一些车辆的共识而验证的更新包来更新车辆的ECU的方法、系统和计算机程序产品。由于此类车辆社区用作用于在所述社区的车辆中分发更新包的数据平面以及用作用于基于车辆子集中的至少大部分车辆的共识来证实所接收的更新包的控制平面,以确保所接收的更新包是真实的(真正的)和无篡改的,并且因此够资格用于更新ECU。
被分发至车辆社区的更新包例如固件更新、中间件更新、软件更新等可通常源自与一个或多个受信任供应商相关联的一个或多个受信任分发系统,所述一个或多个受信任供应商例如为汽车制造商、汽车维修服务提供商、ECU提供商、软件提供商等。
所述社区的一个或多个车辆可接收一个或多个更新包以用于更新部署在相应的车辆中的一个或多个ECU。具体地,所述车辆可经由一个或多个V2V通信信道从一个或多个其他车辆接收更新包。
由于V2V通信信道通常是具有有限的接收范围和因此有限的接收区域的短程通信信道,所以车辆可从在V2V通信信道的接收区域(范围)内的一个或多个所遇到的附近车辆接收更新包。由于V2V通信信道的短程和车辆的动态性质,在两个或更多个附近车辆之间的相遇期间,可在所述附近车辆之间建立本地自组织网络、连接和/或会话(本文之后称为自组织网络),所述附近车辆可在所述自组织网络上彼此通信,具体地,传递一个或多个更新包。
任选地,所述车辆中的一个或多个车辆可在与一个或多个附近车辆建立的多个单独的接收会话期间以累积方式接收一个或多个更新包。在多个接收会话中的每个接收会话期间,车辆可重新开始接收更新包并且接收所述更新包的一个或多个附加部分。可重复所述接收会话,直到车辆累积了整个更新包为止。
在接收到更新包之后,车辆,具体地,由车辆的一个或多个更新系统执行的更新代理,可检查所接收的更新包是否适用于所述车辆。所述更新代理可首先检查所接收的更新包是否针对于部署在车辆中的ECU中的(目标)一个或多个ECU,并且在所接收的更新包针对于车辆中的ECU的情况下检查是否需要使用所述所接收的更新包来更新目标ECU。
在确定所接收的更新包适用于车辆的ECU的情况下,更新代理可与包括社区的至少一些其他车辆的群组(子集)通信,以证实所接收的更新包是有效的。有效的更新包是真实的(真正的)的受信的更新包,其源自受信的分发系统(从其发布),并且由于是由受信的分发系统发布而是无篡改的。
为了促进用于响应于从接收到这些更新包的车辆接收的询问而证实更新包所需的用于更新包的控制平面,车辆社区可采用一个或多个分布式计算方法、算法和/或协议。另外,虽然所述社区的大多数车辆可以作为所述社区的真实且诚实的成员而受到信任,但所述社区中的至少一些车辆可以是不受信任的,例如,被一个或多个恶意方操作、劫持和/或泄露,因此将车辆社区暴露于一个或多个网络威胁。因此,为了验证车辆的分布式计算社区不受此类不受信任的车辆影响,车辆社区可采用针对于在不受信任的社区成员之间建立受信任平台(例如,区块链等)的一种或多种分布式计算方法、算法和/或协议。
作为所述受信任平台控制平面的部分,社区中的车辆中的每个车辆因此可维持本地日志(区块链实现方式中的分布式分类帐),所述本地日志使由受信任分发系统发布的所有更新包与相应的验证数据(例如,验证代码等)相关联。所述验证代码可包括(例如)使用一个或多个散列函数针对更新包中的每个更新包而计算出的散列值,使得每个更新包唯一地与相应的散列值相关联。另外,在分布式计算范例之后,社区的多个车辆不断地更新它们的本地日志并且彼此同步所述本地日志,使得由多数(且可能所有)车辆维持的所有日志都针对所发布的更新包反映相同的验证数据。
因为更新包仅由受信任分发系统发布,所以受信任分发系统是生成可传播至社区中的所有车辆的验证数据的受信任分发系统,所述车辆可相应地更新和同步它们的本地日志。另外,为了防止对本地日志的恶意操纵和/或更改,受信任分发系统可应用一个或多个单向密码算法以在多个分布式本地日志中产生不可变的数据区块,例如,区块链中的分布式分类账。
因此,为了证实所接收的更新包,更新代理车辆可与各自维持其本地日志的车辆子集通信,并且使所有日志与社区的所有其他车辆的本地日志同步。
基于根据从这些车辆的同步的本地日志提取的验证数据而实现(决定)的车辆子集中的至少大部分车辆的共识,更新代理可确定所接收的更新包是否有效。建立所述共识所需的所述子集中的车辆的数目必须等于或超过预定义阈值,即,可根据社区的一个或多个安全参数而设置的车辆的预定义数目。此类安全参数可包括(例如)社区中的车辆的总数目、车辆的地理分布、社区的类型(例如,私人拥有的车辆、机构车辆等)、在车辆之间交换的数据的安全水平(例如,加密、认证等)、控制平面协议的类型、所询问的更新包的关键度等。
在确定所接收的更新包有效的情况下,更新代理可发起更新会话以用于使用更新包来更新作为经过证实的更新包的目标的ECU。然而,在确定所接收的更新包无效的情况下,更新代理可丢弃更新包。
不管所接收的更新包是否针对于车辆的ECU,更新代理临时地存储所述更新包以用于传输至社区的一个或多个其他车辆,具体地,传输至经由V2V通信信道与其建立通信的所遇到的附近车辆。
另外,受信任平台控制平面诸如区块链例如可进一步用于记录车辆的标识信息,例如,作为社区的部分的车辆的身份(ID)。例如,在受信任分发系统中的一个或多个受信任分发系统恰当地验证了车辆的身份之后,可将每个车辆的车辆标识号(VIN)登记在受信任平台中。
因此,由每个车辆存储的本地日志可包括社区的车辆的标识信息。通过使用在本地日志中在本地可用的标识信息,车辆中的一个或多个车辆可在为了接收更新包和/或为了证实更新包而建立的通信会话期间彼此认证,以验证另一车辆是所述社区的真实成员。
现代车辆可包括用于控制车辆系统的很大量的各种类型的ECU,因此可能会发布并且在车辆社区中循环极大量的更新包。另外,因为社区的车辆是动态的和移动的,所以它们可能会遇到许多附近车辆。由于这些原因,车辆可参加的用于将更新包传递至附近车辆的传输会话的数目可极大。
然而,由于车辆ECU,具体地,执行更新代理的更新系统,可通常具有有限的存储(例如,存储容量),所以跟踪(记录、记载)此类极大量的更新包传输会话可实际上是不可能的。不能跟踪这些更新包传输以及确定哪些更新包被发送至哪些车辆可导致多个冗余的传输会话,在所述多个冗余的传输会话中会不必要地多次传输相同的更新包。例如,特定车辆可能会多次将相同的更新包传输至同一附近车辆。特定车辆还可能会从多个附近车辆多次接收相同的更新包。
这些冗余和不必要的传输会话可显著增加V2V通信信道的网络利用率,因此显著降低车辆之间的通信会话的功效。这可进一步导致更新代理处置相同的更新包的重复副本所需的计算资源的显著增加。
为了优化V2V通信信道的网络性能,社区的车辆可应用若干网络优化措施以显著减少且可能防止用于传输更新包的复制品的冗余和不必要的传输会话。
在传输侧上,由车辆中的一个或多个车辆执行的更新代理可被配置为禁用对相同更新包的多次传输。例如,在传输了特定更新包之后,更新代理可在预定义不传输时间段内进入不传输状态,在所述预定义不传输时间段期间不传输所述特定更新包。
在接收侧上,由车辆中的一个或多个车辆执行的更新代理可被配置为在接收到更新包之后在预定义不接收时间段内禁用对附加的更新包的接收。
可根据执行更新代理的车辆的一个或多个操作参数来调整所述不传输时间段和/或所述不接收时间段,所述一个或多个操作参数例如为车辆所处的地理区域、车辆的周围地形、车辆的开/关状态、车辆202的速度等。
任选地,当与一个或多个其他车辆通信以接收特定更新包时,更新代理可检查其本地临时存储的更新包(如果存在),以检查先前是否已经接收到所述特定更新包。在所述特定更新包在本地可用的情况下,更新代理可拒绝接收所述特定更新包以避免冗余的传输会话。
分发用于车辆ECU的更新包并且根据车辆社区的共识来证实这些更新包与用于将更新输送至车辆的ECU的当前现有的方法和系统相比可呈现显著优势。
首先,更新包的分发依赖于更新包在车辆之间的直接输送,而不是像现有的方法那样从有限数目的集中分发系统输送更新包。
在集中方法中,车辆中的每个车辆可单独地访问集中分发系统。由于极大量的车辆,此单独的访问可能会使将车辆连接至集中分发系统的网络负担很大。由于可需要更新的大量和多样的ECU,可进一步增加此限制。使网络过载自然可能导致所接收的更新包的较差的服务、高等待时间和(任选地)降低的可靠性。另外,像现有的方法那样与集中分发系统通信可需要车辆对基础设施网络能力。例如,车辆可配备有可为昂贵的远程网络能力,例如,蜂窝网络等,从而增加了部署在车辆中的更新系统的成本。另外,此类蜂窝网络链接的服务成本可显著高,从而进一步增加了输送更新包的成本。在另一示例中,车辆可配备有短程无线基础设施网络能力,例如,无线局域网(WLAN)等。此类网络连接可在有线网络的情况下将车辆物理地连接至网络,和/或使车辆紧密接近短程无线基础设施的接入点。这自然将更新包输送限制于特定位置和车辆位于这些位置的时间。
相比之下,经由V2V通信信道在车辆之间分发更新包可显著减少且可能防止像现有的方法那样用于与集中分发系统通信的网络过载。另外,V2V通信信道的成本和复杂性可大大低于与集中分发系统通信所需的通信手段。与和集中分发系统通信所需的通信手段的服务成本相比,经由V2V通信信道进行通信的服务成本还可以是可忽略的。
尽管事实是车辆的通信范围是有限的,但更新包可在车辆社区内快速地且有效地散布和分发。这是由于车辆和社区固有的两个主要事实。首先,车辆是移动的并且在地理区域和地点之间移动,因此会频繁遇到所述社区的其他车辆。其次,大量车辆进一步增加了车辆相遇的频率。因为极大量的车辆中的每个车辆可用作更新包的载体,所以在这些高度频繁的相遇期间,可交换更新包以在所述社区的车辆之间快速地散布。
此外,应用针对于在社区中的不受信任的车辆之间建立受信任平台的分布式计算方法、算法和/或协议可克服集中受信任实体的缺乏,所述集中受信任实体可像现有的方法那样用于验证更新包的有效性。
在社区的车辆中的每个车辆可需要维持其本地日志时,所述本地日志的大小(容量)可非常有限,因为所述本地日志仅包括与相应的验证数据相关联的每个所发布的更新包的标识符,具体地,有限大小的散列值。因此,用于维持每个车辆中的本地日志所需的存储资源可非常有限且显著较小。
另外,应用网络优化措施可确保经由V2V通信信道建立的网络的最小利用率和因此高性能和/或低等待时间,同时避免跟踪(记载)更新包传输会话,因此避免了需要分配高存储资源来进行更新包跟踪和记录。此外,应用网络优化措施可显著减少在车辆处处置用于传递更新包的重复副本的冗余的传输会话所需的计算资源。
在详细解释本文描述的至少一个实施方案之前,将理解,实施方案的应用不一定受限于在以下描述中陈述和/或在附图和/或示例中说明的部件的构造和布置和/或方法的细节。本文描述的实施方案能够有其他实施方案或能够以各种方式实践或执行。
本文描述的实施方案可包括系统、方法和/或计算机程序产品。所述计算机程序产品可包括计算机可读存储介质,在所述计算机可读存储介质上具有用于致使处理器执行本文描述的实施方案的各方面的计算机可读程序指令。
所述计算机可读存储介质可以是可保持并且存储供指令执行装置使用的指令的有形装置。所述计算机可读存储介质可以是例如(但不限于)电子存储装置、磁性存储装置、光学存储装置、电磁存储装置、半导体存储装置或前述各项的任何合适的组合。计算机可读存储介质的更特定示例的非详尽列表包括以下各项:便携式计算机软磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、静态随机存取存储器(SRAM)、便携式压缩光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)、存储器棒、软盘、机械编码装置(诸如,在上面记载有指令的穿孔卡片或凹槽中的凸起结构)以及前述各项的任何合适的组合。如本文所使用,计算机可读存储介质将不会被理解为本质上是瞬态信号,诸如无线电波或其他自由传播的电磁波、通过波导管或其他传输介质传播的电磁波(例如,穿过光纤缆线的光脉冲)或通过电线传输的电信号。
本文描述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理装置,或者经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储装置。所述网络可包括铜传输缆线、光学传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理装置中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发所述计算机可读程序指令以便存储在相应的计算/处理装置内的计算机可读存储介质中。
用于执行本文描述的实施方案的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相依指令、微代码、固件指令、状态设定数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言(诸如Smalltalk、C++等)和常规的程序编程语言(诸如“C”编程语言或类似的编程语言)。
所述计算机可读程序指令可完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立的软件包、部分在用户的计算机上且部分在远程计算机上执行或完全在远程计算机或服务器上执行。在后一种情景下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施方案中,包括(例如)可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可通过利用计算机可读程序指令的状态信息来将所述电子电路个性化而执行所述计算机可读程序指令,以便执行本文描述的实施方案的各方面。
参考方法、设备(系统)和计算机程序产品的流程图说明和/或框图来描述本文描述的实施方案的各方面。将理解,可通过计算机可读程序指令实施流程图说明和/或框图的每个框,以及流程图说明和/或框图中的框的组合。
图中的流程图和框图说明根据本文描述的各种实施方案的系统、方法和计算机程序产品的可能的实现方式的架构、功能性和操作。在此方面,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实施指定逻辑功能的一个或多个可执行指令。在一些替代性实现方式中,框中所述的功能可能不以图中所述的次序发生。举例来说,连续示出的两个框实际上可基本上同时地执行,或者有时可按照颠倒的次序执行所述框,这取决于所涉及的功能性。还将注意,可通过执行指定功能或动作或者实行专用硬件与计算机指令的组合的基于专用硬件的系统来实施框图和/或流程图说明的每个框以及框图和/或流程图说明中的框的组合。
现在参考附图,图1是根据本文描述的一些实施方案的使用经由V2V通信信道而接收并且通过车辆共识而验证的更新包来更新车辆的ECU的示例性过程的流程图。示例性过程100可由包括多个车辆的社区的一个或多个车辆执行,以用于使用经由一个或多个V2V通信信道从一个或多个其他车辆接收的更新包来更新部署在相应车辆中的一个或多个ECU,所述一个或多个其他车辆具体是在所述V2V通信信道的接收范围内的附近车辆。被分发至车辆的更新包例如固件更新、中间件更新、软件更新等可通常源自与一个或多个受信任供应商相关联的一个或多个受信任分发系统,所述一个或多个受信任供应商例如为汽车制造商、汽车维修服务提供商、ECU提供商、软件提供商等。
V2V通信信道通常是具有有限的接收范围(例如,400米)和因此有限的接收区域的短程通信信道。因此可在位于V2V通信信道的接收范围内的附近车辆之间传递更新包。
然而,尽管事实是车辆的通信范围是有限的,但更新包可在车辆社区内快速地且有效地散布和分发。这是由于车辆自身和车辆社区固有的两个主要事实。首先,车辆是移动的并且在地理区域和地点之间移动,因此会频繁遇到所述社区的其他车辆。其次,大量车辆进一步增加了车辆相遇的频率。其中相遇是在其期间社区的两个或更多个车辆彼此靠近(即,在彼此的V2V通信信道接收区域(范围)内)的时间段。在这些相遇期间,附近车辆可经由V2V通信信道彼此建立通信会话以彼此交换数据,具体地,传递一个或多个更新包。任选地,所述车辆中的一个或多个车辆通过在与一个或多个附近车辆建立的多个接收通信会话期间接收更新包的一个或多个部分而以累积方式接收更新包中的一个或多个更新包。
每当车辆接收到更新包时,车辆首先检查所接收的更新包是否适用,即,所接收的更新包是否针对于部署在车辆中的(即,目标)一个或多个ECU,并且如果是,则检查是否需要使用所接收的更新包来更新目标ECU。在确定更新包是以车辆的ECU为目标的情况下,车辆可与包括其他车辆中的至少一些车辆的群组(子集)通信以用于证实所接收的更新包是有效的,即,与由受信任分发系统最初发布那样真实的和无篡改的。
为了促进更新包证实,社区中的车辆中的每个车辆维持本地日志,所述本地日志记载了由受信任分发系统发布的所有更新包,具体地,记载了所有所发布的更新包的标识信息。所述本地日志进一步使所发布的更新包中的每个更新包与验证代码关联。所述社区的所有车辆的本地日志不断被更新并且彼此同步,使得所有日志反映相同的更新包和相关联的验证代码。
基于它们的本地日志,请求证实更新包的车辆所接近的车辆群组可对车辆作出响应声明更新包是否有效。车辆然后可基于车辆群组的成员之间的共识而确定更新包是否有效。在确定更新包有效的情况下,车辆可使用所述更新包来更新目标ECU。否则车辆可丢弃所述更新包。
不管所述更新包是否针对于车辆的ECU,车辆可临时地存储所述更新包以用于传输至在特定时间段内遇到的社区的一个或多个其他车辆。
还参考图2,所述图是根据本文描述的一些实施方案的使用经由V2V通信信道而接收并且通过车辆共识而验证的更新来更新车辆的ECU的示例性系统的示意性绘示。示例性更新系统200可部署在车辆202的社区的一个或多个车辆202中以用于执行诸如过程100的过程。更新系统200可包括网络接口210、处理器212、存储装置214和输入/输出(I/O)接口216。
网络接口210可包括用于连接至一个或多个V2V通信信道的一个或多个接口,尤其是无线接口,所述V2V通信信道例如为无线局域网(WLAN,例如Wi-Fi)、专用短程通信(DSRC)、5G(第五代)、蜂窝网络、直接装置对装置(D2D)侧链路等。网络接口210还可包括用于连接至一个或多个基础设施网络的一个或多个接口,所述基础设施网络例如为蜂窝网络、WLAN、局域网(LAN)、互联网等。
处理器212(同构或异构)可包括被布置成用于并行处理、作为群集和/或作为一个或多个多核处理器的一个或多个处理器。用于存储程序代码(程序存储)和/或数据的存储装置214可包括一个或多个非瞬态持久性存储装置,例如,只读存储器(ROM)部件、硬盘驱动器、闪存阵列等。存储装置212还可包括一个或多个易失性装置,例如,随机存取存储器(RAM)部件高速缓存存储器等。
I/O接口216可包括用于连接至部署在车辆202中的一个或多个ECU 230的一个或多个有线接口和/或无线接口。I/O接口216可包括一个或多个网络接口,例如,WLAN接口、LAN接口、控制区域网络(CAN)总线、航空无线电公司(ARINC)网络、蓝牙低功耗(BLE)接口、射频(RF)接口等。I/O接口216可包括用于连接一个或多个有线互连件的一个或多个有线接口,所述有线互连件例如为串行总线、通用串行总线(USB)等。
部署在车辆202中的ECU 230可控制车辆202系统中的一个或多个系统,例如,发动机控制系统、变速器控制系统、制动系统、照明系统、信息娱乐系统、导航系统、通信系统、门锁、窗户升降系统等。ECU 230中的每个ECU可包括诸如处理器212的处理器、诸如存储装置214的存储装置、诸如I/O接口218的I/O接口和(任选地)诸如网络接口210的网络接口。
处理器212可执行一个或多个软件模块,诸如例如过程、脚本、应用、代理、实用程序、工具等,其各自包括存储在诸如存储装置214的非暂时性介质(程序存储)中并且由诸如处理器212的一个或多个处理器执行的多个程序指令。例如,处理器212可执行更新代理220,所述更新代理用于执行过程100以发起对让从一个或多个附近车辆202接收并且被验证为有效更新包的包更新作为目标的ECU 230中的一个或多个ECU发起更新。更新代理220可进一步利用一个或多个硬件元件来用于执行过程100,所述硬件元件例如为电路、部件、集成电路(IC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)等。
处理器212可进一步访问、维持和/或更新存储在存储装置214中的一个或多个数据集,例如,文件、记录、表格等。具体地,本地日志数据集222可存储在存储装置214中,以用于使更新包中的每个更新包与用于验证所述更新包的有效性的相应的验证代码相关联。本地日志222还可包括标识信息,例如,作为社区的成员的所有车辆202的VIN。处理器212因此可执行一个或多个软件模块(例如,更新代理220、专用软件模块和/或其组合)以访问、维持和/或更新本地日志222。
更新系统200可以是部署在车辆202中的专用系统。任选地,可将更新系统200集成在ECU 230中的一个或多个ECU中,使得集成的ECU 230执行更新代理220来执行过程100。
根据本文描述的一些实施方案,可利用在物理上独立于车辆202的移动装置来支持过程100的执行,以接收一个或多个更新包、证实所述一个或多个更新包并且使用经过证实的更新包发起对相应目标ECU的更新。
现在参考图3A和图3B,所述图是根据本文描述的一些实施方案的使用相关联的移动装置来使用经由V2V通信信道而接收并且通过车辆共识而验证的更新来更新车辆的ECU的系统的示例性实施方案的示意性绘示。一个或多个车辆诸如车辆202可与在物理上独立于相应的车辆202以支持诸如过程100的过程的执行的一个或多个移动装置240相关联,所述移动装置例如为智能电话、平板计算机、膝上型计算机、智能手表、可穿戴装置等。
移动装置240包括诸如通信接口210的通信接口、诸如处理器212的处理器和诸如存储装置214的存储装置。移动装置240的处理器可执行来自移动装置240的存储装置的一个或多个软件模块。
与特定车辆202相关联的移动装置240可积极参与接收一个或多个更新包;证实所述更新包;以及在诸如ECU 230的一个或多个ECU处发起更新过程。然而,与特定车辆202相关联的移动装置240可仅用作用以向诸如更新系统200的更新系统提供对一个或多个网络的访问以用于与其他车辆202通信的中介,即,代理、网关等,所述一个或多个网络具体为V2V通信信道。
如图3A中所见,在物理上独立于车辆202的移动装置240可与车辆202相关联(配对),以用作诸如更新系统200的更新系统并且可执行诸如更新代理220的更新代理。相关联的移动装置240可进一步存储诸如本地日志222的本地日志。执行更新代理220的每个移动装置240对应于特定车辆202,使得特定移动装置240与特定车辆202唯一地配对(一对一关系),并且特定移动装置240因此被视为特定车辆202的部分或扩展。
由移动装置240执行的更新代理220可与其他车辆202中的一个或多个车辆通信。更新代理220可进一步与访问系统250通信,所述访问系统部署在车辆202中并且能够与诸如ECU 230的多个ECU通信。任选地,所述访问系统250由车辆202的ECU 230中的一个或多个ECU所利用。移动装置240可经由一个或多个有线和/或无线通信信道与访问系统250通信。例如,移动装置240可经由在它们之间建立的WLAN网络与访问系统250通信。在另一示例中,移动装置240可包括有线互连接口,所述有线互连接口例如为可连接至访问系统250的USB端口的USB端口。任选地,移动装置240经由在移动装置240与ECU 230之间建立的一个或多个有线和/或无线信道直接与ECU 230中的一个或多个ECU通信。例如,移动装置240可经由BLE信道连接至ECU 230中的一个或多个ECU。在另一示例中,移动装置240的串行接口可连接至车辆202的连接ECU 230中的一个或多个ECU的一个或多个串行信道。
移动装置240可与车辆202相关联(配对),使得在移动装置230与访问系统250之间建立受信任和安全的通信链路以向移动装置240提供对ECU 230中的一个或多个ECU的访问。具体地,所述受信任和安全的通信链路建立在由移动装置240执行的更新代理220与由访问系统250执行的车辆代理260之间。
可使用在本领域中已知的一种或多种安全方法、技术和/或实现方式来完成使移动装置240与车辆202配对,以便与访问系统250建立受信任和安全的通信链路。例如,可应用基于口令的协议,其中车辆202的用户(例如,驾驶员、拥有者等)在移动装置240和访问系统250两者处插入口令。所述口令然后可用于在移动装置240与访问系统250之间建立受信任和安全的通信链路。
如图3B中所见,移动装置240可用作用于诸如更新系统200的更新系统的代理服务器,以向更新系统200提供对一个或多个网络的访问以用于与其他车辆202通信,所述一个或多个网络具体为V2V通信信道。在这些部署中,更新系统200执行更新代理220并且通常存储本地日志222。为此,移动装置240可执行委托代理270,以引导在由更新系统200执行的更新代理220与其他车辆202之间交换的网络业务。
现在参考图4,所述图是根据本文描述的一些实施方案的使用V2V通信信道来分发和证实针对于车辆的ECU的更新包的连网车辆的示例性社区的示意性绘示。车辆的社区400可包括可经由V2V通信信道中的一个或多个V2V通信信道彼此通信的多个车辆,诸如车辆202。
社区400的车辆202可彼此通信以建立两个数据分发平面,第一数据分发平面可被视为用于传递更新包并且在社区400的车辆202之间分发所述更新包的数据平面,并且第二数据分发平面可被视为用于传递可用于证实更新包是真实的且无篡改的与所述更新包相关的验证数据的控制平面。
社区400的车辆202可是由一个或多个车辆制造商制造的车辆。此外,更新包可由一个或多个供应商设计和/或创建,并且分发给社区400的多个车辆202。
分发给车辆202的更新包可源自与一个或多个受信任供应商相关联的一个或多个受信任分发系统402,所述受信任供应商例如为汽车制造商、汽车维修服务提供商、ECU提供商、软件提供商等。
任选地,更新包中的一个或多个更新包可与到期和/或存活时间(TTL)时间标签相关联,所述到期和/或存活时间时间标签指示自从创建和/或分发相应的更新包以来的时间段,相应的更新包在所述时间段内是有效的,并且车辆202中的一个或多个车辆可在所述时间段内应用所述相应的更新包来更新诸如ECU 230的一个或多个ECU。车辆202中的一个或多个车辆,具体地,由相应车辆202执行的诸如更新代理220的更新代理能够访问例如基于本地实时时钟(RTC)、广播RTC、全球定位系统(GPS)等的定时信息,诸如当前时间和日期。基于与对所接收的更新包的到期时间标签的分析相结合的当前时间/数据,更新代理220可确定所接收的更新包是否有效。在尚未到达更新包的到期时间的情况下,更新代理220可确定所接收的更新包仍然有效,而在更新包根据到期时间标签已到期的情况下,更新代理220可确定更新包不再有效。
更新包中的每个更新包与验证数据相关联,所述验证数据具体为验证代码,针对相应的更新包而生成所述验证代码以唯一地编码相应的更新包的内容,使得可使用所述验证代码来证实相应的更新包是真实的且无篡改的。可由在产生和/或分发更新包的过程中所涉及的各方中的一方或多方来完成生成更新包的验证数据。例如,更新包中的一个或多个更新包的验证代码可由相应的更新包的供应商生成,并且与相应的更新包一起被输送至受信任分发系统402以用于分发给车辆社区400。任选地,更新包中的一个或多个更新包的验证代码可由受信任分发系统402中的一个或多个受信任分发系统在将相应的更新包分发给车辆社区400之前生成。
可使用在本领域中已知的一种或多种方法、技术和/或算法来创建验证代码。例如,可通过使用一个或多个散列函数来计算相应的更新包的散列值而生成所述验证代码。
社区400中的车辆202中的每个车辆可维持诸如本地日志222的本地日志,其中使由受信任分发系统402发布的用于分发给车辆202的多个更新包中的每个更新包与其相应的验证代码相关联。具体地,本地日志222使指派给更新包中的每个更新包的唯一标识符与相应的验证代码相关联。可将所述标识符指派给每个更新包以在一个或多个属性方面区分相应的更新包,所述属性例如为功能性、目标ECU、特征集、版本、构造、发布日期等。验证数据(即,标识符和相关联的验证代码)可显著受到限制,包括小数据容量(例如,<1KB),这主要取决于用于创建所述验证代码的算法。具体地,可仅由受信任分发系统402在发布每个新的更新包时创建将要在本地日志222中更新的验证数据,这是因为新发布的更新包需要被记录在社区400的车辆202的本地日志222中。
另外,可使用本地日志222来存储社区400的车辆202的标识信息,例如,车辆202中的每个车辆的(VIN)。
为了建立用于证实所分发的更新包的控制平面,社区400的车辆202可彼此通信并且任选地与受信任分发系统402通信以更新它们的本地日志222,以便不断地彼此同步地维持所有本地日志222。具体地,车辆202可彼此通信并且任选地与受信任分发系统402通信以交换与新发布的更新包相关的验证数据,以便相应地更新它们的本地日志222。
社区400的车辆202可尝试根据一个或多个通信条件和/或规则而彼此通信并且任选地与受信任分发系统402通信。例如,车辆202可尝试连续地与一个或多个其他车辆202和/或与受信任分发系统402建立通信会话。在另一示例中,车辆202可尝试以预定义的时间间隔(例如,每个预定义时间段)、在预定义的当日时间、在预定义的位置等与一个或多个其他车辆202和/或与受信任分发系统402建立通信会话。在另一示例中,例如由车辆202的拥有者、由维修人员等手动地指导和/或操作车辆202以与一个或多个其他车辆202和/或与受信任分发系统402建立通信会话。
由于社区400的车辆202需要彼此建立信任以便验证所交换的验证数据是真实的,所以社区400的车辆202可应用在本领域中已知的一种或多种分布式计算方法、算法和/或协议,以便在不具有集中受信任实体的情况下利用控制平面并且维持它们的本地日志222同步。例如,社区400的车辆202可构成区块链网络以维持区块链,所述区块链包括使用在本领域中已知的一种或多种单向密码算法创建的多个不可变、不可逆的区块,这呈现出在更改区块链中的区块方面的不可能的计算挑战。如此,由社区400的车辆202中的每个车辆维持的本地日志222被用作所述分布式区块链的本地副本(分类账)。不可变、不可逆区块中的每个区块使由受信任分发系统402发布的更新包中的特定一个更新包的标识符与针对相应的更新包而生成的验证代码关联。在此区块链方案中,仅经过验证的受信任分发系统402和受信任实体可向区块链附加(提交)新的区块。区块链中的每个区块使用密码签名栓至其前面的区块中的至少一些区块,从而使所提交的区块实际上不可变且不可逆,这是因为试图操纵和/或损害所提交的区块的恶意方可需要极度的计算资源,从而使得更改区块是不切实际的。另外,为了损害区块,所述恶意方可需要损害大量的车辆202,可能是大部分车辆202。损害车辆202的此类大群组也可以是不可能的,因此进一步确保区块链中的区块是不可变的且不可逆的。
如本文之前所描述,为了与其他车辆202通信并且任选地与受信任分发系统402通信以连续地更新本地日志222,社区400的车辆202中的每个车辆可执行一个或多个软件模块,例如,更新代理220、专用软件模块和/或其组合。
由于社区400包括多个车辆202,所述多个车辆由于它们的移动性和间歇开和关的状态而在自组织的基础上彼此连接,所以由车辆202形成的网络可能不是始终完全连接,并且可快速地改变其结构和布局。因此,可在社区400的位于由附近车辆202的V2V通信信道的接收范围限定的接收区域内的两个或更多个附近车辆202之间建立一个或多个本地自组织网络、连接和/或会话(本文之后称为自组织网络)410。所述接收区域因此由V2V通信信道的接收范围限制,所述接收范围可通常在数百米(例如,400米)的范围内。例如,正在行驶和/或停泊在停车场中的两个或更多个车辆202可形成此类本地自组织网络410。在另一示例中,在街道、道路等上以基本上相同的速度行驶的两个或更多个车辆可形成此类本地自组织网络410。在另一示例中,由于一个或多个交通状况(例如,红色交通灯、交通堵塞等)而临时地停在彼此旁边的两个或更多个车辆可形成此类本地自组织网络410。一旦建立了特定本地自组织网络410,连接至所述特定本地自组织网络410的车辆202可彼此通信。
任选地,车辆202中的一个或多个车辆可经由一个或多个基础设施网络与一个或多个其他车辆202通信并且任选地与受信任分发系统402中的一个或多个受信任分发系统通信以用于交换验证数据并且更新它们的本地日志202,所述基础设施网络例如为蜂窝网络、LAN、互联网等。例如,特定车辆202可经由其网络接口(诸如网络接口210)连接至一个或多个蜂窝基站,并且与其他车辆202中的一个或多个车辆和/或与受信任分发系统402通信。在另一示例中,特定车辆202可经由其网络接口210连接至一个或多个无线接入点(例如,Wi-Fi接入点),从而提供对互联网的访问。一旦连接至互联网,特定车辆202可与其他车辆202中的一个或多个车辆和/或与受信任分发系统402通信。例如,当车辆202位于其中部署有一个或多个接入点的停车场中时可建立对接入点的此类连接。在另一示例中,当位于车辆202的驾驶员和/或拥有者的住宅和/或办公室附近时,车辆202可连接至分别部署在住宅和/或办公室中的一个或多个接入点。在另一示例中,当停在驾驶员/拥有者的住宅和/或办公室处时,由网络接口210(例如,LAN接口)提供的有线网络接口可连接至在所述住宅和/或所述办公室处可用的LAN基础设施,这提供对互联网和/或受信任分发系统402的访问。
另外,为了在彼此通信的车辆202之间建立信任,与一个或多个其他车辆202通信的车辆202可首先需要其他车辆202使用在本领域中已知的一种或多种认证方法、技术和/或算法来认证自身,例如,交换使用采用私人-公开密钥对等的非对称密码而编码的消息。为了支持这样,每个车辆202可具有唯一签名来将自身认证为所交换的数据消息的始发者。所述唯一签名此外可用于验证所述消息未被篡改。可进一步使用存储社区400的所有车辆202的标识信息(例如,VIN)的本地日志222来使车辆202中的每个车辆的VIN与其唯一签名(例如,相应车辆202的公开密钥)相关联。当彼此通信时,通信的车辆202中的每个车辆可检索其他车辆202的公开密钥,并且使用所述公开密钥对由其他车辆202使用相应的私人密钥加密的所接收的消息进行解密。以此方式,通信的车辆202可彼此认证以及认证所交换的消息的内容。
现在参考图5A和图5B,所述图是根据本文描述的一些实施方案的由连网车辆的社区使用以传递和证实针对车辆的ECU的更新包的示例性控制平面和数据平面的示意性绘示。
如图5A中所见,社区400的多个车辆202可采用示例性分布式区块链502,使得车辆202中的每个车辆维持包括区块链502的本地副本的本地日志(诸如本地日志222)。区块链502可包括多个不可变、不可逆的区块512,所述区块是由受信任分发系统402创建并且被附加至区块链502,并且与由受信任分发系统402分发给社区400的多个更新包514相关联。区块512中的每个区块与更新包514中的相应一个更新包相关联,例如,区块1可与更新包1相关联,区块2可与更新包2相关联,依此类推,至可与更新包N相关联的区块N。更新包514中的每个更新包可由一个或多个段构建,所述段例如为报头、主体(数据内容)和可用作签名的注脚。
车辆202可彼此通信和/或与受信任分发系统402通信,以用于经由可被视为控制平面的多个传递使区块链502的它们的本地副本彼此同步,而更新包514自身的传递可被视为控制平面。在区块512中的每个区块中包括的数据量可显著小,并且与用于传递大体积更新包514的数据平面相比,控制平面因此可利用显著低的通信带宽。
区块512中的每个区块可包括与相应的更新包514相关的一个或多个包属性。所述包属性可包括相应的更新包的属性,例如,标识符(ID)、修订、版本、发布日期等。在另一示例中,所述包属性可包括与ECU(诸如让相应的更新包514作为目标的ECU 230)相关的属性,例如,型号、零件编号(P/N)、序列号(S/N)等。
区块512中的每个区块包括相应的更新包514的验证代码,所述验证代码可用于证实相应的更新包514是有效的,即,真实的且无篡改的,并且任选地证实其TTL是否有效。可使用在本领域中已知的一种或多种方法来实施所述验证代码。例如,所述验证代码可以是使用一个或多个散列函数针对相应的更新包514而计算的散列值。
任选地,所述散列值可用作相应的更新包514的标识符,因为假设使用充分复杂的散列函数,针对更新包514中的每个更新包而计算的散列值对于相应的更新包514是唯一的。在此类情况下,在接收到特定更新包514时,诸如更新代理220的更新代理可计算所接收的特定更新包514的散列值,并且可将所述散列值与记录在与特定更新包514相关联的相应区块512中的散列值进行比较。
如图5B中所见,社区400的多个车辆202可采用另一示例性分布式区块链504来用于记录作为社区400的真实成员的车辆202。车辆202中的每个车辆可将车辆区块链504维持为如上文描述的其本地日志222的部分。车辆区块链504可包括可仅由受信任分发系统402创建并且附加至车辆区块链504的多个区块522。区块522中的每个区块可包括相应车辆的一个或多个属性,例如,VIN、型号、制造年份、加入社区400的年份等。
如针对区块链502所描述,车辆202可经由控制平面彼此通信以及与受信任分发系统402通信,以不断更新和同步车辆区块链504的它们的本地副本,以反映加入社区400的车辆202和/或从社区400移除的车辆202。当与另一车辆202建立通信时,更新代理220可首先认证另一车辆202的身份以验证另一车辆202是社区400的真实成员并且因此可被信任。
再次参考图1。
如102处所示,过程100开始于由车辆202中的一个或多个车辆执行的更新代理220经由由网络接口210和/或移动装置240提供的V2V通信信道中的一个或多个V2V通信信道从诸如社区400的社区的一个或多个车辆202接收一个或多个更新包。具体地,更新代理220可从一个或多个附近车辆202接收更新包,所述一个或多个附近车辆位于相应车辆202的V2V通信信道的接收区域内并且与其建立了诸如自组织网络410的自组织网络。
如本文之前描述,特定车辆202可在一个或多个其他附近车辆位于所述特定车辆202的V2V通信信道的接收区域内时与所述一个或多个其他附近车辆建立自组织网络410。例如,当特定车辆202进入停车场时,所述特定车辆可标识社区400的一个或多个附近车辆202并且可建立自组织网络410。在另一示例、示例中,特定车辆202可标识以基本上相同的速度行驶特定时间段的一个或多个附近车辆,从而允许特定车辆202与在附近行驶的此车辆202建立自组织网络410。在另一示例中,特定车辆202可由于一个或多个交通状况(例如,红色交通灯、交通堵塞等)而在一个或多个附近车辆202旁边临时停下来和/或显著慢地行驶达较长时间段。在此类情况下,特定车辆202可与这些附近车辆202建立本地自组织网络410。
任选地,在从附近车辆202接收到更新包之前,更新代理220首先例如使用本文之前描述的私人-公开密钥加密方案来认证附近车辆202以验证它们的身份。为了认证附近车辆202,更新代理220可将从附近车辆202接收的VIN与记录在本地日志222中(具体地,记录在车辆区块链506中)的VIN进行比较。
任选地,更新代理220支持对更新包中的一个或多个更新包的累积接收。更新代理220可与一个或多个附近车辆建立多个单独的接收通信会话,并且接收特定更新包的一个或多个部分,直到累积了整个特定更新包为止。例如,特定车辆202的更新代理220可与第一附近车辆202建立第一接收通信会话。在所述第一接收通信会话期间,更新代理220可在终止所述第一接收通信会话之前接收特定更新包的第一部分。在稍后时间,例如,30秒、2分钟、一天、一周等,特定车辆202的更新代理220可与可以是第一附近车辆202和/或另一附近车辆202的另一附近车辆202建立第二接收通信会话。在第二接收通信会话期间,更新代理220可在终止所述第二接收通信会话之前重新开始接收所述特定更新包并且接收所述特定更新包的第二部分。更新代理可重复接收通信会话,直到接收到累积成构成整个特定更新包的特定更新包的所有部分为止。
每个更新包可针对于更新一个或多个目标ECU 230的一个或多个可执行模块(例如,软件、固件、中间件等)和/或一个或多个非可执行模块(例如,地图数据、校准信息等)。更新包中的一个或多个更新包可进一步针对于更新ECU 230中的一个或多个ECU的一个或多个硬件部件(例如,FPGA、ASIC等)的门图。更新包中的每个更新包可包括相应的ECU 230的全面修订更新(例如,新的修订、先前的修订、经过更新的修订等)或已经安装在相应的ECU 230中的可执行和/或非可执行模块的差别更新。
更新包中的每个更新包源自诸如受信任分发系统402的受信任分发系统中的一个或多个受信任分发系统,所述受信任分发系统是有资格向车辆202的社区400发布更新包的仅有实体。因此,当一个或多个软件、固件和/或中间件供应商可设计、产生和/或输送更新包时,必须首先向受信任分发系统402提供更新包,所述受信任分发系统可向社区400发布这些更新包。
任选地,可使用在本领域中已知的一个或多个加密密钥对更新包中的一个或多个更新包进行编码和/或加密,以增加更新包在分发给社区400期间的安全性。
如104处所示,更新代理220确定所接收的更新包中的每个更新包是否针对于(对准)特定车辆202的ECU 230中的一个或多个ECU。
可根据目标ECU 230的一个或多个包属性来配置更新包230中的每个更新包,所述包属性例如为类型、变体、供应商、(当前)修订等。例如,特定更新包可被配置为升级特定类型的多个ECU 230和/或由特定供应商产生的ECU 230。在另一示例中,特定更新包可被配置为升级加载有在特定修订之前的修订的特定软件模块的每个ECU 230。在另一示例中,特定ECU 230可具有多个变体,其中所述变体中的每个变体可具有不同的功能性、特征和/或能力。在此类情况下,相应的更新包的多个版本可由供应商创建并且由受信任分发系统402针对特定类型的ECU 230发布,其中可针对ECU 230的变体中的一个或多个变体来调适和/或配置所述更新包版本中的每个版本。
为了唯一地标识所发布的更新包中的每个更新包,向每个更新包指派唯一且专门地标识相应的更新包的包属性的唯一标识符。所述标识符可标识(例如)让相应的更新包作为目标的ECU 230的类型,即,相应的更新包所针对的ECU 230的类型。在另一示例中,所述标识符可标识相应的更新包的版本以标识让相应的更新包作为目标的ECU 230的变体。在另一示例中,标识符可标识相应的更新包的修订。可使用一种或多种方法、技术和/或实现方式在更新包中包括所述标识符。例如,一个或多个更新包可包括包含相应的更新包的标识符的报头。在另一示例中,可包括一个或多个更新包的标识符作为相应的更新包的元数据。另外,可使用在本领域中已知的一个或多个加密密钥对报头和/或元数据进行加密。在另一示例中,可由使用一个或多个散列函数针对相应的更新包而计算的散列值来实施所述标识符,所述一个或多个散列函数被配置为针对更新包中的每个更新包生成唯一散列值。
更新代理220可提取所接收的更新包的标识符,并且相对于部署在车辆202中的ECU 230来分析所提取的标识符,以确定所接收的更新包是否针对于(对准)特定车辆202的ECU 230中的一个或多个ECU。例如,假设所接收的更新包的标识符是其散列值,更新代理220可计算所接收的更新包的散列值,并且将计算出的散列值与本地存储在本地日志222中的诸如区块链502的区块链中的散列值进行比较。更新代理然后可标识区块链502中的相应区块512中的与计算出的散列值相关联的目标ECU 230。在另一示例中,假设所接收的更新包的标识符嵌入于更新包的报头中,更新代理220可检索所述标识符,并且将所述标识符与本地存储在本地日志222中的区块链502中的标识符进行比较。更新代理然后可标识区块链502中的相应区块512中的与检索到的标识符相关联的目标ECU 230。
例如,基于对标识符的分析,更新代理220可确定特定所接收的更新包针对于特定类型的ECU 230,例如,控制方向盘控制系统的特定ECU、控制制动系统的特定ECU、控制头灯的操作的特定ECU等。在另一示例中,更新代理220可确定特定所接收的更新包针对于加载有在所接收的更新包的修订之前的较老的软件包修订的特定ECU230。
更新代理220可应用一种或多种方法来检查让所接收的更新包作为目标的一个或多个ECU 230是否部署在车辆202中。例如,在最朴素的实现方式中,更新代理220可访问部署在车辆202中的ECU230中的每个ECU,以标识所部署的ECU 230中的每个ECU的属性(参数),例如,类型、变体、特征集、软件修订、最近的更新日期、存储容量等。更新代理220然后可相对于ECU属性来分析由所接收的更新包的标识符标识的包属性,以检查指示所接收的更新包针对于部署在车辆202中的ECU 230中的一个或多个ECU的匹配。在更高效的实现方式中,更新代理220可维持记录,例如,文件、表格、列表、数据库等,所述记录列出了部署在车辆202中的所有ECU 230并且使所列出的ECU 230中的每个ECU与其相应的ECU属性相关联。在此类情况下,更新代理220可相对于在记录中列出的所有ECU230的ECU属性来分析由所接收的更新包的标识符标识的包属性,并且检查指示所接收的更新包针对于部署在车辆202中的ECU 230中的一个或多个ECU的匹配。
如作为条件步骤的106处所示,对于所接收的更新包中的每个更新包,在更新代理220确定更新包针对于部署在车辆202中的ECU230中的一个或多个ECU的情况下,过程100分叉至步骤108,否则过程100分叉至步骤114。
如108处所示,在更新代理220确定所接收的更新包中的一个或多个更新包针对于部署在车辆202中的ECU 230之后,更新代理220与社区400的车辆202中的至少一些车辆通信以证实所接收的更新包中的每个更新包是有效的。有效的更新包是源自受信任分发系统402的真实的更新包并且是无篡改的,即,更新包的内容在由受信任分发系统402发布之后未被更改。
更新代理220可经由车辆202的V2V通信信道与社区400的车辆202的子集通信。所述子集因此可包括位于V2V通信信道的接收区域内并且形成本地自组织网络410的多个附近车辆202。
任选地,更新代理220认证附近车辆202的子集中的每个车辆,之后再继续证实所接收的更新包。
自然,在如步骤102中所描述从其接收到更新包的附近车辆202中的至少一些附近车辆与更新代理220与其交互以证实所接收的更新包的所述子集中的附近车辆202之间可能存在重叠。然而,可能不一定出现此类重叠,因为车辆202(执行更新代理220)是移动的,并且可在接收到特定更新包的时间与证实特定所接收的更新包的时间之间在地理位置和区域之间移动。随着车辆202移动,所述车辆可能会先前在车辆202的V2V通信信道的接收区域之外遇到一个或多个其他附近车辆202。因此可建立(形成)一个或多个新的本地自组织网络410,并且更新代理220可与连接至所述新形成的自组织网络410的附近车辆202通信。
如本文之前所描述,社区400中的车辆202中的每个车辆维持其相应的本地日志222,其中由受信任分发系统402发布的用于分发给社区400的车辆202的多个更新包中的每个更新包与其相应的验证数据(例如,相应的验证代码)相关联。如所描述,更新包与它们的验证代码之间的关联是基于所描述的唯一地指派给更新包中的每个更新包的标识符,使得每个更新包的每个标识符在本地日志222中与相应的验证代码(例如,针对相应的更新包计算出的散列值)相关联。
因为社区400的车辆202应用分布式计算算法和/或协议中的一种或多种分布式计算算法和/或协议(例如,区块链等)彼此通信(控制平面)以连续地同步它们的本地日志222,所以这些同步的本地日志222可反映所发布的更新包的类似的验证数据(验证代码)。
更新代理220可根据在车辆202的子集之间针对所询问的所接收的更新包而协商的共识决策来证实所接收的更新包。在车辆202的子集之间可使用一种或多种方法、算法和/或协议来协商和达到更新包是否有效的共识。例如,因为执行更新代理220的车辆202是社区400的部分,所以更新代理220可参与分布式计算协议(例如,多方计算(MPC)),其中通常使用在本领域中已知的秘密共享算法而建立车辆202的子集以产生共识决策。各自具有其本地日志222的车辆202的子集可执行MPC会话,以产生由车辆202的子集的大部分车辆根据车辆202的子集中的每个车辆的本地日志222中的每个本地日志中的可用于所询问的更新包的验证数据而达成一致的共识决策。
可根据社区400的一个或多个安全参数来限定达到共识决策所需的子集中的车辆202的数目和(任选地)多数的类型(例如,绝对多数、相对多数等)。针对社区400限定的安全参数可包括(例如)社区400中的车辆202的数目、车辆202的地理分布(即,相遇的密度或频率)、社区400的类型(即,私人拥有的车辆202、公司车辆等)、在车辆202之间交换的数据的安全水平(例如,加密、认证等)、用于维持控制平面(即,同步的本地日志222)的协议的类型(例如,区块链等)、所询问的更新包的关键度等。例如,假设社区400包括极大量的车辆202。在此类情况下,可配置和/或指导更新代理220以与包括显著大量的车辆202的车辆202的子集通信。在另一示例中,假设将社区400的车辆202中的至少一些车辆的地理分布限于显著小的地理区域,使得至少一些车辆202之间的相遇是高度频繁的。同样,在此类情况下,可配置更新代理220以与包括显著大量的车辆202的车辆202的子集通信。在另一示例中,假设社区400包括由公司拥有并且不能由外人访问的多个车辆202。由于此类社区400可相对于恶意攻击显著稳健,所以更新代理220可被配置为与包括相对少量的车辆202的车辆202的子集通信。在另一示例中,假设社区400的车辆202使用高度安全的通信协议彼此通信。在此类情况下,可配置更新代理220以与包括相对少量的车辆202的车辆202的子集通信。在另一示例中,所述子集所需的车辆202的数目取决于所询问的更新包的关键度。高关键度更新包可针对于控制关键系统的ECU 230,所述关键系统例如为方向盘系统、制动系统、加速系统、气囊系统等。低关键度更新包可针对于控制非关键系统的ECU 230,所述非关键系统例如为信息娱乐休闲系统、气候控制系统等。因此,所询问的更新包越关键,更新代理220与其通信以证实更新包的子集就需要越多的车辆202。相比之下,所询问的更新包越不关键,子集就需要越少的车辆202。
更新代理220可进一步验证所接收的更新包相对于其到期时间是有效的。更新代理220可分析指派给所接收的更新包中的一个或多个更新包的到期时间标签,并且可基于与当前时间和日期的比较来确定所接收的更新包是否仍然有效或所接收的更新包是否已到期。更新代理220可从一个或多个外部定时源来获得当前时间和日期。例如,更新代理220可从接收GPS系统的当前时间和日期的GPS传感器获得当前时间和日期。在另一示例中,更新代理220可经由网络接口210与部署在车辆202的环境中的一个或多个基础设施部件通信以获得当前时间和日期。在另一示例中,更新代理220可从一个或多个记时模块获得当前时间和日期,所述记时模块例如为与外部定时源中的一个或多个外部定时源不断地或周期性地同步的RTC。
如作为条件步骤的110处所示,对于所接收的更新包中的每个更新包,在更新代理220基于车辆202的子集的共识和(任选地)到期时间而确定所接收的更新包是有效的情况下,过程100分叉至步骤112,否则过程100分叉至步骤116。
如112处所示,在更新代理220证实所接收的更新包中的一个或多个更新包有效之后,更新代理220可使用经过证实的更新包来发起对目标ECU 230的更新。例如,更新代理220可将特定经过证实的更新包传输至所述特定更新包所针对的目标ECU 230。目标ECU230然后可使用所述特定更新包来更新其由所述特定更新包的内容指示的软件、固件和/或中间件。在另一示例中,更新代理220可将特定经过证实的更新包传输至被配置为向目标ECU 230分发更新包的中央调度器ECU 230。中央调度器ECU 230然后可将所述特定更新包传输至可使用所述特定更新包的目标ECU 230。在另一示例中,更新代理220可将特定经过证实的更新包传输至更新ECU 230,所述更新ECU被配置为使用所述特定更新包来更新一个或多个目标ECU 230。
如114处所示,更新代理220可将所接收的更新包中的一个或多个更新包在本地存储(例如)在存储装置214中,以便支持将所接收的更新包传输至社区400的一个或多个车辆202。如在过程100中所见,更新代理220可在本地存储所接收的更新包中的一个或多个更新包,而不管所述更新包是否针对于车辆202的(目标)ECU 230。这意味着更新代理220可在本地存储未针对于车辆202的ECU 230的更新包中的一个或多个更新包。
然而,由于现代车辆202中的大量ECU 230,向社区400发布的更新包的数目可能非常大,并且将大量更新包在本地存储(例如)在存储装置214中可消耗大部分存储资源。为了防止过多地利用存储装置214的存储资源,更新代理220可将所接收的更新包存储有限的预定义(存储)时间段,在此之后从存储装置214丢弃和移除(删除)相应的更新包。
在所述预定义存储时间段期间,车辆202,具体地,由车辆202的处理器(诸如处理器212)执行的软件模块(例如,更新代理220)可将所存储的更新包中的一个或多个更新包传输至在车辆202的V2V通信信道的接收区域中遇到的一个或多个附近车辆202。当遇到此类附近车辆202时,更新代理220可经由在V2V通信信道上与附近车辆202建立的本地自组织网络410将所存储的更新包中的一个或多个更新包传输至附近车辆202。
可根据车辆202的一个或多个操作参数来调整所述预定义存储时间段,所述操作参数例如为车辆202所处的地理区域、车辆202的周围地形、车辆200的开/关状态、车辆202的速度等。例如,在车辆202当前存储一个或多个更新包并且将要进入关状态(即,关闭车辆202)的情况下,可延长所述预定义时间段。延长所述预定义时间段可防止在车辆202不移动并且可能不能够有效地与其他车辆202循环和共享所存储的更新包时丢弃所存储的更新包。在另一示例中,假设车辆202正在密集市区里移动并且因此遇到大量附近车辆202。在此类车辆密集的地理区域中,在此区域中行驶的众多车辆202可容易地循环更新包。因此可显著减小所述预定义时间段,因为可与其他车辆202迅速地且快速地共享(传输)更新包。相比之下,假设车辆202正在乡村地区(例如,州际高速公路)移动,并且因此很少遇到其他车辆202。在此类情况下,可延长所述预定义时间段以确保更新包在高速公路上的可能较长行驶期间得以存储并且分发给在车辆202的目的地处的其他车辆202,因此将更新包的循环扩展至基本上较远的地理区域。在另一示例中,假设车辆202以高速行驶。在此类速度下,存在以下非常低的概率:另一附近车辆202将能够与车辆202维持自组织本地网络410达足够用于传递更新包的时间段。在此类情况下,可减小所述预定义时间段,因为在此类高速下,可能未将更新包有效地分发给其他附近车辆202。
可进一步根据存储装置214的存储容量来调整所述预定义时间段。自然,存储装置214的容量越大,存储更新包的所述预定义时间段可越长。相辅地,存储装置214的容量越小,存储更新包的所述预定义时间段可越短。另外,可根据更新包的关键度来调整所述预定义时间段。如此可能会将被标识为关键的一个或多个更新包存储较长的预定义时间段,而将较不重要的更新包存储较短的预定义时间段。
为了进一步防止过多地利用存储装置214,更新代理220不记录和/或维持用于跟踪所存储的更新包至附近车辆202的传输事件的日志,意味着更新代理220不记载哪些更新包被传输至哪些车辆202。由于现代车辆202中的大量ECU 230,向社区400发布的更新包的数目可能非常大。另外,可由每个车辆202遇到的车辆202的数目可极大。因此维持在所有相遇期间的更新包的所有传输的日志可消耗大部分存储资源。因此,为了避免为更新代理220分配此类大量存储资源来记载所述传输事件,更新代理220不记载、跟踪和/或记录这些传输事件。
然而,由于不进行哪些更新包被传输至哪些车辆202的记载或记录,所以高度可能的是,在许多情景中,多个附近车辆202可能会将相同的更新包传输至相同的车辆202,并且任选地彼此传输,从而显著增加了更新包的冗余传输所需的网络资源的利用率。更新包的所述冗余传输可进一步消耗参与传输和/或接收相同的更新包的车辆202中的一个或多个车辆处的计算资源。
例如,假设第一车辆202进入停车场并且与第二附近车辆和第三附近车辆202建立自组织网络410,并且将特定更新包传输至所述第二附近车辆和第三附近车辆202。在接收到特定更新包之后,第二附近车辆和第三附近车辆202可能会将所述特定更新包传输回到第一车辆202,所述第一车辆自然已经具有所述特定更新包,因为所述特定更新包起初是从所述第一车辆202接收的。在另一示例中,假设第一车辆202在交通堵塞中停在若干车辆202旁边,与第二附近车辆和第三附近车辆202建立自组织网络410,并且将特定更新包传输至所述第二附近车辆和第三附近车辆202。在接收到特定更新包之后,第二附近车辆和第三附近车辆202可能会将所述特定更新包传输至第四附近车辆202。另外,第一车辆202还可与第四附近车辆202通信,并且可尝试将所述特定更新包传输至所述第四附近车辆202。如此,所述第四附近车辆202可从第一车辆、第二车辆和第三车辆202接收到相同的更新包。
可应用一个或多个措施以便防止车辆202中的一个或多个车辆参与用于传递相应车辆202已经得到的更新包而发起的冗余的传输会话,而不需要记载和/或跟踪所述传输会话。可应用这些措施以提高在车辆202之间建立的网络的性能,并且任选地减少在车辆202处为更新代理220分配的用于处置多次接收的相同的更新包的计算资源。
可由被车辆202中的一个或多个车辆执行的更新代理220应用的第一措施可针对于禁止在接收到更新包之后接收附加的更新包。更新代理220可被配置为在接收到一个或多个更新包之后等待预定义不接收时间段。在所述不接收时间段期间,可禁用更新代理220来接收附加的更新包。可根据车辆202的操作参数中的一个或多个操作参数来调整所述不接收时间段,所述操作参数例如为车辆202所处的地理区域、车辆202的周围地形、车辆200的开/关状态、车辆202的速度等。例如,假设车辆202在密集市区里移动并且其中预期所述车辆遇到多个附近车辆202。在此类情况下,可将所述不接收时间段调整为显著长,因为存在以下高概率:车辆202从多个附近车辆202接收到相同的更新包和/或从相同附近车辆202多次接收到相同的更新包。将所述不接收时间段延长得显著长可允许车辆202离开其中循环相同的更新包的地理区域。另外,在所述延长的不接收时间段期间,尝试传输更新包的附近车辆202可由于它们的预定义存储时间段到期而丢弃它们的所存储的更新包并且因此停止重复传输所述更新包。在另一示例中,假设车辆202以高速行驶。在此类速度下,存在以下非常低的概率:同一附近车辆202在长时间段内位于车辆202的接收区域内,并且因此可减小所述不接收时间段。
可由更新代理220应用的第二措施针对于禁止对相同的更新包的重复的后续传输。更新代理220可被配置为在传输了相应的更新包之后等待预定义不传输时间段。在所述不传输时间段期间,可禁用更新代理220来传输相应的更新包。可根据车辆202的操作参数中的一个或多个操作参数来调整所述不传输时间段,所述操作参数例如为车辆202所处的地理区域、车辆202的周围地形、车辆200的开/关状态、车辆202的速度等。例如,假设车辆202在停车场内以相对低速移动,使得预期车辆202在长时间段内遇到相同附近车辆202。在此类情况下,不记载或跟踪传输事件的更新代理220可能会发起多个传输会话以将相同的更新包传输至同一附近车辆202。在此类情况下,可将不传输时间段调整得显著长,以防止更新代理220在多个传输会话期间多次传输相同的更新包,这是因为有可能可与同一附近车辆202执行这些传输会话中的至少一些传输会话。在另一示例中,假设车辆202以高速行驶,其中存在以下非常低的概率:同一附近车辆202在长时间段内位于车辆202的接收区域内。在此类情况下,可显著减小不传输时间段以使更新代理220能够在与附近车辆202建立的多个传输会话中重复地传输相同的更新包,这是因为很有可能与不同的附近车辆202执行传输会话中的每个传输会话。
任选地,当与一个或多个其他车辆202通信以接收特定更新包时,更新代理220可检查所述特定更新包在先前被接收和存储以供潜在地传输至其他车辆202之后当前是否在本地存储在车辆202处。更新代理220可在所述特定更新包的标识符与当前在本地存储的更新包中的每个更新包的标识符之间进行比较,以检查是否已经在车辆202处接收了所述特定更新包。在更新代理220确定所述特定更新包因为先前被接收而在本地可用的情况下,更新代理220可终止通信会话并且拒绝接收所述特定更新包以减少冗余的传输。
如116处所示,更新代理220丢弃所接收的更新包。可由于一个或多个原因和过程100的执行路径而丢弃所接收的更新包。例如,更新代理220可丢弃如步骤110中所描述确定为无效的更新包中的一个或多个更新包。在另一示例中,更新代理220可丢弃预定义存储时间段已经到期的在本地存储的更新包中的一个或多个更新包。
预期在从本申请成熟起来的专利的有效期限期间,将形成许多相关的系统、方法和计算机程序,并且术语ECU和V2V通信信道的范围意在先天地包括所有此类新的技术。
如本文使用,术语“约”是指±10%。
术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”、“包括(including)”、“具有”和它们的结合物是指“包括(但不限于)”。此术语涵盖术语“由……组成”和“实质上由……组成”。
短语“实质上由……组成”是指组成或方法可包括附加的成分和/或步骤,但是只有在所述附加的成分和/或步骤未实质上改变要求保护的组成或方法的基本和新颖特性的情况下才如此。
如在本文使用,除非上下文另外清楚地规定,否则单数形式“一”和“所述”包括复数参考。例如,术语“化合物”或“至少一种化合物”可包括多种化合物,包括其混合物。
在整个本申请中,可按照范围格式呈现本文描述的各种实施方案。应理解,呈范围格式的描述仅仅是出于便利和简洁起见,并且不应解释为对本文描述的实施方案的范围的死硬限制。因此,对范围的描述应被视为已经具体地公开了所有可能的子范围和那个范围内的个别数值。例如,对诸如从1到6的范围的描述应被视为已经具体公开了诸如从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等的子范围,以及那个范围内的单个数字,例如1、2、3、4、5和6。不管范围的宽度如何,这都适用。
每当在本文指示数值范围时,这意味着包括所指示的范围内的任何引用的数字(分数或整数)。短语“在第一指示数字与第二指示数字之间的范围”和“从第一指示数字到第二指示数字的范围”在本文可互换地使用,并且意在包括第一指示数字和第二指示数字以及其间的所有分数和整数数字。
词语“示例性”在本文中用于指“充当示例、例子或说明”。被描述为“示例性”的任何实施方案不一定解释为比其他实施方案优选或有利,和/或从其他实施方案排除特征的并入。
本文使用词语“任选地”来指“在一些实施方案中提供而在其他实施方案中不提供”。本文描述的任何特定实施方案可包括多个“任选的”特征,除非这些特征冲突。
应了解,出于清楚起见而在单独的实施方案的背景下描述的本文描述的实施方案的某些特征还可在单个实施方案中组合地提供。相反地,出于简明起见而在单个实施方案的背景下描述的本文描述的实施方案的各种特征还可在任何其他所描述的实施方案中单独地或以任何合适的子组合或在合适时提供。在各种实施方案的背景下描述的某些特征将不被视为那些实施方案的本质特征,除非所述实施方案在没有那些元件的情况下不起作用。
虽然已经结合本文描述的实施方案的特定实施方案描述了本文描述的实施方案,但显然,本领域技术人员将明白许多替代方案、修改和变化。因此,意在包含落在所附权利要求的精神和广泛范围内的所有此类替代方案、修改和变化。
在本说明书中提及的所有公布、专利和专利申请在本文以全文引用的方式并入所述说明书中,如同每个单独的公布、专利或专利申请都被明确地且单独地指示为以引用的方式并入本文一般。另外,本申请中的任何参考的引用或标识不应解释为认可此类参考可用作本文描述的实施方案的现有技术。就使用段落标题而言,所述段落标题不应解释为一定具限制性。另外,本申请的任何优先权文献在此以全文以引用的方式并入本文。

Claims (20)

1.一种使用经由车辆对车辆(V2V)通信信道而接收并且通过车辆共识而验证的更新来更新车辆的电子控制单元(ECU)的方法,所述方法包括:
使用车辆的至少一个处理器执行代码来用于:
经由至少一个V2V通信信道从至少一个附近车辆接收多个更新包中的至少一个更新包,所述多个更新包被分发用于更新部署在多个车辆中的多个ECU,所述至少一个附近车辆位于所述至少一个V2V通信信道的接收区域内;
对从所述至少一个更新包提取的标识符进行分析,以确定所述至少一个更新包是否针对于所述车辆的至少一个ECU;
在确定结果是肯定的情况下,经由所述至少一个V2V通信信道与各自维持使所述多个更新包中的每个更新包与相应的验证代码相关联的本地日志的所述多个车辆的至少子集进行通信,以根据所述车辆子集的共识来证实从所述至少一个更新包提取的所述验证代码;以及
在成功证实的情况下发起使用所述至少一个更新包对所述至少一个ECU的更新。
2.如权利要求1所述的方法,其中所述至少一个V2V通信信道是用于在紧密接近定位的车辆之间建立通信的短程通信信道。
3.如权利要求1所述的方法,其中所述多个更新包中的每个更新包是由以下各项组成的群组的成员:固件更新、中间件更新和软件更新。
4.如权利要求1所述的方法,所述方法还包括使所述多个更新包中的每个更新包与到期时间标签相关联,相应的更新包在所述到期时间标签之后是无效的。
5.如权利要求1所述的方法,其中所述多个更新包中的每个更新包源自至少一个受信任分发系统,所述至少一个受信任分发系统适于将所述多个更新包传输至所述多个车辆中的至少一些车辆。
6.如权利要求1所述的方法,其中通过在针对所述至少一个更新包提取的至少一个包属性与和所述至少一个ECU相关联的至少一个ECU属性之间进行比较而确定所述至少一个更新包针对于所述至少一个ECU。
7.如权利要求1所述的方法,其中所述多个车辆中的每个车辆与所述多个车辆中的至少一些其他车辆通信以连续地更新和同步其相应的本地日志。
8.如权利要求1所述的方法,所述方法还包括由区块链实施由所述车辆子集中的每个车辆维持的所述本地日志,所述区块链包括多个不可变、不可逆的区块,由至少一个受信任分发系统针对所述多个更新包中的相应一个更新包创建的所述多个不可变、不可逆的区块中的每个区块将所述相应的更新包的所述标识符与所述相应的更新包的所述验证代码相关联。
9.如权利要求1所述的方法,其中首先认证所述至少一个附近车辆的身份和所述车辆子集中的每个车辆的身份以在进一步的数据交换之前建立受信任通信会话。
10.如权利要求1所述的方法,其中所述验证代码是使用至少一个散列函数针对所述至少一个更新包计算出的散列值,使得所述多个更新包中的每个更新包的相应的标识符在所述车辆子集中的每个车辆的日志中与相应的散列值相关联。
11.如权利要求1所述的方法,其中根据至少一个安全参数来设置所述子集的车辆的数目。
12.如权利要求1所述的方法,其中经由所述至少一个V2V通信信道将所接收的至少一个更新包传输至所述多个车辆中的至少一个其他附近车辆。
13.如权利要求12所述的方法,其中不记载所述至少一个更新包的传输。
14.如权利要求12所述的方法,其中所接收的至少一个更新包在本地存储预定义时间段并且可用于传输至至少一个其他附近车辆,在所述预定义时间段到期时丢弃所述至少一个更新包。
15.如权利要求14所述的方法,所述方法还包括根据所述车辆的至少一个操作参数来调整所述预定义时间段,所述至少一个操作参数是由以下各项组成的群组的成员:所述车辆的地理区域、周围地形、所述车辆的开/关状态和所述车辆的速度。
16.如权利要求12所述的方法,所述方法还包括在所述至少一个更新包的后续传输之间等待预定义不传输时间段,在所述预定义不传输时间段期间不传输所述至少一个更新包。
17.如权利要求1所述的方法,所述方法还包括在接收到所述至少一个更新包之后等待预定义不接收时间段,在所述预定义不接收时间段期间禁止接收更新包。
18.如权利要求1所述的方法,所述方法还包括在多个单独的接收会话中累积地接收所述至少一个更新包,在与所述多个车辆中的至少一个车辆建立的所述多个接收会话中的每个接收会话期间,重新开始对所述至少一个更新包的接收以接收所述至少一个更新包的至少一个附加部分。
19.如权利要求1所述的方法,所述方法还包括与所述车辆相关联的至少一个移动装置接收所述至少一个更新包;确定所述至少一个更新包是否针对于所述相关联的车辆的所述至少一个ECU;证实所述至少一个更新包;以及发起使用所述至少一个更新包的更新。
20.一种使用经由车辆对车辆(V2V)通信信道而接收并且通过车辆共识而验证的更新来更新车辆的电子控制单元(ECU)的系统,所述系统包括:
至少一个V2V通信接口,所述至少一个V2V通信接口部署在车辆中以用于连接到至少一个V2V通信信道;和
所述车辆的至少一个处理器,所述至少一个处理器耦合到所述至少一个V2V通信接口,所述至少一个处理器执行代码,所述代码包括:
用以经由所述至少一个V2V通信信道从至少一个附近车辆接收多个更新包中的至少一个更新包的代码指令,所述多个更新包被分发用于更新部署在多个车辆中的多个ECU,所述至少一个附近车辆位于所述至少一个V2V通信信道的接收区域内;
用以对从所述至少一个更新包提取的标识符进行分析以确定所述至少一个更新包是否针对于所述车辆的至少一个ECU的代码指令;
用以进行以下操作的代码指令:在确定的结果是肯定的情况下经由所述至少一个V2V通信信道与所述多个车辆的至少子集进行通信,以根据所述车辆子集的共识来证实从所述至少一个更新包提取的所述验证代码,所述多个车辆的至少子集各自维持使所述多个更新包中的每个更新包与相应的验证代码相关联的本地日志;和
用以在成功证实的情况下发起使用所述至少一个更新包对所述至少一个ECU的更新的代码指令。
CN201980092507.5A 2019-02-19 2019-02-19 经由v2v通信且由车辆社区进行验证的到车辆的软件更新分发 Pending CN113454584A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IL2019/050199 WO2020170233A1 (en) 2019-02-19 2019-02-19 Software updates distribution to vehicles via v2v communication and verification by a community of vehicles

Publications (1)

Publication Number Publication Date
CN113454584A true CN113454584A (zh) 2021-09-28

Family

ID=65718064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980092507.5A Pending CN113454584A (zh) 2019-02-19 2019-02-19 经由v2v通信且由车辆社区进行验证的到车辆的软件更新分发

Country Status (4)

Country Link
US (1) US20220147337A1 (zh)
EP (1) EP3928197A1 (zh)
CN (1) CN113454584A (zh)
WO (1) WO2020170233A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210049285A1 (en) * 2020-10-28 2021-02-18 Intel Corporation Transient dataset management system
US11107350B2 (en) * 2018-07-18 2021-08-31 Verizon Patent And Licensing Inc. Carrier agnostic relay for delivering information to autonomous vehicles
CN110609872B (zh) * 2019-09-20 2021-03-05 北京海益同展信息科技有限公司 用于同步节点数据的方法和装置
US11645086B2 (en) * 2019-11-20 2023-05-09 Jpmorgan Chase Bank, N.A. System and method for implementing a filesystem agent management solution
EP3839667A1 (en) * 2019-12-18 2021-06-23 Volkswagen Ag A method, a device and a computer program for operating a modular test bench comprising at least one test module to test a test object
US11314495B2 (en) 2020-03-30 2022-04-26 Amazon Technologies, Inc. In-vehicle synthetic sensor orchestration and remote synthetic sensor service
US20220078077A1 (en) * 2020-09-08 2022-03-10 Amazon Technologies, Inc. Virtual vehicle domain control unit (dcu) service and orchestration environments
EP4275137A1 (en) * 2021-01-07 2023-11-15 Red Bend Ltd. Establishing trust by a community of vehicles
US11743334B2 (en) 2021-03-31 2023-08-29 Amazon Technologies, Inc. In-vehicle distributed computing environment
US11900089B2 (en) * 2021-05-04 2024-02-13 Red Hat, Inc. Automatically configuring and deploying a software operator in a distributed computing environment from a package
US11531534B1 (en) * 2021-06-22 2022-12-20 Dell Products L.P. Express update deployment system
EP4290396A1 (en) * 2022-06-07 2023-12-13 Valeo Internal Automotive Software Egypt, a limited liability company Updating software of an electronic circuit for a vehicle

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070299940A1 (en) * 2006-06-23 2007-12-27 Microsoft Corporation Public network distribution of software updates
CN105791387A (zh) * 2015-01-13 2016-07-20 福特全球技术公司 车辆控制更新方法和系统
US20160210131A1 (en) * 2015-01-21 2016-07-21 Ford Global Technologies, Llc Vehicle control update methods and systems
US20180024826A1 (en) * 2016-07-19 2018-01-25 Ford Global Technologies, Llc Vehicle region-specific software updates distribution
US20180088928A1 (en) * 2016-09-28 2018-03-29 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
CN108093053A (zh) * 2017-12-21 2018-05-29 北京摩拜科技有限公司 车辆配置方法、服务器、车辆及车辆系统
CN108270573A (zh) * 2018-01-12 2018-07-10 西安电子科技大学 无人驾驶汽车的隐私保护方法
US20180285088A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Method and system to accelerate iot patch propagation and reduce security vulnerabilities exposure time
US20190050217A1 (en) * 2018-03-30 2019-02-14 Intel Corporation Systems, methods and apparatus for distributed software/firmware update and software versioning system for automated vehicles

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI489818B (zh) * 2013-01-04 2015-06-21 Quanta Comp Inc 遠端升級伺服器及其適用之負載平衡方法
EP3407197B1 (en) * 2014-07-31 2022-08-17 Mitsubishi Electric Corporation Device management apparatus, management program update method and program
US10871952B2 (en) * 2017-12-20 2020-12-22 Nio Usa, Inc. Method and system for providing secure over-the-air vehicle updates
US11228884B2 (en) * 2019-01-16 2022-01-18 Ford Global Technologies, Llc Vehicle-to-vehicle file sharing system and method

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070299940A1 (en) * 2006-06-23 2007-12-27 Microsoft Corporation Public network distribution of software updates
CN105791387A (zh) * 2015-01-13 2016-07-20 福特全球技术公司 车辆控制更新方法和系统
US20160210131A1 (en) * 2015-01-21 2016-07-21 Ford Global Technologies, Llc Vehicle control update methods and systems
CN105808285A (zh) * 2015-01-21 2016-07-27 福特全球技术公司 车辆控制更新的方法和系统
US20180024826A1 (en) * 2016-07-19 2018-01-25 Ford Global Technologies, Llc Vehicle region-specific software updates distribution
US20180088928A1 (en) * 2016-09-28 2018-03-29 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
US20180285088A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Method and system to accelerate iot patch propagation and reduce security vulnerabilities exposure time
CN108093053A (zh) * 2017-12-21 2018-05-29 北京摩拜科技有限公司 车辆配置方法、服务器、车辆及车辆系统
CN108270573A (zh) * 2018-01-12 2018-07-10 西安电子科技大学 无人驾驶汽车的隐私保护方法
US20190050217A1 (en) * 2018-03-30 2019-02-14 Intel Corporation Systems, methods and apparatus for distributed software/firmware update and software versioning system for automated vehicles

Also Published As

Publication number Publication date
WO2020170233A1 (en) 2020-08-27
US20220147337A1 (en) 2022-05-12
EP3928197A1 (en) 2021-12-29
KR20210128469A (ko) 2021-10-26

Similar Documents

Publication Publication Date Title
CN113454584A (zh) 经由v2v通信且由车辆社区进行验证的到车辆的软件更新分发
Ortega et al. Trusted 5G vehicular networks: Blockchains and content-centric networking
JP7214838B2 (ja) 証明書ステータスの決定方法
US11082850B2 (en) Blockchain based wireless access point password management
KR102534209B1 (ko) 차량용 업데이트 시스템 및 제어 방법
CN112435028A (zh) 一种基于区块链的物联网数据共享方法及装置
US10452381B2 (en) Fragmented updating of a distributed device using multiple clients
TWI600334B (zh) 車輛網路節點之安全憑證管理方法與應用其之車輛網路節 點
US20190102159A1 (en) Ecu and peripherals update using central dispatch unit
KR102121658B1 (ko) D2d 통신 환경 하에서의 블록체인 시스템 및 이의 구축 방법
US10979897B2 (en) Ranking identity and security posture for automotive devices
KR102673331B1 (ko) V2v 통신을 통한 차량들로의 소프트웨어 업데이트 분산 및 차량들의 컴뮤니티에 의한 검증
ES2855738T3 (es) Gestión de comunicación de dispositivos en un sistema de comunicación
WO2023024487A1 (zh) 一种基于区块链的互联车辆认证系统和方法
Ercan et al. An enhanced pseudonym certificates distribution mechanism for connected vehicles
Wang et al. A consortium blockchain-based model for data sharing in Internet of Vehicles
US20240056297A1 (en) Establishing trust by a community of vehicles
Manaswini et al. Architecture and framework enabling internet of vehicles towards intelligent transportation system
WO2022097519A1 (ja) 車両用データ保存方法、車両用データ保存システム
Janech et al. The architecture of distributed database system in the VANET environment
Sujatha et al. Security enhancement of joint procedure based on improved elliptic curve cryptography in LoRaWAN
Singh et al. Vanet and its security issues-a review
US20220132283A1 (en) Identification and coordination of opportunities for vehicle to vehicle wireless content sharing
US20230036353A1 (en) Communication network node, user equipment, communication network, method
Lavingia et al. Blockchain for Secure Message Transmission in VANETs

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination