CANoe中使用CAPL刷写流程详解(Trace图解)(CAN总线)

本文详细介绍了使用CANoe在车载诊断领域进行ECU编程的过程,包括进入拓展会话、编程前的准备、刷写流程、编程后的恢复等步骤,涉及UDS指令如3101、1002、27xx等,并强调了完整性检查和硬件重启的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请添加图片描述

请添加图片描述


📙 流程概述

  • 网上找了张图,基本描述了刷写的流程
    在这里插入图片描述
  • 我也截图了Vflash 刷写的一个过程图,辅佐理解

在这里插入图片描述


📙 UDS指令详解

🍅 编程前(PreProgramming)

步骤1:进入拓展会话(10 83)

  • 这没什么好说的,因为下面的服务不支持默认会话
  • 功能寻址,没响应
    在这里插入图片描述

步骤2:会话保持(3E 80)

  • 开启ECU的会话保持,因为我们知道有个S3 Server 的时间一般是5000ms ,如果没有开启会话保持,5000m后ECU就会切回默认会话。而我们刷写要保持在Boot下的。
  • 功能寻址,没响应

在这里插入图片描述


步骤3:编程前条件预检查(31 01 02 03)(可选)

  • 编程前条件预检查,检查待测ECU的自身条件是否满足刷写,一般情况下会检查电压是否正常车速信号是否接收到且<3km/s,不同的Tier1/OEM可能有不同的检查条件。
  • 物理寻址在这里插入图片描述

步骤4:禁用 DTC功能(85 82 FF FF FF)

  • 禁止ECU产生各种DTC.
  • 功能寻址,没响应
    在这里插入图片描述

步骤5:停止通讯报文(28 81 03)

  • 停止通讯报文.,降低总线负载。
  • 01 表示 enableRxAndDisableTx
  • 03表示停掉APP和网络报文都停掉
  • 功能寻址,没响应

在这里插入图片描述

🍅 编程过程(MainProgramming)


步骤6:进入Boot(10 02)

  • 物理寻址

在这里插入图片描述


步骤7:Boot下的安全解锁(27 xx)

  • 物理寻址

在这里插入图片描述


步骤8:写入指纹信息(2E F1 5A 01 01 01 01 02 03 04 05 06 07 08 09)(可选)

  • 写入指纹可能不太好理解,就是在4S店刷件的时候,写入年月日信息和4S店的编码
  • 物理寻址
    在这里插入图片描述

步骤9:刷写Driver文件


步骤10:完整性检查(31 01 02 02)

  • 文件刷写完,要进行完整性校验
  • 前些年ECU的校验方式多是CRC的,近几年看到的都是RSA文件验签的。
  • 如果时CRC,可能发送的指令是 31 01 02 02 + 3个字节的校验码
  • 如果是RSA,则 31 01 02 02 + 128/256字节的校验码
    在这里插入图片描述

步骤11:擦除APP文件的内存(31 01 FF 00 44 01 00 00 00 00 3C 00 00 )

  • 再刷写非Flash文件时,需要先执行擦除内存的操作
  • 注意,一般情况,ECU要擦很久,对这个指令的响应就比较久。10秒到300多秒我都遇到过,这取决于擦除地址的大小。
    在这里插入图片描述

步骤12:刷写APP文件

  • app的地址有可能是不连续的

  • 地址不连续的情况

在这里插入图片描述

  • 地址连续的情况,就一个Block块

在这里插入图片描述

  • 如果地址不连续那么刷写的过程的逻辑就是这样的,涉及到多次34地址和长度的请求了。

for(i=0;i<BlockNumber;i++)
{
	34 00 44 52 80 90 00 00 00 16 00
	36 01 xx xx
	36 02 xx xx
	....
	37
}

步骤13:APP文件完整性检查(31 01 02 02)

  • 同 步骤10

步骤14:最后全部文件下载完毕后,进行编程依赖性检查(31 01 FF 01)

  • 最后全部文件下载完毕后,进行编程依赖性检查(31 01 FF 01)

在这里插入图片描述

步骤15:硬件重启(11 01)

  • 全部检查都通过后,硬件重启,进入APP模式下
    在这里插入图片描述

🍅 编程后(PostProgramming)

步骤16:进入拓展会话(10 03)

步骤17:使能通讯(28 80 03)

步骤17:解除DTC控制(85 81 FF FF FF)

在这里插入图片描述

🌎总结

23

  • 虽然Flash刷写流程是个业内常规的流程,但是只给一张流程图,对于刚入门的同学,理解还是有障碍的,希望我加了一些辅助的资料能够帮助大家理解。
    7
  • 🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!

  • 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。
    18
CAPL是一种通用的程序设计语言,通常用于开发和测试汽车电子控制单元(ECU)。下面是一般的CAPL刷写流程: 1. 准备工作:在开始CAPL刷写之前,需要准备好以下设备和软件: - 一台计算机 - 能够与ECU通信的硬件接口 - 能够读取和编写ECU的软件 - 能够编写和测试CAPL脚本的软件 2. 连接硬件:将硬件接口连接到计算机和ECU上。确保所有连接都正确并稳定。 3. 打开读写软件:打开读写软件并连接到ECU。确保能够正确读取ECU的当前程序版本和参数。 4. 编写CAPL脚本:根据需要编写CAPL脚本。CAPL脚本可以用于测试ECU的各种功能,并可以编写用于刷写ECU的程序。 5. 测试CAPL脚本:在CAPL脚本中添加适当的测试代码,并在读写软件中测试CAPL脚本。确保CAPL脚本可以正确地与ECU通信并实现所需的功能。 6. 编写刷写程序使用CAPL脚本编写刷写程序刷写程序应该实现以下功能: - 读取当前的ECU程序版本 - 下载新的ECU程序版本到ECU - 验证新的ECU程序版本 7. 测试刷写程序:在读写软件中测试刷写程序,并确保可以正确地下载和验证新的ECU程序版本。 8. 刷写ECU:最后,使用刷写程序刷写ECU。刷写过程可能需要几分钟或更长时间,具体取决于ECU的大小和速度。在刷写过程中,应该保持稳定的连接并避免中断。 以上是一般的CAPL刷写流程,具体的流程可能会因为不同的ECU和刷写软件而有所不同。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚂蚁小兵

慢慢长夜磨一章好文章,费烟!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值