用于管理车辆计算系统中的软件更新的系统和方法转让专利

申请号 : CN201510178174.1

文献号 : CN105045608B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 菲利普·约瑟夫·丹纳乔伊·蕾·格鲁佛斯科特·斯迈瑞卡乔尔·J·菲舍尔

申请人 : 麦恩电子有限公司

摘要 :

公开了用于管理车辆计算系统中的软件更新的系统和方法。一种车辆软件管理系统包括:收发器,被配置为与服务器进行信息传输;处理器,与收发器进行通信。所述处理器可被配置为:从服务器接收文件清单,并基于服务器的文件清单将一个或更多个将被更新的应用文件的列表发送到服务器。所述处理器还可被配置为基于所述列表从服务器接收一个或更多个应用文件。所述处理器还可被配置为:基于目标文件位置、安装类型和文件标识中的至少一个,使用所述一个或更多个应用文件来刷新一个或更多个系统。

权利要求 :

1.一种车辆软件管理系统,包括:

车辆处理器,与收发器进行通信,所述车辆处理器被配置为:从服务器接收列出将被安装的应用文件以及安装类型的文件清单,所述安装类型针对每个应用文件指定安装对应的应用文件是否需要即时替代类型安装、处理终止类型安装、重启类型安装、系统命令类型安装或镜像类型安装;

根据所述文件清单指定的安装类型,将从所述服务器接收的应用文件安装到车辆中的存储器位置。

2.如权利要求1所述的车辆软件管理系统,其中,所述车辆处理器还被配置为使用与收发器进行通信的移动装置来与服务器进行通信。

3.如权利要求1所述的车辆软件管理系统,其中,所述车辆处理器还被配置为使用与收发器进行通信的嵌入式调制解调器来与服务器进行通信。

4.如权利要求1所述的车辆软件管理系统,其中,所述应用文件为软件和固件中的至少一个。

5.如权利要求1所述的车辆软件管理系统,其中,所述存储器位置为通过包括在所述文件清单中的目标文件位置识别的驱动器、装置和控制模块中的至少一个。

6.如权利要求5所述的车辆软件管理系统,其中,目标文件位置是由所述车辆处理器执行的指令,用于针对识别出的组件刷新存储器位置。

7.如权利要求1所述的车辆软件管理系统,其中,所述重启类型安装包括由所述车辆处理器执行的用于存储应用文件的副本以在重启期间应用至存储器位置的指令。

8.如权利要求1所述的车辆软件管理系统,其中,所述车辆处理器还被配置为:接收基于对一个或更多个系统的存储器位置的安装的下载损坏消息,并尝试使用应用文件对所述一个或更多个系统进行再次安装。

9.一种网络,包括:

服务器,经由收发器与车辆计算系统进行通信,所述服务器被配置为:基于经由所述收发器接收的标识识别用于通信的车辆计算系统请求;

基于所述车辆计算系统的标识生成应用清单,所述应用清单列出将被安装到车辆计算系统的应用文件以及安装类型,所述安装类型针对每个应用文件指定安装对应的应用文件是否需要即时替代类型安装、处理终止类型安装、重启类型安装、系统命令类型安装或镜像类型安装;

将所述应用清单发送到车辆计算系统;

接收具有针对应用文件的请求的管理标准;

基于管理标准将应用文件发送到车辆计算系统。

10.如权利要求9所述的网络,其中,所述管理标准是用于对应用文件进行部分发送和全部发送中的至少一个的命令。

11.如权利要求9所述的网络,其中,所述应用清单包括目标文件位置、安装类型和文件标识中的至少一个。

12.如权利要求9所述的网络,其中,所述服务器还被配置为从车辆计算系统接收损坏消息,并基于所述损坏消息来更新应用清单。

13.如权利要求9所述的网络,其中,所述收发器被配置为与以下两者中的至少一个进行通信:与车辆计算系统通信的移动装置和与车辆计算系统通信的嵌入式通信模块。

14.如权利要求9所述的网络,其中,所述标识为以下项中的至少一个:为车辆计算系统分配的标识、车辆计算系统中的当前安装的应用文件的列表和当前安装的应用文件的列表的版本信息。

15.一种移动装置,包括:

一个或更多个收发器,被配置为与车辆计算系统和服务器进行信息传输;

处理器,与所述一个或更多个收发器进行通信,所述处理器被配置为:从服务器接收文件清单,所述文件清单列出将被安装到车辆计算系统的应用文件以及安装类型,所述安装类型针对每个应用文件指定安装对应的应用文件是否需要即时替代类型安装、处理终止类型安装、重启类型安装、系统命令类型安装或镜像类型安装;

将所述文件清单发送到车辆计算系统;

基于来自车辆计算系统的文件清单来接收一个或更多个将被更新的应用文件的列表,并将所述列表发送到服务器;

从服务器接收一个或更多个应用文件;

发送具有目标文件位置、安装类型和文件标识中的至少一个的一个或更多个应用文件。

16.如权利要求15所述的移动装置,其中,所述文件清单是基于识别的车辆计算系统的一个或更多个应用的列表。

17.如权利要求15所述的移动装置,其中,所述一个或更多个应用文件的安装类型包括:激活命令、终止命令、重启命令、镜像命令和系统命令中的至少一个。

18.如权利要求17所述的移动装置,其中,所述激活命令是由车辆计算系统执行的指令,用于在车辆计算系统接收到所述一个或更多个应用文件时使用所述一个或更多个应用文件来刷新车辆中的一个或更多个存储器位置。

19.如权利要求15所述的移动装置,其中,一个或更多个将被更新的应用文件的列表包括:对一个或更多个应用文件的请求和用于对所述一个或更多个应用文件的部分发送请求和全部发送请求中的至少一个的命令。

