uds诊断协议
做一道光
互联网软件开发,已转汽车嵌入式软件开发
展开
-
UDS的0x19服务
诊断响应报文中的第3个字节,DTC状态可用掩码,表示ECU支持那些种状态的故障码。第4个字节DTC及状态*N,表示响应出所有符合诊断请求条件的DTC.DTC FID(DTC的格式标识符),如下所示。DTC Count存储故障码格式的标识符。DTC FID所支持的故障码状态的情况。19 01 用于读取故障码的数量。19 02 用于读取故障码列表。DTC SM故障码的状态掩码。DTC SM:DTC状态掩码。0x19读取故障码信息。原创 2024-04-24 10:08:27 · 140 阅读 · 0 评论 -
UDS故障码的状态
在使用UDS19 02 服务读取故障码信息时,读取到的故障码信息占四个字节,其中 04 20就代表 P0 04 20(动力系统故障),第三个字节00就代表发生故障的原因。这个故障码状态字节有8个bit,每一个bit上面的0或者1来指示故障码,当前是否具有某种状态,0就代表不具有,1就代表具有。Bit7 :故障是否上报仪表,该故障如果和仪表上的故障灯有关联,就需要上报仪表。在ECU的一个操作周期之内,从ECU的唤醒到休眠。Bit3:故障码在一个或多个检测周期都出现,表示已确认的故障,bit位置为1;原创 2024-04-24 10:06:44 · 240 阅读 · 0 评论 -
UDS的3字节故障码
在UDS的规范下面,使用19服务去读取故障码,会发现读到市面上各种车企的各种ECU中的所有的故障码读出来都是3个字节。这与前面的五位故障码占2个字节不符,其实读出来是3个字节就是UDS中制定的规范。如今车企中主要采用的是三个字节的故障码。现在市面上主要的ECU存储的故障码都是三个字节的,符合UDS规范的这个。前两个字节就是OBD诊断故障码(五位故障码)。UDS故障码包含OBD故障码(五位故障码)Root DTC就是诊断故障码中所谓的五位故障码,FTB代表故障具体的原因。原创 2024-04-23 16:52:06 · 151 阅读 · 0 评论 -
UDS诊断故障码DTC
这五位故障码,具体每一位代表什么等规定。参照上下图,橙色部分00代表0即ISO/SAE控制,如果橙色部分为01代表1即制造商自定义,10代表2即ISO/SAE控制,11代表3即ISO/SAE控制。参照上下图,紫色部分代表故障所属的子系统,紫色部分的4位数字组成一个16进制数字,该16进制的值代表不同故障所属的子系统。参照上下图,浅蓝色和浅绿色部分组合起来形成两个16进制数字,比如17、22,它们代表发生故障的具体部件及类型。参照上下图,绿色部分00代表P,如果绿色部分是01代表C,10代表B,11代表U。原创 2024-04-23 16:50:27 · 310 阅读 · 0 评论 -
UDS的0x27服务
诊断仪(Tester)需要先向ECU发送请求种子,种子就是ECU通过自己内部的随机算法,生成的一个随机的数值,常见的有两个字节,四个字节。然后ECU就会把生成的这个种子作为本次诊断的响应,返回种子给诊断仪(Tester)。诊断仪也会用同样的安全算法,根据ECU返回的种子去计算一个钥匙(key)。对不不同,则返回否定响应。第二:子功能是成对出现的,01/02, 03/04 ,05/06,奇数01 03 05都代表发送请求一个种子,偶数 02 04 06都代表发送一个key让ECU去验证。原创 2024-04-23 16:47:27 · 145 阅读 · 0 评论 -
Uds的0x10服务
红色01 F4代表扩展超时时间,英文叫做P2*ServerMax,01 F4是16进制,转换成十进制就是500,协议上规定扩展超时时间转换成十进制的数还需要乘以10才是它实际的扩展超时时间,也就是500 * 10 = 5000毫秒。如果长时间在非默认会话下,没有用诊断仪跟ECU通讯,那么ECU会调回或者是返回到默认会话下。如果在默认会话下,想进入扩展会话,直接进入即可,想进入编程会话必须先进入扩展会话,才可以进入编程会话。0x10为诊断会话控制,该服务下有三种子功能,分别为默认会话,扩展会话,编程会话。原创 2024-04-23 16:45:48 · 102 阅读 · 0 评论 -
UDS报文传输的四种帧
是在CAN总线传输的情况下, 具体规定如何传输UDS诊断的请求和响应报文的。四种帧就是定义在这个标准中。流控帧(FC)负责根据接收方和发送方的实际需要,来实时的调节下次发送连续帧(CF)时如何发送。一个UDS的请求或者响应的发送方,发出一个单帧(SF)即可,接收方接收到就可以了。因为单帧的时候,这一帧CAN报文是能够装得下所有的uds报文。一帧CAN报文中有8个字节,流控帧的控制信息一定是3个字节,还有5个字节用00填充,称为“补白”。如下图所示,是一个接收方发送给发送方的流控帧(FC)示例。原创 2024-04-23 16:44:11 · 314 阅读 · 0 评论 -
Uds诊断协议的请求和响应的寻址
通过功能寻址的方式发送请求报文的时候,总线上的所有ECU都需要回复响应的报文。基于CAN总线的诊断通信来说,由于每个ECU可以根据事先设定只处理总线上,指定CAN报文ID的这个报文,因此UDS协议中的诊断请求响应的地址信息,本质上就是CAN报文的ID。Uds诊断通信的报文是通过CAN协议传输的,UDS诊断的报文就是CAN报文,请求和响应的地址信息就是CAN报文的ID。在车企中其实会为总线上的每个ECU都设定一个唯一的UDS诊断请求的CAN报文ID,以及一个唯一的UDS诊断响应的CAN报文ID。原创 2024-04-22 18:39:16 · 421 阅读 · 0 评论 -
Uds诊断协议请求与响应
否定响应:该响应报文一共三个字节。首字节为7F,第二个字节为请求的SID,第三个字节为否定响应吗NRC(表示响应失败的原因)请求报文格式:请求报文的首字节必须是SID,第二个和第三个字节代表该SID下的某个子服务的ID。响应:ECU处理完成,就会返回一个处理的结果给回诊断仪。这个响应也是报文形式的。肯定响应:首字节为请求的SID+40。请求:报文通过诊断仪发送给ECU。响应报文格式:肯定响应、否定响应。原创 2024-04-22 18:37:27 · 141 阅读 · 0 评论 -
Uds诊断简介
uds规定在ISO14229-1,一共有26个服务。每个服务都有一个唯一的ID,也称为SID,是一个两位的16进制数,也就是一个字节。这26个服务分为六大类。分别为诊断和通信管理功能单元、故障码传输功能单元、数据传输类、输入输出控制功能单元、例行程序功能单元、上传和下载功能单元。原创 2024-04-22 17:07:54 · 198 阅读 · 0 评论