ECU BootLoader and programming implementation specification

specification(规范)

1 Scope(范围)

本标准规定了ECU UDS CAN编程的详细方法和要求。

2 Normative references(引用标准)

ISO 14229-1-2013
道路车辆:统一诊断服务(Unified diagnostic services)
Q/SQR E8-20-2018
车辆UDS诊断CAN标准

3 Diagnostic services and parameters(诊断服务和参数)

在编程会话中应支持以下诊断服务和子功能:

DiagnosticServiceNameSID(Hex)Subfunction(Hex)SecurityAccessLevelRequiredFunctionaddress
DiagnosticSessionControl1001 02 //
ECU Reset1101 / //-
ReadDataByIdentifier22/ / ///
Security Access2703/04 / ///
Routine Control3101 02 03/
Request Download34/ / //
Transfer Data36/ / //
Request Transfer Exit37/ / //
Tester Present3E00 / //

remark:“√”:Support “/”:Not Support “-”:Optional
注意:

  1. 上表中服务和子功能的详细信息见Q/SQR E8-20-2018;
  2. 安全接入算法的详细描述请参考ECU的诊断参数规范。
  3. 启动时应支持带有车辆制造商ECU硬件编号(F191h)、启动软件标识(F180h)、车辆制造商备件编号(F187h)和系统供应商标识(F18Ah)的ReadDataByldentifier (22h)。

4 Routine identifier(例程ID)

应该支持以下例程标识符

HexDescription
DA04Check software program validation 检查软件程序验证
FF00Erase memory 擦除内存
FF01Check programming dependencies 检查编程依赖关系

4.1 Check software program validation 检查软件程序验证 (DA04h)

4.1.1 StartRoutine - request message

在这里插入图片描述

4.1.2 StartRoutine - positive response message

在这里插入图片描述

4.1.3 RequestRoutineResults - request message

在这里插入图片描述

4.1.4 RequestRoutineResults - positive response message

在这里插入图片描述

4.1.5 StopRoutine - request message

在这里插入图片描述

4.1.6 StopRoutine - positive response message

在这里插入图片描述
注意:
1)如果ECU只需要下载应用软件或校准数据文件,则测试人员已实现了完整的编程过程。应用软件或校准数据下载成功后,ECU可将软件状态设置为有效;
2)如果ECU需要下载应用软件文件和校准数据文件,测试人员应执行两次完整的编程过程,分别下载应用软件和校准数据。应用软件和校准数据下载成功后,ECU可将软件状态设置为有效;
3)当ECU供应商生成编程文件时,所有数据块的初始CRC16校验和(CRC_initial)应设置在编程文件的某个地址。在接收到带有Routineldentifier DA04h(检查软件程序验证)的Routine Control请求消息后,ECU应该分两步实现检查过程。

第一步:数据完整性检查
ECU应为所有编程数据(包括CRC_initial CheckResult_initial)计算一个CRC16校验和(名为CRC_receive_1)),并与测试器发送的CRC16校验和(CRC_tester)进行校验。
如果检查过程已完成,且CRC_receive_1与CRC_tester相同,ECU应进入下一步,否则应停止例程,当测试者请求停止例程时,将发送“Software Status = 02h”响应消息。

第二步:数据篡改检查
ECU应计算CRC16校验和检查结果(命名CRC_receive_2CheckResult_calculate)用于所有编程数据(不包括CRC_initial CheckResult_initial),并将其与CRC_initial CheckResult_initial进行检查比较。
当测试员请求停止例程时,如果检查过程已完成,且CRC_receive_2 CheckResult_calculate与CRC_initial CheckResult_initial相同,ECU应发送“Software Status = 01h”响应,否则将发送响应码$72的响应消息。
例如以S3文件为例
在这里插入图片描述
4)如果测试者在检查过程中要求停止例程,ECU应根据实际情况发送检查结果,即如果ECU只需要下载应用软件文件,如果检查过程结束,ECU计算的结果与测试者计算的结果一致,则ECU应发送“software Status = 01h”响应,否则将发送“software Status = 02h”响应消息。如果不能通过停止程序停止检查过程,则应发送NRC=22h的否定响应消息。

4.2 Erase memory 擦除内存(FF00h)

4.3 Check programming dependencies 检查编程依赖关系 (FF01h)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值