
汽车诊断协议—UDS
文章平均质量分 68
学习汽车诊断协议
庆钊你好呀
98年诞生于阿卡林省,性别男,取向女,考上某不知名985大学,19年毕业后留在广东广州工作。
从事于汽车控制研发,主业MATLAB数框框,副业朋友圈点赞机。
业余爱好电子和编程,Arduino点灯工程师,“helloword”软件爱好者。
实习打杂做过网站前后端开发,ROS。受不了996福报,逃回国企养老。
稍稍学了点tensorflow,训练出了人工智障。
工作上最有成就感是用EXCEL的VBA写了一个爬虫,然后偷了一个礼拜的懒。
干啥啥不行,吃饭第一名。吃饭不积极,脑子有问题。
展开
-
UDS学习笔记(七)——网络地址
目录物理地址与功能地址网络层地址在使用Python学习ISO15765的过程中,发现它的网络地址很有意思。因此在此做一个笔记,记录ISOTP的网络地址的定义。这里使用的是python-can-isotp库,文档为:参考文档在其文档中,我们可以看到它的地址设定有以下:import isotpisotp.Address(isotp.AddressingMode.Normal_11bits, rxid=0x123, txid=0x456)isotp.Address(isotp.A.原创 2020-12-16 15:54:41 · 4273 阅读 · 0 评论 -
UDS学习笔记(六)——程序刷写
在github上找了好几个刷写固件的源码,那么接下来通过源码来分析刷写程序的步骤吧https://github.com/satish77/ip_uds_bl_toolhttps://github.com/GoodnightV/UDS-based-Refresher/blob/master/DiagboxSRC/src/main.cpp...原创 2020-12-15 16:11:06 · 9260 阅读 · 9 评论 -
UDS学习笔记(一)——CAN总线介绍
最近刚入职车企,在烧写汽车整车控制器的时候,接触到了UDS协议。因此想要做一个能够烧写整车控制器的硬件。在查阅网上的资料之后,发现很多的资料都不齐全,同时自己也是一个新手,对CAN总线也接触不是很多。因此看那些资料的时候也十分的困惑。我之前学习过串口,SPI,I2C等总线,因此理解CAN总线起来相对也比较容易。在之后的学习中,因此我会尽量用自己的话去形容那些比较官方的语言。因为自己还没具有能够...原创 2019-09-08 23:59:25 · 10479 阅读 · 4 评论 -
UDS学习笔记(二)——硬件的搭建以及配置开发环境
网上上对CAN总线的介绍很多,对于CAN总线的介绍就到这了。接下来是对硬件的搭建。前文说过了硬件使用的是树莓派与MCP2515模块。MCP2515模块MCP2515是一个CAN总线控制器,其实上面还集成了一个CAN收发器。但是由于MCP2515占主要功能(将SPI总线扩展称CAN总线),因此我们就暂且叫它MCP2515模块吧。MCP2515模块树莓派树莓派是一个基于Linux...原创 2019-09-10 16:31:22 · 6325 阅读 · 8 评论 -
UDS学习笔记(三)——协议的理解
在理解了CAN总线之后,我们就需要学习UDS协议了。百度一下UDS协议,出现很多的两个标准是ISO14229,ISO15765。ISO14229就是我们说的UDS诊断协议了,那还有一个ISO15765又是什么呢?这么多的标准要把脑袋都搞大了。那我们就从实际的数据包进行分析吧,让我们知道这两个协议的对数据包的影响,那我们就很容易的理解这两个标准了。首先我们要知道无论是UDS协议还是ISO1576...原创 2019-09-13 20:38:25 · 13986 阅读 · 3 评论 -
UDS学习笔记(四)——ISO15765
前面的文章说过了ISO15765在帧的封装的时候,在首位加了一个02表示帧的有效数据是两个,但如果仅仅表示有效数据位的话,CAN总线协议上也有表示数据长度代码。实际上ISO15765有很多的功能,在CAN总线的基础上,主要实现单帧传输以及多帧传输。首先上一张图:第一眼看这张图,肯定会很蒙,这是什么呢?表格从上到下,可以了解到有4类帧:单帧(SF),首帧(FF),连续帧(CF),流控帧(FC...原创 2019-09-17 15:17:52 · 20670 阅读 · 4 评论 -
UDS学习笔记(五)——ISO14229
在学习完ISO15765后,我们就可以正式的学习UDS了,也就是ISO14229。我们前面知道了,所有的ISO14229中的服务啊,请求啊,都是在ISO15765基础上进行的。例如10功能代码表示的就是切换对话模式的功能。接收端接收到消息之后,还要进行相应的答复。因此我们本节就分为诊断请求以及诊断响应两个部分进行学习。目录诊断请求诊断响应诊断请求那我们按套路,首先就上一张...原创 2019-09-19 09:41:28 · 4591 阅读 · 0 评论 -
UDS学习笔记(六)——基于UDS的程序烧写流程
在学习了这么多的服务之后,我们就可以正式开始学习程序烧写流程这一环节了。根据ISO14229提供的文档或者网上的很多资料都能知道,程序烧写可以分为三大流程:预编程阶段,编程阶段,后编程阶段。本文也是根据这三大流程进行一步步的分析的。预编程阶段里面的有的步骤不是必须的预编程阶段的功能是使ECU进入到刷写状态。首先我们要进入到扩展模式,使用的是10服务中的03子服务进入到扩展...原创 2019-09-11 16:04:25 · 16777 阅读 · 12 评论 -
CANOE CAPL编程 HEX文件读取
最近在学习CAPL编程,简单的操作基本掌握了。其实CAPL就是C语言的简化版本,少了挺多特性的。刚开始上手有点不太懂,后面看了几个别人的实例后就手痒痒想动手做点什么。刚好在工作上遇到一些问题,想要用CAPL编写一个UDS刷写器。但是网上只能找到S19文件读写的例子。而我们的固件都是HEX文件的。那么我就动手做了一个HEX文件解析器。首先用Excel打开一个hex文件,通过分列很容易就能得到我的HEX文件里面只有00,01,04三种码。那么我们在解析的时候只需要对这三种不同状态的进行不同的解析即可。.原创 2020-06-08 13:26:46 · 9910 阅读 · 25 评论