CN110741341A - 车辆计算设备的更新信使 - Google Patents

车辆计算设备的更新信使 Download PDF

Info

Publication number
CN110741341A
CN110741341A CN201780091905.6A CN201780091905A CN110741341A CN 110741341 A CN110741341 A CN 110741341A CN 201780091905 A CN201780091905 A CN 201780091905A CN 110741341 A CN110741341 A CN 110741341A
Authority
CN
China
Prior art keywords
vehicle
computing device
update package
update
vehicle computing
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
CN201780091905.6A
Other languages
English (en)
Inventor
哈里斯·拉米克
尼古拉斯·绍尔
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN110741341A publication Critical patent/CN110741341A/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
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/42Determining position
    • G01S19/45Determining position by combining measurements of signals from the satellite radio beacon positioning system with a supplementary measurement
    • 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/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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Traffic Control Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开总体上涉及用于更新车辆计算设备的功能的系统和方法。特别地,这些系统和方法利用中间信使设备将更新包从更新服务器传播到车辆计算设备。信使设备在连接到第一网络(例如因特网)时获得更新包,并且在与车辆计算设备通信时将更新包传送到车辆计算设备。当安装更新包与车辆的操作状态(或车辆计算设备的操作状态)兼容时,车辆计算设备然后安装更新包。车辆计算设备可以安排在操作状态与更新包的安装兼容的时间安装更新包。

Description

