车用电控单元ecu的引导程序的在线更新方法

文档序号:8258021阅读:589来源:国知局
车用电控单元ecu的引导程序的在线更新方法
【技术领域】
[0001]本发明属于汽车领域,特别是涉及一种车用电子控制单元ECU的引导程序的在线更新方法。
【背景技术】
[0002]汽车作为便捷的运输工具,随着人们的生活水平提升,在我国已经逐步走入家庭。至2009年,我国的汽车全年产销量位居世界第一。消费者在选择汽车时,除了关注性价比、售后服务等因素外,对汽车的安全、舒适、环保等功能性的需求正在不断的增加。因此,车载电控单元在汽车上的应用越来越多,功能逐步增强,机构日益复杂。
[0003]在九十年代,基本上一辆中档车上只有二十来个电控单元,更多的功能是通过机械结果来完成的。随着人们对汽车功能智能化要求的越来越高,需要用到的电控单元数量也越来越多,需要实现的功能越来越复杂,需要更新换代的频率越来越快。现在,一辆进口的中档车上电控单元有一百多个,而且这种情况随着自动驾驶概念的提出,汽车上的电控单元更新频率只会越来越快。当前,汽车上的电控单元的更新大多是通过更换新的电控单元来实现。
[0004]这种方法在以前是可以使用的:一个车用电控单元的开发周期为2年,可以随着新车型的销售寿命使用5年以上。现在,大部分车型都会每年进行一次小改型而五年进行一次大改型。如果继续按照以前的方法操作,这对消费者、汽车公司都是无法接受的。所以,现在汽车上越来越多的电控单元在产品的设计阶段考虑好未来的扩展可能,在不改动硬件的情况下,只更新应用程序,通过引导程序更新应用程序的方式来完成产品的更新换代。

【发明内容】

