System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种用于车身控制ECU的安全无感OTA刷新方法技术_技高网

一种用于车身控制ECU的安全无感OTA刷新方法技术

技术编号:41013802 阅读:4 留言:0更新日期:2024-04-18 21:50
本发明专利技术属于BCM控制固件升级技术领域,尤其涉及一种用于车身控制ECU的安全无感OTA刷新方法,包括步骤:S1、将ECU闪存均分为执行区和编程区,微控制单元MCU将程序存储器均分为A面和B面并分别对应执行区和编程区;S2、在车辆正常运行期间,执行区的程序会被执行;S3、通过将ECU闪存分为执行区和编程区两个独立的区域,允许无缝的更新而不会中断BCM控制的正常运行;S4、将原有的应用程序linker中flash的地址映射于A面;S5、切换地址映射调用新写入的启动地址代码,无感刷新完成;与现有技术相比,本发明专利技术实现ECU无感刷写,且在刷写失败时,对BCM运行状态不产生影响。

【技术实现步骤摘要】

本专利技术涉及bcm控制固件升级技术,更具体地说,它涉及一种用于车身控制ecu的安全无感ota刷新方法。


技术介绍

1、ota是一种通过无线网络对汽车固件和软件进行升级的技术。它不仅为车辆升级提供了便捷途径,也为消费者带来了更智能化、便捷的驾驶体验,同时还能节约升级所需的时间和成本。

2、目前的ota技术在嵌入式操作系统中,主要用于对车机系统的升级刷写,而在微控制单元(mcu)的升级刷写方面却鲜少应用。针对mcu的升级刷写只能在车辆静止、处于p档、应用报文停止的状态下,并需要进入bootload模式进行。这意味着在升级期间,用户无法正常使用车辆,影响了用户的驾驶体验。

3、此外,目前的mcu升级刷写方式也无法实现续传升级,升级成功率和效率都较低。对于新能源汽车,控制逻辑的更新可能导致需要对控制器进行软件更新。现有的技术方案是通过进入fbl程序进行更新,即使通过ota刷新,也可能会有一定的失败率,导致应用程序失效。随着整车电控系统的复杂度不断提高,开发周期的紧缩,程序更新升级的频次和数量显著增加,因此在不拆机的状态下对ecu进行刷写的功能变得尤为重要。

4、然而,现有的电控软件刷新方案在刷新程序时,电控单元会进入刷新状态,不响应正常整车状态请求。且如果刷新失败,电控单元可能无法运行,这会导致用户体验差。因此,需要改进现有的电控软件刷新方案。


技术实现思路

1、针对现有技术存在的不足,本专利技术的目的在于提供一种为了实现ecu无感刷写,且在刷写失败时,对bcm运行状态不产生影响的用于汽车bcm控制器的ecu的无感刷新方法。

2、为实现上述目的,本专利技术提供了如下技术方案:

3、一种用于车身控制ecu的安全无感ota刷新方法,包括步骤:

4、s1、将ecu闪存均分为执行区和编程区,微控制单元mcu将程序存储器均分为a面和b面并分别对应执行区和编程区;

5、s2、在车辆正常运行期间,执行区的程序会被执行,并且在这个时间段内不能被写入或擦除,

6、编程区是新软件或更新被写入的地方,当车辆处于编程模式时,该区域是可访问的;

7、s3、通过将ecu 闪存分为执行区和编程区两个独立的区域,它允许无缝的更新而不会中断bcm控制的正常运行;如果有软件更新,新软件会被写入编程区,而旧的软件会继续在执行区运行;新软件完全写入并验证,就可以被换到执行区来替换旧的软件;

8、s4、将原有的应用程序linker中flash的地址映射于a面;将应用程序集成fbl协议栈,flash操作擦除和编写的接口打包为flash driver,在刷写序列中下载;

9、程序接收到刷写序列后,执行编程区编程流程;

10、刷新完成且校验成功后将新程序的启动地址写入固件配置段;

11、固件配置段是ecu闪存的区域,用于存储固件的配置信息,包括固件的版本号、启动地址信息;

12、s5、等待bcm控制低压重新上电后,固件启动完成,切换地址映射调用新写入的启动地址代码,无感刷新完成。

13、进一步的,于步骤s3中,新软件的最新升级版本文件可读取当前已升级刷写的数据偏移位置,并根据数据偏移位置,在最新升级版本文件中截取出数据长度与可刷写数据长度相同的升级数据。

14、进一步的,于步骤s4中,将fbl协议栈指定封装为can协议或者canfd协议之间,并将升级数据封装成升级报文。

15、进一步的,于步骤s4中,mcu接收到刷写指令后,开启编程区编程,步骤为:

16、a1、读取当前程序的启动地址,若该启动地址在a面定义的地址段内,则代表需要编程区域为b面,设置刷写地址偏移为b面起始地址减去a面起始地址;若该启动地址在b面定义的地址段内,则代表需要编程区域为a面,设置刷写地址偏移为0;

17、a2、刷入flash driver代码段并完成校验;

18、a3、设置刷写地址为上位机下传地址+预设好的偏移地址,并完成新程序地址块擦除和下载;

19、a4、刷写完成后将新程序的启动地址写入固件配置段;

20、a5、切换地址映射,互换a面和b面的状态;

21、a6、清除flash driver,并退出刷新流程,重新上锁刷写功能。

22、通过采用上述技术方案,本专利技术的有益效果为:

23、1、本专利技术可通过软件操作flash达到了无感更新软件的功能,将ecu闪存划分为执行区和编程区,从而有助于提高软件更新的效率和可靠性,降低软件故障的风险,提高用户体验。

24、2、无需限制车辆必须要处于静态、p档、应用报文停止的状态下,并需要进入bootload模式下才能进行车辆升级,例如,车辆处于行驶状态下,也可以实现无感刷写升级,并实现目标ecu的mcu的无感升级刷写,且可支持续传升级,即可承接上一次未升级刷写完成的位置继续进行续传刷写,无需完全从头开始进行传输刷写,极大地提高了升级成功率和效率。

本文档来自技高网...

【技术保护点】

1.一种用于车身控制ECU的安全无感OTA刷新方法,其特征在于,包括步骤:

2.根据权利要求1所述的一种用于车身控制ECU的安全无感OTA刷新方法,其特征在于,于步骤S3中,新软件的最新升级版本文件可读取当前已升级刷写的数据偏移位置,并根据数据偏移位置,在最新升级版本文件中截取出数据长度与可刷写数据长度相同的升级数据。

3.根据权利要求2所述的一种用于车身控制ECU的安全无感OTA刷新方法,其特征在于,于步骤S4中,将FBL协议栈指定封装为CAN协议或者CANFD协议之间,并将升级数据封装成升级报文。

4.根据权利要求1或3所述的一种用于车身控制ECU的安全无感OTA刷新方法,其特征在于,于步骤S4中,MCU接收到刷写指令后,开启编程区编程,步骤为:

【技术特征摘要】

1.一种用于车身控制ecu的安全无感ota刷新方法,其特征在于,包括步骤:

2.根据权利要求1所述的一种用于车身控制ecu的安全无感ota刷新方法,其特征在于,于步骤s3中,新软件的最新升级版本文件可读取当前已升级刷写的数据偏移位置,并根据数据偏移位置,在最新升级版本文件中截取出数据长度与可刷写数据长度相同的升级数据。

3...

【专利技术属性】
技术研发人员:沈俊孙晓晔潘建考
申请(专利权)人:浙江智行微电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1