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

  • 🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用
  • 🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】
  • 🍅 玩转CANoe,博客目录大全,点击跳转👉

请添加图片描述

目录

  • 📙 流程概述
  • 📙 UDS指令详解
    • 🍅 编程前(PreProgramming)
    • 步骤1:进入拓展会话(10 83)
    • 步骤2:会话保持(3E 80)
    • 步骤3:编程前条件预检查(31 01 02 03)(可选)
    • 步骤4:禁用 DTC功能(85 82 FF FF FF)
    • 步骤5:停止通讯报文(28 81 03)
    • 🍅 编程过程(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)(可选)
    • 步骤9:刷写Driver文件
    • 步骤10:完整性检查(31 01 02 02)
    • 步骤11:擦除APP文件的内存(31 01 FF 00 44 01 00 00 00 00 3C 00 00 )
    • 步骤12:刷写APP文件
    • 步骤13:APP文件完整性检查(31 01 02 02)
    • 步骤14:最后全部文件下载完毕后,进行编程依赖性检查(31 01 FF 01)
    • 步骤15:硬件重启(11 01)
    • 🍅 编程后(PostProgramming)
    • 步骤16:进入拓展会话(10 03)
    • 步骤17:使能通讯(28 80 03)
    • 步骤17:解除DTC控制(85 81 FF FF FF)
  • 🌎总结

请添加图片描述


📙 流程概述

  • 网上找了张图,基本描述了刷写的流程
    在这里插入图片描述
  • 我也截图了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文件

  • 刷写引导文件
    UDS 14229 -1 刷写34,36,37服务简介

  • 和刷写APP文件的不同之处,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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/349.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

史上最全最详细的Java架构师成长路径图,程序员必备

从新手码农到高级架构师&#xff0c;要经过几步&#xff1f;要多努力&#xff0c;才能成为为人倚重的技术专家&#xff1f;本文将为你带来一张程序员发展路径图&#xff0c;但你需要知道的是&#xff0c;天下没有普适的道理&#xff0c;具体问题还需具体分析&#xff0c;实践才…

Verilog实现组合逻辑电路

在verilog 中可以实现的数字电路主要分为两类----组合逻辑电路和时序逻辑电路。组合逻辑电路比较简单&#xff0c;仅由基本逻辑门组成---如与门、或门和非门等。当电路的输入发生变化时&#xff0c;输出几乎&#xff08;信号在电路中传递时会有一小段延迟&#xff09;立即就发生…

马上要面试了,还有八股文没理解?让ChatGPT来给你讲讲吧——如何更好使用ChatGPT?

最近这段时间 ChatGPT 掀起了一阵 AI 热潮&#xff0c;目前来看网上大部分内容都是在调戏 AI&#xff0c;很少有人写如何用 ChatGPT 做正事儿。 作为一个大部分知识都是从搜索引擎和 GitHub 学来的程序员&#xff0c;第一次和 ChatGPT 促膝长谈后&#xff0c;基本认定了一个事…

AI又进化了,突破性革命来了

大家好&#xff0c;我是 Jack。 2023 年&#xff0c;AI 真的杀疯了。短短不到一年的时间&#xff0c;当我们还在感慨 AI 一键生成的二次元画作精美万分的时候&#xff0c;它已经进化到了写实美照也能手到擒来的地步。 更多的效果&#xff0c;可以看刚刚发布的视频&#xff0c;…

爽,我终于掌握了selenium图片滑块验证码

因为种种原因没能实现愿景的目标&#xff0c;在这里记录一下中间结果&#xff0c;也算是一个收场吧。这篇文章主要是用selenium解决滑块验证码的个别案列。 思路&#xff1a; 用selenium打开浏览器指定网站 将残缺块图片和背景图片下载到本地 对比两张图片的相似地方&#x…

十大经典排序算法(上)

目录 1.1冒泡排序 1. 算法步骤 3.什么时候最快 4. 什么时候最慢 5.代码实现 1.2选择排序 1. 算法步骤 2. 动图演示 3.代码实现 1.3 插入排序 1. 算法步骤 2. 动图演示 3. 算法实现 1.4 希尔排序 1. 算法步骤 2. 动图演示 3.代码实现 1.5 归并排序 1. 算法步骤 2…

2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛) A — E

2023年中国高校计算机大赛-团队程序设计天梯赛&#xff08;GPLT&#xff09;上海理工大学校内选拔赛&#xff08;同步赛) 文章目录A -- A Xor B Problem题目分析codeB -- 吃苹果题目分析codeC -- n皇后问题题目分析codeD -- 分苹果题目分析codeE -- 完型填空题目分析codeA – A…

图像缩放对相机内外参矩阵的影响