[0005]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种车用电子控制单元ECU的在线更新技术,以解决汽车电控单元更新换代的问题,降低汽车的维修或更新成本。
[0006]为解决上述问题及其他问题,本发明提供一种车用电控单元ECU的在线更新方法,所述电控单元E⑶配置有应用程序和引导程序,所述引导程序包括总线通讯模块、程序擦除模块、程序更新模块;所述车用电控单元ECU的在线更新方法包括:当所述电控单元ECU的应用程序通过调用所述总线通讯模块而接收到表示复位的诊断服务命令时,执行系统复位操作以进入引导程序;进入引导程序后,由所述引导程序读取更新请求标志,并在所述更新请求标志为有效的情况下清除所述更新请求标志,并进行硬件初始化、参数初始化,使能更新功能以进入更新功能的主流程;在更新功能的主流程中,定时调用所述总线通讯模块以获取当前的诊断服务命令,并根据所获取的诊断服务命令调度所述程序擦除模块和所述程序更新模块,以完成更新数据的传输及更新;所述程序擦除模块用于将当前非空状态的内存空间擦除为空白状态,便于后期写入数据;所述程序更新模块用于负责将传输的数据写入到为空白状态的内存空间中;在所有的更新数据传输完成后,对下载更新的应用程序进行一种或多种校验,以确定本次更新的有效性。
[0007]可选地,所述引导程序还包括非易失性存储区;当所述电控单元E⑶的应用程序在接收到表示复位的诊断服务命令后,执行系统复位操作以进入引导程序,包括:当所述电控单元的应用程序接收到表示复位的诊断服务命令时,所述电控单元与诊断仪实现握手,所述应用程序则在所述非易失性存储器中写入更新请求标志后,强制执行一次系统复位操作,使得电控单元进入引导程序。
[0008]可选地,所述引导程序的在线更新方法还包括:由所述引导程序读取更新请求标志,在所述更新请求标志为无效的情况下,所述电控单元则从所述引导程序跳转回到所述应用程序中。
[0009]可选地,通过定时调用而获取的当前的诊断服务命令包括:表示后续传输的更新数据的数据长度和存储地址的诊断服务命令、表示传输更新的数据内容的诊断服务命令、以及表示更新数据传输完成并校验的诊断服务命令。
[0010]可选地,定时调用以获取当前的诊断服务命令,并根据所获取的诊断服务命令而执行相应操作,包括如下中的任一种或者多种:若接收的当前的诊断服务命令为表示后续传输的更新数据的数据长度和存储地址诊断服务命令时,所述引导程序将执行一次擦除操作,将该段区域的数据进行清空;其中,在第一次执行表示后续传输的更新数据的数据长度和存储地址诊断服务命令时,清除所述应用程序的有效性标志;若接收的当前的诊断服务命令为表示传输更新的数据内容的诊断服务命令时,所述引导程序先将接收到的数据内容存储至缓冲区内,每接收满一页数据,调用更新操作,将一页的数据写入到规定的存储地址,同时,更新完成后,缓冲区内的一页数据被释放,等待新的表示传输更新的数据内容的诊断服务命令;若接收的当前的诊断服务命令为表示更新数据传输完成并校验的诊断服务命令时,所述引导程序将所述缓冲区中未写入的数据执行更新操作,更新成功后,将更新的所有数据内容读取出来,并进行校验。
[0011]可选地,在所有的更新数据传输完成后,对下载更新的应用程序进行一种或多种校验,以确定本次更新的有效性,包括:在所有的更新数据传输完成后,进行校验操作,将校验得到的校验值与表示更新数据传输完成并校验的诊断服务命令中的校验值进行比较;如果校验得到的校验值与表示更新数据传输完成并校验的诊断服务命令中的校验值相一致,表明该次更新成功,所述应用程序的有效性标志恢复为有效状态;如果校验得到的校验值与表示更新数据传输完成并校验的诊断服务命令中的校验值不一致,表明该次更新不成功,所述应用程序的有效性标志仍然保持无效状态。
[0012]可选地,所述校验操作采用的是循环冗余校验CRC-16标准。
[0013]可选地,所述总线通讯模块包括CAN总线、LIN总线或K总线。
[0014]可选地,所述引导程序还包括定时计数器,所述定时计数器在进入引导程序后开始计数;所述总线通讯模块的工作流程包括:调用所述总线通讯模块,判断通过所述总线通讯模块是否有收到总线通讯帧;若有收到新的诊断服务命令,所述定时计数器清零,重新开始计数,并在后续从所述总线通讯帧中提取出诊断服务命令;若没有收到新的诊断服务命令,则所述定时计数器即加I ;判断所述定时计数器中的计数是否超过预设的阈值;若所述定时计数器中的计数超过了预设的阈值,则认定本次更新过程结束,根据程序的校验标志状态决定进入应用程序操作还是等待重新握手更新。
[0015]可选地,所述非易失性存储区还存储有应用程序的有效性标志、完整性标志、兼容性标志中的至少一种标志;在引导程序中,在内存空间没有执行过擦除或更新操作前,所述应用程序的这三种标志始终有效;若发生有任一复位,由于应用程序的各个标志有效,复位后进入应用程序,需要重新执行握手功能才能进行更新操作;任何内存空间执行擦除操作后,必须清除应用程序的标志;若在更新过程中出现异常情况或系统复位后,由于应用程序标志无效,无法执行应用程序,系统保持在引导程序中等待系统更新。
[0016]本发明所提供的车用电控单元ECU的在线更新方法,在接收到表示复位的诊断服务命令时,执行系统复位操作以进入引导程序,进入引导程序后,通过硬件初始化和参数初始化,使能更新功能以进入更新功能的主流程,在更新功能的主流程中,定时调用所述总线通讯模块以获取当前的诊断服务命令,并根据所获取的诊断服务命令调度所述程序擦除模块和所述程序更新模块,以完成更新数据的传输及更新。可见,本发明可在不改动硬件的情况下,只更新应用程序,通过引导程序更新应用程序的方式来完成产品的更新换代,从而解决现有技术中汽车电控单元更新换代的问题,降低汽车的维修或更新成本。
【附图说明】
[0017]图1为本发明车用电控单元ECU的在线更新方法的概况示意图。
[0018]图2为本发明车用电控单元ECU的在线更新方法的流程示意图。
[0019]图3为本发明车用电控单元ECU的在线更新方法在进入引导程序后执行相应操作的概括示意图。
[0020]图4为配合有定时计数器的总线通讯模块的工作流程图。
【具体实施方式】
[0021]本发明的发明人发现:在现有技术中,汽车上的电控单元的更新大多是通过更换新的电控单元来实现,这样,不仅更新繁琐,且增加汽车的更新或维修成本。
[0022]因此,本发明的发明人对现有技术进行了改进,提供一种车用电控单元ECU的在线更新方法,可在不改动硬件的情况下,只更新应用程序,通过引导程序更新应用程序的方式来完成产品的更新换代,从而解决现有技术中汽车电控单元更新换代的问题。
[0023]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1