车辆询问更新的空中触发的制作方法

文档序号:11261840阅读:180来源:国知局
车辆询问更新的空中触发的制造方法与工艺

说明性实施例总体上涉及一种用于响应于发布的用于执行车辆询问的空中(over-the-air)触发而执行空中软件更新的方法和设备。



背景技术:

为了更新车辆组件的软件版本,车辆可被驾驶到经销商并由技师进行检修。技师可利用跟踪车辆中的每个组件各自的软件水平以及可用的软件更新的系统。技师可手动应用所述系统指示的软件更新并将任何改变记录回所述系统中。

空中(over-the-air,ota)软件更新是车辆的软件可经由无线连接而被更新的技术。通过使用嵌入式调制解调器或与车辆间的其它无线数据连接,ota更新允许在无需到访经销商的情况下对车辆电子控制单元进行软件改变。



技术实现要素:

在第一说明性实施例中,一种系统包括车辆,所述车辆订阅由消息代理维护且与所述车辆相关联的主题,所述车辆包括至少一个控制器,所述至少一个控制器被配置为:向服务分发网络服务器发送询问器日志,其中,所述询问器日志列举响应于由所述服务器发布到所述主题的触发器消息而产生的车辆的配置信息;检索指示使用所述询问器日志确定的更新的网络位置的清单。

在第二说明性实施例中,一种方法包括:通过车辆处理器接收指示车辆更新可用性的消息,所述消息通过服务分发网络被发布到由消息代理维护且与车辆相关联的主题;响应于接收到所述消息,产生列举车辆配置信息的询问器日志;向服务分发网络发送所述询问器日志;从服务分发网络检索指示使用所述询问器日志确定的更新的网络位置的清单。

在第三说明性实施例中,一种包括指令的非暂时性计算机可读介质,所述指令在由车辆的计算系统执行时使车辆执行以下操作:检索由web服务器服务的更新的服务分发网络位置的清单,所述更新是基于包含车辆配置信息的日志而被选择的,所述车辆配置信息响应于车辆计算系统接收到被发布到由消息代理保存的车辆订阅的主题的指示车辆更新可用性的消息而由车辆计算系统编辑。

根据本发明的一个实施例,所述日志包括以下项中的至少一项:(i)安装在车辆上的至少一个软件组件的当前状态信息;(ii)安装在车辆上的至少一个软件组件的诊断代码。

根据本发明的一个实施例,所述日志基于数据标识符列表而被产生,其中,所述数据标识符列表定义在所述日志中包括的车辆配置信息以及所述信息位于多个车辆电子控制单元(ecu)中的哪一个上。

根据本发明的一个实施例,所述主题与车辆的车辆识别码(vin)相关联。

根据本发明的一个实施例,所述介质还包括在由车辆的计算系统执行时使车辆执行以下操作的指令:从所述网络位置下载所述更新;将所述更新安装到车辆;在安装之后而产生另一日志;将所述另一日志发布到所述主题。

根据本发明的一个实施例,所述网络位置包括由服务分发网络的web服务器服务的至少一个统一资源定位符(url)。

附图说明

图1示出了基于车辆的计算平台的示例框式拓扑图;

图2示出了用于通过网络与具有可配置模块的车辆进行通信的示例性服务分发网络;

图3a和图3b示出了车辆与服务分发网络之间经由消息代理的消息通信流;

图4示出了用于基于车辆的计算平台与服务分发网络之间的通信的示例性主题树;

图5示出了用于更新计算平台的软件的示例性处理。

具体实施方式

根据需要,在此公开本发明的具体实施例;然而,应当理解的是,所公开的实施例仅为本发明的示例,其可以以多种替代形式实施。附图无需按比例绘制;可夸大或最小化一些特征以示出特定组件的细节。因此,此处公开的具体结构和功能细节不应被解释为限制,而仅仅作为用于教导本领域技术人员以多种形式利用本发明的代表性基础。

软件更新系统可利用发布/订阅模型来向车辆发布消息或发布来自车辆的消息。发布/订阅模型可利用主题(也称为逻辑信道),发布者可通过主题发送消息并且订阅者可以通过主题接收消息。在某些情况下,车辆可以是发布者并且可向服务分发网络发送车辆警告,可对来自服务分发网络的命令做出应答,或者向服务分发网络通知车辆连接状态。在另一些情况下,车辆可以是订阅者并可从服务分发网络接收可用软件更新的控制消息或指示。

主题树结构可被用于定义用于在车辆与服务分发网络之间发送消息的主题或子主题的结构。车辆的计算平台可订阅与被包括在车辆内的一个或更多个模块的已安装的软件/固件版本相对应的主题树的节点。作为一个示例,这些模块可包括远程信息处理单元(tcu)。

服务分发网络可从发布者接收针对软件更新的通知。所述通知可引起服务分发网络在与将被更新的车辆或将被更新的软件的版本相对应的主题节点中发布触发器通知消息。服务分发网络还可将软件更新二进制文件(binary)发布到在更新指定的web地址处的web服务器。发布者可以是远程的原始设备制造商(oem)服务器或第三方软件提供方。