参考资料&#xff1a;https://zhuanlan.zhihu.com/p/87185139 一、3D空间中点到图像的投影 设3D空间中的点(x,y,z)(x,y,z)(x,y,z)投影到图像上的像素坐标&#xff08;连续值&#xff0c;以左上角像素的左上角为原点的坐标系&#xff0c;注意与整数值的图像像素索引相区别&…

HTTPS的加密原理(工作机制)

现在很多网站使用的都是HTTPS协议,比如CSDN他们为什么要使用HTTPS协议而不是继续使用HTTP协议呢?以及HTTPS都做了些什么?HTTP协议与HTTPS有哪些区别? 下面我来 讲解这些问题?(篇幅可能有些长,请求耐心观看,我以0基础的角度去讲解这些东西, 如果你有一定的基础前面的跳过就好…

docker安装elasticsearch与head教程完整版—.NET Core Web Api与elasticsearch打造全站全文搜索引擎

默认已经有docker环境 下载与安装 elasticsearch &#xff0c;从hub.docker里面可以看到最新版本的镜像&#xff0c;选择你想要的版本 本教程是以 7.17.7 为案例&#xff0c;为啥不适用最新的&#xff0c;首先个人一般需用最新的版本&#xff0c;如果有亢很难填&#xff0c;其次…

三体到底是啥?用Python跑一遍就明白了

文章目录拉格朗日方程推导方程组微分方程算法化求解画图动图绘制温馨提示&#xff0c;只想看图的画直接跳到最后一节拉格朗日方程 此前所做的一切三体和太阳系的动画&#xff0c;都是基于牛顿力学的&#xff0c;而且直接对微分进行差分化&#xff0c;从而精度非常感人&#xf…

如何用Python求解微分方程组

文章目录odeint简介示例odeint简介 scipy文档中将odeint函数和ode, comples_ode这两个类称为旧API&#xff0c;是scipy早期使用的微分方程求解器&#xff0c;但由于是Fortran实现的&#xff0c;尽管使用起来并不方便&#xff0c;但速度没得说&#xff0c;所以有的时候还挺推荐…

Vite4 + Vue3 + vue-router4 动态路由

动态路由&#xff0c;基本上每一个项目都能接触到这个东西&#xff0c;通俗一点就是我们的菜单是根据后端接口返回的数据进行动态生成的。表面上是对菜单的一个展现处理&#xff0c;其实内部就是对router的一个数据处理。这样就可以根据角色权限或者一些业务上的需求&#xff0…

机器学习入门——线性回归

线性回归什么是线性回归&#xff1f;回归分析&#xff1a;线性回归&#xff1a;回归问题求解单因子线性回归简单实例评估模型表现可视化模型展示多因子线性回归什么是线性回归&#xff1f; 回归分析&#xff1a; 根据数据&#xff0c;确定两种或两种以上变量间相互依赖的定量…

自学大数据第六天~HDFS命令(一)

HDFS常用命令 查看hadoop版本 version hadoop version注意,没有 ‘-’ [hadoopmaster ~]$ hadoop version Hadoop 3.3.4 Source code repository https://github.com/apache/hadoop.git -r a585a73c3e02ac62350c136643a5e7f6095a3dbb Compiled by stevel on 2022-07-29T12:3…

【电赛MSP430系列】GPIO、LED、按键、时钟、中断、串口、定时器、PWM、ADC

文章目录MSP430一、GPIO二、点亮LED三、按键控制LED四、更改主时钟五、串口通信六、串口中断七、外部中断八、定时器九、定时器中断十、PWM十一、ADCMSP430 MSP430 是德州仪器&#xff08;TI&#xff09;一款性能卓越的超低功耗 16 位单片机&#xff0c;自问世以来&#xff0c…

程序员的逆向思维

前要&#xff1a; 为什么你读不懂面试官提问的真实意图&#xff0c;导致很难把问题回答到面试官心坎上? 为什么在面试结束时&#xff0c;你只知道问薪资待遇&#xff0c;不知道如何高质量反问? 作为一名程序员&#xff0c;思维和技能是我们职场生涯中最重要的两个方面。有时候…

【微信小程序】-- 网络数据请求(十九)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

到底什么是跨域,如何解决跨域(常见的几种跨域解决方案)?

文章目录1、什么是跨域2、解决跨域的几种方案2.1、JSONP 方式解决跨域2.2、CORS 方式解决跨域&#xff08;常见&#xff0c;通常仅需服务端修改即可&#xff09;2.3、Nginx 反向代理解决跨域&#xff08;推荐使用&#xff0c;配置简单&#xff09;2.4、WebSocket 解决跨域2.5、…

软测面试了一个00后,绝对能称为是内卷届的天花板

前言 公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资也不低&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。令我印象最深的是一个00后测试员&#xf…