UDS - 诊断协议和协议栈介绍

目录

UDS介绍

UDS命令形式

UDS的26种服务

UDS on CAN (CAN上的UDS为例说明)

常用UDS命令

故障码(四个大类)

NRZ码

CAN ID与CAN节点寻址关系

UDS源代码 (UDS协议栈)

CAN诊断实战


UDS介绍

UDS(全称:UnifiedDiagnostic Services)

UDS包含了ISO 14229下属的7个子协议,其中ISO 14229-2还是会话层的,所以UDS仅包括应用层的说法也是错误的

UDS本质上是一种定向的通信,是一种交互协议(Request/Response),即诊断方(Tester)给ECU发送指定的请求数据(Request)。响应包括肯定响应和否定响应。

ECU:实现UDS server协议栈

诊断仪:实现UDS client协议栈

参考:http://www.catarc.org.cn/upload/202001/22/202001220940052097.pdf

 

UDS命令形式

UDS的请求命令有4种构成方式

即SID,SID+SF(Sub-function),SID+DID(Data Identifier)(读写用),SID+SF+DID。

UDS的26种服务

但常用的服务是加背景色的15种。

服务分为:权限控制、读取数据/信息、写入数据/信息、通信控制、功能控制这几类。

 

 

UDS on CAN (CAN上的UDS为例说明)

CAN ID

0x7df (BROADCAST_ID)

对于specific的ECU,设计UDS时,会指定一个唯一的CAN ID(通常是0x7YZ),用于和指定的ECU进行UDS通讯。

 

CAN的数据格式大致如下所示:

CAN 标志 | Data Length Code | Data Field

 

CAN帧的Data Field表示的就是网络层的 PDU ;将网络层的PDU简写为 N_PDU 。

PDU=N_PDU的长度+N_PDU.

N_PDU= ID+数据类型+数据域,

 

常用UDS命令

读取软件版本号

SID+DID

SID : 0x22

DID: OEM自定义(例如0xF095)

 

写入数据

SID+DID+Data

SID:0x27

 

芯片进入reset状态

SID: 0x11

 

烧写程序

SID+SF

SID: 0x10

SF:0x02

 

安全访问(输入秘钥,建立连接)

SID:0x27

 

读取DTC

SID:0x19

 

故障码(四个大类)

分别是PCBU,P是powertrain动力系统,C是Chassis底盘,B是Body车身,U是network通信系统。一个DTC信息占用4个字节。最后一个字节是DTC的状态。

第一个字节在乘用车中,前两个bit代表P/C/B/U(动力/底盘/车身/网络)中的一个,之后六个bit是数字,合在一起的样子形如“C01”。第一个字节的前2个bit中,用00/01/10/11分别表示P/C/B/U。

 

NRZ码

 

CAN ID与CAN节点寻址关系

ECU上CAN ID寻址。CAN基于报文ID。不像Ethernet,基于节点地址的。

每一个ECU都有2个CAN帧ID,分别对应收和发的物理寻址。

 

UDS源代码 (UDS协议栈)

UDS 协议栈 源代码

https://github.com/openxc/uds-c

UDS server (ECU)

https://zhuanlan.zhihu.com/p/37310388

UDS client (Diagnostics tool)

https://udsoncan.readthedocs.io/en/latest/

https://github.com/pylessard/python-udsoncan

商用软件举例:

ISO 14229/UDS Sofware Details

 

CAN诊断实战

https://zhuanlan.zhihu.com/p/51338035

http://forums.codeblocks.org/index.php?topic=21905.0

https://github.com/peplin/ecomcat_to_openxc

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值