概述
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)
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有