一种汽车控制器的刷新方法与流程

文档序号:12040394阅读:830来源:国知局
一种汽车控制器的刷新方法与流程
本发明属于汽车自动化技术领域,具体涉及一种汽车控制器的刷新方法及装置。

背景技术:
在汽车的整车研发试验阶段,经常发现汽车控制器(ECU)内存在Bug,需要更新其内部的应用程序;或在车辆售后服务中,若发现ECU内部程序存在问题,也需要更新内部应用程序。以往需要把ECU整体从整车上拆卸下来,打开外壳,把新的应用程序烧写进去。繁琐的拆卸和代码烧写过程,给开发人员和售后人员带来了很多不便,而且在拆卸过程中还容易对其它关联件造成损坏。由于只有ECU生产商自己才能刷新应用程序,所以使用者很难对ECU内部软件进行更新和维护。随着车载网络总线的发展,开始探索通过CAN总线通讯数据刷新ECU应用程序,车载诊断服务的逐步完善使其成为了现实。将一段代码(Bootloader)注入到ECU存储器内,利用诊断功能将汽车控制器软件程序下载到控制器内存区域。汽车控制器开发了诊断刷新功能,即可在整车网络中借助诊断设备通过车载诊断接口完成整车相关控制器软件程序下载,无需拆卸控制器硬件。但是在对汽车控制器进行刷新过程中存在很多问题,例如缺乏对汽车控制器刷新的安全保护功能,刷新应用程序数据与汽车控制器不匹配,刷新应用程序数据不可靠等。上述问题都是汽车控制器刷新过程中存在的安全隐患,会影响到汽车整车的安全性和稳定性。