说明书 :

用于管理车辆计算系统中的软件更新的系统和方法

技术领域

[0001] 本公开涉及用于远程地对车辆计算系统的一个或更多个应用文件进行升级的方法和系统。

背景技术

[0002] 第8,589,908号美国专利总体上公开了一种用于使用从启用蓝牙的PC或膝上型计算机到另一蓝牙装置(例如,鼠标、键盘、耳机、移动电话等)的无线技术来远程地升级目标装置的固件的系统和方法。现有的解决方案要么可能不具备升级能力,要么可能需要使用专用线缆。在此提出的解决方案的实施例将蓝牙的“无线缆连接”概念扩展到固件升级。所述系统包括:用于发送需要升级的固件的主机装置;以及包含第一代码和第二代码的目标装置,其中,第一代码标识固件的细节,第二代码标识当固件被成功下载时下载操作的完成。
[0003] 第2013/0159717号美国专利公布总体上公开了一种用于认证将被下载到控制器的固件的方法。所述方法包括:在第一可信任源利用第一私钥对固件或固件的第一部分进行签名,并在第二可信任源利用第二私钥对固件或固件的第二部分进行签名。所述方法还包括:在控制器使用第一公钥验证签名的固件或固件的第一部分,并在控制器使用第二公钥验证签名的固件或固件的第二部分。所述方法还包括:如果固件或固件的第一部分在控制器被第一公钥验证且固件或固件的第二部分在控制器被第二公钥验证,则认证该固件。
[0004] 第2013/185563号美国专利公布总体上公开了一种移动装置,所述移动装置通过将更新的固件写入非激活的系统镜像分区并重启移动装置来执行空中传递(在此被称作OTA)固件更新。通过检查在OTA清单中的多个安全签名来维护OTA更新的安全性,并通过检查下载的系统镜像的哈希(hash)值来维护数据的完整性。

发明内容

[0005] 在至少一个实施例中,一种车辆软件管理系统包括:收发器,被配置为与服务器进行信息传输;处理器,与收发器进行通信。所述处理器可被配置为:从服务器接收文件清单,并基于文件清单将一个或更多个将被更新的应用文件的列表发送到服务器。所述处理器还可被配置为基于所述列表从服务器接收一个或更多个应用文件。所述处理器还可被配置为:基于目标文件位置、安装类型和文件标识中的至少一个,使用所述一个或更多个应用文件来刷新一个或更多个系统。
[0006] 在至少一个实施例中,一种重配置管理网络包括:收发器,被配置为与无线装置进行通信;服务器,与收发器进行通信;处理器。处理器可被配置为经由请求连接的标识来识别车辆计算系统(VCS)。处理器还可被配置为基于所述标识将应用请求发送到VCS。处理器还可被配置为接收具有针对应用文件的请求的管理标准,并基于管理标准将应用文件发送到VCS。
[0007] 在至少一个实施例中,一种重配置网络包括:服务器,与收发器进行通信;处理器,被配置为:基于经由收发器接收的标识来识别将通信的车辆计算系统(VCS)请求;基于VCS的标识来产生应用清单;将应用清单发送到VCS;接收具有针对应用文件的请求的管理标准;基于所述管理标准将应用文件发送到VCS。
[0008] 根据本发明的一个实施例,所述管理标准可以是用于对应用文件进行部分或全部发送中的至少一个的命令。
[0009] 根据本发明的一个实施例,所述应用清单可包括目标文件位置、安装类型和文件标识中的至少一个。
[0010] 根据本发明的一个实施例,所述处理器还可被配置为从VCS接收损坏消息,并基于所述损坏消息来更新应用清单。
[0011] 根据本发明的一个实施例,所述收发器可被配置为与以下两者中的至少一个进行通信:与VCS通信的移动装置和与VCS通信的嵌入式通信模块。
[0012] 根据本发明的一个实施例,所述标识可为以下项中的至少一个:为VCS分配的标识、VCS中的当前安装的应用文件的列表和当前安装的应用文件的列表的版本信息。
[0013] 在至少一个实施例中,一种移动装置包括:一个或更多个收发器,被配置为与车辆计算系统和服务器进行信息传输;处理器,与所述一个或更多个收发器进行通信。处理器可被配置为:从服务器接收文件清单并将所述文件清单发送到车辆计算系统(VCS)。处理器还可被配置为基于来自VCS的文件清单来接收一个或更多个将被更新的应用的列表,并将所述列表发送到服务器。处理器还可被配置为:从服务器接收一个或更多个应用文件;发送具有目标文件位置、安装类型和文件标识中的至少一个的一个或更多个应用文件。
[0014] 根据本发明的一个实施例,所述文件清单可以是基于识别的VCS的一个或更多个应用的列表。
[0015] 根据本发明的一个实施例,所述一个或更多个应用文件的安装类型可包括激活命令、终止命令、重启命令、镜像命令和系统命令中的至少一个。
[0016] 根据本发明的一个实施例,所述激活命令可以是由VCS执行的指令,用于在VCS接收到所述一个或更多个应用文件时使用所述一个或更多个应用文件来刷新车辆中的一个或更多个存储器位置。
[0017] 根据本发明的一个实施例,一个或更多个将被更新的应用的列表包括:对一个或更多个应用文件的请求和用于对一个或更多个应用文件的部分或全部发送的请求中的至少一个的命令。

附图说明

[0018] 图1是根据实施例的实现用户交互式车辆信息显示系统的车辆信息娱乐系统的示例性方框拓扑图;
[0019] 图2是根据实施例的用于将一个或更多个连接的装置与基于车辆的计算系统进行集成的系统的示例性方框拓扑图;
[0020] 图3是示出根据实施例的移动装置在车辆计算系统与服务器之间传输软件和固件数据中的至少一个的流程图;
[0021] 图4是示出根据实施例的网络管理软件清单和固件清单并将安装包发送到车辆计算系统的流程图;
[0022] 图5是示出车辆计算系统管理软件更新和固件更新中的至少一个的流程图。