车辆计算设备的更新信使
背景技术
车辆可以包括控制车辆功能的机械或电气逻辑电路。
发明内容
本公开总体上涉及用于更新车辆计算设备的功能的系统和方法。该系统和方法利用中间信使设备将更新包从更新服务器传播到车辆计算设备。信使设备在连接到第一网络(例如因特网)时获得更新包,并且在与车辆计算设备通信时将更新包传送到车辆计算设备。当安装更新包与车辆的操作状态(或车辆计算设备的操作状态)兼容时,车辆计算设备然后安装更新包。车辆计算设备可以安排在操作状态与更新包的安装兼容的时间安装更新包。车辆计算设备可以验证安装是否成功,并且如果不成功,则撤销或回滚安装。本文描述了这些和其他特征。
根据本公开的一个方面,一种更新车辆计算设备的功能的系统包括独立于安装在车辆中的车辆计算设备的移动计算设备。移动计算设备至少包括可重写的计算机可读存储器、一个或多个通信接口以及处理器。处理器被配置为响应于检测到经由一个或多个通信接口中的至少一个到通信网络的第一连接,经由通信网络向更新服务器发送更新请求;接收响应于更新请求的更新包;并将接收到的更新包存储在可重写计算机可读存储器中。处理器被配置为响应于检测到经由一个或多个通信接口中的至少一个到车辆计算设备的第二连接,将存储的更新包从可重写计算机可读存储器传送到车辆计算设备以用于安装。
根据本公开的另一方面,可以执行用于更新车辆计算设备的功能的方法。该方法包括由独立于安装在车辆中的车辆计算设备的移动计算设备检测到通信网络的第一连接,并且由移动计算设备响应于检测到第一连接,经由通信网络向更新服务器传输更新请求。该方法包括接收响应于更新请求的更新包,并将接收到的更新包存储在移动计算设备的存储元件中。该方法包括由移动计算设备检测到车辆计算设备的第二连接,并且将存储的更新包从移动计算设备的存储元件传送到车辆计算设备以用于安装。
根据本公开的另一方面,这些方法可以被编码为由一个或多个处理器执行的计算机可读指令。计算机可读指令可以编码在非暂时性计算机可读介质上。
下面将详细讨论这些以及其他方面和实施方式。前述信息和以下详细描述包括各种方面和实施方式的说明性示例,并且提供了用于理解所要求保护的方面和实施方式的性质和特征的概述或框架。附图提供了对各个方面和实施方式的说明和进一步理解,并且被并入本说明书中并且构成本说明书的一部分。
附图说明
附图不旨在按比例绘制。不同附图中相似的附图标记和名称表示相似的元件。为了清楚起见,并非每个组件都可以在每个图中进行标记。在附图中:
图1A是根据说明性实施方式的说明性网络环境和车辆的框图;
图1B是图1A的车辆的说明性俯视图和内部舱室的框图;
图2是示出车辆与更新包源之间的分离的框图;
图3是用于安装更新包的数据交换的梯形图;
图4是用于传送更新包的示例方法的流程图;
图5是用于安装更新包的示例方法的流程图;以及
图6是示出计算机系统的通用架构的框图,该计算机系统可用于实施本文描述和示出的系统和方法的元素。
具体实施例
以下是与用于更新车辆计算设备的功能的方法、装置和系统相关的各种概念和实施方式的更详细描述。上面介绍的和下面更详细讨论的各种概念可以以多种方式中的任何一种来实施。
本公开总体上针对用于更新车辆计算设备的功能的解决方案。所描述的解决方案解决了更新车辆计算设备的功能所特有的技术问题,并且也可以应用于其他场境中的类似问题。例如,更新车辆计算设备的功能时遇到的问题是车辆计算设备是移动的,并且因此不能可靠地连接到诸如因特网的数据网络。一些车辆计算设备可能缺乏任何合适的数据网络连接。通过使用中间信使设备,可以提高网络连接的可靠性。此外,信使设备可以访问车辆计算设备不能直接访问的网络。另一个问题是对车辆计算设备的更新可能会对车辆计算设备造成扰乱,并且可能会对车辆本身造成扰乱。这种扰乱可能是不可接受的,并且在更新车辆计算设备的功能时最小化或消除任何扰乱可能是有益的。所描述的解决方案也解决了这个问题。
图1A是根据说明性实施方式的说明性网络环境100和车辆140的框图。说明性网络环境100可以包括至少一个数据处理系统102、一个或多个客户端设备128以及一个或多个车辆140。
数据处理系统102可以包括接口104。数据处理系统102可以包括自然语言处理器(“NLP”)组件106来解析基于音频的输入。数据处理系统102可以包括接口管理组件108,以检测和管理系统100中其他设备的接口。数据处理系统102可以包括音频信号发生器组件110,以产生基于音频的信号。数据处理系统102可以包括应用程序接口(“API”)112。数据处理系统102可以包括响应选择器组件114,以选择对基于音频的输入信号的响应。数据处理系统102可以包括校验引擎116,以校验由数据处理系统102接收的基于音频的输入。数据处理系统102可以包括数据存储库118,其中数据处理系统102可以存储参数120、策略122、响应数据124和模板126。客户端设备128和车辆140可以包括并执行数据处理系统102的组件的实例。数据存储库118可以存储更新包。数据存储库18可以存储临时恢复映像(image)。客户端设备128和车辆140可以各自包括数据处理系统102的实例。
系统100还可以包括一个或多个客户端设备128。客户端设备128可以包括传感器130、扬声器132、接口104和换能器136。客户端设备128可以执行NLP组件106的实例。系统100还可以包括一个或多个数据提供者138。系统100可以包括一个或多个车辆140。车辆140可以包括传感器130、扬声器132、接口104和换能器136。车辆140可以执行NLP组件106的实例。系统100的组件可以通过网络142通信。在一些实施方式中,客户端设备128中的一个或多个可以位于车辆140的实例中。例如,客户端设备128可以是驾驶车辆140的驾驶员的移动电话。(下面描述的图1B示出了一个示例,其中两个客户端设备128存在于车辆140内,例如一个是驾驶员的和另一个是乘客的)。客户端设备128中的一个或多个可以远离车辆140。例如,在驾驶员停车并离开车辆140去工作之后,驾驶员的移动电话可以远离车辆140。
网络142可以包括诸如因特网、局域网、广域网、城域网或其他区域网络、内部网、卫星网络的计算机网络,诸如语音或数据移动电话通信网络的其他计算机网络,及其组合。数据处理系统102、客户端设备128和车辆140可以使用网络142来访问信息资源,诸如网页、网站、域名、统一资源定位器或数据提供者138。例如,数据处理系统102可以经由网络142访问数据提供者138,该数据提供者138提供诸如与车辆140相关联的位置的特定位置的天气数据。在某些情况下,客户端设备128可以在第一场境中具有到网络142的高带宽连接,并且在另一场境中具有到网络142的低带宽连接。例如,在家里或在工作时,客户端设备128可以在高带宽“Wi-Fi”连接上,而在其他位置,客户端设备128可以使用具有较低带宽的基于电话的移动数据网络。基于电话的移动数据网络也可能比家庭或办公室的“Wi-Fi”连接具有更长的时延。车辆140可以包括独立于客户端设备128的到网络142的网络接口。车辆140特有的网络接口可以比客户端设备128具有更低的带宽和更长的时延。车辆140特有的网络接口可能需要可选的服务计划,该服务计划可能未被激活,因此可能不可用。
网络142可以包括例如点对点网络、广播网络、广域网、局域网、电信网络、数据通信网络、计算机网络、异步传送模式(“ATM”)网络、同步光网络(“SONET”)网络、同步数字体系(“SDH”)网络、无线网络或有线网络及其组合。网络142可以包括无线链路,诸如红外通道或卫星频带。网络142的拓扑可以包括总线、星形或环形网络拓扑。网络142可以包括使用用于在移动设备之间通信的任何一个或多个协议的移动电话网络,这样的协议包括高级移动电话协议(“AMPS”)、时分多址(“TDMA”)、码分多址(“CDMA”)、全球移动通信系统(“GSM”)、通用分组无线服务(“GPRS”)或通用移动电信系统(“UMTS”)。不同类型的数据可以经由不同的协议传输,或者相同类型的数据可以经由不同的协议传输。
客户端设备128和车辆140可以各自包括至少一个逻辑设备,诸如具有处理器的计算设备,以经由网络142与数据处理系统102相互通信。客户端设备128和车辆140可以包括关于数据处理系统102描述的组件中任何组件的实例。客户端设备128和车辆140可以包括数据处理系统102的实例。客户端设备128可以包括台式计算机、膝上型计算机、平板计算机、个人数字助理、智能电话、移动设备、便携式计算机、薄客户端计算机、虚拟服务器、基于扬声器的数字助理或其他计算设备。车辆140可以是汽车、卡车、摩托车、船、飞机或其他运输设备。车辆140可以包括一个或多个处理器,这些处理器可以执行数据处理系统102或其任何组件的实例。处理器可以是车辆的头部单元144的组件(如图1B所示)。
客户端设备128和车辆140可以包括至少一个传感器130、至少一个换能器136、至少一个音频驱动器和至少一个扬声器132。传感器130可以包括麦克风或音频输入传感器。传感器130还可以包括接近传感器、环境光传感器、温度传感器、运动传感器、加速度计或陀螺仪中的至少一个。传感器可以包括占用或重量传感器。换能器136可以将音频输入转换成电子信号。音频驱动器可以包括由客户端设备128或车辆140的一个或多个处理器执行的脚本或程序以控制扬声器132。扬声器132可以通过将电信号转换成可听波来渲染音频信号。在一些实施方式中,传感器130可以包括用于基于卫星的定位服务的接收器。系统基于卫星的定位服务(也称为全球导航卫星系统“GNSS”)的示例包括美国全球定位系统(“GPS”)、俄罗斯全球导航卫星系统(GLONASS)和欧洲联盟的伽利略系统。
客户端设备128和车辆140可以与终端用户相关联,该终端用户将语音查询作为输入音频信号输入到客户端设备128或车辆140(经由传感器130),并且接收可以从数据处理系统102提供的计算机生成语音形式的音频输出。响应于输入音频信号,客户端设备128和车辆140还可以接收动作数据结构以执行预定的功能或动作。接口104可以接收数据消息或者向数据处理系统102的直接动作API 112提供数据消息,并且实现系统100的组件之间的通信。客户端设备128和车辆140还可以包括用户接口,该用户接口使得用户能够与系统100的组件交互。
该系统的数据处理系统102可以包括具有至少一个处理器的至少一个服务器。例如,数据处理系统102可以包括位于至少一个数据中心或服务器场中的多个服务器。数据处理系统102可以从音频输入信号中确定请求和与该请求相关联的触发关键字。基于请求和触发关键字,数据处理系统102可以生成或选择响应数据。响应数据可以是基于音频的或基于文本的。例如,响应日期可以包括一个或多个音频文件,当呈现时,这些音频文件提供音频输出或声波。响应数据中的数据也可以被称为内容项。除了音频内容之外,响应数据可以包括其他内容(例如,文本、视频或图像内容)。
数据处理系统102可以包括多个逻辑分组的服务器,并且促进分布式计算技术。服务器的逻辑组可以被称为数据中心、服务器场或机器场。服务器可以在地理上分散。数据中心或机器场可以作为单个实体来管理,或者机器场可以包括多个机器场。每个机器场中的服务器可以是异构的——服务器或机器中的一个或多个可以根据一种或多种类型的操作系统平台进行操作。数据处理系统102可以包括存储在一个或多个高密度机架系统中的数据中心中的服务器,以及例如位于企业数据中心中的相关联存储系统。以这种方式具有整合服务器的数据处理系统102可以通过将服务器和高性能存储系统定位在本地化的高性能网络上来提高系统可管理性、数据安全性、系统的物理安全性和系统性能。包括服务器和存储系统并且将它们与高级系统管理工具耦合的数据处理系统102组件的全部或一些的中心化,允许更高效地使用服务器资源,这节省了功率和处理要求,并且减少了带宽使用。数据处理系统102的组件中每一个可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、电器或其他逻辑设备,例如被配置为与数据存储库118和其他计算设备通信的可编程逻辑阵列。
数据处理系统102可以包括数据存储库118。数据存储库118可以包括一个或多个本地或分布式数据库,并且可以包括数据库管理系统。数据存储库118可以包括计算机数据存储装置或存储器,并且可以存储一个或多个参数120、一个或多个策略122、响应数据124和模板126以及其他数据。参数120、策略122和模板126可以包括诸如关于客户端设备128、数据处理系统102和车辆140之间基于语音的会话的规则的信息。响应数据124可以包括用于音频输出或相关联元数据的内容项,以及可以是一个或多个与客户端设备128的通信会话的一部分的输入音频消息。
与数据处理系统102相关联的应用、脚本、程序、数字助理应用或其他组件可以安装在客户端设备128或车辆140上。该应用可以使客户端设备128(例如,经由接口134)或车辆140能够将输入音频信号(和其他数据)传送到数据处理系统102的接口104。该应用可以使客户端设备128和车辆140能够驱动客户端设备128和车辆140的组件来渲染输出音频信号。
数据处理系统的NLP组件106可以接收输入音频信号。数据处理系统102可以从客户端设备128或车辆140接收输入音频信号。第一设备可以执行NLP组件106,并且NLP组件106可以从第二设备接收输入音频信号。例如,车辆140可以执行NLP组件106,并且输入音频信号可以从客户端设备128被接收。
NLP组件106可以通过将输入音频信号与存储的代表性音频波形集进行比较并选择最接近的匹配,来将输入音频信号转换成识别的文本。代表性波形可以从遍及输入音频信号的大集合生成。一旦输入音频信号被转换成识别的文本,NLP组件106可以例如经由学习阶段将文本与动作或输出音频信号所关联的词语进行匹配。
从输入音频信号中,NLP组件106可以识别至少一个请求或对应于该请求的至少一个触发关键字。该请求可以指示输入音频信号的意图或主题。触发器关键字可以指示可能采取的动作类型。例如,NLP组件106可以解析输入音频信号,以识别打开车辆窗户或跳到音乐播放列表中的下一个音频文件的至少一个请求。触发关键字可以包括指示要采取的动作的至少一个词语、短语、词根或部分词语或衍生词。例如,触发关键字“go(去)”或“ok(好)”。
响应选择器组件114可以从数据存储库118获得信息,在数据存储库118中它可以被存储为响应数据124的一部分。响应选择器组件114可以查询数据存储库18,以例如从响应数据124中选择或以其他方式识别响应短语或内容项。
音频信号发生器组件130可以生成或以其他方式获得包括内容项的输出信号。数据处理系统102可以执行音频信号发生器组件110来生成或创建对应于内容项或请求的输出信号。例如,一旦请求被实现,信号发生器组件110可以生成包括短语“动作已完成(Theaction was completed)”的音频输出信号。
接口104可以是使系统100的组件能够相互通信的数据接口或网络接口。数据处理系统102的接口104可以经由网络142向客户端设备128或车辆140提供或传输包括动作数据结构、音频信号或其他数据的一个或多个数据分组。例如,数据处理系统102可以将来自数据存储库118或来自音频信号发生器110的输出信号提供给客户端设备128。数据处理系统102还可以经由数据分组传输指导客户端设备128或车辆140执行动作数据结构中指示的功能。输出信号可以作为一个或多个数据分组(或其他通信协议)从数据处理系统102(或其他计算设备)获得、生成、变换或传输到客户端设备128或车辆140。
数据处理系统102的直接动作API 112可以基于例如请求来生成动作数据结构。动作数据结构可以包括用于执行指定动作以实现请求的数据或指令。在一些实施方式中,动作数据结构可以是JSON格式化数据结构或者是XML格式化数据结构。
根据请求中指定的动作,直接动作API 112可以执行代码或对话框脚本,该代码或对话框脚本识别实现请求所需的参数。可以响应于该请求生成动作数据结构。动作数据结构可以包括在传输到客户端设备128或车辆140或由客户端设备128或车辆140接收的消息中。基于由NLP组件106解析的请求,直接动作API 112可以确定消息应该被发送到客户端设备128或者车辆140中的哪一个。例如,如果输入音频信号包括“打开窗口”,则NLP组件106可以识别动作词语“打开窗口”。直接动作API 112可以将请求打包成动作数据结构,用于传输到车辆140。直接动作API 112可以从响应数据124中访问车辆ID,以确定哪个车辆与生成请求的用户相关联。一旦接收到,车辆140可以处理动作数据结构并打开车辆的窗口。
动作数据结构可以包括完成请求的信息。例如,动作数据结构可以是包括用于完成或以其他方式实现请求的属性的XML或JSON格式化数据结构。属性可以包括车辆140的位置、客户端设备128的位置、与客户端设备128相关联的用户的授权级别、车辆标识符、接口标识符、车辆状态或请求状态。请求状态可以包括在动作实现之前应该满足的一个或多个属性。例如,请求“确定,更改歌曲(Ok,change the song)”,请求状态可能具有属性{请求者:[授权,乘客]}({requestor:[authorized,passenger]}),指示该请求应该是明确授权的用户或车辆中的乘客。
直接动作API 112可以从存储库118中检索模板126,以确定在动作数据结构中哪些字段或属性要包括。直接动作API 112可以确定必要的参数,并且可以将信息打包到动作数据结构中。直接动作API 112可以从存储库118检索内容,以获得数据结构属性的信息。
直接动作API 112可以用来自输入音频信号的数据填充字段。直接动作API 112还可以用来自数据提供者138、客户端设备128或车辆140的数据填充字段。当填充字段时,直接动作API 112可以提示用户附加信息。模板126可以被标准化用于不同类型的动作,诸如通过车辆的头部单元播放媒体文件、响应消息以及在车内执行功能。动作数据结构最初可以由被远程数据处理系统102执行的直接动作API 112生成。远程数据处理系统102可以将动作数据结构传输到车辆140的数据处理系统102,数据处理系统102可以向动作数据结构添加字段和属性。
直接动作API 112可以从数据存储库118获得响应数据124(或参数120或策略122),以及在终端用户同意的情况下从客户端设备128接收的数据,以确定位置、时间、用户账户、物流或其他信息,从而从汽车共享服务预订汽车。响应数据124(或参数120或策略122)可以包括在动作数据结构中。当包括在动作数据结构中的内容包括用于认证的终端用户数据时,数据可以在存储在数据存储库118中之前通过散列函数(hashing function)传递。
数据处理系统102可以包括接口、或与校验引擎116交接或以其他方式通信。校验引擎116可以校验或以其他方式确定与动作数据结构相关联的动作和功能是否应该被执行或实现。当被校验时,校验引擎116能够满足要实现的请求。校验引擎116可以确定请求者是否有权实现该动作,实现该动作是否安全,或者是否应该实现其他功能来代替所请求的功能或动作。
例如,响应于接收到输入音频信号“好,打开行李箱(Ok,open the trunk)”,校验引擎116可以确定不打开行李箱,因为车辆140正在道路上行驶并且打开行李箱是不安全的。在另一个示例中,响应于接收到输入音频信号“好,下一首歌(Ok,next song)”,校验引擎116可以确定用户有权改变歌曲并跳到下一首歌。校验引擎116可以由客户端设备128和车辆140执行或是客户端设备128和车辆140的组件。例如,当车辆140时,车辆140可以执行校验引擎116的本地实例。当校验引擎116连接到网络142时,车辆140可以将计算工作卸载到远程校验引擎116,并且当车辆140没有连接到网络142时,车辆140可以用校验引擎116的本地实例来处理请求。
校验引擎116可以基于来自外部传感器数据的数据,诸如从数据提供者138、客户端设备128的传感器130和车辆140的传感器130接收的数据,来校验动作。校验引擎116还可以基于生成输入音频信号的用户的管理权限来校验动作。校验引擎116可以基于车辆140的车辆状态来校验动作。
校验引擎116可以基于一组传感器数据来确定车辆140的车辆状态。车辆状态可以指示要实现的请求的车辆140的当前状态。车辆状态可以指示车辆140是在移动、停放还是怠速。车辆状态可以指示车辆140的速度。校验引擎116可以使用传感器数据的组合来确定车辆状态。传感器数据的组合可用于区分可能具有相似条件的不同状态。例如,在红灯处停车、在停车场停车、在交通中停车和在停车场停放的不同状态可能具有一些类似的条件(例如,0mph的车速),但是在不同状态中的每个状态中可以授权不同的功能。例如,当车辆140停放在停车场时打开行李箱可能是安全的,但是当车辆140在红灯停车时打开行李箱是不安全的。车辆状态可以包括多个子状态,例如移动状态、外部环境状态、内部环境状态和设备状态。
移动子状态可以包括诸如当前和平均速度、当前和平均加速度、驾驶模式状态和档位状态的属性。外部环境子状态可以包括诸如外部天气条件(例如,下雨、晴朗或下雪)、外部温度、外部天气条件预报和外部温度预报的属性。内部环境子状态可以包括诸如内部温度和内部区域温度的属性。设备子状态可以包括诸如HVAC状态(例如,空调开启、空调关闭、加热开启等)、车窗状态、锁状态、卡车状态、车门半开状态、天窗状态、加热座椅状态、加热方向盘状态、前照灯状态和车内灯状态等的属性。
校验引擎116可以基于一组传感器数据来确定车辆状态,该一组传感器数据可以包括来自客户端设备的传感器130的传感器数据、来自车辆传感器130的传感器数据、来自数据提供者138的数据或其任意组合。车辆状态中的属性中的一些可以由单个传感器来确定(例如,车门半开状态),而其他属性可以由传感器信号的组合来确定(例如,移动状态可以由速度数据和档位数据的组合来确定)。
来自客户端设备128的传感器数据可以包括由客户端设备128中的蜂窝塔三角测量或GNSS接收器确定的位置数据、通过集成位置数据确定的速度数据、加速度数据、账户数据、授权数据或其任意组合。传感器数据可以包括来自一个或多个数据提供者138的数据。数据提供者138可以是基于互联网的数据存储库。数据提供者138可以通过例如API使他们的数据可用。数据提供者138可以向校验引擎116提供天气数据、位置数据、事件数据、位置检查数据、预报数据或其任意组合。
校验引擎116可以基于从输入音频文件解析的请求来确定请求状态。校验引擎116可以基于第二组传感器数据来确定请求状态。第一组传感器数据和第二组传感器数据的数据可以作为更新数据信号、向量、数据阵列、标量值或其他格式的数据来接收。请求状态可以包括多个属性,在这些属性下可以执行请求的动作或者实现该请求所需的动作。请求状态可以是动作数据结构的一个组件或从动作数据结构中导出。例如,请求“确定,打开行李箱(OK,open the trunk)”,可以包括请求状态,该请求状态具有指示行李箱只能在停放状态下以及当驾驶员或授权乘客请求时才能打开的属性。例如,请求状态可以是{移动状态:停放,请求者:授权乘客}({movement state:parked,requestor:authorizedpassenger})。
用于确定请求状态的第二组传感器数据可以包括校验引擎116用于确定车辆状态的来自第一组传感器数据的传感器数据。第二组数据还可以包括客户端设备128(或与其相关联的用户)在车辆140内的位置。
校验引擎116可以将请求状态与车辆状态进行比较,以确定是否应该执行、实现或进一步处理动作数据结构的动作。例如,车辆状态可以指示车辆140停放在停车场,车窗关闭,外部下雨条件(例如,{移动状态:停放,车窗关闭,外部条件:下雨}({movement state:parked,windowsxlosed,external conditiom:rain}))。例如,在输入音频信号为“确定,打开窗口(OK,open the windows)”的情况下,校验引擎116可以确定请求的请求状态要求请求来自授权用户,驾驶属性可以是驾驶或停放,并且天气属性必须是非下雨的(例如,{请求者:授权,移动状态:[驾驶,停放],外部条件:[晴天,阴天,多云]}({requestor:authorized,movement state:[driving,parked],external condition:[sunny,overcast,cloudy]})。将车辆状态与请求状态进行比较,校验引擎116可以确定车辆状态的外部条件属性与请求状态的外部条件属性不匹配(或者不是其元素)。因为状态不匹配,所以校验引擎116可以确定不应该实现该请求,因为车辆140外部正在下雨,并且当下雨时不应该打开窗户。
当校验引擎116确定不应该实现该功能时,校验引擎116可以生成经由客户端设备128或车辆140的接口104呈现给用户的确认请求。确认请求可以询问用户是否希望覆盖不实现请求的校验引擎的决定。当校验引擎116确定不应该实现该功能时,校验引擎116可以提供修改动作数据结构。继续上述示例,校验引擎116可以生成基于音频的提示,询问用户是否想要平铺天窗。
图1B是车辆140的说明性俯视图和内部舱室的框图。车辆140的内部舱室可以包括多个座椅,并且座椅中每一个可以包括一个或多个传感器130。传感器130可以是重量或占用传感器。车辆140的内部舱室可以包括多个扬声器132。车辆140还可以包括头部单元144,其可以执行关于数据处理系统102或车辆140描述的组件中的一个或多个。例如,头部单元144可以提供特征和功能,诸如导航、娱乐、车辆气候控制、车辆操作、个人数字助理或基于扬声器的数字助理。例如,扬声器132可以在用户授权的情况下产生亚音频音调162。亚音频音调162可以是由扬声器132渲染的不在用户可检测到的正常频率范围内的音调。该系统可以使用可听音调代替亚音频音调162。
校验引擎116可以确定客户端设备128在车辆140内的相对位置。客户端设备128的位置可以并入请求状态或车辆状态的一个或多个属性中。客户端设备128的位置或定位是相对位置,并且可以包括不同级别的分辨率。例如,相对位置可以是与座椅之一相关的区域、与不同区域相关的区域(例如,客户端设备128在前区,没有客户端设备128在后区)。客户端设备128在车辆140内的相对位置可以使用亚音频音调162来确定。客户端设备128在车辆140内的相对位置可以基于来自传感器130的传感器数据来确定。客户端设备128在车辆140内的相对位置可以基于亚音频音调和来自传感器130的传感器数据的组合来确定。
校验引擎116可以通过确定亚音频音调162的传输与客户端设备128接收亚音频音调162之间的时间差来确定客户端设备128的相对位置。例如,头部单元144可以使扬声器132之一产生亚音频音调162。扬声器132可以在第一时间产生亚音频音调162。相对更靠近产生亚音频音调162的扬声器132的客户端设备128将在相对更远离产生亚音频音调162的扬声器132的客户端设备128之前接收到亚音频音调162。一旦客户端设备128接收到或以其他方式检测到亚音频音调162,客户端设备128可以生成接收通知,客户端设备128将该接收通知传输给头部单元144或数据处理系统102。接收通知可以指示扬声器132接收到亚音频音调162的第二时间。接收通知可以经由蜂窝网络、车辆140本地的Wi-Fi网络或者经由诸如蓝牙的短程无线电通信协议传输到数据处理系统102。校验引擎116可以确定亚音频音调162的生成与客户端设备128接收到亚音频音调162之间的时间长度(例如,在上述示例中,第一时间与第二时间之间的时间差)。不同的扬声器132可以在不同的时间产生不同的亚音频音调162,以使数据处理系统102能够三角测量车辆140内客户端设备128的位置。
校验引擎116可以基于来自传感器130的数据来确定客户端设备128的位置。传感器130可以是重量传感器,其可以确定座椅200是否被占用。例如,当传感器130登记超过预定阈值的重量时,校验引擎116可以确定座椅200被占用。校验引擎116可以使用亚音频音调162确定客户端设备128在座椅200之一附近。校验引擎116可以基于接收到所确定的座椅200的传感器130正在检测到重量的传感器数据来确认用户与客户端设备128相关联。传感器数据可用于防止用户访问只对某些区域或用户可用的功能。例如,文本消息可以在与驾驶员相关联的客户端设备128上被禁用,但是对于与车辆140的其他座椅200中的乘客相关联的客户端设备128被启用。如果驾驶员将倾身并将他的客户端设备128移动到乘客座椅200的区域中,基于亚音频音调162,校验引擎116可以确定客户端设备128与乘客座椅200相关联,并且应该允许客户端设备128生成使用文本消息程序的请求。校验引擎116可以从乘客座椅200中的传感器130接收0磅的重量数据,并且确定用户实际上不在乘客座椅200中,并且可以阻止驾驶员的客户端设备128访问文本消息功能。校验引擎116可以仅在检测到车辆140的门的打开和关闭之后更新车辆140中客户端设备128的相对位置。
图2是示出车辆140和更新包源,例如更新服务器210,之间的分离的框图。客户端设备128可以充当信使,在网络接入点220处经由网络142从更新服务器210接收更新包,并且随后经由车辆接入点240将接收到的更新包传送到车辆140处的车辆计算设备244。
车辆计算设备244是车辆140上的计算设备。车辆计算设备244可以安装在车辆140中,附连到车辆140,或者以其他方式存在于车辆140中。在一些实施方式中,车辆计算设备244是图1B中所示的并且如上所述的头部单元144。在一些实施方式中,车辆计算设备244管理车辆140的一个或多个功能。例如,车辆计算设备244可以管理车辆中的特征,诸如自动门锁、自动窗户和天窗、挡风玻璃雨刷、报警系统、娱乐系统、语音交互系统、车辆性能、车辆诊断等。对车辆计算设备244的功能的更新可以来自远离车辆计算设备244的更新服务器210。在一些实施方式中,车辆计算设备244经由网络142连接到更新服务器210。在一些实施方式中,车辆计算设备244不连接到更新服务器210。例如,车辆计算设备244可能缺乏足够的网络连通性来进行更新(或者可能根本没有网络连通性)。
更新服务器210可以是被配置为提供更新包的一个或多个服务器(例如,服务器场或数据中心中的一个或多个服务器)。更新服务器210可以使用计算机系统600来实施,例如,如下参考图6所描述。更新服务器210可以存储或访问数据存储系统,数据存储系统存储用于车辆计算系统的一个或多个更新包。更新包可以包括用于更新核心功能,诸如设备驱动器、操作系统内核级代码或已安装软件的支持功能的数据。更新包可以包括用于更新附加特征的数据,诸如由安装软件提供的特征。更新包可能包括用于安装的新软件(或“应用(app)”)。作为示例,更新包可以包括用于更新头部单元144的功能的数据。更新包可以包括多个更新部分,例如,用于更新核心功能的第一部分和用于更新一个或多个第三方应用的第二部分。例如,更新包可以包括验证助手,诸如校验和、散列签名、加密签名或估计安装时间。更新包可以包括用于调节何时可以安装更新的安装定时标准。例如,当车辆140在运动时,更新可能与安装不兼容(例如,更新可能改变车辆140如何操作)。更新包将在下面更详细描述。
网络接入点220是到网络142的连接。网络接入点220可以位于住宅、酒店、工作场所、咖啡店或可以提供对网络142的访问的任何其他地方。网络接入点220可以包括无线接入点,诸如Wi-Fi热点。网络接入点220可以包括集线器、交换机、路由器或提供到网络142的链路的其他网络设备。客户端设备128可以物理连接到网络接入点220,例如使用通用串行总线(“USB”)缆线或以太网缆线。客户端设备128可以无线连接到网络接入点220,例如,使用IEEE 802.11协议通过无线电传输。客户端设备128可以使用诸如近场通信(“NFC”)或蓝牙的短程无线电协议来建立到网络接入点220的通信链路。客户端设备128可以使用短程无线电协议来与网络接入点220进行数据通信。客户端设备128可以使用短程无线电协议来使用第二协议发起或配置更高带宽的连接,并且可以使用第二协议来与网络接入点220进行数据通信。客户端设备128可以检测网络接入点220;例如,网络接入点220可以周期性地发出包含服务集标识符(“SSID”)的信标帧,并且客户端设备128可以接收信标帧并检测网络接入点220对接入网络142的可用性。
客户端设备128可以被配置成,例如响应于一个或多个触发条件来请求更新包。例如,触发条件可以是客户端设备128检测到接入点220,客户端设备128与网络接入点220通信,客户端设备128位于网络接入点220附近(或接近网络接入点220)的物理位置,例如,自上一次更新请求以来已经过去了阈值时间长度。客户端设备128可以周期性地向更新服务器210发送请求以检查更新。更新请求可以识别客户端设备128能够更新的一个或多个组件。客户端设备128可以保持客户端设备128定期或偶尔与之通信并可以向其传输更新包的设备目录(诸如车辆140中的车辆计算设备244,例如头部单元144)。客户端设备128可以为目录中的设备中的一个或多个请求更新包。客户端设备128可以为安装在设备上或者将要安装在设备上的特定软件组件请求更新包。例如,车辆计算设备244可以包括导航应用和音频娱乐应用,并且客户端设备128可以比导航应用(例如每月)更频繁地(例如每天)请求音频娱乐应用的更新。更新请求可以包括对任何可用更新的通用请求,并且更新服务器210选择要在更新包中递送的更新。例如,更新服务器210可以获得车辆140的位置数据,并且仅选择与位置相关的更新(例如,仅包括车辆位置的地理区域的地图、仅车辆位置阈值距离内的目的地的兴趣点数据、仅车辆位置中常用语言的更新等)。在一些示例中,车辆经销商可以在销售车辆之前请求特定于位置的更新;车辆经销商可以请求区域相关的更新、促销更新、经销商特定的更新等。制造商(或原始设备制造商,“OEM”)可以定制更新包,用于在车辆经销商处安装,使得应用、固件等可以在销售目的地更新,并且从而更接近销售点和时间。购买者可以从OEM提供的菜单中进行选择,并且车辆经销商可以根据购买者的选择来配置更新包。
更新请求可以包括安装新功能的请求,例如安装新应用。更新请求可以包括对已安装功能的升级请求,例如对已安装应用的升级。更新请求可以包括对已安装的应用所使用的数据的更新请求,例如导航系统的新地图或娱乐系统的新媒体内容。
车辆接入点240连接到车辆140中的车辆计算设备244,例如头部单元144。车辆接入点240能够与客户端设备128通信,以促进客户端设备128与车辆计算设备244之间的数据通信。车辆接入点240可以包括无线接入点,诸如Wi-Fi热点。网络接入点220可以包括集线器、交换机、路由器或提供到网络142的链路的其他网络设备。客户端设备128可以物理连接到网络接入点220,例如使用通用串行总线(“USB”)缆线或以太网缆线。客户端设备128可以无线连接到网络接入点220,例如,使用IEEE 802.11协议通过无线电传输。客户端设备128可以使用诸如近场通信(“NFC”)或蓝牙的短程无线电协议来建立到车辆接入点240的通信链路。客户端设备128可以使用短程无线电协议来与车辆接入点240进行数据通信。客户端设备128可以检测车辆接入点240;例如,车辆接入点240可以周期性地发出包含服务集标识符(“SSID”)的信标帧,并且客户端设备128可以接收信标帧,并且检测车辆接入点240对于接入车辆140中的车辆计算设备244的可用性。客户端设备128使用短程无线电协议来使用第二协议发起或配置更高带宽的连接,并且使用第二协议来与车辆接入点240进行数据通信。客户端设备128可以检测车辆接入点240;例如,车辆接入点240可以周期性地发出发现信号,警告客户端设备128其可用于连接(或反之亦然,使得客户端设备128发出发现信号,警告车辆接入点240其可用于连接)。
客户端设备128可以在具有网络接入点220的位置与具有车辆接入点240的车辆140之间移动。例如,所有者、驾驶员、乘客或能够进入车辆140的其他人可以将客户端设备128携带到车辆140中。也就是说,客户端设备128可以位于网络接入点220的第一位置(在那里它可以请求并获得更新包),并且然后位于具有车辆接入点240的第二位置(即,在车辆140中)(在那里它可以将更新包传送到车辆计算设备244)。传送对于操作客户端设备128的人来说可以是透明的。客户端设备128可以被动地请求更新包,而不与操作客户端设备128的人交互。例如,客户端设备128可以被动地将更新包传送到车辆计算设备244,而不与操作客户端设备128的人交互。客户端设备128还可以主动地与操作客户端设备128的人接洽,例如,提供更新进度的通知或警告,或者请求进行数据传送的明确许可。
客户端设备128可以同时连接到网络接入点220和车辆接入点240。在这种情况下,客户端设备128可以将数据从更新服务器210传送到车辆计算系统244,而不在本地存储数据,或者仅使用最小的本地存储(例如,缓存)。
图3是用于安装更新包的数据交换300的梯形图。简而言之,客户端设备128检测(箭头310)到网络接入点220的网络连接,并使用网络接入点220向更新服务器210传输(箭头320)更新请求。更新服务器210通过向客户端设备128传输更新包进行响应(箭头330),客户端设备128经由网络接入点220从更新服务器210接收更新包。客户端设备128将更新包存储(箭头340)在本地存储器中,以便以后用于更新车辆计算设备244的功能。客户端设备128可以执行一个或多个校验来验证更新包的真实性、有效性和完整性。稍后,当客户端设备128已经移动到车辆计算设备的通信范围中时,客户端设备128检测(箭头350)到到车辆接入点240的连接,并且经由车辆接入点240将存储的更新包传送(箭头360)到车辆计算设备244。车辆计算设备244将更新包存储(箭头370)在本地存储器中,并使用它来更新车辆计算设备244的功能。在一些实施方式中,车辆计算设备244可以执行一个或多个校验,以验证更新包的真实性、有效性和完整性。车辆计算设备244可以执行一个或多个校验以验证更新安装的成功或失败,并且可以回滚失败的安装以将车辆计算设备244恢复到安装之前的状态。例如,车辆计算设备244可以在安装更新之前捕获恢复映像,并且在更新安装失败的情况下恢复或回滚到恢复映像。
图4是用于传送更新包的示例方法400的流程图。概括地说,在动作410,客户端设备128检测到到通信网络的第一连接,并且在动作420,经由通信网络向更新服务器传输更新请求。在动作430,客户端设备128响应于该请求接收更新包。在动作440,客户端设备128可以校验所接收到的更新包。在动作450,客户端设备128将更新包存储在本地存储器中。当接收到更新包时,可以存储更新包的部分;这些动作的顺序不是限制性的。在客户端设备128已经移动到车辆140中之后,客户端设备128将存储的更新映像传送到车辆计算设备244。特别地,在动作460,客户端设备128这次检测到车辆计算设备244(或者到车辆接入点240,以用于与车辆计算设备244通信)的第二连接,并且在动作470,客户端设备128将存储的更新包发送到车辆计算设备244。
在动作410,客户端设备128检测到通信网络的第一连接。例如,如上所述,客户端设备128可以检测到网络接入点220的连接。客户端设备128可以测量到更新服务器210的网络连通性。例如,客户端设备128可以向更新服务器210发送分组(例如,UDP“ping”),并测量直到它接收到响应的时间长度。如果更新服务器210在阈值时间长度内响应,则客户端设备128已经检测到经由通信网络到更新服务器210的连接。客户端设备128可以确定通信网络是否适合使用。例如,客户端设备128可以被配置成避免通过移动电话网络下载更新包,以避免数据使用费。
在动作420,经由通信网络向更新服务器传输更新请求。更新请求可以指定要更新的车辆计算系统244。更新请求可以指定要更新的车辆计算系统244的功能。例如,在一些实施方式中,客户端设备128运行管理车辆计算设备244的更新并确定需要更新什么的应用。客户端设备128可以管理多个车辆计算设备244的更新。
在动作430,客户端设备128响应于该请求接收更新包。客户端设备128可以接收作为单个数据文件的更新包。客户端设备128可以接收更新包作为数据文件集合。数据文件可以包括车辆计算设备244的一个或多个功能的更新数据。例如,接收到的更新包可以包括例如导航系统的地图数据、娱乐系统的媒体内容或对车辆设施的修改。接收到的更新包可以包括描述如何以及何时安装更新的元数据。例如,更新包可以包括指示特定更新可以在任何时候,仅当设施不使用时,仅当车辆停放时,仅当车辆在车库中等时应用的参数。例如,接收到的更新包可以包括验证助手,诸如校验和、散列签名、加密签名或估计安装时间。例如,更新服务器210可以响应于更新请求(例如,在动作420中传输的请求)为更新包准备数据集,并创建数据集的散列以包含在更新包中。更新服务器210可以在更新包中包括加密签名。例如,更新服务器210可以在更新包中包括使用私有非对称加密密钥加密的数据集散列的副本,以用作加密签名(然后可以使用基于第三方证书或其他信任链已知为可信的相应公共密钥来验证)。
在某些情况下,更新包从更新服务器210到客户端设备128的传输可以被中断。客户端设备128可以通过向更新服务器210发送附加请求并将数据附加到接收到的更新包来尝试从中断中恢复。
在动作440,客户端设备128可以校验所接收到的更新包,以验证更新包的真实性、有效性和完整性。如果更新包来自可信来源,那么更新包是可信的(即,如果更新服务器210是可信的,并且更新包来自更新服务器210,则它也是可信的)。如果更新包中包含的更新指令是有效指令,则更新包是有效的。如果传输完成且无错误(即,如果更新服务器210发送的更新包与客户端设备128接收的更新包相同),则更新包具有完整性。例如,校验和、文件大小或散列可以用来确认完整性。在一些实施方式中,校验包括从更新包中提取验证助手,并使用它来校验更新包。例如,验证助手可以是更新包中包括的数据集的散列;客户端设备128计算数据集的散列,并将计算的散列与包括的散列进行比较,以确认它们匹配。所包括的散列可以被加密签名,并且客户端设备128使用与更新包的有效源相关联的安全证书来认证它。如果签名有效,则更新包是可信的,如果散列匹配,则更新包具有完整性。客户端设备128可以分析更新包的内容,以确认更新是有效的。例如,如果更新包包含冲突的更新,则该包可能无效。
在动作450,客户端设备128将更新包存储在本地存储器中。客户端设备128可以压缩更新包。更新包也可以已经被例如更新服务器210压缩。客户端设备128可以解压缩更新包并将其存储在一个或多个文件中。例如,更新包可以包括多个系统的更新,并且客户端设备128可以将更新存储为独立文件。这些文件又可以是更新包。客户端设备128可以保持足够的空闲空间来存储更新包。更新服务器210可以通知客户端设备128更新包的大小,并且客户端设备128仅在有足够空间可用的情况下才继续接收更新包。
在动作460,客户端设备128这次检测到到车辆计算设备244(或者到用于与车辆计算设备244通信的车辆接入点240)的第二连接。第二连接可以使用短程无线电通信协议,例如蓝牙或NFC。客户端设备128可以例如使用有线链路物理连接到车辆接入点240。
在动作470,客户端设备128可以将存储的更新包传输到车辆计算设备244。客户端设备128可以通过多个连接缓慢地将更新包下载到车辆计算设备244。例如,如果到车辆计算设备244的连接是低带宽连接(例如蓝牙),则传送可能需要相当长的时间,这可能会受到中断。
图5是用于安装更新包的示例方法500的流程图。概括地说,在动作510,车辆计算设备244从客户端设备128接收更新包,例如,如上参考图4所描述。在动作520,车辆计算设备244可以校验所接收到的更新包。在动作530,车辆计算设备244安排当安装与车辆操作状态兼容时更新包的安装。在动作540,车辆计算设备244确定车辆140(或车辆计算设备244)是否处于与安装兼容的状态。如果在动作540处于兼容操作状态,则在动作550,车辆计算设备244创建恢复映像。在动作560,车辆计算设备244安装更新包。在动作570,车辆计算设备244确定安装是否成功。如果安装成功,则在动作580,车辆计算设备244提交安装。如果安装不成功,则在动作590,车辆计算设备244将安装从动作550回滚到恢复映像。这种特定的恢复策略作为示例提供。在一些实施方式中,使用替选的恢复策略。例如,在一些实施方式中,车辆计算设备244可以在执行安装步骤时保持修改日志。在一些实施方式中,车辆计算设备244可以保持适于回滚的数据,以将存储器恢复到更新前状态。
在动作510,车辆计算设备244从客户端设备128接收更新包。例如,客户端设备128可以使用上面参考图4描述的方法400将更新包传送到车辆计算设备244。
在动作520,车辆计算设备244可以校验所接收到的更新包。车辆计算设备244可以校验所接收到的更新包,以验证更新包的真实性、有效性和完整性。如果更新包来自可信来源,则更新包可以是可信的(即,如果更新服务器210是可信的,并且更新包来自更新服务器210,则它也是可信的)。如果更新包中包含的更新指令是有效指令,则更新包可以是有效的。如果传输完成且无错误(即,如果更新服务器210发送的更新包与车辆计算设备244接收的更新包相同),则更新包具有完整性。例如,校验和、文件大小或散列可以用来确认完整性。在一些实施方式中,校验包括从更新包中提取验证助手,并使用它来校验更新包。例如,验证助手可以是更新包中包括的数据集的散列;车辆计算设备244计算数据集的散列,并将计算的散列与包括的散列进行比较,以确认它们匹配。所包括的散列可以被加密签名,并且车辆计算设备244使用与更新包的有效源相关联的安全证书来认证它。如果签名有效,则更新包是可信的,并且如果散列匹配,则更新包是完整的。车辆计算设备244可以分析更新包的内容,以确认更新是有效的。例如,如果更新包包括冲突的更新,则该包可能无效。客户端设备128可以在将更新包传输到车辆计算设备244之前校验该更新包,并且车辆计算设备244依赖于客户端设备128提供的有效性证据。
在动作530,车辆计算设备244安排当安装与车辆操作状态兼容时更新包的安装。更新包可以指示何时以及如何安装更新包中的更新的参数或限制。例如,导航系统的更新可以包括在应用更新时要求车辆140停放或至少不在运动的参数。车辆计算设备244可以通过设置由安装要求触发的事件中断来安排安装。例如,如果安装要求车辆停放,则当车辆计算设备244确定车辆停放时,可以触发中断,然后该中断可以用于导致更新的安装。车辆计算设备244可以安排一天中的某个时间安装。例如,安装可以被安排在凌晨3点,或者车辆140很可能未被使用的另一时间。车辆计算设备244可以安排来自单个更新包的不同更新,每个更新被独立安排。更新可以用严重性级别来分类,例如,针对车辆140的安全性的更新可能比娱乐功能的更新更严重(更重要)。车辆计算设备244可以优先安装更严重的更新。一些更新可以包括安装限制,诸如在车辆140被驱动时不安装特定更新的限制。
在动作540,车辆计算设备244确定车辆140(或车辆计算设备244)是否处于与安装兼容的状态。例如,车辆计算设备244可以确定车辆140是否已经停放。不同类型的车辆可能具有不同的特性,这些特性在逻辑上被描述为停放。车辆计算设备244可以检测这些特性中的一个或多个,并基于其分析来确定车辆140是否停放。以下更详细描述的一些示例特性包括车辆140是否处于指示其停放的机械或计算机化状态,车辆140是否在运动,以及车辆140是否位于已知为频繁使用的停放位置的“家”位置。可以使用附加的或替选的特性。车辆计算设备244可以为每个特性分配置信度得分,该置信度得分表示相应特性的测量值和该测量值是否指示车辆停放的相应权重。车辆计算设备244然后可以使用置信度得分的集合来确定车辆140停放的可能性。
可用于确定车辆是否停放的一个示例特性是车辆140是否处于指示其停放的机械或计算机化状态。例如,带有内燃机的普通个人汽车使用齿轮传动系统和变速器来换档。变速器可以是自动的或手动的。自动变速器可以在自动变速器上具有“停放”设置;将这种车辆换挡到“停放”可以指示车辆已经停放,这可以通过应用停车制动器来进一步指示。一个或多个传感器130,例如变速器传感器,可以检测变速器处于停放状态或者已经应用停车制动器。另一方面,手动变速器没有“停放”设置。如果车辆挂档(离合器未接合)并且(在某些情况下)施加了停放制动,这种车辆可以被认为是停放的。一些电动发动机汽车没有齿轮传动系统,因此没有变速器。一些这样的电动发动机汽车具有用于将车辆“换挡”到空档或停车的驱动器接口;然而,换档动作修改了电动发动机的计算机控制设置,而不是变速器动作。即使如此,当计算机控制设置指明车辆停放时,车辆具有可检测的“停放”状态。此外,电动车辆可以具有停车制动器,其中停车制动器的应用可以是车辆停放的可检测证据。车辆140可以包括用于感测变速器状态的传感器130,其中变速器状态传感器可以指示停放的变速器状态。变速器状态传感器是用于虚拟变速器的虚拟传感器,例如在没有物理变速器的车辆(诸如电动汽车)上。
可用于确定车辆是否停放的另一个示例特性是车辆140是否位于已知为频繁使用的停放位置的“家”位置。例如,车辆140可以具有传感器130,用于使用卫星信号来确定位置。系统基于卫星定位服务(也称为全球导航卫星系统,“GNSS”)的示例包括美国全球定位系统(“GPS”)、俄罗斯全球导航卫星系统(GLONASS)和欧洲联盟的伽利略系统。如果确定的位置是“家”停放位置,则车辆可以是停放的。车辆计算设备244可以与“家”位置相关联的信标或网络接入点通信,并且车辆计算设备244可以使用该通信作为车辆在相关联的“家”位置的证据。“家”停放位置由例如车辆操作者或所有者以编程方式配置。可以例如使用机器学习算法来学习“家”停放位置。“家”停放位置可以是所有者或操作者的住宅、营业场所或车辆140定期或例行停放的任何其他位置。车辆140可以具有多个“家”停放位置。
可用于确定车辆是否停放的另一个示例特性是车辆140是否在运动中。车辆140可以包括用于检测运动的一个或多个传感器130。例如,传感器130可以与车辆的里程表通信,并且可以确定里程表是否正测量到在小时间增量(例如,一秒或几分之一秒)内行驶的距离的增加。车辆130具有传感器130,用于使用卫星信号来确定位置,并且车辆计算设备244使用位置变化率来确定车辆是否在运动中。一些基于卫星定位系统的精度在几米之内,这可能不足以检测小的移动,但对于检测较大的移动可能足够精确。也就是说,卫星定位系统可能是确认其他测量的有用的故障保险。车辆140可以包括运动传感器,诸如加速度计。客户端设备128可以包括诸如加速度计的运动传感器,并且车辆140可以与客户端设备128通信,使得其可以使用客户端设备128的运动传感器来确定车辆140没有在运动中。运动传感器可以连接到车辆140的传动系统,并且可以检测车辆140是否正在向车辆140的车轮发送动力。车辆140可以包括车载诊断(“OBD”)或车载诊断类型2(“OBD-II”)端口,用于连接到维护装备(例如,在汽车店中)。例如,加密狗可以连接到OBD或OBD-II端口,并且加密狗(dongle)可以将来自车辆140的运动数据报告给车辆计算设备244和客户端设备128中的一个或两个。
在动作550,车辆计算设备244创建恢复映像。车辆计算设备244可以保存要更新的软件或固件的副本,使得在安装失败的情况下,该副本可以用于撤销安装。车辆计算设备244可以保持可修改数据的镜像副本,使得对一个副本的安装仅在提交时应用于另一个副本;也就是说,镜像是恢复映像。
在动作560,车辆计算设备244安装更新包。在一些实施方式中,更新包包括用于安装或修改由车辆计算设备244提供的功能的一组更新指令。更新包可以包括要写入特定存储器位置的二进制数据块。更新包可以包括一系列安装步骤的指令。更新包可以包括要复制到特定数据管理位置的数据文件。更新包可以包括压缩数据和对压缩数据进行解压缩的指令。更新包可以包括用于更新多个应用的指令,使得每个更新可以独立应用。
在动作570,车辆计算设备244确定安装是否成功。更新包可以包括用于验证成功安装的测试序列。例如,如果应用可以启动,则该应用可能已经成功安装。更新包可以包括用于验证成功安装的一个或多个诊断。车辆计算设备244可以包括用于确认车辆计算设备244处于正确操作状态的自诊断例程。
在动作580,如果安装成功,车辆计算设备244提交安装。车辆计算设备244可以删除恢复映像。车辆计算设备244可以在数据集的镜像映像上复制主数据集。车辆计算设备244可以设置指示成功安装的标志。车辆计算设备244可以更新已安装版本号的目录。
在动作590,如果安装不成功,车辆计算设备244将安装从动作550回滚到恢复映像。例如,车辆计算设备244可以使用恢复映像覆盖安装的指令。在安装失败的情况下,车辆计算设备244可以生成将传播回更新服务器210的错误消息(例如,经由客户端设备128)。
图6是示出了计算机系统600的通用架构的框图,该计算机系统600可用于实施本文描述和示出的系统和方法的元素。计算机系统或计算设备600可以包括或用于实施系统100或其组件,诸如数据处理系统105。计算系统600包括用于传送信息的总线605或其他通信组件,或者耦合到总线605用于处理信息的处理器610的处理电路。计算系统600还可以包括一个或多个处理器610或耦合到总线的处理电路,以用于处理信息。计算系统600还包括主存储器615,诸如随机存取存储器(“RAM”)或其他动态存储设备,其耦合到总线605,用于存储信息和将由处理器610执行的指令。主存储器615可以是或包括数据存储库145。主存储器615还可以用于在处理器610执行指令期间存储位置信息、临时变量或其他中间信息。计算系统600还可以包括耦合到总线605的只读存储器(ROM)620或其他静态存储设备,用于为处理器610存储静态信息和指令。诸如固态设备、磁盘或光盘的存储设备625可以耦合到总线605,以持久存储信息和指令。存储设备625可以包括数据存储库118或者是数据存储库118的一部分。
计算系统600可以经由总线605耦合到显示器635,诸如液晶显示器或有源矩阵显示器,用于向用户显示信息。输入设备630,诸如包括字母数字键和其他键的键盘,可以耦合到总线605,用于向处理器610传送信息和命令选择。输入设备630可以包括触摸屏显示器635。输入设备630还可以包括光标控件,诸如鼠标、轨迹球或光标方向键,用于向处理器610传送方向信息和命令选择,以及用于控制显示器635上的光标移动。例如,显示器635可以是图1A的数据处理系统102、客户端计算设备128或其他组件的一部分。
响应于处理器610执行包含在主存储器615中的指令排列,由计算系统600可以实现本文描述的过程、系统和方法。这些指令可以从诸如存储设备625的另一个计算机可读介质读入到主存储器615中。包含在主存储器615中的指令排列的执行使得计算系统600执行本文描述的说明性过程。多处理布置中的一个或多个处理器也可以用来执行包含在主存储器615中的指令。随同本文描述的系统和方法一起,硬连线电路可以代替软件指令,或者与软件指令结合使用。本文描述的系统和方法不限于硬件电路和软件的任何特定组合。
尽管在图6中描述了示例计算系统,但是包括本说明书中描述的操作的主题可以在其他类型的数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。
所描述的客户端设备128可以充当车辆计算设备244和更新服务器210之间的信使或中间设备。在一些实施方式中,客户端设备128还可以具有安装在其上的与车辆计算设备244交互的应用。可以协调这种应用的更新,以便以协调的方式更新安装在客户端设备128上的元件和安装在车辆计算设备244上的相应元件。在一些实施方式中,安装在客户端设备128上的应用可以独立地生成更新请求。安装在客户端设备128上的应用可以与客户端设备128上的协调器应用交互,并且协调器应用可以生成统一的更新请求。
如上所述,因为客户端设备128充当向车辆计算设备244传送数据的信使,所以车辆计算设备244不需要单独的数据连接(例如,移动电话数据计划)来支持所述更新。然而,车辆计算设备244可以访问第二数据连接(例如,移动电话数据计划),并且可以使用第二数据连接来增强更新。例如,更新包可以包括更新数据以及用于车辆计算设备244联系更新服务器210用于安装步骤或验证步骤,例如带外认证或验证步骤的指令。
客户端设备128或车辆计算设备244可以呈现用户接口,该用户接口使得车辆140的所有者、操作员、驾驶员或乘客能够控制更新过程。例如,用户接口可以允许安排更新、启动更新、授权更新、暂停更新、恢复更新或终止更新。在一些实施方式中,用户接口是语音控制的,例如,经由语音控制的辅助应用。
对于本文讨论的系统收集关于用户的个人信息或者可以利用个人信息的情况,可以向用户提供机会来控制是否可以收集个人信息(例如,关于用户的社交网络、社交动作或活动、用户偏好或用户位置的信息)的程序或特征,或者控制是否或者如何从内容服务器或可能与用户更相关的其他数据处理系统来接收内容。此外,在存储或使用某些数据之前,可以以一种或多种方式对其进行匿名化,使得在生成参数时删除个人可识别信息。例如,用户的身份可以匿名化,使得不能确定用户的个人可识别信息,或者可以在获得位置信息的地方(例如城市、邮政编码或州级)概括用户的地理位置,使得不能确定用户的特定位置。因此,用户可以控制内容服务器如何收集和使用关于他或她的信息。
本说明书中描述的主题和操作可以在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括在本说明书中公开的结构和它们的结构等同物,或者它们中的一个或多个的组合中实施。本说明书中描述的主题可以实施为编码在一个或多个计算机存储介质上的一个或多个计算机程序,例如计算机程序指令的一个或多个电路,用于由数据处理装置执行或控制数据处理装置的操作。替选地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以编码信息,用于传输到合适的接收器装置以由数据处理装置执行。计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或包括在一个或多个单独的组件或介质(例如,多个CD、磁盘或其他存储设备)中。本说明书中描述的操作可以实施为由数据处理设备对存储在一个或多个计算机可读存储设备上或从其他来源接收的数据执行的操作。
术语“数据处理系统”、“计算设备”、“组件”或“数据处理装置”包括用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机、片上系统或多个前述组件,或前述组件的组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。所描述的计算设备,包括客户端设备128、数据处理系统102组件和车辆计算设备244,可以包括或共享一个或多个数据处理装置、系统、计算设备或处理器。
计算机程序(也称为程序、软件、软件应用、app、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以对应于文件系统中的文件。计算机程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一台或多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序(例如,数据处理系统102的组件)的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路中。
本文描述的主题可以在计算系统中实施,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面或web浏览器的客户端计算机,用户可以通过该图形用户界面或web浏览器与本说明书中描述的主题的实施方式交互,或者该计算系统包括一个或多个这样的后端、中间件或前端组件的组合。系统的组件可以通过例如通信网络的任何形式或介质的数字数据通信互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如因特网)和对等网络(例如点对点对等网络)。
所描述的计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络(例如,网络142)进行交互。客户端和服务器之间的关系是由于在相应的计算机上运行的计算机程序并且彼此之间具有客户端-服务器关系而产生的。在一些实施方式中,服务器将数据(例如,表示内容项的数据分组)传输到客户端设备(例如,为了向与客户端设备交互的用户呈现数据和从与客户端设备交互的用户接收用户输入)。在客户端设备处生成的数据(例如,用户交互的结果)可以从服务器处的客户端设备接收(例如,由数据处理系统102从客户端计算设备接收)。
虽然在附图中以特定顺序描述了操作,但是这种操作不需要以所示的特定次序或顺序来执行,并且不需要执行所有示出的操作。本文描述的动作可以以不同的次序执行。
各种系统组件的分离并不需要在所有实施方式中分离,并且所描述的程序组件可以包含在单个硬件或软件产品中。例如,某些组件可以是单个组件、app或程序,或者具有一个或多个处理电路的逻辑设备,或者数据处理系统102的一个或多个服务器的一部分。
现在已经描述了一些说明性实施方式,显然前面是说明性的而非限制性的,已经通过示例的方式给出。具体而言,尽管本文呈现的许多示例涉及方法动作或系统元件的特定组合,但是这些动作和那些元件可以以其他方式组合以实现相同的目标。结合一个实施方式讨论的动作、元件和特征不旨在被排除在其他实施方式或实施方式中的类似角色。
本文使用的措辞和术语是出于描述的目的,不应被视为限制。本文使用的“包括”、“包含”、“具有”、“含有”、“涉及”、“特征在于”、“特征是”及其变型意味着涵盖其后列出的项目、其等同物和附加项目,以及由其后专门列出的项目组成的替代实施方式。在一个实施方式中,本文所述的系统和方法由一个、多于一个或所有所述元件、动作或组件的每个组合组成。
本文中以单数形式提及的实施方式或系统和方法的元件或动作的任何引用也可以涵盖包括多个这些元件的实施方式,并且本文中以复数形式对任何实施方式或元件或动作的任何提及也可以涵盖仅包括单个元件的实施方式。单数或复数形式的提及并不旨在将当前公开的系统或方法、其组件、动作或元件限制为单个或多个配置。对基于任何信息、动作或元件的任何动作或元件的引用可以包括其中动作或元件至少部分基于任何信息、动作或元件的实施方式。
本文公开的任何实施方式可以与任何其他实施方式或实施例相结合,并且对“一实施方式”、“一些实施方式”、“一个实施方式”等的引用不一定相互排斥,并且旨在指示结合该实施方式描述的特定特征、结构或特性可以包括在至少一个实施方式或实施例中。本文使用的这些术语不一定都指相同的实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式,包括性地或排他性地,与任何其他实施方式相结合。
对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以指示单个、多于一个和所有描述的术语中的任何一个。例如,对“‘A’和‘B’中至少一个”的引用可以包括仅‘A’、仅‘B’、以及‘A’和‘B’两者。与“包括”或其他开放术语结合使用的这种引用可以包括附加项目。
在附图、详细描述或任何权利要求中的技术特征后面跟随有附图标记的地方,已经包括附图标记以增加附图、详细描述和权利要求的可理解性。因此,附图标记或其缺失对任何权利要求要素的范围都没有任何限制作用。
本文描述的系统和方法可以在不脱离本发明的特性的情况下以其他特定形式实施。前述实施方式是说明性的,而不是对所描述的系统和方法的限制。因此,本文描述的系统和方法的范围由所附权利要求而不是前述描述来指示,并且落入权利要求等同物的含义和范围内的改变包含在其中。

Claims (20)

1.一种更新车辆计算设备的功能的系统,包括:
移动计算设备,所述移动计算设备独立于安装在车辆中的车辆计算设备,所述移动计算设备包括可重写的计算机可读存储器、一个或多个通信接口以及处理器,所述处理器用于:
响应于检测到经由所述一个或多个通信接口中的至少一个到通信网络的第一连接:
经由所述通信网络向更新服务器传输更新请求;
接收响应于所述更新请求的更新包;以及
将所接收到的更新包存储在所述可重写的计算机可读存储器中;以及
响应于检测到经由所述一个或多个通信接口中的至少一个到所述车辆计算设备的第二连接:
将所存储的更新包从所述可重写的计算机可读存储器传输到所述车辆计算设备以用于安装。
2.根据权利要求1所述的系统,其中,所述移动计算设备被动地传输所述更新请求,并且被动地将所述更新包传送到所述车辆计算设备。
3.根据权利要求1所述的系统,其中,所述移动计算设备和所述车辆计算设备中的至少一个使用与所述更新包的有效源相关联的安全证书来校验所述更新包。
4.根据权利要求3所述的系统,包括:
所述车辆计算设备被配置为在安装所述更新包之前校验所述更新包。
5.根据权利要求1所述的系统,包括:
所述车辆计算设备被配置成:
在提交所述更新包的安装之前,验证所述更新包的安装;
根据所述验证确定所述更新包未能正确安装;以及
响应于确定所述更新包未能正确安装,回滚所述更新包的安装。
6.根据权利要求1所述的系统,包括:
所述车辆计算设备被配置为安排在所述安装与所述车辆计算设备的操作和所述车辆的操作中的至少一个兼容的时间安装所述更新包。
7.根据权利要求6所述的系统,其中,所述安装与所述车辆计算设备的操作和所述车辆的操作中的至少一个兼容的时间包括待更新的所述车辆的功能的参数不在使用中。
8.根据权利要求6所述的系统,其中,所述车辆和所述车辆计算设备中的至少一个包括位置传感器、变速器状态传感器和运动传感器,并且其中,所述安装与所述车辆计算设备的操作和所述车辆的操作中的至少一个兼容的时间包括所述车辆正在停放的参数,所述车辆计算设备被配置为基于来自所述位置传感器、所述变速器状态传感器和所述运动传感器中的一个或多个的数据元素的组合来确定所述车辆正在被停放,其中,所述数据元素的组合是以下中的一个或多个:
所述变速器状态传感器指示停放的变速器状态;
所述位置传感器指示与所述车辆的已建立的停放位置相对应的位置;以及
所述运动传感器确认所述车辆的运动低于阈值。
9.根据权利要求8所述的系统,其中,所述位置传感器是基于卫星的定位系统,并且所述运动传感器连接到所述车辆的传动系统和所述车辆的里程表中的至少一个中的一个。
10.根据权利要求8所述的系统,包括:
存储所述车辆的已建立的停放位置的集合的数据元素,所述已建立的停放位置的集合中的每个位置由所述车辆计算设备使用机器学习算法来识别。
11.一种更新车辆计算设备的功能的方法,包括:
由独立于安装在车辆中的车辆计算设备的移动计算设备来检测到通信网络的第一连接;
由所述移动计算设备响应于检测到所述第一连接,经由所述通信网络向更新服务器传输更新请求;
接收响应于所述更新请求的更新包;
将所接收到的更新包存储在所述移动计算设备的存储器元件中;
由所述移动计算设备检测到所述车辆计算设备的第二连接;以及
将所存储的更新包从所述移动计算设备的所述存储器元件传送到所述车辆计算设备以用于安装。
12.根据权利要求11所述的方法,包括:
被动地传输所述更新请求;以及
被动地将所述更新包传送到所述车辆计算设备,而不需要确认交互。
13.根据权利要求11所述的方法,包括:
使用与所述更新包的有效源相关联的安全证书来校验所述更新包。
14.根据权利要求13所述的方法,其中,所述车辆计算设备被配置为在安装所述更新包之前校验所述更新包。
15.根据权利要求11所述的方法,其中,所述车辆计算设备被配置成:
在提交所述更新包的安装之前,验证所述更新包的安装;
根据所述验证确定所述更新包未能正确安装;以及
响应于确定所述更新包未能正确安装,回滚所述更新包的安装。
16.根据权利要求11所述的方法,其中,所述车辆计算设备被配置为安排在所述安装与所述车辆计算设备的操作和所述车辆的操作中的至少一个兼容的时间安装所述更新包。
17.根据权利要求16所述的方法,其中,所述安装与所述车辆计算设备的操作和所述车辆的操作中的至少一个兼容的时间包括待更新的所述车辆的功能的参数不在使用中。
18.根据权利要求16所述的方法,其中,所述车辆和所述车辆计算设备中的至少一个包括位置传感器、变速器状态传感器和运动传感器,并且其中,所述安装与所述车辆计算设备的操作和所述车辆的操作中的至少一个兼容的所述时间包括所述车辆正在停放的参数,所述车辆计算设备被配置为基于来自所述位置传感器、所述变速器状态传感器和所述运动传感器中的一个或多个的数据元素的组合来确定所述车辆正在停放,其中,所述数据元素的组合是以下中的一个或多个:
所述变速器状态传感器指示停放的变速器状态;
所述位置传感器指示与所述车辆的已建立的停放位置相对应的位置;以及
所述运动传感器确认所述车辆的运动低于阈值。
19.根据权利要求18所述的方法,其中,所述位置传感器是基于卫星的定位系统,并且所述运动传感器连接到所述车辆的传动系统或所述车辆的里程表中的一个。
20.根据权利要求18所述的方法,其中,所述车辆和所述车辆计算设备中的至少一个包括存储所述车辆的已建立的停放位置的集合的数据元素,所述已建立的停放位置的集合中的每个位置由所述车辆计算设备使用机器学习算法来识别。
CN201780091905.6A 2017-10-03 2017-10-03 车辆计算设备的更新信使 Pending CN110741341A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/054858 WO2019070235A1 (en) 2017-10-03 2017-10-03 UPDATE MESSAGING FOR VEHICLE COMPUTING DEVICES

Publications (1)

Publication Number Publication Date
CN110741341A true CN110741341A (zh) 2020-01-31

Family

ID=60153455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780091905.6A Pending CN110741341A (zh) 2017-10-03 2017-10-03 车辆计算设备的更新信使

Country Status (4)

Country Link
US (1) US20200089487A1 (zh)
EP (2) EP3619602B1 (zh)
CN (1) CN110741341A (zh)
WO (1) WO2019070235A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11039198B2 (en) * 2016-07-14 2021-06-15 Thales Avionics, Inc. Terminal edge in-flight entertainment system
US20190205115A1 (en) * 2017-12-31 2019-07-04 Veniam, Inc. Systems and methods for secure and safety software updates in the context of moving things, in particular a network of autonomous vehicles
US11349669B1 (en) 2018-01-30 2022-05-31 State Farm Mutual Automobile Insurance Company Cryptographic hash chain for vehicle configuration verification
US10899358B2 (en) * 2018-05-31 2021-01-26 Accenture Global Solutions Limited Vehicle driver monitoring system and method for capturing driver performance parameters
US11151255B2 (en) * 2018-10-26 2021-10-19 Dell Products L.P. Method to securely allow a customer to install and boot their own firmware, without compromising secure boot
US10896034B2 (en) * 2018-11-14 2021-01-19 Babu Vinod Methods and systems for automated screen display generation and configuration
JP6832374B2 (ja) * 2019-02-22 2021-02-24 本田技研工業株式会社 ソフトウェア更新装置、車両及びソフトウェア更新方法
CN112114840B (zh) * 2019-06-21 2023-01-06 华为技术有限公司 软件升级方法、装置及系统
FR3099838A1 (fr) * 2019-08-08 2021-02-12 Psa Automobiles Sa Mise à jour de programmes d’un véhicule via un équipement de communication d’un usager
CN112799706A (zh) * 2019-11-14 2021-05-14 华为技术有限公司 车辆升级包处理方法和装置
US11314495B2 (en) * 2020-03-30 2022-04-26 Amazon Technologies, Inc. In-vehicle synthetic sensor orchestration and remote synthetic sensor service
JP7327304B2 (ja) * 2020-07-08 2023-08-16 トヨタ自動車株式会社 ソフトウェア更新装置、方法、プログラムおよび車両
DE102020134096A1 (de) * 2020-12-18 2022-06-23 innogy eMobility Solutions GmbH Technik zur Übertragung eines Softwareupdatepakets für eine Software einer Ladestation für elektrisch betriebene Kraftfahrzeuge
US11887411B2 (en) 2021-01-27 2024-01-30 Amazon Technologies, Inc. Vehicle data extraction service
EP4305520A1 (en) * 2021-03-08 2024-01-17 Bang & Olufsen A/S Automatic over-the-air firmware update of wireless audio playback devices
US11743334B2 (en) 2021-03-31 2023-08-29 Amazon Technologies, Inc. In-vehicle distributed computing environment
US11681811B1 (en) * 2021-06-25 2023-06-20 Northrop Grumman Systems Corporation Cybersecurity for configuration and software updates of vehicle hardware and software based on fleet level information
US11409866B1 (en) 2021-06-25 2022-08-09 Northrop Grumman Systems Corporation Adaptive cybersecurity for vehicles
US11902374B2 (en) 2021-11-29 2024-02-13 Amazon Technologies, Inc. Dynamic vehicle data extraction service
US20230282039A1 (en) * 2022-03-04 2023-09-07 GM Global Technology Operations LLC Cloud-based platform server for vehicle dtc data analyzing, reporting and responding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873551A (zh) * 2012-12-10 2014-06-18 福特全球技术公司 乘员使用引入装置与车辆系统交互的方法及系统
US20140232569A1 (en) * 2013-02-21 2014-08-21 Apple Inc. Automatic identification of vehicle location
US20150230044A1 (en) * 2014-02-12 2015-08-13 Continental Automotive Systems, Inc. Updating vehicle software using a smartphone
US20160266886A1 (en) * 2015-03-10 2016-09-15 GM Global Technology Operations LLC Performing a vehicle update
WO2017124174A1 (en) * 2016-01-22 2017-07-27 2236008 Ontario Inc. Updating a controller unit in a vehicle

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5975964B2 (ja) * 2013-10-18 2016-08-23 富士通株式会社 情報処理プログラム、情報処理方法、情報処理装置、及び情報処理システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873551A (zh) * 2012-12-10 2014-06-18 福特全球技术公司 乘员使用引入装置与车辆系统交互的方法及系统
US20140232569A1 (en) * 2013-02-21 2014-08-21 Apple Inc. Automatic identification of vehicle location
US20150230044A1 (en) * 2014-02-12 2015-08-13 Continental Automotive Systems, Inc. Updating vehicle software using a smartphone
US20160266886A1 (en) * 2015-03-10 2016-09-15 GM Global Technology Operations LLC Performing a vehicle update
WO2017124174A1 (en) * 2016-01-22 2017-07-27 2236008 Ontario Inc. Updating a controller unit in a vehicle

Also Published As

Publication number Publication date
EP3619602A1 (en) 2020-03-11
EP3619602B1 (en) 2021-06-09
US20200089487A1 (en) 2020-03-19
WO2019070235A1 (en) 2019-04-11
EP3901764A1 (en) 2021-10-27

Similar Documents

Publication Publication Date Title
CN110741341A (zh) 车辆计算设备的更新信使
US9393918B2 (en) Methods, systems and apparatus for providing application generated information for presentation at an automotive head unit
CA2996004C (en) Cloud integrated vehicle platform
JP6828740B2 (ja) 車両の電子インタフェースを介した通信を容易にするためのシステム及び方法
CN108136984B (zh) 用于应用驾驶员车辆设置数据的方法、系统和介质
US20170305437A1 (en) Crowd-sourced vehicle setting recommendations
US20140302774A1 (en) Methods systems and apparatus for sharing information among a group of vehicles
CN110659078A (zh) 远程车辆电子装置配置
US20200293041A1 (en) Method and system for executing a composite behavior policy for an autonomous vehicle
US20150116100A1 (en) Methods, systems and apparatus for providing notification that a vehicle has been accessed
JP7337901B2 (ja) センサーベースの検証を用いた車両機能制御
US10560823B1 (en) Systems and methods for roadside assistance
US20150031394A1 (en) Methods, systems and apparatus for providing notification at an automotive head unit that a wireless communication device is outside a vehicle
JP6903770B2 (ja) 車両診断データに基づくアクション可能イベント決定
US20200409678A1 (en) Vehicle software update network
US20170297529A1 (en) Vehicle Computer System for Authorizing Insurance and Registration Policy
CN116032522A (zh) 向非驾驶员的用户提供驾驶信息的方法及系统

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