车辆可基于接收到指示更新可用的在主题树中的触发器消息通知而生成询问器日志。询问器日志可包括安装在车辆上的至少一个硬件或软件模块的版本信息,并可用于确定哪些模块将被更新。询问器日志可包括根据数据标识符列表编辑的信息,数据标识符列表定义在询问器日志中包括什么信息以及这些信息位于活跃软件安装中的什么位置。

车辆可被配置为将询问器日志发送到服务分发网络。在示例中,车辆可通过安全的超文本传输协议(https)连接来将询问器日志发送到服务分发网络的地址。服务分发网络可接收询问器日志,并可利用基于包括在提供的询问器日志中的信息的清单来对车辆做出应答。所述清单可指示将由车辆安装的至少一个软件更新的web服务器位置,并可通过https被提供回给车辆。

基于所述清单,车辆可被配置为安装从特定的web服务器位置检索的更新的二进制文件和/或配置。由于可从web服务器获得更新,因此,车辆能够使用从web服务器的下载可用的恢复功能来下载更新。此外,由于询问器日志生成和上传响应于表示更新可用的服务通知而被执行,因此避免了车辆针对更新进行周期性轮询,从而避免在周期性地生成和上传询问器日志过程中的资源利用。下面详细论述了系统的进一步的方面。

图1示出了可被用于将远程信息处理服务提供给车辆102的系统100的示例图。车辆102可以是各种类型的载客车辆(诸如,跨界型多用途车辆(cuv)、运动型多用途车辆(suv)、卡车、休旅车(rv))、船、飞机或其它用于运输人或货物的移动机械。作为一些非限制可行方式,远程信息处理服务可以包括导航、逐向导航(turn-by-turndirections)、车辆健康报告、本地商业搜索、事故报告和免提呼叫。在示例中,系统100可包括由密歇根州迪尔伯恩市的福特汽车公司制造的sync系统。应该注意的是,示出的系统100仅为示例,并且可以使用更多、更少、和/或不同定位的元件。

计算平台104可包括一个或更多个处理器106,一个或更多个处理器106与内存108和计算机可读介质112连接并且被配置为:执行支持在此描述的处理的指令、命令和其它例程。例如,计算平台104可被配置为执行车辆应用110的指令,以提供诸如导航、事故报告、卫星无线电解码和免提呼叫的功能。这样的指令和其它数据可使用各种类型的计算机可读存储介质112以非易失性方式被保存。计算机可读介质112(也被称为处理器可读介质或存储器)包括参与提供可由计算平台104的处理器106读取的指令或其它数据的任何非暂时性介质(例如,有形介质)。计算机可执行指令可从使用各种编程语言和/或技术创建的计算机程序被编译或解释,所述各种编程语言和/或技术包括但不限于java、c、c++、c#、objectivec、fortran、pascal、javascript、python、perl和pl/sql中的一个或它们的组合。

计算平台104可被设置有允许车辆乘员与计算平台104进行交互的各种特征。例如,计算平台104可包括:音频输入114,被配置为通过连接的麦克风116从车辆乘员接收口语命令;辅助音频输入118,被配置为从连接的装置接收音频信号。辅助音频输入118可以是诸如立体声输入的有线插孔或诸如蓝牙(r)音频连接的无线输入。在一些示例中,音频输入114可被配置为提供音频处理能力(诸如,低水平信号的前置放大和将模拟输入转换成数字数据以供处理器106进行处理)。

计算平台104还可向音频模块122的音频回放功能的输入提供一个或更多个音频输出120。在其它示例中,计算平台104可通过使用一个或更多个专用扬声器(未示出)将音频输出提供给乘员。音频模块122可包括输入选择器124,输入选择器124被配置为:将来自选择的音频源126的音频内容提供给音频放大器128以用于通过车辆扬声器130进行回放。作为一些示例,音频源126可包括解码的调幅(am)或调频(fm)无线电信号和致密盘(cd)或数字通用盘(dvd)的音频回放。音频源126还可包括从计算平台104接收的音频(诸如,由计算平台104产生的音频内容、从连接到计算平台104的通用串行总线(usb)子系统132的闪存驱动器解码的音频内容和来自辅助音频输入118的通过计算平台104传送的音频内容)。

计算平台104可利用语音接口134来将免提接口提供给计算平台104。语音接口134可支持根据可用的命令的语法来对经由麦克风116接收的音频进行语音识别和用于经由音频模块122输出的语音提示的产生。在一些情况下,系统可被配置为当音频提示准备好通过计算平台104呈现并且另一音频源126被选择用于回放时,暂时静音、逐渐退出或以其它方式超驰由输入选择器124指定的音频源。

