诊断
文章平均质量分 59
汽车诊断相关
不吃鱼的羊
关注我,有更多好文章,持续更新噢!
展开
-
CANDela studio的State
以对会话End Of Line Vehicle lanufacturer举例,红色框里面的no表示不允许从programming会话切换到End Of Line Vehicle lanufacturer会话。Dependencies没有安装插件,看不到图形不要紧,点击下面那个图标,就能编辑所有服务,具体到子服务对服务的依赖。State主要用来查看,点击State Groups,可以看到session和security下面有多少个会话和security level,所以删除和新建都不能在这里操作。原创 2024-06-04 22:56:47 · 298 阅读 · 0 评论 -
OBD诊断协议
有以下几个服务,其中0x05已经删除了,因为0x06就能完全包含。原创 2024-06-04 22:55:34 · 2169 阅读 · 2 评论 -
CANDela studio的DTC
想要添加DTC,首先要在Diagnostic Trouble Codes里面的Available DTCs Fault Memory里面进行添加,不过这只是添加在池子里面,并不能使用。这样就能从池子里面复制过来,就能正常使用了,如果你想偷懒的话,可以直接在fault memory里面新建,不需要在池子里面添加。在右边的选项卡里面可以自行配置快照和扩展数据,右键还可以按照位来添加。添加完了之后在fault memory里面copy进来,可以在文件——属性里面选择支持的规范。也可以关联使用DID数据。原创 2024-06-02 16:31:57 · 597 阅读 · 0 评论 -
CANDela studio新建和编辑服务
新建好服务之后我们可以发现,used是no的,说明这个服务没有添加到Diagnostic Class Tenplates里面,require不用太在意,只要保持10和3E服务是yes就行,大多数情况下都是no的。1、Protocol Services里面添加服务,定义服务的格式、请求和正负响应。最后需要注意的是,在诊断类当中,服务为on才是开启的,off是不启用的。自己新建个Diagnostic Class,把刚才新建的服务加进去。这时候我们新建出来的服务的used已经变成yes了。原创 2024-06-01 10:42:19 · 414 阅读 · 0 评论 -
CANDela studio基础使用
编辑好之后点一下这个按钮进行检查文件一致性,检查通过了就行。有error就要修改。保存的时候可以选择编辑版本信息,也可以不把它加进去。你在保存的时候注意版本,高版本可以保存成低版本,但是低版本不能保存成高版本。原创 2024-06-01 10:41:22 · 660 阅读 · 0 评论 -
CANDela studio之CDDT与CDD
CDDT根据诊断协议提供诊断格式,主要就是分类服务和定义服务,一般是OEM释放,然后由供应商细化成自己零部件的CDD文件。在这里举个例子,OEM在CDDT定义了个22服务,供应商需要在CDD上添加具体的子服务和通讯数据。CDDT有更高的权限,作为模板规范CDD文件。CDD可修改的内容比CDDT少。原创 2024-05-29 00:45:33 · 473 阅读 · 0 评论 -
CANDela studio使用小tips
打开软件的时候注意先选择英文,因为双击CDD/CDDT文件默认打开的是德文,所以最正确的打开方式是先打开CANDela studio,再导入CDD,不仅可以避免用德文打开,还能避免vector软件的bug。自己用的软件是什么版本的,可以在help下面的about里面看,我这个就是最高权限的。service pack可以在官网下载,其实就是一些补丁,能够解决一些软件问题,vector会更新。admin有最高权限,能打开CDDT和CDD,其他的都不行,CDDT也只能由admin打开。不同的版本有不同的权限。原创 2024-05-29 00:36:20 · 432 阅读 · 0 评论 -
诊断0x27服务解密文件DLL制作与使用
DLL文件在诊断里面可以用在0x27秘钥服务里面,对解密有帮助,在下图位置加载。原创 2023-11-23 10:56:21 · 3565 阅读 · 10 评论 -
【ISO14229_UDS诊断服务总列表】
原文链接:https://blog.csdn.net/weixin_43722921/article/details/130170902。版权声明:本文为CSDN博主「三星小卤蛋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。转载 2023-09-29 04:00:07 · 151 阅读 · 0 评论 -
0x23根据地址读取内存服务
诊断仪从ECU通过起始地址和内存大小空间来读取指定内存的数据,高地址范围未使用到的字节用0x00去填充。原创 2023-09-29 03:52:37 · 189 阅读 · 0 评论 -
0x2C动态定义数据标识符服务
其实就是临时在指定地址创建个信息DID,里面可以存写临时数据,到时候可以给自己读写,但是这东西一重启或者过段时间就没了。要用0x22服务去读取,0x2A来写,不能用0x2E来写,协议认为0x2E不能指定地址来写。这个服务将会有内存溢出的风险,就需要程序去做限制和把控了,规定好那块区域可以用来作为临时存储的,一旦超过剩余可使用空间就不能够动态定义数据了。动态定义出来的数据标识符和空间,也可以动态删除。有两种参数选配:1、源数据标识符、位置、大小。原创 2023-09-29 03:48:42 · 254 阅读 · 0 评论 -
0x86事件响应服务
请求服务端开始或停止传输具体事件的响应。原创 2023-09-28 19:22:42 · 225 阅读 · 0 评论 -
0x84加密数据传输服务
应用程序使用诊断服务(diagnostic Services)或者外部服务和应用层服务原语(Application Layer Service Primitives)在客户端和服务端进行数据交换,安全子层使用0x84服务(加密数据传输服务)来接/收加密数据,安全连接必须是点到点的通讯,因此只有是物理寻址被允许,这就意味着只有一个ECU牵涉其中。为了在安全模式下实现一些诊断服务,在服务端和客户端应用程序之间添加了Security sub-layer。安全模式下,只有被确认的服务才允许被使用。原创 2023-09-28 19:06:09 · 108 阅读 · 0 评论 -
0x85控制诊断故障代码设置服务
该服务主要针对的是DTC的产生,禁止和允许DTC的产生。你看语序可能会感到疑惑,为什么会把禁止放在允许的前面呢?因为这个服务很多时候是为了禁止DTC的产生。譬如你把车拉到4S店的时候,把里面的ECU取出来,用诊断仪诊断。这个时候由于ECU跟一些外设的链接已经断开了,里面会有很多检查外设的DTC,又会有新的DTC产生,影响甚至覆盖原来你想关注的信息,这时候0x85就派上用场了。它可以帮你先禁止DTC的产生,就不会产生新的DTC。原创 2023-09-28 11:18:31 · 160 阅读 · 0 评论 -
0x83访问时序参数服务
每个会话有自己的时序参数集合,可以在0x83服务里面进行读取和修改。有四个子服务:1、读取扩展时序参数集合。2、设置时序参数至默认值。3、读取当前激活的时序参数值。4、设置时序参数至给定值。原创 2023-09-28 10:46:28 · 187 阅读 · 0 评论 -
0x3E服务和抑制正响应
该服务又称为心跳服务,诊断仪通过这个服务告诉ECU,我跟你还连着,所以让你保持之前的状态,这个状态可能是会话状态,解密等级。换句话说就是:上路啊!我没有挂机,只是在打野,你在前面先顶一会,我很快就到,你可别摆烂啊!例如是要保持会话状态,0x10控制会话服务有个退出高级会话的定时器,时间到了就会回到低级会话,可能是默认会话。每次收到0x3E服务之后,这个定时器就会重新计时,不会因为时间到了回到低级会话,诊断仪又要切换到高级会话才能做高级会话的事情。原创 2023-09-28 10:30:28 · 329 阅读 · 0 评论 -
网络层TP协议
TP协议就是多包协议,当发送数据有大于8的时候,协议里面就会加入TP协议,每帧牺牲1-2个字节的位置来加入TP协议,其本质就是通过多帧分发来把数据传输过去。首先就是四种帧:单帧、首帧、连续帧、流控帧。他这里的表示跟代码思维会有些不同,代码里面8个字节一般表示为第0-7字节,他这里是第1-8字节。:这是发送方发送的。数据长度小于等于7的时候使用。第1字节高4位为0代表该帧为单帧,低4字节就是单帧的长度,这个长度是不包括TP协议占用的第1字节的。:这是发送方发送的。原创 2023-09-18 11:25:26 · 1345 阅读 · 0 评论 -
0x27服务安全访问
1、27服务概述27服务通过采用种子与密钥的方式为ECU提供了一种保护机制;通过sub-function划分出不同的安全等级,诊断仪发送请求进入某个安全等级时,通过种子与密钥的方式进行安全访问,当通过安全访问时,则切换到对应的权限状态。便于进行权限的管理划分。其相关的操作流程如下图:如上图,假设诊断仪是请求进入01安全等级;即Tester发送27 01请求种子,ECU接收请求后生成随机种子发送给到Tester;并且将刚刚生成的种子按照安全算法计算出Key。原创 2023-09-12 09:48:21 · 321 阅读 · 0 评论 -
34/36/37服务(ECU升级数据的传输)
关于ECU升级数据的传输,是通过34(请求下载)、36(传输数据)、37(请求退出传输)这3个服务来完成的。关于升级文件中一个块的传输流程如下(假设正常升级,即没有否定响应的情况):诊断仪通过34服务传输该块的起始地址、该块的数据长度信息;进行下载请求;ECU收到34服务的下载请求后,通过74肯定响应报文通知诊断仪,其(诊断仪)接下来的每个数据传输的报文中(36服务)应包含多少数据字节。诊断仪则根据该返回的参数对自身的发送能力进行调整;转载 2023-09-12 09:44:53 · 1070 阅读 · 0 评论 -
整车诊断DID服务读取0x22/写入0x2E/控制输入输出0x2F
DID英文全称Data Identification,就是数据识别号的意思,一个ID代表一个厂商设定的数据,一般是两个字节长度。DID分为2类,一种是信息DID,能够读或者写的。另一种是运行DID,可以操作开始、暂停、查询状态。每个DID的信息的长度和有效范围、代表意义都是厂商规定的。信息DID对应的信息是软件版本号、硬件版本号、SN码等等,一般由0x22服务读取,0x2E服务写入。运行DID对应的是拍照指令、设置音量等等,一般由0x31服务来运行。原创 2023-09-07 10:18:19 · 1422 阅读 · 0 评论 -
整车诊断查询DTC服务0x19
0x19服务有一定的门槛,需要先了解DTC,可以先看看我的另一篇文章。原创 2023-09-04 14:27:44 · 488 阅读 · 0 评论 -
全面了解DTC
前面0x14服务提到的DTC,只是浅浅的带过去,但是讲到了0x19服务,就要深入了解,全面了解DTC变成了过不去的一道坎。由于DTC的内容比较多,特别开了一小节来讲这个DTC。DTC就是诊断故障码,英文全称Diagnostic Trouble Code,用于指示车辆系统中出现的故障。每个故障码由两大部分组成,ID和列表。ID都由一个字母和一个或多个数字组成,字母用于表示故障码的类型,每一类故障码组成一组DTC组。原创 2023-09-01 17:03:14 · 1770 阅读 · 0 评论 -
整车诊断清除DTC服务0x14
DTC就是诊断故障码,英文名Diagnostic Trouble Code,用于指示车辆系统中出现的故障。每一类故障码组成一组DTC组,0x14服务是按照DTC组清除被测对象记录的故障码(DTC)内容,只包括当前故障,不清除历史故障和快照。一清除就整个组里面的全部故障码都清除,不能清除单独某一个故障码。需要注意的是,清除故障码只是将当前故障清除,并不代表故障本身已经被修复。如果故障仍然存在,它可能会再次被检测到,并生成新的当前故障。因此,在清除故障码之前,应该先确保故障已经被解决。原创 2023-08-29 14:57:43 · 886 阅读 · 0 评论 -
整车诊断会话控制服务0x10
0x10服务是所有诊断服务里面最简单的,叫做会话控制服务。其实就是你诊断仪以一个什么样的身份跟被测对象对话,你的身份对了,那就允许你问对应的问题,你的身份有问题,那对不起,我拒绝回答你的这个问题。用滴滴司机的话来说,就是请搞清楚你的定位。会话控制服务没有子服务,一般标准里面就三个子功能,也就是三个会话,默认会话0x01、编程会话0x02、扩展会话0x03。默认会话0x01:一上电就是这个会话,哪怕上电之前是别的会话都好,只要一上电就肯定是它,这是最低级的,能问的问题也是最少的。原创 2023-08-27 20:06:49 · 235 阅读 · 0 评论 -
整车诊断重启服务0x11
这个功能就是想让被测对象重启,有三种重启方式:硬重启0x01:相当于长按电脑电源开关来重启,会关闭所有输入和输出。钥匙开关重启0x02:相当于你在汽车上拧钥匙开点火熄火。软重启0x03:只是重启操作系统。钥匙开关重启是硬线检测,一般就是IO口高低电平。软重启和硬重启一般供应商会给对应的接口,因为里面需要干的事情蛮多的,一不留神就会漏掉几个,有什么影响还不知道。上面3种重启方法只是推荐,可以不用某一个或者另外增加,厂商可以自己设置自己的重启方式。原创 2023-08-28 09:22:29 · 162 阅读 · 0 评论