前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何读懂UDS诊断报文

如何读懂UDS诊断报文

作者头像
xbai921031
发布于 2022-05-25 06:21:08
发布于 2022-05-25 06:21:08
6.4K0
举报

概述

UDS(Unified diagnostic services),即统一诊断服务。UDS提供一个诊断服务的基本框架,主机厂和零部件供应商根据实际情况自定义出一些私有化服务,其优势在于方便生产线检测设备开发,同时更大的方便了售后维修保养和车联网功能的实现。

OSI模型各层相关国际标准:

一些概念

(1)Diagnostic Session:诊断会话(诊断模式或权限)

(2)诊断请求结果(Result):

· Positive Response:肯定响应,即诊断请求执行成功

· Negative Response:否定响应,即诊断请求执行失败

(3)Service Identifier:简称SID,1个字节的无符号整数,用以代指某个诊断服务

(4)Data Identifier:简称DID,2个字节无符号整数的ID,用来标识ECU中储存的某个诊断单元数据

(5)Negative Response Code:简称NRC,错误响应码,是一个字节的无符号整数,是诊断协议为每一种执行失败的诊断服务分配的失败原因代号

诊断Request格式:

格式1:[SID] + [Sub-function]

格式2:[SID] + [DID]

格式3:[SID] + [Sub-function] + [DID]

Positive Response:

格式1:[SID + 0x40] + [Sub-function]

格式2:[SID + 0x40] + [DID]

格式3:[SID + 0x40] + [Sub-function] + [DID]

Negative Response:

[0x7F] + [SID] + [NRC]

ISO 14229中的一些常用定义

(1)SID定义范围

(2)一些常用的诊断服务

(3)NRC代表含义

基于CAN网络的诊断报文解析

一个CAN的Message包含以下两个方面:CAN ID + CAN Data

下面来讲一个概念叫做PDU(Protocol Data Uint),即协议数据单元。ISO 15765中明确规定了4种类型的网络层协议数据单元,分别是:

· 单帧(SF N_PDU)

· 首帧(FF N_PDU)

· 连续帧(CF N_PDU)

· 流控帧(FC N_PDU)

PDU格式:

(1)协议控制信息N_PCI

每个N_PDU都是通过一个N_PCI来识别的。

参数定义

(1)SF_DL(SingleFrame DataLength)

(2)FF_DL(FirstFrame DataLength)

(3)SN(SequenceNumber)

代表连续帧中的第几帧。

(4)FS(FlowStatus)

表示发送网络是否可以继续进行数据传送。

(5)BS(BlockSize)

规定了发送端允许发送的连续帧数目的最大值。

(6)STmin(SeparationTime)

连续帧发送过程中允许的最小时间间隔。

诊断报文示例

单帧数据传输

(1)肯定响应

发送请求:10 02

响应请求:50 02 00 32 00 C8

(2)否定响应

发送请求:10 01

响应请求:7F 10 12 (NRC:sub-functionNotSupported)

多帧数据传输

(1)发送数据为单帧,06开头代表有发送的数据中含有6个字节

(2)响应为肯定响应,连续帧

· 10中的1代表连续帧的首帧,0 0A代表此连续帧中含有10个字节

· 30代表流控帧

· 21代表连续帧里的第一帧

参考文献:

ISO 14229-1:2013(E)

ISO 15765-2:2004(E)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击的程序喵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档