[发明专利]一种车载软件更新方法及系统有效
申请号: | 201810746224.5 | 申请日: | 2018-07-09 |
公开(公告)号: | CN108491224B | 公开(公告)日: | 2022-02-11 |
发明(设计)人: | 李书会;周涛 | 申请(专利权)人: | 深圳市路畅科技股份有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518057 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 车载 软件 更新 方法 系统 | ||
本发明实施例提供了一种车载软件更新方法及系统,基于UART接口实现了车载软件的更新。实施例方法包括:获取待更新的源文件,源文件为HEX格式文件;获取源文件指定的刷写地址;依次读取源文件中的每一行数据,在读取过程中,当读取的当前数据对应的行地址不小于刷写地址时,将当前数据进行数据格式转换生成MCU格式的目标数据,并根据当前数据对应的行地址将目标数据写入到缓存区域形成目标文件;采用通用异步收发传输UART接口将目标文件发送至协议转换器进行数据格式转换,协议转换器用于将UART协议数据转换为CAN总线协议数据;控制协议转换器,将经过数据格式转换之后的数据发送给车机,以使得车机根据目标文件更新对应的车载软件。
技术领域
本发明涉及车载软件技术领域,尤其涉及一种车载软件更新方法及系统。
背景技术
Bootloader驱动是运行于ECU的固定地址的一段启动代码,该段代码主要包含UDS诊断服务和FLASH编程等功能,并且可以通过UDS诊断服务与上位机完成应用程序代码更新的工作。
车载ECU更新Bootloader(启动加载)程序时,一般需要拆卸设备外壳才能使用烧写器重新烧写Bootloader程序。一般情况下,单片机更新应用程序,需要通过烧写器直接烧写来完成,这种方法在使用中很不方便,当汽车已经销售给客户后,一旦后期发现Bootloader有BUG,或者功能方面的更新,需要将汽车召回后,只能将汽车中需要更新Bootloader的ECU拆卸下来,然后重新烧写Bootloader程序。在拆卸设备过程中可能会导致其他不良故障,影响安全性能。
有鉴于此,有必要提出一种新的车载软件更新方法。
发明内容
本发明实施例提供了一种车载软件更新方法及系统,基于UART接口实现了车载软件的更新。
本发明实施例第一方面提供了一种车载软件更新方法,其特征在于,运用于包括:
获取待更新的源文件,所述源文件为HEX格式文件;
获取所述源文件指定的刷写地址;
依次读取所述源文件中的每一行数据,在读取过程中,当读取的当前数据对应的行地址不小于所述刷写地址时,将所述当前数据进行数据格式转换生成MCU格式的目标数据,并根据所述当前数据对应的行地址将所述目标数据写入到缓存区域的对应位置形成目标文件,所述目标文件为MCU格式文件;
采用通用异步收发传输UART接口将所述目标文件发送至协议转换器进行数据格式转换,所述协议转换器用于将UART协议数据转换为CAN总线协议数据;
控制所述协议转换器,将经过数据格式转换之后的数据发送给车机,以使得车机根据所述目标文件更新对应的车载软件。
可选的,作为一种可能的实施方式,本发明实施例中的车载软件更新方法中,所述将所述当前数据进行数据格式转换生成MCU格式的目标数据,并根据所述当前数据对应的行地址将所述目标数据写入到缓存区域的对应位置形成目标文件,包括:
读取当前数据中的数据类型标识;
若所述当前数据中的数据类型标识为十六进位制数据0x04,则读取所述当前数据的高位地址,并读取下一行数据;
若所述当前数据中的数据类型标识为0x00,则计算所述当前数据的行地址;
若所述当前数据的行地址对应的行地址不小于所述刷写地址时,则计算所述当前数据的行地址与上一行数据的行地址之间的差值;
若所述当前数据的行地址与上一行数据的行地址之间的差值不等于上一行数据长度,则在所述当前数据与所述当前数据上一行数据之间的空白数据位中填充0x00;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市路畅科技股份有限公司,未经深圳市路畅科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810746224.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种在线更新方法及系统
- 下一篇:一种更新包生成方法及移动终端