技术实现要素:
本发明所要解决的技术问题是针对现有技术中存在的上述不足,提供一种汽车控制器的刷新方法和装置,该方法可以加强对汽车控制器刷新的安全保护,使得刷新应用程序数据与汽车控制器匹配,提高刷新应用程序数据的可靠性,大大提高了汽车整车的安全性和稳定性。解决本发明技术问题所采用的技术方案是提供一种汽车控制器的刷新方法,所述汽车控制器上电或复位后运行的第一段代码为Bootloader,Bootloader可分为PBL和SBL两部分,其中,所述PBL驻留在所述汽车控制器的ROM内,所述汽车控制器的刷新方法包括以下步骤:(1)所述汽车控制器诊断预刷新,其包括:所述汽车控制器信息和/或所述汽车控制器内应用程序版本信息的安全校验认证;(2)所述汽车控制器诊断刷新。优选的是,所述步骤(1)中的所述汽车控制器信息安全校验认证的内容包括:所述汽车控制器内的Bootloader的软件版本信息、所述汽车的厂信息、所述汽车的车辆VIN码信息中的任意一项或几项。优选的是,所述步骤(1)中的所述汽车控制器诊断预刷新包括所述汽车状态检查。优选的是,所述步骤(1)中的所述汽车控制器诊断预刷新包括所述汽车状态检查内容包括:所述汽车的电源电压信息、所述汽车的运动状态信息、所述汽车的发动机运行状态信息、所述汽车的防盗状态信息中的任意一项或几项。优选的是,所述步骤(2)中所述汽车控制器诊断刷新前,对所述汽车控制器进行解锁验证。优选的是,所述步骤(2)中的汽车控制器诊断刷新包括驻留在所述汽车控制器的ROM内的PBL将所述SBL下载到所述汽车控制器的RAM中。优选的是,所述步骤(2)中的所述汽车控制器诊断刷新包括下载应用程序数据,并对所述应用程序数据进行检查校验。优选的是,所述步骤(2)中的所述汽车控制器诊断刷新还包括将Bootloader中的中断向量表在应用程序中重构。本发明还提供一种汽车控制器的刷新装置,包括:汽车控制器诊断预刷新单元,用于安全校验认证所述汽车控制器信息和/或所述汽车控制器内应用程序版本信息;和汽车控制器诊断刷新单元,用于诊断刷新所述汽车控制器。优选的是,所述汽车控制器诊断刷新单元中还包括所述汽车控制器应用程序检查校验单元,用于对汽车控制器下载的应用程序进行检查校验。本发明的汽车控制器的刷新方法可以加强对汽车控制器刷新的安全保护,使得刷新应用程序数据与汽车控制器匹配,提高刷新应用程序数据的可靠性,大大提高了汽车整车的安全性和稳定性。附图说明图1是本发明实施例1中的汽车控制器内的Bootloader软件存储分布;图2是本发明实施例2中的汽车控制器启动及刷新状态时序图。具体实施方式为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。实施例1本实施例提供一种汽车控制器的刷新方法,所述汽车控制器上电或复位后运行的第一段代码为Bootloader,Bootloader可分为PBL和SBL两部分,其中,所述PBL驻留在所述汽车控制器的ROM内,所述汽车控制器的刷新方法的特征在于,包括以下步骤:S101所述汽车控制器诊断预刷新,其包括:所述汽车控制器信息和/或所述汽车控制器内应用程序版本信息的安全校验认证;S102所述汽车控制器诊断刷新。Bootloader是系统上电或者复位后运行的第一段代码,这段程序将系统的软硬件环境带到一个合适的状态,为最终调用应用程序准备好正确的环境。汽车电子中所谓的Bootloader是一个狭义的概念,可称为引导加载/升级程序,将诊断设备中新版本的软件下载到汽车控制器中,即软件/程序升级更新。就汽车控制器来说:刷新就是数据的下载/上传。如图1所示,Bootloader软件在汽车控制器软件架构中可分成PBL(PrimaryBootloader)和SBL(SecondBootloader)两个独立的部分,分别驻留在汽车控制器的ROM和RAM内。SBL驻留在RAM中,可以节省Bootloader占用的ROM空间,且刷新完成后SBL将失效,即可用于存储其它变量数据。PBL驻留在ROM中的受保护的闪存中,应用程序和校正数据则在ROM中的可擦写的闪存中。诊断设备通过CAN通讯对汽车控制器进行诊断刷新。PBL由主引导模块、诊断模块、网络模块、CAN驱动模块和定时器模块组成,执行代码量约10k。在出厂前把PBL写入一个固定的受保护的flash区域,在复位后激活。它的功能为检测软硬件的版本信息(硬件、软件、零件号等)、将SBL下载到RAM中、跳转到SBL等。为节省RAM空间,SBL由FLASH的擦除\编程代码组成,其他模块(比如引导、诊断、网络、定时器)复用PBL内的,SBL执行代码量4k左右。SBL可以看作PBL增加擦除和刷新功能的扩展集;通过PBL将SBL下载到RAM中并在RAM中运行,负责更新代码或数据,每次使用后均删除;SBL的功能有:擦除和刷新Flash区域、验证刷新数据的有效性等。汽车控制器上电后即运行Bootloader这段代码,具体运行逻辑如下:(1)上电后,汽车控制器即进入PBL,若在规定的时间没有收到刷新指令,即进入正常的应用程序(若没有检测到有效的应用程序,将停留在PBL),把控制权转换给应用程序;若收到了刷新指令,进入步骤2;(2)PBL通过与诊断设备通信把Flash的驱动SBL下载到RAM中;(3)诊断设备通过PBL把新的应用程序传递给SBL,SBL把应用程序写到相应的位置;(4)刷新完新的应用程序后,将对数据进行校验,无误后,重启ECU。ECU在运行应用程序时,当收到诊断服务(DiagnosticSessionControl)的值为刷新会话(ProgrammingSession)时,也可跳转到Bootloader进行刷新工作。将Bootloader分成PBL和SBL有以下好处:(1)运行最小的Boot程序(PBL)和最大的灵活性;(2)一旦Bootloader运行出现异常(如异常断电),不会产生难以恢复的后果;(3)可以保密SBL。本实施例的汽车控制器的刷新方法可以加强对汽车控制器刷新的安全保护,使得刷新应用程序数据与汽车控制器匹配,提高刷新应用程序数据的可靠性,大大提高了汽车整车的安全性和稳定性。实施例2本实施例提供一种汽车控制器的刷新方法,所述汽车控制器上电或复位后运行的第一段代码为Bootloader,Bootloader可分为PBL和SBL两部分,其中,所述PBL驻留在所述汽车控制器的ROM内,所述汽车控制器的刷新方法包括以下步骤:S201标准诊断会话:对于汽车控制器的刷新是通过诊断设备与汽车控制器之间建立诊断通讯来实现的。诊断设备通过$22诊断服务读取要刷新的汽车控制器内的Bootloader的软件版本信息、所述汽车的厂信息、所述汽车的车辆VIN码信息中的任意一项或几项,通过$22诊断服务并对上述信息进行核对。若核对通不过,则不允许进行下一步的操作。这样可以使得诊断设备中将要刷新的应用程序与要刷新的车辆控制器信息和/或汽车控制器内应用版本信息相匹配,才进行下一步的操作。对于汽车控制器的刷新是通过诊断设备与汽车控制器之间建立诊断通讯来实现的。诊断设备通过$22诊断服务读取要刷新的汽车控制器内的Bootloader的软件版本信息、所述汽车的厂信息、所述汽车的车辆VIN码信息中的任意一项或几项。所使用的诊断设备优选为诊断仪或PC机作为上位机,连接到汽车控制器的诊断口,对汽车控制器进行刷新;可连接网络对诊断仪中的SBL和应用软件进行升级。S202扩展诊断会话:(1)诊断设备进入扩展诊断会话模式,屏蔽其他诊断帧,并停止故障码DTC的设置;同时屏蔽网管帧和应用帧。为提高诊断设备的刷新速率,用户可选择提高通讯的波特率。(2)诊断设备通过$27诊断服务并对上述读取的信息进行安全校验认证。若安全校验认证通不过,则不允许进行下一步的操作。这样只有诊断设备中要刷入的应用程序与汽车控制器匹配,诊断设备才可以对汽车控制器进行刷新操作。(3)诊断设备通过$31诊断服务对当前汽车状态进行检查,汽车状态检查内容包括:所述汽车的电源电压信息、所述汽车的运动状态信息、所述汽车的发动机运行状态信息、所述汽车的防盗状态信息中的任意一项或几项。若汽车处于运动状态、汽车的发动机处于运行状态、汽车防盗装置未解锁状态中的一项或者几项,则不进行下一步操作。这样可以保护汽车在不受汽车控制器控制的状态下,安全实现对汽车控制器的刷新。并可防止由于汽车控制器的刷新,给汽车的各种状态下带来危险。S203刷新会话:(1)诊断设备进入刷新诊断模式,将汽车控制器切换到Bootloader程序中。(2)诊断设备通过$27诊断服务对汽车控制器进行解锁验证,通过此步安全校验认证之后,安全功能打开汽车控制器,此时可以执行刷新操作。若解锁验证通不过,则不允许进行下一步的操作。这样,可以大大提高汽车的安全控制系数。(3)驻留在所述汽车控制器的ROM内的PBL将所述SBL下载到汽车控制器的RAM中,擦除汽车控制器中存储的已有应用数据。SBL由FLASH的擦除/编程代码组成,SBL执行代码量4k左右,SBL可以看作PBL增加擦除和刷新功能的扩展集,通过PBL将SBL下载到RAM中并在RAM中运行,负责更新代码或数据,每次使用后均删除;SBL的功能有:擦除和刷新Flash区域、验证刷新数据的有效性等。本实施例中的SBL文件和要刷入的新的应用程序文件采用流行的S19、Hex或二进制格式,可利用编译器直接把源代码或库文件生成S19、Hex或二进制文件。大大增强了汽车控制器,对于各种程序的适配性。(4)汽车控制器下载应用程序数据,根据Flash存储的地址分区,下载应用程序到Flash的每个扇区内。S204刷新可靠性验证:诊断设备通过CRC16服务校验检查下载的应用程序数据是否正确:如果正确刷完所有数据块,则置位Flash指定地址中的标志位;如果所刷数据不正确,则停止此次刷新并提示错误,然后擦除所有扇区数据,重新刷写。然后再通过该CRC16服务请求ECU对所有刷入的所有应用数据进行CRC16服务校验,正确后设置应用存在标志位,不正确将停止下一步操作。通过该步对刷入的应用程序数据的检查,可以提高应用程序数据的安全可靠性,防止刷入错误的应用程序数据,给汽车控制器带来安全隐患。S205应用校验:刷新应用程序数据完成后,汽车控制器执行复位;重启后检查Flash制定位置的标志位是否存在:若Flash制定位置的标志位存在,则进入应用程序;若Flash制定位置的标志位不存在,则停留在Bootloader程序中。通过该步复位,可以引导诊断器在刷新和应用程序之间切换。S206扩展诊断会话:(1)汽车控制器进入应用程序后,则进入扩展模式。汽车控制器开启通讯功能,允许设置DTC。(2)诊断设备通过$27诊断服务进行安全校验认证。若安全校验认证通不过,则不允许进行下一步的操作。通过该步安全校验认证,可以提高汽车控制器应用程序运行的安全性。(3)诊断设备写入汽车的车辆VIN码信息,并清除DTC。S207应用软件标准诊断会话:恢复汽车控制器进入标准会话模式,汽车控制器正常运行应用程序。上述的诊断设备和控制器之间的CAN诊断帧通讯来完成ECU刷新。其中诊断服务规范符合ISO14229,通讯传输协议符合ISO15765-2/4。主要应用于更新控制器内部软件或标定代码,进行软件的升级。所述汽车控制器诊断刷新还包括将Bootloader中的中断向量表在应用程序中重构。现有技术中的中断向量表驻留在Bootloader程序中的PBL中,但实际的中断程序入口是在应用程序中定义的。因此,需要对PBL中的中断向量表进行重定位。中断发生时,从实际的中断向量表跳转到应用的跳转表,再从应用的跳转表中进入到中断服务程序。通过将Bootloader中的中断向量表在应用程序中重构,可以实现应用程序中中断向量表的改写。由于对汽车控制器进行了刷新操作,所以原有的中断向量表的中断向量表会发生变化,而在Bootloader中无法随意更改更改中断向量表。而在实现中断向量表从Bootloader到应用程序中的中断向量表的跳转,可以实现在应用程序中更改中断向量表。例如1号中断和2号中断映射如下:PBL内中断向量表:应用的跳转表:如图2为汽车控制器启动及刷新状态时序图,其中,刷新可靠性验证是在RAM中进行的,ROM中还有数据缓冲区;刷新会话、应用校验、标准诊断会话是在FlashROM中的Bootloader软件程序中实现的;扩展诊断会话和应用软件标准诊断会话是在FlashROM中的应用程序软件中实现的。汽车控制器的刷新会话通过Flash的擦写程序实现;刷新可靠性验证成功后,开启汽车控制器重启服务,则汽车控制器重启;汽车控制器重启后,直接进入到应用校验;应用校验无效,则进入到标准诊断会话模式;应用校验无效,则进入到应用软件标准诊断会话。本应用软件刷新可用于以下阶段或情景:开发阶段:控制器软件程序从开发到冻结,要经历多次修改的过程,刷新可以方便地实现控制器软件程序的及时更新。生产线:在主机厂生产线上,根据车型配置不同,通过刷新设备对控制器刷写不同的应用程序。售后:通过刷新工具完成控制器软件程序的更新升级。实施例3本实施例提供一种汽车控制器的刷新装置,包括:汽车控制器诊断预刷新单元,用于安全校验认证所述汽车控制器信息和/或所述汽车控制器内应用程序版本信息;和汽车控制器诊断刷新单元,用于诊断刷新所述汽车控制器。优选的是,所述汽车控制器诊断刷新单元中还包括所述汽车控制器应用程序检查校验单元,用于对汽车控制器下载的应用程序进行检查校验。可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1