(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210405378.4
(22)申请日 2022.04.18
(71)申请人 重庆长安汽车股份有限公司
地址 400020 重庆市江北区建新 东路260号
(72)发明人 胡运 杨涛 王忠才
(74)专利代理 机构 重庆博凯知识产权代理有限
公司 50212
专利代理师 陆瑞
(51)Int.Cl.
G06F 21/64(2013.01)
G06F 21/52(2013.01)
G06F 9/445(2018.01)
(54)发明名称
一种基于UDS-FBL的AP P完整性检查方法
(57)摘要
本发明公开了一种基于UDS ‑FBL的APP完整
性检查方法, 通过UDS统一诊断服务发送与刷写
相关的请求报文; 生成并下载bootloa der程序和
应用程序对应的二进制数据, 将其存储至控制器
的ROM空间, 进入Bootloader编程模式, 接收通过
诊断服务下载FALSHDRIVER , 然后通过
FALSHDRIVER擦除应用程序, Bootloader程序将
应用程序有效标志位写为无效, 再把ROM空间中
对应应用程序的区域擦除; 再将新的应用程序二
进制数据写入应用程序对应的ROM空间中;
Bootloader程序进行新的应用程序完整 性校验,
校验成功, 则将新的应用程序有效性设置为有
效, 控制器 重启并进 入新的应用程序。
权利要求书1页 说明书3页 附图3页
CN 114741737 A
2022.07.12
CN 114741737 A
1.一种基于UD S‑FBL的APP完整性检查方法, 其特 征在于: 包括:
通过UDS统一诊断服 务发送与刷写相关的请求报文;
生成并下载bootloader程序对应的二进制数据, 将bootloader程序对应的二进制数据
存储至控制器的ROM空间, 该ROM空间为 不可编程区域;
生成并下载应用程序对应的二进制数据, 将应用程序对应的二进制数据储存至控制器
的ROM空间, 该ROM空间是在进行程序刷写时擦除和写入的可编程区域;
所述UDS统一诊断服务支持默认、 扩展和编程模式; Bootloader程序包含UDS诊断协议
层、 数据传输层以及CA N驱动层, 其能够实现完整的诊断协 议栈, 该诊断协 议栈支持默认、 扩
展和编程模式; 应用程序包括诊断协 议栈, 支持默认和扩展模式; 应用程序设置外部编程请
求标志位, 用于执 行切换编程诊断模式的诊断请求命令;
当在应用程序中接收到切换编 程诊断模式的诊断请求命令时, 设置外部编 程请求标志
位, 重启控制器, Bootloader程序对外部编程请求标志位判断, 进而进入Bootloader编程模
式;
进入Bootloader编程模式后, 接收通过诊断服务下载FALSHDRIVER, 然后通过
FALSHDRIVER擦除应用程序, Bootloader程序 将应用程序有效标志位写为无效, 再把ROM空
间中对应 应用程序的区域擦除;
应用程序对应的二进制数据设置为A 1, 通过CRC计算可以得出C1, 将C1按照A1的存储格
式bin或S19或hex方式进行拼接, 将C1拼接到A1后面, 形成新的应用程序二进制数据A2, 再
将新的应用程序二进制数据写入应用程序对应的ROM空间中;
Bootloader程序进行新的应用程序完整性校验, 校验成功, 则将新的应用程序有效性
设置为有效, 控制器重启并进入新的应用程序。
2.根据权利要求1所述的一种基于UDS ‑FBL的APP完整性检查方法, 其特征在于: 控制器
的ROM空间分为Bootloader程序区域和应用程序区域, Bootloader程序区域存储的是
bootloader源码经过编译后的二进制可执行代码, 控制器上电或复位时, 完成自检后软件
会跳转至其区域的入口; 应用程序区域存储的是应用程序源码经过编译后的二进制可执行
代码, bootloader程序可以对此区域的ROM进行擦除与写入, bootloader程序执行后, 会跳
转至此区域入口。
3.根据权利要求1所述的一种基于UDS ‑FBL的APP完整性检查方法, 其特征在于:
bootloader程序在收到新的应用程序二进制数据A2后, 将A1和C1分别存储入ROM空间和RAM
空间。
4.根据权利要求1所述的一种基于UDS ‑FBL的APP完整性检查方法, 其特征在于:
bootloader程序在收到新的应用程序二进制数据A2后, 判断A2是否为最后4个byte, 如果
是, 则将A2存入RAM空间, 否则将A2存入ROM空间, 对ROM空间内的A2进行CRC计算, 得出新的
CRC值C2, 将C1和C2进行比较, 相同则将新的应用程序有效标志位写为有效。权 利 要 求 书 1/1 页
2
CN 114741737 A
2一种基于UDS ‑FBL的APP完整性检查方 法
技术领域
[0001]本发明涉及数据处理技术领域, 具体涉及一种基于UDS ‑FBL的APP完整性检查方
法。
背景技术
[0002]随着汽车电子技术跟新迭代, 越来越多的汽车电子器件需要基于原有硬件上进行
升级软件; 同时, 由于嵌入式软件的开发无法避免设计测试阶段未能测出的bug。 应用软件
的升级以及问题修复都要求电子器件本身具 备应用软件的能力。
[0003]常用的汽车电子器件软件升级方式是利用统一诊断服务协议IOS ‑14229中的诊断
命令, 通过车载网络连接的诊断仪/刷新仪, 发送一系列的诊断请求, 将新的软件由外部设
备传输至控制器中, 并指导控制器进行软件升级。 但现行方案中, 从应用程序 APP的生成, 到
升级完成到控制单元, 需要经过多次传输保存, 无法保证APP是否被篡改、 丢失部分数据等
情况发生。
发明内容
[0004]针对上述现有技术的不足, 本发明所要解决的技术问题是: 如何提供一种应用程
序刷新时, 降低AP P被篡改或数据丢失风险的基于UD S‑FBL的APP完整性检查方法。
[0005]为了解决上述 技术问题, 本发明采用了如下的技 术方案:
一种基于UD S‑FBL的APP完整性检查方法, 其特 征在于: 包括:
通过UDS统一诊断服 务发送与刷写相关的请求报文;
生成并下载bootloader程序对应的二进制数据, 将bootloader程序对应的二进制
数据存储至控制器的ROM空间, 该ROM空间为 不可编程区域;
生成并下载应用程序对应的二进制数据, 将应用程序对应的二进制数据储存至控
制器的ROM空间, 该ROM空间是在进行程序刷写时擦除和写入的可编程区域;
所述UDS统一诊断服务支持默认、 扩展和编程模式; Bootloader程序包含UDS诊断
协议层、 数据传输层以及CAN驱动层, 其能够实现完整的诊断协议栈, 该诊断协议栈支持默
认、 扩展和编程模式; 应用程序包括诊断协议栈, 支持默认和扩展模式; 应用程序设置外部
编程请求标志位, 用于执 行切换编程诊断模式的诊断请求命令;
当在应用程序中接收到切换编程诊断模式的诊断请求命令时, 设置外部编程请求
标志位, 重启控制器, Bootloader程序对外部编程请求标志位判断, 进而进入Bootloader编
程模式;
进入Bootloader编程模式后, 接收通过诊断服务下载FALSHDRIVER, 然后通过
FALSHDRIVER擦除应用程序, Bootloader程序 将应用程序有效标志位写为无效, 再把ROM空
间中对应 应用程序的区域擦除;
应用程序 对应的二进制数据设置为A1, 通过C RC计算可以得出C1, 将C 1按照A1的存
储格式bin或S19或hex方式进行拼接, 将C1拼接到A1后面, 形成新的应用程序二进制数据说 明 书 1/3 页
3
CN 114741737 A
3
专利 一种基于UDS-FBL的APP完整性检查方法
文档预览
中文文档
8 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共8页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-17 23:59:32上传分享