具体实施方式

[0023] 在此描述本公开的实施例。然而,应该理解的是,所公开的实施例仅仅是示例,并且,其他实施例可采用各种替代形式。附图无需按比例绘制;可夸大或最小化一些特征以示出特定组件的细节。因此,在此公开的具体结构和功能细节不应被解释为具有限制性,而仅仅是作为用于教导本领域技术人员以多种方式利用实施例的代表性基础。本领域普通技术人员将理解的是,参照任一附图示出并描述的各种特征可与在一个或更多个其他附图中示出的特征相结合,以产生未明确示出或描述的实施例。示出的特征的组合提供用于典型应用的代表性实施例。然而,针对特定应用或实现,可期望对与本公开的教导一致的特征进行各种组合和修改。
[0024] 本公开的实施例总体上提供了多个电路或其他电装置。提及所述电路和其他电装置以及由它们中的每一个提供的功能时,都不意在受限于仅涵盖在此示出和描述的内容。虽然特定标号可被分配给公开的各种电路或其他电装置,但是这样的标号并不意在限制所述电路和其他电装置的操作的范围。可基于所期望的特定类型的电实施方案,按照任何方式将所述电路和其他电装置彼此组合和/或分离。将认识到的是,在此公开的任何电路或其他电装置可包括任意数量的微处理器、集成电路、存储器装置(例如,闪存、随机存取存储器(RAM)、只读存储器(ROM)、电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或上述项的其他适当变型)和软件,它们彼此协作以执行在此公开的操作。此外,任意一个或更多个电装置可被配置为执行在非暂时性计算机可读介质中实施的计算机程序,其中,所述计算机程序被编写为用于执行公开的任意数量的功能。
[0025] 车辆计算系统可使执行一个或更多个应用文件的功能、系统和/或组件执行指定的任务。车辆计算系统可在车辆的定期日程维修期间和/或在系统设置诊断代码的情况下,要求服务技术人员对所述一个或更多个应用文件的更新进行管理。车辆计算系统的所述一个或更多个应用文件的更新可要求在系统进行更新时替换整个应用文件。
[0026] 本公开提供可执行由车辆计算系统采用的一系列管理指令的系统和方法,以无线地更新一个或更多个应用文件。管理指令可被存储在车辆计算系统的本地存储器、可被存储在用户的移动装置和/或可从服务器下载。用户可与和车辆计算系统通信的若干系统进行交互,从而用户可参与对一个或更多个应用文件的更新。管理指令可具有若干命令,该若干命令包括但不限于:对组件进行全部或部分刷新(flash)、何时刷新的指令和/或更新什么应用文件。车辆计算系统可向用户通知管理指令,以实现对用户的透明性。在此描述对在车辆中的计算系统的一个或更多个应用文件的远程更新,管理指令可按如下讨论的内容被实现。
[0027] 图1示出用于车辆31的基于车辆的计算系统(VCS)1的示例方框拓扑图。这种基于车辆的计算系统1的示例为由福特汽车公司制造的SYNC系统。设置有基于车辆的计算系统的车辆可包含位于车辆中的可视前端界面4。如果所述界面设置有例如触摸敏感屏幕,则用户还能够与所述界面进行交互。在另一示意性实施例中,通过按钮按压、具有自动语音识别和语音合成的口语对话系统来进行交互。
[0028] 在图1中所示的示意性实施例1中,处理器3控制基于车辆的计算系统的至少一部分操作。设置在车辆内的处理器允许对命令和例程进行车载处理。另外,处理器被连接到非持久性存储器5和持久性存储器7两者。在此示意性实施例中,非持久性存储器是随机存取存储器(RAM),持久性存储器是硬盘驱动器(HDD)或闪存。一般说来,持久性(非暂时性)存储器可包括当计算机或其他装置掉电时保持数据的所有形式的存储器。这些存储器包括但不限于:HDD、CD、DVD、磁带、固态驱动器、便携式USB驱动器和任何其他适当形式的持久性存储器。
[0029] 处理器还设置有允许用户与处理器进行交互的若干不同的输入。在此示意性实施例中,麦克风29、辅助输入25(用于输入33)、USB输入23、GPS输入24、屏幕4(可为触摸屏显示器)和蓝牙输入15全部被设置。还设置有输入选择器51,以允许用户在各种输入之间进行切换。对于麦克风和辅助连接器两者的输入在被传送到处理器之前,由转换器27对所述输入进行模数转换。尽管未示出,但是与VCS进行通信的众多车辆组件和辅助组件可使用车辆网络(诸如但不限于CAN总线)向VCS(或其组件)传送数据并传送来自VCS(或其组件)的数据。
[0030] 系统的输出可包括但不限于可视显示器4以及扬声器13或立体声系统输出。扬声器被连接到放大器11并通过数模转换器9从处理器3接收其信号。还可分别沿19和21所示的双向数据流进行到远程蓝牙装置(诸如PND 54)或USB装置(诸如车辆导航装置60)的输出。
[0031] 在一示意性实施例中,系统1使用蓝牙收发器15与用户的移动装置53(例如,蜂窝电话、智能电话、PDA或具有无线远程网络连接能力的任何其他装置)进行通信(17)。移动装置随后可用于通过例如与蜂窝塔57的通信(55)来与车辆31外部的网络61进行通信(59)。在一些实施例中,蜂窝塔57可以是WiFi接入点。
[0032] 移动装置53与蓝牙收发器15之间的示例性通信由信号14表示。
[0033] 可通过按钮52或类似的输入来指示移动装置53与蓝牙收发器15进行配对。相应地,指示CPU 3(即,处理器)使得车载蓝牙收发器15将与移动装置53中的蓝牙收发器进行配对。
[0034] 可利用例如与移动装置53关联的数据计划、话上数据或DTMF音调在CPU 3与网络61之间传送数据。可选地,可期望包括具有天线18的车载调制解调器63以便在CPU 3与网络
61之间通过语音频带传送数据(16)。移动装置53随后可用于通过例如与蜂窝塔57的通信(55)来与车辆31外部的网络61进行通信(59)。在一些实施例中,调制解调器63可与蜂窝塔
57建立通信(20),以与网络61进行通信。作为非限制性示例,调制解调器63可以是USB蜂窝调制解调器,并且通信20可以是蜂窝通信。
[0035] 在一示意性实施例中,处理器设置有包括用于与调制解调器应用软件进行通信的API的操作系统。调制解调器应用软件可访问蓝牙收发器上的嵌入式模块或固件,以完成与(诸如设置在移动装置53中的)远程蓝牙收发器的无线通信。蓝牙是IEEE 802PAN(个域网)协议的子集。IEEE 802LAN(局域网)协议包括WiFi并与IEEE 802PAN具有相当多的交叉功能。两者都适合于车辆内的无线通信。可在这一范围使用的另一通信方式是自由空间光通信(诸如IrDA)和非标准化消费者红外协议。
[0036] 在另一实施例中,移动装置53包括用于语音频带或宽带数据通信的调制解调器。在话上数据的实施例中,当移动装置53的所有者可在数据被传送的同时通过装置说话时,可实施已知为频分复用的技术。在其他时间,当所有者没有在使用装置时,数据传送可使用整个带宽(在一示例中是300Hz至3.4kHz)。尽管频分复用对于车辆与互联网之间的模拟蜂窝通信而言会是常见的并仍在被使用,但其已经很大程度上被用于数字蜂窝通信的码域多址(CDMA)、时域多址(TDMA)、空域多址(SDMA)的混合体所替代。这些都是ITU IMT-2000(3G)兼容的标准,为静止或行走的用户提供高达2mbs的数据速率,并为在移动的车辆中的用户提供高达385kbs的数据速率。3G标准现在正被高级IMT(4G)所替代,其中,所述高级IMT(4G)为在车辆中的用户提供100mbs的数据速率并为静止的用户提供1gbs的数据速率。如果用户具有与移动装置关联的数据计划,则所述数据计划可允许宽带传输且系统可使用宽得多的带宽(加速数据传送)。在另一实施例中,移动装置53被安装至车辆31的蜂窝通信装置(未示出)所替代。在又一实施例中,移动装置53可以是能够通过例如(而非限制)802.11g网络(即WiFi)或WiMax网络进行通信的无线局域网(LAN)装置。
[0037] 在一实施例中,传入数据可经由话上数据或数据计划穿过移动装置53,穿过车载蓝牙收发器,并进入车辆的内部处理器3。例如,在某些临时数据的情况下,数据可被存储在HDD或其他存储介质7上,直至不再需要所述数据时为止。
[0038] 可与车辆进行接口连接的另外的源包括:具有例如USB连接56和/或天线58的个人导航装置54、具有USB 62或其他连接的车辆导航装置60、车载GPS装置24、或具有与网络61连接的能力的远程导航系统(未示出)。USB是一类串行联网协议中的一种。IEEE 1394(火TM TM TM线 (苹果)、i.LINK (索尼)和Lynx (德州仪器))、EIA(电子工业协会)串行协议、IEEE 
1284(Centronics端口)、S/PDIF(索尼/飞利浦数字互连格式)和USB-IF(USB开发者论坛)形成了装置-装置串行标准的骨干。多数协议可针对电通信或光通信来实施。
[0039] 此外,CPU 3可与各种其他的辅助装置65进行通信。这些装置可通过无线连接67或有线连接69来连接。辅助装置65可包括但不限于个人媒体播放器、无线保健装置、便携式计算机等。
[0040] 此外或可选地,可使用例如WiFi(IEEE 803.11)收发器71将CPU 3连接到基于车辆的无线路由器73。这可允许CPU 3在局域路由器73的范围中连接到远程网络。
[0041] 除了具有由位于车辆中的车辆计算系统执行的示例性处理之外,在某些实施例中,还可由与车辆计算系统通信的计算系统来执行示例性处理。这样的系统可包括但不限于:无线装置(例如但不限于移动电话)或通过无线装置连接的远程计算系统(例如但不限于服务器)。总体上,这样的系统可被称为与车辆关联的计算系统(VACS)。在某些实施例中,VACS的特定组件可根据系统的特定实施而执行处理的特定部分。作为示例而并非限制的方式,如果处理具有与配对的无线装置发送或者接收信息的步骤,则很可能无线装置没有在执行该处理,这是因为无线装置不会与自身进行信息的“发送和接收”。本领域的普通技术人员将理解何时不适合对给定解决方案应用特定的VACS。在所有解决方案中,预期至少位于车辆内的车辆计算系统(VCS)自身能够执行示例性处理。
[0042] 图2是根据一实施例的用于将一个或更多个连接装置与基于车辆的计算系统(VCS)1进行集成的系统100的示例性方框拓扑图。CPU 3(即,处理器)可与一个或更多个收发器进行通信。所述一个或更多个收发器能够针对一个或更多个装置的集成进行有线通信或无线通信。为了有助于进行集成,CPU 3可包括被配置为向连接装置提供各种服务的装置集成框架101。这些服务可包括:在连接装置与CPU 3之间对消息进行的传输路由、用于允许连接装置向用户提供提醒的全局通知服务、用于允许统一接入到由CPU 3执行的应用和由连接装置执行的应用的应用启动和管理工具、软件/固件清单管理和下载管理、以及针对各种可能的车辆31目的地的感兴趣点位置和管理服务。
[0043] 如上面所提到的,VCS 1的CPU 3可被配置为与各种类型的一个或更多个移动装置53进行接口互联。移动装置53还可包括装置集成客户端组件103,用于允许移动装置53利用由装置集成框架101提供的服务。移动装置53集成组件103可包括但不限于在移动装置内设置的硬件上执行的固件管理应用。固件管理应用可使移动装置53能够在VCS 1与服务器61之间交换固件数据。
[0044] 所述一个或更多个收发器可包括多端口连接器集线器102。多端口连接器集线器102可被用于在CPU 3与除了移动装置53之外的其他类型的连接装置之间进行接口互联。多端口连接器集线器102可通过各种总线和协议(诸如经由USB)与CPU 3进行通信,并还可使用各种其他连接总线和协议(诸如串行外设接口(SPI)总线、内部集成电路(I2C)和/或通用异步接收器/发送器(UART))与连接装置进行通信。多端口连接器集线器102还可在由连接装置使用的协议与在多端口连接器集线器102与CPU 3之间使用的协议之间执行通信协议转换和交互服务。作为一些非限制性示例,连接装置可包括:雷达检测器104、全球定位接收器装置106和存储装置108。
[0045] VCS 1可从一个或更多个连接装置接收至少部分数据,并将所述至少部分数据格式化以输出到一个或更多个用户接口。所述一个或更多个用户接口可包括但不限于:显示器4(例如,触摸屏)、扬声器和/或仪表组和测量仪表。在一示例中,显示器可允许使用触摸屏上的软键、与旋钮和开关的交互和/或语音命令进行用户输入。显示器配置可包括但不限于在CPU 3与触摸屏显示器4之间的HDMI(四线)连接。
[0046] CPU 3可包括软件管理器组件,其中,软件管理器组件被用于跟踪VCS1的一个或更多个应用文件状态。软件管理器组件包括在CPU 3内的硬件上执行的一个或更多个管理指令算法。软件管理器组件包括清单文件,其中,清单文件包括但不限于:文件标识、文件状态、安装类型和/或文件位置。清单文件使软件管理器能够跟踪正在传输的一个或更多个应用文件(例如,固件)的状态、查找丢失/未完成的文件传输和/或跟踪一个或更多个应用文件的成功安装。清单文件还可包括回退信息,使得软件管理器跟踪信息从而能够回退到未完成传输或未成功下载的文件。
[0047] 软件管理器组件可管理系统级组件,其中,系统级组件有权更新VCS 1的文件系统的任意部分。系统级组件可包括更新向显示器4提供输出的应用级固件的文件。软件管理器组件可监视VCS 1文件系统,并可在从远程装置(例如,移动装置53、服务器61和/或它们的组合)下载部分系统之前更新这部分系统。软件管理器组件可更新无法在用户使用系统时被更新的系统组件(诸如,装置驱动器、新用户接口、通信协议或VCS 1的其他部分)。
[0048] 软件管理组件可与移动装置53和/或服务器61进行通信。服务器61可维护包括关于VCS 1的将被更新的文件列表的清单。在服务器61上的清单可包括文件标识符、目标文件位置、安装类型和校验和。定义一个或更多个文件的安装类型的清单的一些示例可包括:激活类型、终止(kill)类型、重启类型、系统命令类型和/或镜像类型。
[0049] 例如,如果清单表明特定文件具有激活类型安装,则VCS 1可将文件的下载管理为对在系统上的单个文件的即时替代。如果清单表明特定文件具有终止类型安装,则VCS 1可通过禁用正在运行的进程、替代文件并重新启动进程来管理文件的下载。如果清单表明文件具有重启类型安装,则可向VCS 1通知在系统检测到重启时通过安装文件的并行拷贝并替代原始文件来管理文件的下载。清单可表明文件具有系统命令类型安装,其中,系统命令类型安装可使VCS 1能够经由系统命令(例如,诸如“yum”或“apt-get”)来管理安装。清单可表明文件具有镜像类型安装;因此VCS可安装完整的系统镜像。
[0050] 服务器61可接收由CPU 3维护的清单文件,以跟踪由VCS 1执行的一个或更多个文件。VCS 1清单与服务器61上的清单文件不同,这是因为VCS1清单可包含关于在VCS 1中正被下载的一个或更多个应用文件的当前传输和安装状态的信息。VCS 1维护的清单还可包括回退信息,使得VCS 1可跟踪信息从而能够在下载未完成或被损坏的情况下回退传输。例如,VCS 1可识别出一个或更多个文件下载未完成和/或损坏,从而系统100可参照VCS清单并基于回退信息检索先前文件。
[0051] 服务器61可安全地发送包,并基于VCS的附属(dependency)提供定制清单。所述包可包括用于对一个或更多个应用、驱动器、组件和/或模块进行刷新的软件和/或固件。服务器61可包括基于可在VCS清单上列出的至少当前安装的包的逻辑管理。服务器61逻辑管理可基于VCS清单检索一个或更多个包并分配安装类型。
[0052] 与VCS 1连接的服务器61可由公共证书授权机构(例如,传输层安全)保护,以确保在包服务器与代理移动装置53和/或嵌入式通信模块(即,车载调制解调器63)之间的传输的安全。由服务器61与VCS 1共享的私有加密密钥可被用于接收包。通过连接传输的数据包含包清单和文件(包)数据。
[0053] 在一示例中,移动装置53可被用于在CPU 3与服务器61之间代理数据。CPU 3可通过移动装置53和/或车载调制解调器63连接到互联网,使得软件包和/或固件更新被发送到VCS 1。私有加密密钥可被CPU 3与服务器61共享以确保数据的安全传输。私有加密密钥可以是仅被分配给CPU 3的唯一密钥。在一示例中,可从服务器61发送加密密钥,然而,加密处理可利用多种不同的加密技术来实现,其中,加密技术包括但不限于:在每个VCS 1上的预定的已知密钥、共享的私有/公共密钥组合和/或独立的证书授权机构。
[0054] 服务器61和/或移动装置53可接收能够精确地识别唯一CPU 3的握手处理,所述唯一CPU 3包括当前安装在VCS 1中的软件和/或固件的版本信息。移动装置53和/或服务器61可发送关于识别出的VCS 1的加密的文件数据。被发送到VCS 1的数据可包括在VCS 1清单上不存在的附加信息。移动装置53、车载调制解调器63和/或服务器61可一次发送多个文件。
[0055] 在一示例中,可向移动装置53发送对文件数据的指定部分(例如,固件数据)的请求。如果数据(经由校验和)被确定为被损坏,如果数据在传输期间丢失和/或如果传输在某点被中断,则可由VCS 1进行请求。服务器61可基于从CPU 3发送的请求而传输包的部分数据。移动装置53可从服务器61接收所述部分数据,并将所述部分数据发送到CPU 3。CPU 3可通过监视传输/安装状态来管理软件更新和/或固件更新,以跟踪正在传输的状态、查找丢失/未完成的传输、跟踪成功的安装。
[0056] 图3是示出根据实施例的移动装置53在车辆计算系统1与服务器61之间传输软件数据和固件数据中的至少一个的流程图。移动装置53可以是使用短距离无线技术与VCS 1进行通信的无线移动装置,或者可以是VCS 1的内嵌入式通信模块(例如,车载调制解调器)。VCS 1内的嵌入式通信模块可包括但不限于:嵌入式蜂窝模块、WiFi模块或它们的组合。可使用在VCS 1、移动装置53和服务器61内包含的且使用硬件执行的软件代码来执行方法200。在其他实施例中,可在车辆VCS 1中的一个或更多个CPU 3中执行方法200,或者,方法200可被分布在与移动装置53进行通信的多个控制器(例如,一个或更多个处理器)中。
[0057] 再次参照图3,贯穿对方法200的讨论参照在图1和图2中示出的VCS 1及其组件,以帮助理解本公开的各个方面。方法200管理到车辆计算系统的软件下载和/或固件下载,从而方法200可基于清单来刷新装置、应用、驱动器和/或模块中的至少一个。管理到VCS 1的数据包下载的方法200可通过被编入车辆的适当可编程逻辑装置(诸如,车辆控制模块、装置控制模块、与车辆计算系统进行通信的另一控制器或它们的组合)的计算机算法、机器可执行代码或软件指令来实现。尽管在流程图200中示出的各个操作看上去按照时间顺序发生,但是这些操作中的至少一些可按照不同顺序发生,且一些操作可被同时执行或可不被执行。
[0058] 在操作202,移动装置53可通过启动请求被启动,其中,所述启动请求通过包括但不限于对按钮的力的一种或更多种机制被接收。移动装置53的通电可包括在嵌入在移动装置53中的至少一个控制模块上执行的一个或更多个应用的初始化。所述一个或更多个应用可包括装置集成客户端组件103,以使移动装置53能够利用车辆CPU 3的装置集成框架101提供的服务。在操作204,移动装置53可搜索和/或识别VCS 1通信请求。
[0059] 一旦移动装置53与VCS 1建立通信,装置就可在操作208检索VCS标识和VCS当前版本管理文件。如果移动装置53不能够建立连接和/或检索VCS标识和VCS当前版本管理文件,则该装置可尝试在操作206与VCS 1重新建立通信。
[0060] 在操作210,移动装置53可搜索和/或识别用于与服务器61建立通信的连接。例如,移动装置53可检索VCS标识和VCS当前版本管理文件,并响应于建立的通信,搜索服务器以开始对应用文件下载的管理。一旦移动装置53识别出与服务器61的连接,移动装置53就可在操作214识别所述通信是否为安全连接。所述安全连接可包括但不限于加密协议。如果移动装置53不能够与服务器61建立连接和/或安全连接,则该装置可尝试在操作212与服务器61重新建立通信。
[0061] 在操作216,移动装置53可将VCS标识和VCS当前版本管理文件发送到服务器61。在操作218,移动装置53可基于VCS标识和VCS当前版本管理文件,从服务器接收VCS清单和一个或更多个应用文件。例如,服务器接收VCS当前版本管理文件,并将它与具有关于所述一个或更多个应用文件的当前版本信息的数据库进行比较,以确定附属和哪些文件存在可用更新。所述一个或更多个应用文件包括但不限于:软件包、固件和/或它们的组合。VCS清单可包括但不限于:将在VCS 1被更新的应用文件的列表、目标文件位置、安装类型、应用文件标识符和/或校验和。
[0062] 在操作220,移动装置53可将VCS清单和一个或更多个应用文件发送到VCS 1。在操作222,移动装置53可响应于VCS清单和/或所述一个或更多个应用文件,从VCS接收对所述一个或更多个应用文件的部分或全部的下载请求。在操作226,移动装置53可响应于所述清单和/或基于对所述一个或更多个应用文件的下载请求而从VCS接收管理指令。
[0063] 例如,VCS清单可包括用于在VCS 1中配置的驱动器的固件的新版本的通知。固件的新版本可能没有被包括在所述一个或更多个应用文件中;从而,移动装置可从服务器61接收用于检索附加文件的管理指令。一旦移动装置从服务器接收到所述附加文件,移动装置就可基于部分或全部下载请求将它们发送到VCS。在另一示例中,从VCS 1接收的管理指令可包括但不限于在使用软件的新版本对VCS 1进行刷新之前对在VCS 1中执行的先前软件进行缓存的镜像请求。
[0064] 在操作224,移动装置53可将部分或全部下载请求发送到服务器61。在操作228,移动装置53可从服务器61接收部分或全部下载应用文件。在操作230,移动装置53可将应用文件的部分或全部下载发送到VCS 1。可基于通过VCS 1接收的一个或更多个指令来管理部分或全部下载。
[0065] 在操作232,移动装置53可从VCS 1接收指示下载何时完成的消息。在操作234,移动装置53可从VCS 1接收指示被发送到VCS 1的一个或更多个应用文件是否被损坏的消息。如果移动装置53从VCS 1接收到应用文件损坏消息,则移动装置53可在操作238检索备份并将所述备份与所述一个或更多个应用文件发送到VCS 1。移动装置53可继续后续的基于损坏消息启用对检索的备份应用文件的下载的步骤。
[0066] 在另一实施例中,VCS可确定从移动装置接收的一个或更多个应用文件被损坏。VCS可基于损坏的文件采取补救措施。由VCS采取的补救措施可包括但不限于以下项中的至少一个:移除检测到的损坏的文件、检索备份的已知好文件以及利用备份的已知“好”文件进行再次刷新。
[0067] 在操作236,移动装置53可接收指示VCS 1不再与装置通信的消息。在操作240,移动装置53可基于不与VCS 1通信来终止与服务器的通信。
[0068] 图4是示出根据实施例的网络(即,服务器)管理清单并将安装包发送到车辆计算系统的流程图。方法300管理到VCS 1的安装包,从而方法300可基于服务器清单与VCS清单之间的比较来将一个或更多个应用文件发送到车辆,以更新/刷新装置、应用、驱动器和/或模块中的至少一个。服务器能够安全地将安装包提供给VCS 1,并基于VCS 1的附属来提供定制清单。VCS 1的附属包括但不限于:特征、功能、驱动器、应用和/或在系统内的硬件上执行的其他软件组件。服务器61可与一个或更多个数据库进行通信,其中,所述一个或更多个数据库可与配置有VCS 1的车辆的初始设备制造商相关联。所述一个或更多个数据库还可包括但不限于应用数据库,其中,应用数据库可与使用VCS 1、移动装置53和/或它们的组合在车辆中实现和执行的特征和功能相关联。
[0069] 在操作302,服务器61可启用在服务器61的硬件上执行的一个或更多个算法,来管理一个或更多个应用文件到VCS 1安全通信。在操作304,服务器61可识别与移动装置53的通信连接。在操作306,服务器61可通过与嵌入式通信模块(即,车载调制解调器63)建立连接来直接与VCS 1进行通信。如果服务器61不能够使用移动装置53和/或嵌入式通信模块与VCS 1建立连接,则服务器61可在操作308监听连接,从而被动地接受连接,而不主动地尝试创建连接。
[0070] 在操作310,服务器61被配置为使用一个或更多个方法来建立安全连接,使得安装包可安全地被发送,其中,所述一个或更多个方法包括但不限于由服务器61与VCS 1共享的加密密钥。
[0071] 在操作312,服务器61可接收VCS 1标识,从而服务器61可检索与该系统相关的合适的清单和/或应用文件。在操作314,服务器61可将VCS清单和一个或更多个应用文件发送到VCS 1。在操作316,服务器61可基于服务器清单与由VCS 1保存的清单之间的比较来接收更新的VCS清单。
[0072] 在另一实施例中,服务器可基于识别出的与系统相关联的标识将清单发送到VCS。服务器可从VCS接收正在系统上运行的当前软件版本信息的列表。服务器可在清单与当前软件版本信息的列表之间进行比较,并基于可用的文件更新将新的一个或更多个应用文件发送到VCS。
[0073] 在操作318,服务器61可管理对正被传输到VCS 1的一个或更多个应用文件的下载。服务器61可基于目标文件位置、安装类型和文件标识中的至少一个来管理所述一个或更多个应用文件的下载。例如,服务器61可基于分配给安全关键子系统的目标文件位置来向VCS 1提供附加的下载指令。如果目标文件位置为安全关键子系统位置,则服务器61可要求在钥匙接通事件或钥匙断开事件发生时执行对一个或更多个文件的下载和/或刷新。
[0074] 在操作320,服务器61可针对到VCS 1的特定传输来对一个或更多个应用文件进行加密。在操作322,响应于接收的VCS清单比较结果和/或来自VCS 1的请求,服务器61可确定是否可将一个或更多个应用文件的部分或全部下载发送到VCS 1。
[0075] 在操作324,服务器61可将所述一个或更多个应用文件的部分或全部下载发送到VCS 1。在操作326,服务器61可持续发送数据包,直到下载完成。例如,服务器61可从VCS 1接收指示下载何时完成的消息。
[0076] 在操作328,服务器61可从VCS 1接收指示被发送到VCS 1的一个或更多个应用文件是否损坏的消息。如果服务器61从VCS 1接收到应用文件损坏消息,则服务器61可在操作330检索原始应用文件,并将原始应用文件发送到VCS 1。服务器61可继续后续的基于损坏消息启用对检索的备份应用文件的下载的步骤。
[0077] 在操作332,服务器61可接收指示VCS 1不再通信的消息。在操作334,服务器61可基于不与VCS 1通信来终止与VCS 1的通信。
[0078] 图5是示出车辆计算系统管理软件更新和固件更新中的至少一个的流程图400。VCS 1可管理系统级组件,其中,系统级组件有权更新在VCS 1内的硬件上执行的一个或更多个应用文件的任意部分。VCS 1可包括应用级用户接口,其中,应用级用户接口可提供针对所述一个或更多个应用文件的用户控制和信息。关于所述一个或更多个应用文件的用户控制和信息可包括但不限于下载命令和更新信息。例如,应用级用户接口可基于对所述一个或更多个应用文件的更新管理来向用户提供提示、状态和/或反馈。
[0079] 系统级组件可管理整个VCS 1文件系统,从而系统级组件可在部分VCS1应用文件被执行之前更新所述部分VCS 1应用文件。系统级组件可针对在用户正在使用系统时无法被更新的组件,管理一个或更多个应用文件的更新。例如,装置驱动器、新的用户接口、通信协议和/或VCS 1操作系统的其他部分在操作期间不能被更新,因此系统级组件可管理所述一个或更多个应用文件何时可被下载。
[0080] 在操作402,在使车辆能够被启动的钥匙接通事件期间,VCS 1可开始给一个或更多个模块通电。对所述一个或更多个模块的通电可使系统级组件开始管理一个或更多个应用文件,其中,所述一个或更多个应用文件可能已经在先前连接从服务器接收到。系统级组件可使一个或更多个应用文件在钥匙接通事件期间的VCS 1启动期间被上传/刷新。
[0081] 在操作404,VCS 1可使用移动装置53或嵌入式通信模块来识别与服务器的通信连接。如果VCS 1不能够建立与服务器和/或移动装置的连接,则VCS 1可在操作406发送另一请求,以尝试建立连接。
[0082] 在操作408,一旦与服务器61的连接被建立,VCS1就可确定所述连接是否受公共证书授权机构(例如,传输层安全)保护,以确保对数据的通信保持完整并且是保密的。如果VCS 1确定所述连接不是安全连接,则VCS 1可断开与服务器61的通信,并在操作406尝试重新建立连接。
[0083] 在操作410,VCS 1可进行到使用移动装置53和/或嵌入式通信模块来执行与服务器61的握手处理。握手处理可包括但不限于如在操作412中所示出的发送VCS标识、当前安装在VCS 1中的一个或更多个应用文件和所述一个或更多个应用文件的版本信息。
[0084] 在操作414,VCS 1可从服务器61接收清单,其中,所述清单可包括但不限于将在VCS 1更新的一个或更多个应用文件的列表。所述清单可包括基于将在VCS 1更新的一个或更多个应用文件的文件标识符、文件位置、安装类型和校验和。在操作416,响应于从服务器接收的清单,VCS 1的系统级组件可发送用于请求一个或更多个应用文件的特定部分的管理指令。
[0085] 例如,VCS 1的系统级组件可确定一个或更多个应用文件包括“激活”安装类型文件,因此,VCS 1可立即替换系统上的文件。在另一示例中,VCS1的系统级组件可确定一个或更多个应用文件包括“重启”安装类型文件,因此,VCS 1可安装文件的并行拷贝,并在系统重启时替换原始文件。
[0086] 在操作418,VCS 1可基于管理指令接收针对一个或更多个应用文件的部分和/或全部下载。在操作420,系统级组件可管理一个或更多个应用文件的下载,并监视是否需要一个或更多个应用文件的附加部分。系统级组件可基于安装类型请求在下载期间将一个或更多个应用文件刷新到各个组件、或者将所述一个或更多个应用文件存储在存储器中以用于在之后对组件进行更新。
[0087] 例如,VCS 1可维护清单,以跟踪一个或更多个应用文件的下载状态。通过系统级组件在VCS 1维护的清单可包括但不限于:正在下载的应用文件的当前传输、应用文件的安装状态和/或应用文件的丢失或未完成的传输。基于对一个或更多个应用文件的下载的监视和管理,VCS 1可使系统更新清单,其中,所述清单跟踪正在系统上运行的软件版本和/或固件版本的状态。
[0088] 在操作422,系统级组件可经由校验和、未完成的刷新和/或下载传输被中断来确定正被VCS 1下载的一个或更多个文件是否损坏。系统级组件可基于发现的问题更新清单,并如在操作416中所示将管理指令发送到服务器61以进行纠正。
[0089] 在操作424,如果系统检测到钥匙断开事件,则系统可结束一个或更多个算法,其中,所述一个或更多个算法被用于管理用于更新VCS 1的一个或更多个应用文件。在操作426,车辆计算系统可具有车辆钥匙断开模式,该模式允许系统将一个或更多个应用文件和/或部分应用文件存储在非易失性存储器中,从而这些文件可被系统上传以用于下次的钥匙接通事件。
[0090] 虽然以上描述了示例性实施例,但这些实施例并不意在描述权利要求所包含的所有可能形式。说明书中所使用的词语是描述性词语而非限制,并且应理解的是,可在不脱离本公开的精神和范围的情况下做出各种改变。如前所述,可将各种实施例的特征进行组合以形成本发明的可能未被明确描述或示出的进一步的实施例。尽管已经通过针对一个或更多个期望特性提供优点或者在其他实施例或者现有技术实现之上被优选出来的方式描述了各种实施例,但是本领域的普通技术人员应认识到,一个或更多个特征或特性可被折衷以实现依赖于特定应用和实现的期望的整体系统属性。这些属性可包括但不限于成本、强度、寿命、生命周期成本、市场性、外观、包装、尺寸、可服务性、重量、生产、组装的容易性等。因此,针对一个或更多个特性描述的比其他实施例或现有技术实现更非期望的实施例并非在本公开的范围之外,并可被期望用于特定应用。