更新车辆计算系统的方法及系统的制作方法
【技术领域】
[0001]本发明涉及用于刷新控制模块的系统和方法,更具体地,涉及更新车辆计算系统的布置和方法。
【背景技术】
[0002]为了更新车辆组件的软件版本,车辆可以被驾驶到经销商且由技术人员来维修。技术人员可利用追踪车辆中的组件的各个软件级别以及可用的软件更新的系统。技术人员可手动应用由系统指示的软件更新,并且记录返回系统的任何变化。软件更新可在车辆不可运行时进行。
【发明内容】
[0003]在一实施例中,一种针对车辆的车辆计算系统包括第一存储装置,所述第一存储装置与用于执行一个或更多个车辆操作的第一处理器进行通信。所述系统还包括第二存储装置,所述第二存储装置与用于接收软件更新的第二处理器进行通信。所述系统包括第一开关电路和第二开关电路,所述第一开关电路在所述第一处理器与所述第一存储装置以及所述第二存储装置之间进行选择性切换,所述第二开关电路在所述第二处理器与所述第一存储装置以及所述第二存储装置之间进行选择性切换。所述第一处理器可被配置为:接收软件更新在所述第二存储装置中可用的通知。所述第一处理器可控制所述第一开关电路将通信从所述第一存储装置切换到所述第二存储装置。所述第一处理器可执行来自所述第二存储装置的软件更新。所述第一处理器或所述第二处理器可被配置为:接收软件更新在所述第二存储装置中可用的通知,控制所述第一开关电路将与所述第一处理器的通信从所述第一存储装置切换到所述第二存储装置,以由所述第一处理器执行来自所述第二存储装置的软件更新。
[0004]在一实施例中,一种电路包括:被配置用于车辆操作的第一处理器以及被配置用于软件更新的第二处理器。所述电路还可包括:第一存储装置和第二存储装置,所述第一存储装置和所述第二存储装置被配置为与所述第一处理器和所述第二处理器进行通信。所述电路可包括第一开关和第二开关,所述第一开关被配置为在所述第一处理器与所述第一存储装置及所述第二存储装置之间进行选择性切换,所述第二开关被配置为在所述第二处理器与所述第一存储装置及所述第二存储装置之间进行选择性切换。响应于经由所述第二处理器在所述第二存储装置中的软件更新,所述开关切换为将与所述第一处理器的通信从所述第一存储装置切换到所述第二存储装置。
[0005]—种电路,包括:被配置用于车辆操作的第一处理器;被配置用于软件更新的第二处理器;第一存储装置和第二存储装置,被配置为与所述第一处理器和所述第二处理器进行通信;第一开关,被配置为在所述第一处理器和所述第一存储装置及所述第二存储装置之间进行选择性切换;第二开关,被配置为在所述第二处理器和所述第一存储装置及所述第二存储装置之间进行选择性切换;响应于在经由所述第二处理器的所述第二存储装置中的软件更新,所述第一开关切换为将与所述第一处理器的通信从所述第一存储装置切换到所述第二存储装置。
[0006]根据本发明的一个实施例,所述第一开关和所述第二开关包括场效应晶体管(FET)、金属氧化物半导体场效应晶体管(M0SFET)、二极管、继电器和寄存器中的至少一个。
[0007]根据本发明的一个实施例,所述第一存储装置或所述第二存储装置可经由所述第二处理器在车辆运行期间接收所述软件更新。
[0008]根据本发明的一个实施例,所述第二处理器被配置为:启用刷新事件,以经由所述第二开关将所述软件更新存储在所述第一存储装置和所述第二存储装置中。
[0009]根据本发明的一个实施例,所述电路还包括:响应于所述软件更新,所述第二开关被配置为在初始化事件下将与所述第二处理器的通信从所述第二存储装置切换到所述第一存储装置。
[0010]根据本发明的一个实施例,所述电路还包括:通信模块,被配置为经由所述第二处理器将软件更新发送到所述第一存储装置和所述第二存储装置。
[0011]在一实施例中,提供一种车辆软件更新方法,所述方法可在车辆运行期间在第一存储装置接收软件更新。所述方法可在第一控制器接收所述软件更新在所述第一存储装置中可用的通知。所述方法可控制电路将所述第一控制器与所述第二存储装置之间的通信切换到所述第一存储装置。所述方法可在第一控制器执行来自所述第一存储装置的软件更新。
[0012]根据本发明的一个实施例,所述方法还包括:响应于初始化事件,控制所述电路将与所述第一控制器的通信从所述第二存储装置切换到所述第一存储装置,其中,所述初始化事件为点火开关接通事件、点火开关断开事件和手动用户请求中的至少一个。
[0013]根据本发明的一个实施例,所述方法还包括:响应于所述初始化事件,经由所述电路在第二存储装置和第二控制器之间建立通信,其中,所述第二控制器被配置用于刷新对所述第二存储装置的软件更新。
【附图说明】
[0014]图1示出了针对车辆的基于车辆的计算系统的示例性框式拓扑图;
[0015]图2示出了包括软件更新管理模块的示例性车辆系统;
[0016]图3A示出了用于基于车辆的计算系统的可编程存储器电路的示例;
[0017]图3B示出了用于与基于车辆的计算系统进行通信的车辆模块的可编程存储器电路的示例;
[0018]图4是示出用于使用可编程存储器电路来管理软件更新的示例性方法的流程图。
【具体实施方式】
[0019]在此描述了本公开的实施例。然而,应理解的是,所公开的实施例仅仅是示例,并且,其它实施例可采用各种替代形式。附图无需按比例绘制;一些特征可被夸大或最小化以示出特定组件的细节。因此,在此公开的具体结构和功能细节不应被解释为具有限制性,而仅仅是作为用于教导本领域技术人员以多种方式利用实施例的代表性基础。本领域普通技术人员将理解的是,参照任一附图示出并描述的各种特征可与在一个或更多个其它附图中示出的特征相结合,以产生未明确示出或描述的实施例。示出的特征的结合提供用于典型应用的代表性实施例。然而,针对特定应用或实现,可期望对与本公开的教导一致的特征进行各种组合和修改。
[0020]本公开的实施例总体上提供了多个电路或其它电气装置。提及所述电路和其它电气装置以及由它们中的每一个提供的功能时,都不意在受限于仅涵盖在此示出和描述的内容。虽然特定的标号可被分配给公开的各种电路或其它电气装置,但是这样的标号并不意在限制针对所述电路和其它电气装置的操作范围。可基于期望的特定类型的电气实施方案,按照任何方式将所述电路和其它电气装置彼此组合和/或分离。将认识到的是,在此公开的任何电路或其它电气装置可包括任意数量的微处理器、集成电路、存储器装置(例如,闪存、随机存取存储器(RAM)、只读存储器(R0M)、电可编程只读存储器(EPR0M)、电可擦除可编程只读存储器(EEPR0M)或上述项的其它适当的变型)和软件,它们彼此协作以执行在此公开的操作。此外,任意一个或更多个电气装置可被配置为执行在非暂时性计算机可读介质中实施的计算机程序,其中,所述计算机程序被编写为用于执行公开的任意数量的功會泛。
[0021]本发明公开涉及用于改进在车辆计算系统的新的软件的更新和刷新的系统和方法。例如,当通过闪存驱动接收到发送给客户或在经销商处的针对车辆的软件升级,在软件更新/刷新处理期间使得车辆(车辆上具有的电子设备)被禁用可能是必要的。对于客户来说,等待延长的时间段来使得更新完成是不便的。在控制模块的更新/刷新处理期间,操作者可能不能使得车辆无人看守,且车辆可能是不可操作的。
[0022]本公开可使用包括地址总线设计的车辆计算系统,其中,所述地址总线设计允许存在两个或更多个存储装置(例如,电可擦除可编程只读存储器(EEPR0M))。例如,第一存储装置(例如,第一 EEPR0M)被连接以对车辆系统进行操作,而第二存储装置(例如,第二EEPR0M)被连接以接受软件更新的刷新。当软件更新在第二 EEPR0M完成时,两组地址线在车辆点火开关被断开时被切换(交换)。从此时开始直到下一刷新事件为止,采用所述刷新的第二 EEPR0M可对系统进行,而具有过时的软件的第一 EEPR0M准备就绪并等待接受下一次刷新。
[0023]本公开涉及一种用于在车辆运行期间更新在车辆计算系统的一个或更多个控制模块的软件的系统和方法。公开的系统和方法可在不引起对车辆操作的中断的情况下更新软件。更新软件可使用针对软件更新而指定的附加存储装置电路被保存在车辆中,直到车辆计算系统提供实施更新的软件的请求为止。附加存储装置电路可包括但不限于:用于启用在一个或更多个存储装置之间的选择性切换的开关、一个或更多个存储装置、以及被指定为接收用于刷新选择的存储装置的软件更新的控制器。
[0024]图1示出了用于车辆31的基于车辆的计算系统(VCS 1)的示例框式拓扑图。这种基于车辆的计算系统1的示例为由福特汽车公司制造的SYNC系统。设置有基于车辆的计算系统的车辆可包含位于车辆中的可视前端界面4。如果所述界面设置有例如触摸敏感屏幕,则用户还能够与所述界面进行交互。在另一示意性实施例中,通过按钮按压、具有自动语音识别和语音合成的口语会话系统来进行交互。
[0025]在图1所示的示意性实施例1中,处理器3控制基于车辆的计算系统的至少一部分操作。附加处理器(未示出)可控制针对基于车辆的计算系统的至少一部分软件更新。设置在车辆内的处理器允许对命令和例程进行车载处理。另外,处理器被连接到非持久性存储器5和持久性存储器7两者。在此示意性实施例中,非持久性存储器是随机存取存储器(RAM),持久性存储器是硬盘驱动器(HDD)或闪存。一般说来,持久性(非暂时性)存储器可包括当计算机或其它装置掉电时保持数据的所有形式的存储器。这些存储器包括但不限于:HDD、⑶、DVD、磁带、固态驱动器、便携式USB驱动器和任何其它适当形式的持久性存储器。系统可包括一个或更多个附加的存储器装置(未示出)。附加的存储器装置可被配置有用于在不中断基于车辆的计算系统1的操作的情况下启用附加处
理器将软件更新发送到附加的存储器装置的开关(未示出)。
[0026]处理器还设置有允许用户与处理器进行交互的若干不同的输入。在此示意性实施例中,麦克风29、辅助输入25 (用于输入33)、USB输入23、GPS输入24、屏幕4 (可为触摸屏显示器)和蓝牙输入15全部被提供。还提供输入选择器51,以允许用户在各种输入之间进行切换。对于麦克风和辅助连接器两者的输入在被传送到处理器之前,由转换器27对所述输入进行模数转换。尽管未示出,但是与VCS进行通信的众多车辆组件和辅助组件可使用车辆网络(诸如但不限于CAN总线)向VCS (或其组件)传送数据并传送来自VCS (或其组件)的数据。
[0027]系统的输出可包括但不限于视觉显示器4以及扬声器13或立体声系统输出。扬声器被连接到放大器11,并通过数模转换器9从处理器3接收其信号。还可分别沿19和21所示的双向数据流进行到远程蓝牙装置(诸如PND 54)或USB装置(诸如车辆导航装置60)的输出。
[0028]在一示意性实施例中,系统1使用蓝牙收发器15与用户的移动装置53 (例如,蜂窝电话、智能电话、PDA或具有无线远程网络连接能力的任何其它装置)进行通信(17)。移动装置随后可用于通过例如与蜂窝塔57的通信(55)来与车辆31外部的网络61进行通信
(59)。在一些实施例中,蜂窝塔57可以是WiFi接入点。
[0029]移动装置与蓝牙收发器之间的示例性通信由信号14表示。
[0030]可通过按钮52或类似的输入来指示移动装置53与蓝牙收发器15进行配对。相应地,指示CPU使得车载蓝牙收发器将与移动装置中的蓝牙收发器进行配对。
[0031]可利用例如与移动装置53关联的数据计划、话上数据或DTMF音在CPU 3与网络61之间传送数据。可选地,可期望包括具有天线18的车载调制解调器63,以便在CPU 3与网络61之间通过语音频带传送数据(16)。移动装置53随后可用于通过例如与蜂窝塔57的通信(55)来与车辆31外部的网络61进行通信(59)。在一些实施例中,调制解调器63可与蜂窝塔57建立通信(20),以与网络61进行通信。作为非限制性示例,调制解调器63可以是USB蜂窝调制解调器,并且通信20可以是蜂窝通信。
[0032]在一示意性实施例中,处理器设置有包括用于与调制解调器应用软件进行通信的API的操作系统。调制解调器应用软件可访问蓝牙收发器上的嵌入式模块或固件,以完成与(诸如设置在移动装置中的)远程蓝牙收发器的无线通信。蓝牙是IEEE 802 PAN(个域网)协议的子集。IEEE 802 LAN(局域网)协议包括WiFi并与IEEE 802 PAN具有相当多的交叉功能。两者都适合于车辆内的无线通信。可在这一范围使用的另一通信方式是自由空间光通信(诸如IrDA)和非标准化消费者红外协议。
[0033]在另一实施例中,移动装置53包括用于语音频带或宽带数据通信的调制解调器。在话上数据的实施例中,当移动装置的所有者可在数据被传送的同时通过装置说话时,可实施已知为频分复用的技术。在其它时间,当所有者没有在使用装置时,数据传送可使用整个带宽(在一示例中是300Hz至3.4kHz)。尽管频分复用对于车辆与互联网之间的模拟蜂窝通信而言会是常见的并仍在被使用,但其已经很大程度上被用于数字蜂窝通信的码域多址(CDMA)、时域多址(TDMA)、空域多址(SDMA)的混合体所替代。这些都是ITU IMT-2000 (3G)兼容的标准,为静止或行走的用户提供高达2mbs的数据速率,并为在移动的车辆中的用户提供高达385kbs的数据速率。3G标准现在正被IMT-Advanced(4G)所替代,其中,所述IMT-Advanced(4G)为在车辆中的用户提供lOOmbs的数据速率,并为静止的用户提供lgbs的数据速率。如果用户具有与移动装置关联的数据计划,则所述数据计划可允许宽带传输且系统可使用宽得多的带宽(加速数据传送)。在另一实施例中,移动装置53被安装至车辆31的蜂窝通信装置(未示出)所替代。在另一实施例中,移动装置(ND)53可以是能够通过例如(而非限制)802.llg网络(即WiFi)或WiMax网络进行通信的无线局域网(LAN)
目.ο
[0034]在一实施例中,传入数据可经由话上数据或数据计划穿过移动装置,穿过车载蓝牙收发器,并进入车辆的内部处理器3。例如,在某些临时数据的情况下,数据可被存储在HDD或其它存储介质7上,直至不再需要所述数据时为止。
[0035]可与车辆进行接口连接的另外的源包括:具有例如USB连接56和/或天线58的个人导航装置54、具有USB 62或其它连接的车辆导航装置60、车载GPS装置24、或具有与网络61连接的能力的远程导航系统(未示出)。USB是一类串行联网协议中的一种。IEEE1394(火线?(苹果)、1.LINK?(索尼)和Lynx?(德州仪器))、EIA(电子工业协会)串行协议、IEEE 1284 (Centronics端口 )、S/PDIF (索尼/飞利浦数字互连格式)和USB_IF(USB开发者论坛)形成了装置-装置串行标准的骨干。多数协议可针对电通信或光通信来实施。
[0036]此外,CPU可与各种其它的辅助装置65进行通信。这些装置可通过无线连接67或有线连接69来连接。辅助装置65可包括但不限于个人媒体播放器、无线保健装置、便携式计算机等。
[0037]此外或可选地,可使用例如WiFi (IEEE 803.11)收发器71将CPU连接到基于车辆的无线路由器73。这可允许CPU在局域路由器73的范围中连接到远程网络。
[0038]除了由位于车辆中的车辆计算系统执行示例性处理之外,在某些实施例中,还可由与车辆计算系统通信的计算系统来执行示例性处理。这样的系统可包括但不限于:无线装置(例如但不限于移动电话)或通过无线装置连接的远程计算系统(例如但不限于服务器)。总体上,这样的系统可被称为与车辆关联的计算系统(VACS)。在某些实施例中,VACS的特定组件可根据系统的特定实施而执行处理的特定部分。作为示例而并非限制的方式,如果处理具有与配对的无线装置进行发送或者接收信息的步骤,则很可能无线装置不执行该处理,这是因为无线装置不会与自身进行信息的“发送和接收”。本领域的普通技术人员将理解何时不适合对给定解决方案应用特定的VACS。在所有解决方案中,预期至少位于车辆自身内的车辆计算系统(VCS)能够执行示例性处理。
[0039]VCS 1可被配置有如在图2中示出的两个或更多个存储装置(例如,EEPR0M 202)。两个或更多个EEPR0M 202可被配置,使得系统200指定一个EEPR0M 202经由开关电路与CPU 3进行通信,而其它EEPR0M 202与另一 CPU (未示出)进行通信,以接收软件更新。所述另一 CPU可在车辆运行期间接收软件更新。所述另一 CPU可与一个或更多个模块208进行通信以接收软件更新。所述一个或更多个模块208可包括但不限于:嵌入式调制解调器、嵌入式蜂窝电话、被用于使远程移动装置53能够与VCS 1进行通信的短距离无线模块、USB模块23和/或它们的组合。
[0040]例如,VCS 1可被配置为用于监测一个或更多个EEPR0M 202的软件状态。如果当前没有与CPU 3进行通信的EEPR0M 202已经经由所述另一 CPU接收到了软件更新,则一旦初始化事件已经发生则VCS 1可允许软件更新由VCS 1来执行。在一实施例中,所述初始化事件是点火开关接通事件、点火开关断开事件和/或用户发起的用于使系统初始化的请求。响应于所述初始化事件,VCS 1可切换CPU 3来在EEPR0M 202接收软件,其中,所述EEPR0M 202具有更新的软件。CPU 3可执行从EEPR0M 202接收到的更新的软件。
[0041]图2示出了用于向车辆31提供软件更新的示例性车辆31的系统200。系统200包括通过网络61与更新服务器218进行通信的VCS 1。更新服务器218可与软件数据存储器220进行通信,所述软件数据存储器220存储车辆配置222和软件更新224。系统200还包括软件更新管理模块214,所述软件更新管理模块214与VCS 1以及车辆31的各种模块208进行通信,且被配置为安装软件更新224。VCS 1还可包括软件更新应用(未示出),所述软件更新应用被配置为允许用户控制通过软件更新管理模块214执行的软件更新224的应用。虽然在图2中示出了示例性系统200,但在该图中示出的示例性组件并不意在具有限制性。实际上,系统200可具有更多或更少的组件,且附加的或可选的组件和/或实施方式可被使用。作为示例,虽然若干车辆模块208被示出,但是系统200可包括更多或更少的模块208。作为另一示例,虽然软件更新管理模块214被示出为单独的组件,但在其它示例中,软件更新管理模块214可与其它组件进行结合,例如,作为一种可行的方式,软件更新管理模块214可与VCS 1进行集成。
[0042]车辆模块208可包括各种车辆31的组件,所述各种车辆31的组件被配置为接收对关联的软件、固件或配置设置的更新。例如,车辆模块208可被配置为实现车辆总线命令的更新界面,所述车辆总线命令包括用于调用车辆模块208的软件更新模式的命令、用于接收将被应用到车辆模块208的更新的配置或软件数据的命令、以及用于经由备用EEPR0M202重置车辆模块208并重新加载所述配置和软件数据的命令。作为一些非限制性示例,车辆模块208可包括动力传动系统控制模块(PCM)、远程信息处理控制模块(TCM)、制动系统控制模块(BSCM)和车身控制模块(BCM)。
[0043]软件更新管理模块214可被配置为访问车载网络以与车辆模块208进行通信。在示例中,车载网络可以是车辆控制器局域网(CAN)。当车辆31被装配时,车辆31可包括各种硬件和软件组件。在装配时或在装配
之后,软件更新管理模块214可被配置为查询针对车辆31的车辆模块208的硬件和软件组件中的至少一部分的存在信息和版本信息。
[0044]软件更新管理模块214还可被配置为访问VCS 1以经由网络61与更新服务器218进行通信。使用查询信息和识别特定车辆31的附加信息(例如,CAN总线上发布的VIN信息、调制解调器63的用户识别模块(SHI)信息(诸如国际移动设备标识(ΠΙΕΙ))等),软件更新管理模块214可经由网络61进行通信以利用更新服务器218建立账户。更新服务器218可从车辆31接收这些通信,并可保持与接收的硬件配置和软件版本(例如,固件等)有关的车辆配置222的信息的软件数据存储器220,所述接收到的硬件配置和软件版本与车辆31的标识符关联。
[0045]软件数据存储器220还可被配置为存储可被提供给车辆31的软件更新224。例如,软件更新224可包括用于一个或更多个车辆31的模块的更新配置设置,和/或将被安装在一个或更多个车辆31的模块上的软件或固件的更新版本。例如,软件更新224还可包括可用于下载到车辆31的附加应用。
[0046]软件数据存储器220还可被配置为存储关于软件更新224的附加信息。例如,软件数据存储器220可被配置为保存关于软件更新224的可选的/必要的标志,所述关于软件更新224的可选的/必要的标志使得车辆31能够确定哪些软件更新224是必要的以及哪些是可选的(例如,可选标志)。作为另一示例,软件数据存储器220可被配置为保存哪些车辆模块208与哪些软件更新224关联的指示。软件数据存储器220还可存储指示软件更新224对车辆模块或配置的兼容性的信息。例如,用于软件更新224的存储条目可指示软件更新224与车辆31的特定品牌和型号兼容,或者它对另一车辆模块208的版本具有依赖性,所述另一车辆模块208的版本属于特定的一个版本或多个版本。
[0047]软件更新应用可被配置为接收用于启动提供软件更新224的指示。作为一种可行方式,VCS 1的软件更新应用可从用户接收请求检查软件更新224的命令请求。作为另一可行方式,软件更新管理模块214可触发针对新的软件更新224的定期检查,并可将触发请求的指示提供给软件更新应用。当通过用户或通过软件更新管理模块214进行请求时,软件更新应用可被配置为将请求发送到更新服务器218以查询针对车辆31的软件更新224是否可用。例如,软件更新应用可使用车辆31的标识符(例如,车辆31的VIN、车辆31的S頂信息等)来查询更新服务器218,并可从更新服务器218接收指示针对车辆31的新的软件更新224 (例如,如用于下载针对车辆31的软件更新224的链接或其它标识符)是否可用的响应。
[0048]软件更新应用还可被配置为经由VCS 1向用户提供针对软件更新管理模块214的用户界面。例如,软件更新应用可被配置为(例如,经由VCS 1的显示器4或扬声器13)向用户提供提示,所述提示通知用户软件更新224可用且请求继续进行软件更新224的安装的许可。作为另一可行方式,软件更新应用可被配置为在软件更新224可用(例如,被下载)时在车辆31的仪表盘内提供可用更新的指示。
[0049]—旦用户确认软件更新224应该被安装,则软件更新管理模块214可被配置为支持有利于支持车辆模块208的软件的更新的各种功能。例如,软件更新管理模块214可被配置为通过经由车辆总线将来自软件更新管理模块214的消息提供给接收车辆模块208,针对由软件更新224识别为软件更新224的接收者的车辆模块208,调用软件更新模式。软件管理模块214可将消息发送到VCS 1,以确定软件更新是否可被上传到未被一个或更多个模块208使用的可用EEPR0M 202。车辆系统200可包括两个或更多个EEPR0M 202。车辆系统200可在两个或更多个EEPR0M 202之间替换,使得当前的软件版本可被存储在一个EEPROM 202A上且由VCS 1来执行,而其它EEPROM 202B可用于接收软件更新。
[0050]在一示例中,软件更新应用可被配置为自动接受软件更新224,其中,所述软件更新224对于与VCS 1进行通信的一个或更多个模块208是可用的。VCS 1可控制开关电路206与一个EEPROM 202A进行通信。开关电路206启用EEPROM 202A将软件发送到一个或更多个模块以执行。开关电路206可在不中断VCS 1的情况下启用EEPROM 202B以用于软件更新。软件更新管理模块214可接收软件更新,并将其发送到当前未被一个或更多个模块208和/或VCS 1使用的EEPROM 202B。在初始化事件,VCS 1可控制开关电路206,使得接收到软件更新的EEPROM 202B立即与一个或更多个模块208进行通信,从而当前其它EEPROM 202A被剩余而可用于软件更新。
[0051]软件更新管理模块214还可被配置为经由车辆总线将软件更新224转发到当前未被车辆模块208使用的可用EEPROM 202。车辆系统可在初始化事件时经由被接收车辆模块208使用的EEPROM来启用软件更新。所述初始化事件使得VCS 1能够确定软件更新是否已经被完成,并从而使得开关电路将具有软件更新的EEPROM 202与车辆模块208进行连接,以重新加载并使用更新的软件。软件更新管理模块214还可被配置为通过经由车辆总线读取诊断代码来执行关于更新处理成功的诊断功能。
[0052]在现有的系统中,由于分配的EEPROM必须利用软件更新来重新刷新,因此软件更新可要求车辆不可操作。在可用EEPROM利用更新软件被刷新时,两个或更多个EEPROM 202的使用使得车辆系统200能够在允许模块208继续与执行当前软件的EEPROM 202进行通信的同时执行软件更新。下面针对图3A、图3B和图4讨论使用两个或更多个EEPROM的软件更新管理模块214和软件更新应用的操作的其它各个方面。
[0053]图3A示出了用于VCS 1的可编程存储器电路300的示例。VCS 1可包括激活的EEPROM 202A,所述激活的EEPROM 202将软件发送到被配置用于车辆操作的CPU 3以及被配置用于利用软件更新重新刷新的备用的EEPROM 202的另一 CPU 302。VCS 1可控制开关206将EEPROM 202分配给CPU 3。开关206的电路由两部分组成,其每一部分由两组场效应晶体管(FET)构成。除了一组连接到EEPROM 202A而另一组被连接到EEPROM 202B之外,开关电路的两个部分的操作相同。在连接到EEPROM 202A的部分中,第一组FET (FET 1)被定位以在用于车辆控制的CPU 3的地址线与EEPROM 202A的地址线之间产生连接。当第一组FET被激活时,所述连接在所述两个芯片的地址线之间产生。当第一组FET截止时,所述连接断开。第二组FET(FET 2)被定位以在用于刷新的CPU 302的地址线与EEPROM 202A的存储器芯片的地址线之间产生连接。当第二组FET的被激活,所述连接在所述两个芯片之间产生。当第二组FET截止时,所述连接断开。通过在禁用第二组FET的同时激活第一组FET,存储器被专门连接到CPU 3以进行车辆控制。相反地,通过在激活第二组FET的同时禁用第一组FET,存储器被专门连接到CPU 302以进行刷新。按照类似的方式,第三组FET和第四组FET控制EEPROM 202B的连接。
[0054]例如,FET 1高以及FET 2低将EEPROM 202A连接到CPU 3以进行车辆控制,且FET3低以及FET 4高将EEPROM 202B连接到CPU 302以进行刷新。同样地,所述电路的详细功能被给出。可观测到的是,FET 1和FET 2总是相反的,且FET 3和FET 4总是相反的,因此不必单独被标出。此外,FET 3和FET 1总是相反的。因此,电路300的操作可以被更简单地描述为:当FET 1为高时,EEPROM 202A连接到CPU 3以进行车辆控制,并且EEPROM202B连接到CPU 302以进行刷新。当FET 1为低时,EEPROM 202A连接到CPU 302以进行刷新,并且EEPROM 202B连接到CPU 3以进行车辆控制。
[0055]在另一示例中,VCS 1可启用激活的EEPROM 202A以与用于车辆操作的CPU 3进行通信。VCS 1可被通知备用的EEPROM 202B已经经由与更新服务器218进行通信的CPU302接收到更新的软件。
[0056]例如,VCS1可在点火开关接通事件期间控制开关206,使得操作车辆系统的CPU3与包含可用于执行的软件的EEPROM 202A进行通信。VCS 1可控制开关206,使得被指定用于接收更新的软件的CPU 302在车辆运行期间与未被使用的EEPROM 202B进行通信。备用的EEPROM 202B可从更新服务器218接收软件更新。软件更新可在对车辆运行没有任何中断的情况下由备用的EEPROM 202B来接收。一旦在备用的EEPROM 202B完成软件更新的上传,则VCS 1可接收到消息。VCS 1可生成通知车辆用户软件更新可用的消息。VCS 1可在显示器4上输出所述消息。车辆用户可以选择接受软件更新,使得VCS 1在下一车辆点火开关接通事件中接收软件更新。在另一实施例中,车辆用户可以选择接受软件更新,使得VCS 1执行重新初始化事件。响应于车辆用户接受软件更新,在下一点火开关接通事件中,VCS 1可控制开关,使得备用的EEPROM 202B立即与操作车辆的CPU 3进行通信。曾经激活的EEPROM 202A现在与被指定用于接收更新软件的CPU 302进行通信。
[0057]在另一示例中,被配置用于车辆操作的CPU 3可接收软件更新的消息。软件更新的消息可向CPU 3提供第二 EEPROM 202B接收到软件更新的信息。响应于初始化事件,CPU3可基于软件更新的消息控制开关电
路206。CPU 3可将用于与包含更新软件的第二 EEPROM202B建立通信的信号发送到开关电路206。在其它实施例中,被配置为刷新可用EEPROM的CPU 302和/或附加的处理器(未示出)可被添加到用于控制开关206的电路。
[0058]图3B示出了用于与VCS 1进行通信的车辆模块208的可编程存储器电路350的示例。车辆模块208可包括将软件发送到被配置用于车辆操作的CPU 304以及被配置用于重新刷新备用的EEPR0M1 202A的另一 CPU 306的EEPR0M2 202B。
[0059]例如,VCS 1可从远程服务器(例如,更新服务器218)、经由USB 23端口的USB驱动、和/或它们的组合中的至少一个接收软件更新。VCS 1可使用一个或更多个无线通信装置与更新服务器218进行通信,所述一个或更多个无线通信装置包括与更新服务器218进行通信的嵌入式蜂窝电话、嵌入式调制解调器、连接的移动装置53、和/或它们的组合。
[0060]在一示例中,VCS 1可经由USB 23端口从USB驱动接收软件更新。VCS 1可管理从USB 23端口接收的数据,并且可将软件更新发送到各自对应的车辆模块208。车辆模块208可经由被配置用于重新刷新备用的EEPR0M1 202A的CPU 306接收软件更新。车辆模块可在没有来自在EEPR0M1 202A接收的软件更新的中断的情况下继续操作一个或更多个车辆系统。车辆模块208可通过执行从激活的EEPR0M2 202B接收的软件而基于被配置用于车辆操作的CPU 304继续执行一个或更多个功能。
[0061]车辆系统可从车辆模块208接收软件更新通知。响应于所述软件更新通知,车辆模块208可启用开关发送请求,使得被配置用于车辆操作的CPU 304现在可与接收到更新的软件的EEPR0M1 202A进行通信。车辆模块208可在初始化事件中启用开关206以切换到包含软件更新的EEPR0M1 202A。所述初始化事件可包括但不限于点火开关接通、点火开关断开、和/或系统重新初始化事件。
[0062]图4是示出用于使用可编程存储器电路管理软件更新的示例性方法400的流程图。软件更新方法可包括在车辆系统中的硬件上执行的一个或更多个软件应用。所述一个或更多个应用可包括用于与车辆的一个或更多个组件进行通信的指示,并且在不中断车辆操作的情况下管理可用EEPROM的软件更新。方法400可使用包含在VCS 1内的软件代码来实现。在其它实施例中,方法400可在其它车辆控制器中被实现,在与VCS 1进行通信的远程服务器中被实现,被分布在多个车辆控制器中,或上述所列方式的组合。
[0063]再次参照图4,贯穿该方法的讨论参考了如在图1、图2、图3A和图3B中示出的车辆及其组件,以有助于理解本公开的各个方面。可通过被编入到车辆的适合的可编程逻辑装置(诸如车辆控制模块、远程服务器上的控制模块、与车辆计算系统进行通信的另一控制器或它们的组合)中的计算机算法、机器可执行代码或软件指令来实现在车辆被操作时更新软件的方法400。虽然在流程图400中示出的各种操作看起来是按照时间顺序发生,但是至少部分操作可按照不同的顺序发生,并且部分操作可被同时执行或不执行。
[0064]在操作402,车辆系统可包括初始化事件,所述初始化事件可包括将被配置用于车辆操作起始事件的一个或更多个数据变量。在操作404,响应于系统初始化,车辆系统可确定新的软件是否可用于执行。如果没有新的软件是可用的,则在操作406,系统可保持现存的开关位置,使得激活的EEPROM继续将软件发送到被配置用于车辆操作的CPU。
[0065]在操作408,如果新的软件是可用的,则车辆系统可确定新的软件是否被保存在备用的EEPROM中。如果新的软件被保存在备用的EEPROM中,则在操作418,系统可改变开关的位置,使得具有更新的软件的EEPROM与被配置为操作车辆的CPU进行通信。
[0066]在操作410,如果新的软件不在备用的EEPROM中,则系统可与远程服务器建立通信以接收更新的软件。服务器可将更新的软件无线地发送到系统,系统可从服务器接收软件。在操作412,系统可经由被配置用于重新刷新备用的EEPROM的CPU来刷新备用的EEPROM,所述备用的EEPROM当前未被车辆系统使用。
[0067]在操作414,系统可确定备用的EEPROM的刷新何时完成。在操作416,响应于利用更新的软件刷新的EEPR0M,系统可继续监测初始化事件是否已经发生。如果初始化事件没有被检测到,则系统可在操作406保持开关位置。
[0068]在操作418,如果初始化事件被检测到,则系统可改变开关位置,使得具有更新的软件的EEPROM与被配置用于车辆操作的CPU进行通信。在操作420,被配置用于车辆操作的CPU可执行更新的软件。
[0069]在操作422,车辆系统可针对点火开关断开事件进行监测。如果点火开关断开事件未被检测到,则系统可继续管理对备用的EEPROM的软件更新。如果点火开关断开事件被检测到,则系统可在使系统准备执行备用的EEPROM中的更新软件的同时开始对将一个或更多个变量存储在非易失性存储器中的一个或更多个模块停止供电。一旦备用的EEPROM变为激活的EEPR0M,则系统可使先前激活的EEPROM准备与被配置用于重新刷新备用的EEPROM的CPU进行通信。
[0070]虽然以上描述了示例性实施例,但这些实施例并不意在描述权利要求所包含的所有可能形式。说明书中所使用的词语是描述性词语而非限制性词语,并且应理解的是,可在不脱离本公开的精神和范围的情况下做出各种改变。如前所述,可将各种实施例的特征进行组合以形成本发明的可能未被明确描述或示出的进一步的实施例。尽管已经通过针对一个或更多个期望特性提供优点或者在其它实施例或现有技术实现之上描述了各种实施实施例,但是本领域的普通技术人员应认识到,一个或更多个特征或特性可被折衷以实现依赖于特定应用和实现的期望的整体系统属性。这些属性可包括但不限于成本、强度、寿命、生命周期成本、市场性、外观、包装、尺寸、可服务性、重量、生产、组装的容易性等。如此,针对一个或更多个特性描述的比其它实施例或现有技术实现更非期望的实施例并非在本公开的范围之外,并可被期望用于特定应用。
【主权项】
1.一种车辆计算系统,包括: 第一存储装置,与用于执行一个或更多个车辆操作的第一处理器进行通信; 第二存储装置,与用于接收软件更新的第二处理器进行通信; 第一开关电路,在所述第一处理器与所述第一存储装置以及所述第二存储装置之间进行选择性切换; 第二开关电路,在所述第二处理器与所述第一存储装置以及所述第二存储装置之间进行选择性切换; 其中,所述第一处理器或所述第二处理器被配置为: 接收软件更新在所述第二存储装置中可用的通知, 控制所述第一开关电路将与所述第一处理器的通信从所述第一存储装置切换到所述第二存储装置,以由所述第一处理器执行来自所述第二存储装置的软件更新。2.如权利要求1所述的车辆计算系统,其中,所述第一存储装置和所述第二存储装置由电可擦除可编程只读存储器、闪存、随机存取存储器和只读存储器中的至少一个组成。3.如权利要求1所述的车辆计算系统,所述车辆计算系统还包括:响应于所述第一开关电路进行切换以使得与所述第一处理器的通信能够与所述第二存储装置进行通信,所述第二处理器经由所述第二开关电路与所述第一存储装置进行通信。4.如权利要求3所述的车辆计算系统,其中,所述第二处理器被配置为:在车辆运行期间启用所述第一存储装置的软件更新刷新事件。5.如权利要求3所述的车辆计算系统,所述车辆计算系统还包括:通信模块,被配置为与一个或更多个装置建立远程通信,使得所述通信模块经由所述第二处理器将软件更新发送到所述第一存储装置。6.如权利要求5所述的车辆计算系统,其中,所述通信模块为嵌入式蜂窝电话、蓝牙模块和嵌入式调制解调器中的至少一个。7.如权利要求5所述的车辆计算系统,其中,所述一个或更多个装置为远程服务器以及与远程服务器进行通信的移动装置中的至少一个。8.如权利要求5所述的车辆计算系统,其中,所述通信模块被配置为:响应于点火开关断开事件,继续接收所述软件更新,直到所述第二处理器在完成所述点火开关断开事件之前接收到软件更新成功消息为止,并且经由所述第二处理器将所述软件更新存储在所述第一存储装置中。9.如权利要求1所述的车辆计算系统,其中,所述第一处理器或所述第二处理器还被配置为:响应于初始化事件,发送用于确定所述第一存储装置或所述第二存储装置是否包含所述更新软件的请求。10.如权利要求9所述的车辆计算系统,其中,所述初始化事件为点火开关接通、点火开关断开和手动启动事件中的至少一个。11.如权利要求1所述的车辆计算系统,其中,所述第一开关电路和所述第二开关电路为至少两个场效应晶体管。
【专利摘要】本公开涉及一种更新车辆计算系统的方法及系统。一种针对车辆的车辆计算系统包括第一存储装置和第二存储装置(例如,可擦除可编程只读存储器(EEPROM))。所述系统还包括在所述第一存储装置和所述第二存储装置之间进行选择性切换的电路。所述系统还包括第一车辆控制模块,所述第一车辆控制模块被配置为接收软件更新在所述第二存储装置中可用的通知。所述第一车辆控制模块在初始化事件下控制所述电路从所述第一存储装置切换到所述第二存储装置。所述第一车辆控制模块基于与所述第二存储装置的通信执行所述软件更新。
【IPC分类】G06F9/445
【公开号】CN105487883
【申请号】CN201510646151
【发明人】道格拉斯·雷蒙德·马丁, 麦克·安东尼·罗克韦尔
【申请人】福特全球技术公司
【公开日】2016年4月13日
【申请日】2015年10月8日
【公告号】DE102015116703A1, US20160098266