计算平台104还可接收来自人机界面(hmi)控制件136的输入,人机界面控制件136被配置为提供乘员与车辆102的交互。例如,计算平台104可与被配置为调用计算平台104的功能的一个或更多个按钮或其它hmi控制件(例如,方向盘音频按钮、一键通话按钮、仪表板控制件等)进行交互。计算平台104还可驱动一个或更多个显示器138或者以其他方式与一个或更多个显示器138进行通信,一个或更多个显示器138被配置为通过视频控制器140将可视化输出提供给车辆乘员。在一些情况下,显示器138可以是还被配置为经由视频控制器140接收用户触摸输入的触摸屏,然而在其它情况下显示器138可以只是显示器,而不具有触摸输入的能力。

计算平台104还可被配置为:经由一种或更多种车载网络142与车辆102的其它组件进行通信。作为一些示例,车载网络142可包括车辆控制器局域网(can)、以太网或面向媒体的系统传输(most)中的一种或更多种。车载网络142可允许计算平台104与车辆102的其它系统(诸如,车辆调制解调器144(其可能在一些配置中不出现)、被配置为提供当前的车辆102的位置和航向信息的全球定位系统(gps)模块146、被配置为提供与车辆102的系统有关的其它类型的信息的各种车辆电子控制单元(ecu)148)进行通信。作为一些非限制可行方式,车辆ecu148可包括:动力传动系统控制器,被配置为提供发动机操作组件的控制(例如,怠速控制组件、燃料输送组件、排放控制组件等)和发动机操作组件的监测(例如,发动机诊断代码的状态);车身控制器,被配置为管理各种电力控制功能(诸如,外部照明、内部照明、无钥匙进入、远程启动和接入点状态验证(例如,车辆102的发动机盖、车门和/或行李厢的关闭状态));无线电收发器,被配置为与遥控钥匙或车辆102的其它本地装置进行通信;气候控制管理控制器,被配置为提供制热和制冷系统组件(例如,压缩机离合器和鼓风机控制、温度传感器信息等)的控制和监测。

如图所示,音频模块122和hmi控制件136可通过第一车载网络142a与计算平台104进行通信,车辆调制解调器144、gps模块146和车辆ecu148可通过第二车载网络142b与计算平台104进行通信。在其它示例中,计算平台104可被连接到更多或更少的车载网络142。另外或可选地,一个或更多个hmi控制件136或其它组件可经由与所示出的车载网络不同的车载网络142被连接到计算平台104,或者在不连接到车载网络142的情况下直接连接到计算平台104。

计算平台104还可被配置为与车辆乘员的移动装置152进行通信。移动装置152可以是各种类型的便携式计算装置中的任何装置,诸如,蜂窝电话、平板计算机、智能手表、膝上型计算机、便携式音乐播放器或能够与计算平台104进行通信的其它装置。在很多示例中,计算平台104可包括被配置为与移动装置152的兼容的无线收发器154进行通信的无线收发器150(例如,蓝牙(r)模块、zigbee(r)收发器、wi-fi收发器等)。另外或可选地,计算平台104可通过有线连接(诸如,经由移动装置152与usb子系统132之间的usb连接)与移动装置152进行通信。

广域网156可将诸如分组交换网络服务(例如,互联网接入、voip通信服务)的通信服务提供给连接到广域网156的装置。广域网156的示例可包括蜂窝电话网络。移动装置152可经由移动装置152的装置调制解调器158提供到广域网156的网络连接能力。为了便于通过广域网156进行通信,移动装置152可与唯一装置标识符(例如,媒体访问控制(mac)地址、移动装置号码(mdn)、互联网协议(ip)地址、移动站国际用户目录号码(msisdn)、国际移动用户识别码(imsi)等)相关联,以标识移动装置152通过广域网156的通信。在一些情况下,车辆102的乘员或具有连接到计算平台104的许可的装置可根据保存在存储介质112中的配对装置数据160由计算平台104进行识别。例如,配对装置数据160可指示先前与车辆102的计算平台104配对的移动装置152的唯一装置标识符、配对的移动装置152与计算平台104之间共享的秘密信息(诸如,链路密钥和/或个人识别码(pin))以及最近使用的信息或装置优先级信息,使得计算平台104可在没有用户干预的情况下自动地重新连接到与配对装置数据160中的数据相匹配的移动装置152。在一些情况下,配对装置数据160还可指示与配对的移动装置152在被连接时被授权访问的计算平台104的许可或功能有关的其它信息或选项。

当支持网络连接的配对的移动装置152自动地或手动地被连接到计算平台104时,移动装置152可允许计算平台104使用装置调制解调器158的网络连接能力,以通过广域网156进行通信。在一示例中,计算平台104可利用移动装置152的通过语音呼叫的话上数据连接或数据连接来在计算平台104与广域网156之间传送信息。另外或可选地,计算平台104可在不使用移动装置152的通信设施的情况下利用车辆调制解调器144来在计算平台104与广域网156之间传送信息。

与计算平台104类似,移动装置152可包括一个或更多个处理器164,一个或更多个处理器164被配置为执行从移动装置152的存储介质168加载到移动装置152的内存166的移动应用170的指令。在一些示例中,移动应用170可被配置为与计算平台104或其它本地联网装置进行通信并且与广域网156进行通信。

计算平台104还可包括装置链路接口172,以便于将移动应用170的功能与可经由语音接口134获得的命令的语法进行整合。装置链路接口172还可向移动应用170提供对车辆特征(诸如,计算平台104经由车载网络142可用的信息)的访问,或者对显示器138的访问。装置链路接口172的示例可以是由密歇根州迪尔伯恩市的福特汽车公司提供的sync系统的syncapplink组件。

图2示出了利用消息代理204来通过网络156与车辆102通信的服务分发网络202的示例图200。车辆102可利用车辆102的计算平台104与网络156进行无线通信。当车辆102被装配时,车辆102可包括各种硬件组件和软件组件。在装配完成时或装配完成后,车辆102的计算平台104可被配置为针对车辆102的这些硬件组件和软件组件中的至少一部分而查询存在和版本信息。通过使用查询到的信息以及标识特定车辆102的其它信息(例如,在车辆局域网(carareanetwork,can)总线上发布的车辆识别码(vin)信息、车辆调制解调器144的用户身份识别模块(sim)信息(诸如,国际移动设备识别码(imei)等),计算平台104可经由网络156和消息代理204进行通信以与服务分发网络202建立账户。服务分发网络202可从车辆102接收这些通信,并可维护与车辆102的标识符链接的硬件配置和软件(例如,固件等)版本的数据存储。

消息代理204还可提供用于服务分发网络202和车辆102之间的通信的发布/订阅消息传送功能。发布/订阅模型可利用一个或更多个主题206,其中,主题206被命名为逻辑信道,发布者可通过所述逻辑信道发送消息208并且订阅者可通过所述逻辑信道接收消息208。并非接收全部的消息208,主题206的订阅者接收发布到订阅者订阅的主题206的消息208,并且主题206的全部订阅者将接收基本相同的主题消息208。

图3a和图3b示出了车辆102与服务分发网络202之间经由消息代理204进行通信的消息208的示例性通信流。消息208可以是各种类别的,诸如,命令302、命令响应304和警告306。

如图3a所示,命令302可通过服务分发网络202被发布到车辆102订阅的消息代理204的主题。命令302是请求命令302的接收者执行由命令302指定的动作的类型的消息208。命令响应304是响应于命令302的接收而被提供回给发送者的消息208。对命令302的响应304可由车辆102发布到服务分发网络202订阅的主题206。

如图3b所示,警告306可由车辆102发布到服务分发网络202订阅的消息代理204的主题。警告306是从发送者提供给接收者而不请求特定动作的执行的类型的消息208。由于不需要服务分发网络202提供对警告306的响应,因此消息代理204可响应于警告306而向车辆102发布警告响应308。

消息208的发布者可负责向与所述主题206一致的多个主题206提供消息208。例如,针对命令302,发布者可包括oem或负责维护和/或更新车辆软件/固件的其它实体。在一些情况下,车辆102可以是发布者并可向服务分发网络202订阅的主题206发送车辆警告306,车辆102可使用警告306来向服务分发网络202通知车辆102与网络156的连接状态,或者可利用命令响应304对来自服务分发网络202的消息208做出应答。在另一些情况下,车辆102可以是订阅者并且可经由消息代理204从服务分发网络202接收命令302或其它信息。

消息208可利用名称/值的对模型以允许消息208的数据元素被车辆102和服务分发网络202按照名称定义和参考。每个消息208可包括存在于所有消息208中的特定基本字段。此外,消息208的每个类别可包括存在于该类别的所有消息208中的特定的最小的数据元素集。例如,从车辆102至服务分发网络202的警告306或其它消息208可包括对来自车辆的消息208的接收者有用的共同信息的第一集,从服务分发网络202至车辆102的命令302或其它消息208可包括对来自服务分发网络202的消息208的接收者有用的共同信息的第二集。

根据消息208的类型(例如,命令302的类型),消息208还可包括与该特定消息208的类型相关的其它字段。为此,名称/值的对模型可允许数据的子集(例如,将包括来自车辆102的消息208的信息、将被包括在来自服务分发网络202的消息208中的信息、描述车辆102的状态的信息等)被定义,所述数据的子集随后可被包括在消息208的定义中,而无需针对需要共同信息的消息208的每个类型进行冗余的重定义。此外,由于消息208的字段可被车辆102和服务分发网络202按照名称或标识符(而不是按照消息208的原始字节偏移)参考,因此,系统可允许对消息208的定义(或共同信息的定义)添加数据元素,而不会不合意地影响部署的车辆102利用先前版本的消息208的定义来实现与服务分发网络202的通信。

关于对发布到主题206的各种类别的消息208的处理,车辆102可被配置为按照车辆102从服务分发网络202接收到命令302的顺序来执行所述命令302。为此,车辆102可被配置为维持接收到的命令302的命令序列,以允许车辆102按照先进先出(first-in-first-out,fifo)的方式执行接收到的来自所述序列的命令302。车辆102还可被配置为按照警告306在车辆102侧发生的顺序执行警告306。为此,车辆102可被配置为维持警告序列以使车辆102可按照后进先出(last-in-first-out,lifo)的方式执行来自所述警告序列的警告306。在命令302与警告306之间有冲突的情况下,车辆102可被配置为基于消息208的时间戳按照从服务分发网络202接收到消息208的顺序或消息208在车辆102上发生的顺序来执行消息208。

主题206可被用于允许消息208被发布到合适的车辆102或从合适的车辆102被发布,并且被发布在消息208的正确类别中。为了利于向合适的主题206发布消息208,主题206可被布置成主题树210。主题树210可被服务分发网络202定义,以提供用于在车辆102与服务分发网络202之间发送消息208的主题206和子主题206的结构。

图4示出了用于车辆102与服务分发网络202的通信的示例性主题树210。计算平台104(诸如,车辆102的远程信息处理单元)可订阅与车俩102的安装的区域、软件/固件版本、特征、配置文件版本等相对应的主题树210的节点。应注意的是,示例性主题树210的特定布局仅仅是为了说明的目的,并且可以使用其它布局的主题树210。例如,服务分发网络202可使用具有更多、更少或不同级别的分类的其它主题树210。

参照图4的主题树210,主题树210的区域节点400可指示在区域节点400下的子主题206的节点可涉及的区域。在一些情况下,区域节点400可代表车辆102可被出售的不同区域的市场区,诸如,北美地区、欧洲和亚太地区。在另一些示例中,区域节点400可涉及其它的地理区域(诸如,国家、州)、邮政编码和电话区域编码。通过按照区域对主题树210进行分割,服务分发网络202可相应地发布与不同区域关联的车辆102的不同信息。

在每个区域节点400下,主题树210可包括一个或更多个车辆特定节点402,其中,每个车辆特定节点402与关联到母区域节点400的车辆102相关。作为一种可行方式,服务分发网络202可根据在服务分发网络202中注册为属于特定区域的车辆102的vin或其它唯一标识符来产生针对车辆102的车辆特定节点402。车辆特定节点402的子节点可用于进一步组织被配置为用于与单独的车辆102之间的往复的通信的主题206。

例如,在车辆特定节点402下,主题树210还可包括用于至特定车辆102的通信的一个或更多个车辆主题节点404。车辆102可订阅与车辆102的vin或其它唯一标识符相对应的车辆主题节点404,使得车辆102能够接收在与车辆102自身特别相关的主题206中的消息208。

作为一个示例,车辆102可订阅时间灵敏的更新车辆主题节点404-a,以接收针对具有时间灵敏性质的特定车辆102的消息208(诸如,下面更详细论述的时间灵敏命令302)。由于消息208的时间灵敏性质,导致如果公布到时间灵敏的更新车辆主题节点404-a的消息208没有在一定时间量(例如,消息208指定的时间量、全部的时间灵敏消息208共同的时间量,等等)内被车辆102接收,则消息208可能超时且从主题206中被移除。作为另一示例,车辆102可订阅非时间灵敏的车辆主题节点404-b,以接收针对不具有时间灵敏性质的特定车辆102的消息208(诸如,也在下面更详细论述的非时间灵敏命令302)。

更新(诸如,日历更新)可被公布到非时间灵敏的车辆主题节点404-b,并可被保存在主题206中直到被进行订阅的车辆102接收。作为另一示例,车辆102可订阅特征更新车辆主题节点404-c,以接收针对特定车辆102并且涉及车辆102的特征的更新的主题206中的消息208。在这个示例中,特征可表示对可应用于被包括在主题树210中的特定车辆102的配置参数的分组。例如,特征可表示用于执行可用的连接的服务(例如,我的福特移动(myfordmobile(r)))的设置或客户特定的设置集(例如,被请求启用和/或禁用以供特定车队购买者使用的一套特征)。作为另一示例,车辆102可订阅固件更新车辆主题节点404-d,以接收针对特定车辆102并且涉及车辆102的固件的更新的主题206中的消息208。

主题树210的车辆特定节点402还可包括用于来自特定车辆102的通信(例如,从特定车辆102至服务分发网络202的通信)的一个或更多个车辆主题节点406。例如,通用警告主题节点406-a可被车辆102用于发布消息208(例如,警告306),诸如,燃料少的指示、车辆102的不稳定行驶或周期性的车辆102的当前gps位置。作为另一示例,连接状态主题节点406-b可被车辆102用于发布诸如车辆102的连接状态的消息208(例如,指示车辆102是否被断开连接并随后重新连接到网络156的警告306)。作为另一示例,命令响应警告主题节点406-c可被车辆102用于发布消息208,诸如,指示服务分发网络202所请求的命令302成功或失败的警告306。

此外,在每个区域节点400下,主题树210可包括一个或更多个硬件版本主题节点408,其中,每个硬件版本主题节点408与可由多个车辆102共享的已安装的车辆102的硬件版本(例如,计算平台104的硬件版本)相关。这些硬件版本主题节点408和子主题节点可相应地用于根据硬件版本而不根据单独的车辆102来参考车辆102。

在每个硬件版本主题节点408下,主题树210可包括一个或更多个固件版本节点410。每个固件版本节点410可组织与可被安装在特定区域的母树关系的车辆102的硬件上的固件版本相关联的主题树210的节点。

固件版本节点410还可包括特征节点412,特征节点412组织与特定特征相关联的主题树210的节点。如上所述,特征可表示用于执行可用连接的服务的设置或客户特定的设置集。因此,固件版本可支持多个不同特征,其中,固件功能的不同部分针对多个特征而被启用或禁用。

特征节点412还可包括配置版本节点414,每个配置版本节点414代表与针对关联的特征、固件版本、硬件版本和区域的配置文件的版本相关的主题206。配置文件可包括与配置文件配置的母特征相关的设置以及其它信息(例如,安装在特定区域的硬件版本上的固件的版本)。因为设置以及其它选项可能因版本不同而不同,所以配置文件也可包括与配置文件兼容的固件的版本编号。

车辆102可订阅与车辆102的配置相关的主题树210的主题206。作为一个示例,车辆可订阅与车辆102的vin相对应的车辆主题节点404,以接收针对特定车辆102的任何更新。作为另一示例,车辆102的计算平台104可订阅主题树210的配置版本节点414,以接收与车辆102的安装区域、硬件版本、固件版本、特征和全局配置版本相对应的配置或其它更新。订阅的车辆102可检查或以其它方式被告知发布到订阅的主题206的消息208。

服务分发网络202可将消息208发布到更新将被执行的主题树210的主题206中。作为一种可行方式,服务分发网络202可将命令302发布到车辆主题节点404中以使特定车辆102被告知更新应针对车辆102被执行。作为另一种可行方式,服务分发网络202可将命令302发布到配置版本节点414中以使具有特定区域、硬件版本、固件版本、特征和全局配置版本的订阅的任何车辆102执行更新。

再参照图2,车辆102的用户可选择软件更新由车辆102执行。为了有利于选择处理,在一些示例中,计算平台104可经由显示器138和/或音频模块122向用户提供请求用户授权的提醒。示例性提醒可请求用户同意经由车载调制解调器144(或者经由wifi或者通过连接的移动装置152的数据连接)执行空中更新。同意可被请求一次,但是可跨多个更新周期被使用。作为另一种可行方式,用户可使用与车辆102配对或以其它方式与车辆102关联的移动装置152来选择空中更新(例如,通过经由移动装置152执行的移动应用提供同意、经由从移动装置152向特定号码发送短消息服务(sms)消息、通过使用可从移动装置152访问的授权页面,等等)。

一旦被授权(例如,通过接收来自用户的按钮按压或语音对话),则计算平台104可被配置为查询车辆ecu148的软件更新。所述查询可被默默地执行而不需要用户输入。

计算平台104可被配置为收集与车辆102的模块相关的信息。收集数据的处理可被称作询问,收集的数据可被称作询问器日志212。作为一些非限制性示例,询问的信息可包括模块名称、模块序列号、vin、硬件部件编号、mac地址、软件应用的部分编号、语言、安装在模块上的服务包、模块中的可用存储空间以及与先前更新的安装有关的状态信息。

计算平台104还可被配置为确定将利用定义要询问的特定信息的最优化数据标识符列表(optimizeddataidentifierlist,odl)文件214收集什么信息以及所述信息可位于何处。应注意的是,将收集的信息可包括来自车辆ecu148或车辆102的其它控制器的数据元素,并可经由控制器局域网(can)或支持控制器之间的数据传输的车辆102的其它通信架构来被检索。所述信息还可包括诊断代码以及在经销商检修车辆102期间可被收集的其它车辆状态信息。所述信息还可包括分析数据,所述分析数据包括对各个车辆特征的使用提供透彻的观察的使用与记录数据。在一些情况下,odl文件214可作为软件安装的一部分被安装在计算平台104上,而在另一些情况下,odl文件214可根据早期执行的更新而先前已经被接收(下面将更详细地描述)。作为另一示例,计算平台104可被配置为向消息代理204的车辆特定主题206(例如,通用警告主题406-a)发布odl请求,并接收作为响应而发布的odl文件214,所述odl文件214定义针对特定vin要询问什么信息。

计算平台104可被配置为向服务分发网络202发送询问器日志212。在示例中,计算平台104可经由https(例如,通过计算平台104与计算平台104已知的服务分发网络202的预定义web地址之间的连接)向服务分发网络202发送询问器日志212。对向服务分发网络202发送询问器日志212的改变是可行的。作为另一示例,计算平台104可被配置为向车辆102特定的消息代理204的主题206发布将通过服务分发网络202检索的询问器日志212。

服务分发网络202检查车辆102订阅的主题206。如果车辆102已发布询问器日志212,则服务分发网络202可复查计算平台104的当前模块配置和当前版本,并确定对车辆102的任何软件更新是否应被安装。基于所述确定,服务分发网络202可识别应被安装在车辆102上的二进制文件以执行识别的更新。这些二进制文件可被标识在清单216中。此外,清单216可指定可检索到指定的更新二进制文件中的每个的网络位置。作为一个示例,清单216可将网络位置指定为服务分发网络202的web服务器218服务的url。在一些情况下,所述二进制文件可包括将被安装的文件的新版本,而在另一些情况下,所述二进制文件可包括将被应用于当前安装的二进制文件的累加更新,以将当前安装的二进制文件从一个版本更新为下一个版本。

为了识别软件更新,服务分发网络202可被配置为将询问器日志212中指示的模块的当前版本与计算平台104所兼容的模块的最新版本相比较。服务分发网络202还可被配置为针对应被更新的任何组件而识别那些更新的版本可能需要任何附加的相关性。所述附加的相关性可进一步被添加至清单216中。

一旦完成,则服务分发网络202可向计算平台104发送清单216。在示例中,服务分发网络202可经由https(例如,通过计算平台104向服务分发网络202发送询问器日志212所利用的https连接、通过连接到与计算平台104已知的服务分发网络202的预定义web地址相同或不同的地址的不同连接等)向车辆102发送清单216。对向车辆102发送清单216的改变是可行的。例如,服务分发网络202可向消息代理204的主题206发送将被车辆102检索的清单216。计算平台104可检查车辆102订阅的主题206。

不管方法如何,一旦被接收,则计算平台104可被配置为安装清单216指示的更新。基于清单216,计算平台104可被配置为下载从清单216指定的web服务器位置检索到的更新的二级制文件和/或配置。作为一个示例,清单216可将网络位置指定为由服务分发网络202的web服务器218服务的url,并且计算平台104可从清单216指定的url下载更新。由于更新可经由https从web服务器218被获得,因此,计算平台104能够使用可用于从web服务器218的下载的恢复功能来下载更新。

在一些示例中,为了避免对安装到计算平台104的软件的当前版本的破坏,计算平台104可被配置为执行对计算平台104的第二安装(而不是计算平台104从其被启动的当前活跃的安装)的更新的安装。对所述第二安装的更新的安装可被默默执行,而不需要来自用户的输入。

当清单216指定的软件更新的安装完成时,计算平台104可被配置为执行车辆102的模块的附加询问以创建新的询问器日志212。与上述内容类似,计算平台104可创建询问器日志212,但是这次是利用接收到的odl214,所述接收到的odl214提供针对当前执行的软件更新要询问什么信息的更新的定义。此外,与上述内容类似,计算平台104可被配置为向消息代理204发布询问器日志212,询问器日志212将被服务分发网络202接收。因此,服务分发网络202可被自动更新车辆102的安装状态,而不需要用户与hmi的交互。

图5示出了用于更新计算平台104的软件的示例性处理500。例如,可由通过网络156与服务分发网络202通信的车辆102的计算平台104来执行处理500。

在操作502,计算平台104订阅主题树210的主题206,在该主题206中,用于更新车辆102的一个或更多个模块的软件版本或配置的命令302被发布。例如,这些模块可包括计算平台104自身和/或其它车辆ecu148。例如,计算平台104可订阅主题树210的期望的特征节点404-c,针对车辆102的模块的软件组件的车辆特定的更新可由服务分发网络202发布到期望的特征节点404-c中。作为另一示例,计算平台104可订阅配置版本节点414,配置版本节点414代表由服务分发网络202服务并且与车辆102的组件或模块的安装版本、特征和区域相关的主题树210的主题206。

在操作504,计算平台104确定触发器通知消息208是否在订阅的主题206中被接收。作为示例,服务分发网络202可在期望的特征节点404-c中发布触发器通知消息208,以将对车辆102的更新作为目标。作为另一示例,服务分发网络202可在配置版本节点414中发布触发器通知消息208,以将具有特定配置的车辆102作为目标。由于车辆102订阅主题树210的主题206,因此车辆102可被通知或者可通过其它方式接收触发器通知消息208。触发器通知消息208可向车辆102指示软件更新是可用的。如果触发器通知消息208被接收,则控制转到操作506。否则,控制保持在操作504。

在操作506,车辆102生成询问器日志212。询问器日志212可包括安装在车辆102上的至少一个软件模块的版本信息。作为一些非限制性示例,要询问的信息可包括模块名称、模块序列号、vin、硬件的部件编号、mac地址、软件应用的部分编号、语言、安装在模块上的服务包、模块中的可用存储空间以及关于先前更新的安装的状态信息。计算平台104可被配置为根据定义将询问什么信息和这些信息可位于什么位置的odl214来生成询问器日志212。例如,将询问的信息可包括来自计算平台104和车辆102内的其它车辆ecu148的请求的标识符。所述信息可经由can总线或其它车辆网络142被收集,并被包括在询问器日志212中。在一些情况下,odl214可作为车辆102上的软件的安装的一部分被接收,而在另一些情况下,odl214可根据早期执行的更新先前已经被接收。

在操作508,车辆102向服务分发网络202发送询问器日志212。在示例中,计算平台104可经由https(例如,通过计算平台104与计算平台104已知的服务分发网络202的预定义web地址之间的连接)向服务分发网络202发送询问器日志212。对向服务分发网络202发送询问器日志212的改变是可行的。作为另一示例,计算平台104可向车辆102特定的消息代理204的主题206发布将通过服务分发网络202检索的询问器日志212。

在操作510,车辆102从消息代理204接收清单216。清单216可指示将由车辆102下载和安装的一个或更多个二进制文件,以及当执行更新时要使用的其它信息(诸如,用于对将被下载和安装的二进制文件解密的密钥和/或更新的odl214)。在示例中,服务分发网络202可经由https(例如,通过计算平台104向服务分发网络202发送询问器日志212所利用的https连接、通过连接到与计算平台104已知的服务分发网络202的预定义web地址相同或不同的地址的不同连接等)向车辆102发送清单216。对向车辆102发送清单216的改变是可行的。例如,服务分发网络202可向消息代理204的主题206发送将通过车辆102检索的清单216。计算平台104可检查车辆102订阅的主题206。

在操作512,车辆102下载清单216指定的二进制文件。例如,车辆102的计算平台104可从服务分发网络202的web服务器218下载在清单216指定的网络位置处的二进制文件。计算平台104还可根据接收到的密钥来将二进制文件解密成解密后的二进制文件。

在操作514,计算平台104安装软件更新。例如,计算平台104可执行或以其它方式将固件更新应用于安装的固件版本,以更新固件版本。在一些情况下,计算平台104还可被配置为向车辆102的命令响应警告主题节点406-c发布消息208,以警告服务分发网络202软件更新的成功或失败。当接收到指示软件更新成功的消息208时,服务分发网络202可更新关于车辆102的安装的配置状态的记录。作为另一种可行方式,如果软件更新失败,则计算平台104可向命令响应警告主题节点406-c发布失败消息208,并且处理500可结束,或者可能将控制转到操作512以再次尝试下载和安装。

在操作516,计算平台104更新车辆102的主题206的订阅。例如,计算平台104可解除车辆102对旧版本的固件版本节点410和主题树210的配置版本节点414的订阅,并订阅与固件的新安装版本相关的主题树210的配置版本节点414。因此,车辆102能够接收与车辆102的更新的配置相对应的进一步的触发器通知消息208。在操作516之后,控制转到操作504。

这样,服务分发网络202可利用主题树210来根据安装的软件版本(诸如,车辆102的模块的固件版本、或者安装在计算平台104上的应用的软件版本)选择性地提供对车辆102的更新,而不影响车辆102在不同版本的车辆102上安装软件版本。此外,这些更新可被渐进且自动地以空中方式提供给车辆102,而不会增加制造商或经销商技师成本。由于更新可从web服务器218被获得,因此,车辆102能够使用通过web服务器218的下载可用的恢复功能来下载更新。此外,由于询问器日志212的生成和上传响应于表示更新可用的服务通知而被执行,因此避免了车辆102针对更新进行周期性轮询,从而避免在周期性地生成和上传询问器日志212过程中的资源利用。

在此描述的计算装置(诸如,计算平台104、移动装置152、服务分发网络202和消息代理204)通常包括计算机可执行指令,其中,所述指令可由一个或更多个计算装置(诸如上面所列出的计算装置)来执行。计算机可执行指令可从使用各种编程语言和/或技术创建的计算机程序被编译或解释,所述各种编程语言和/或技术包括但不限于javatm、c、c++、c#、visualbasic、javascript、perl等中的一种或其组合。一般而言,处理器(例如,微处理器)从例如存储器、计算机可读介质等接收指令,并且运行这些指令,从而执行一个或更多个处理,所述处理包括在此描述的处理中的一个或更多个。这种指令和其他数据可使用多种计算机可读介质来存储和传输。

关于在此描述的处理、系统、方法、启示等,应该理解的是,虽然这样的处理等的步骤已经被描述为根据特定的有序顺序发生,但是这种处理可按照以与在此所描述的顺序不同的顺序执行的所描述的步骤来实施。还应该理解的是,可同时执行特定步骤,可添加其他步骤,或者可省略在此描述的特定步骤。换句话说,在此的处理的描述是为了示出特定实施例的目的而被提供,并且绝不应该被解释为限制权利要求。

尽管上面描述了示例性实施例,但并不意在这些实施例描述本发明的所有可能形式。更确切地,说明书中使用的词语为描述性词语而非限制性词语,并且应理解的是,可在不脱离本发明的精神和范围的情况下作出各种改变。此外,可组合各种实现的实施例的特征以形成本发明的进一步的实施例。

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