uds帧格式_如何看懂UDS诊断报文

UDS介绍

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是ISO 15765 和ISO 14229 定义的一种汽车通用诊断协议,位于OSI模型中的应用层,它可在不同的汽车总线(例如CAN, LIN, Flexray, Ethernet 和 K-line)上实现。UDS协议的应用层定义是ISO 14229-1,目前大部分汽车厂商均采用UDS on CAN的诊断协议。

UDS本质上是一系列的服务,共包含6大类26种。每种服务都有自己独立的ID,即SID。

SID:Service Identifier,诊断服务ID。UDS本质上是一种定向的通信,是一种交互协议(Request/Response),即诊断方给ECU发送指定的请求数据(Request),这条数据中需要包含SID。

如果是肯定的响应(Positive Response),回复[SID+0x40],如请求10,响应50;请求22,响应62。

如果是否定的响应(Negative Response),回复7F+SID+NRC,回复的是一个声明。

肯定响应和否定响应的形式一定要熟记。

常用服务介绍

UDS的26种服务中,有7种很重要。它们分别是:

$10 Diagnostic Session Control(诊断会话),

$14 Clear Diagnostic Information(清除诊断信息),

$19 Read DTC Information,

$22 Read Data By Identifier(通过ID读数据),

$27 Security Access(安全访问),

$2E Write Data By Identifier(通过ID写数据),

$3E Tester Present(待机握手)。

image

下面对这7个服务进行解读。

$10诊断会话

$10包含3个子功能,

01 Default,

02 Programming,

03 Extended,

ECU上电时,进入的是默认会话(Default)。如果您进入了一个非默认会话的状态,一个定时器会运转,如果一段时间内没有请求,那么到时间后,诊断退回到默认会话01。当然,我们有一个$3E的服务,可以使诊断保持在非默认的状态。

报文包含4种类型,即

SID,

SID+SF(Sub-function),

SID+DID(Data Identifier)(读写用),

SID+SF+DID。

NRC:Negative Response Code(否定响应码)。如果ECU拒绝了一个请求,它会回应一个NRC。不同的NRC有不同的含义。

NRC.jpg

例子:以CAN总线网络举例。

八个数据字节,第一字节被网络层占用。

请求(Request):

02 10 02 xx xx xx xx xx

02中的0代表网络层单帧SF,2代表 数据域有2个字节;10是SID,02是子功能。

肯定响应:

02 50 02 xx xx xx xx xx

02同上,10+40表示对SID的肯定回复,02是子功能。

否定响应:

03 7F 10 22 xx xx xx xx;

03同上,7F表示否定响应,10是SID,22是NRC。

$3E待机握手

$3E服务用于向服务器指示诊断仪仍然连接在网络上,之前已经激活的诊断服务功能可以仍然保持激活状态。

例子:

02 3E 80 00 00 00 00 00,发送一个3E服务的报文,保持非默认会话状态。80表示无需回复。

$27安全访问

27服务,加上一个子服务,再加上一个钥匙,这样的服务请求可以进行解锁。

比如下面的例子,2n-1是某个子服务,通过首轮种子的请求,首轮ECU会返回67+01+AA+BB+CC+DD,AA~DD就是种子了。之后第二轮,诊断端会利用种子进行运算(利用整车厂的算法),生成k1(不一定是1个字节),那么发送请求,27+02+[k1]。ECU同样也会通过种子算出k2。当k1和k2匹配时,解锁(Unlocked)成功。

例子:

Rx: 02 27 05 00 00 00 00 00 安全访问,05子功能

Tx: 07 67 05 08 27 11 F0 77 肯定响应,回复了对应安全级别的种子

Rx: 06 27 06 FF FF FF FF 00 发送密钥,4个FF。注意06是与05成对使用的。

Tx: 03 7F 27 78 00 00 00 00 否定响应,7F+27+NRC

Tx: 02 67 06 00 00 00 00 00 肯定响应,通过安全校验

$22读数据

$22读数据,

Request(请求):

22+DID(Data Identifier,通常是两个字节)

Response(响应):

62+DID+Data

DID有一部分已经被ISO 14229-1规定了。比如0xF186就是当前诊断会话数据标识符,0xF187就是车厂备件号数据标识符,0xF188就是车厂ECU软件号码数据ID,0xF189就是车厂ECU软件版本号数据标识符。

$2E写数据

$22写数据,

Request(请求):

2E+DID+Data

Response(响应):

6E+DID

注意,比如0xF186这个DID不支持直接写入数据,需要用$10来进行会话转换。也就是说,对于写数据的请求,一般来说需要在一个非默认会话,或解锁的状态下才能进行。

$19 读DTC

DTC(diagnostic trouble code):如果系统检测到了一个错误,它将其存储为DTC。DTC可表现为:一个显而易见的故障:通讯信号的丢失(不会使故障灯亮起);排放相关的故障;安全相关的错误等。DTC可以揭示错误的位置和错误类型。通常DTC占用3个字节,OBD II占用两个字节。

故障码包括四个大类,分别是PCBU,P是powertrain动力系统,C是Chassis底盘,B是Body车身,U是network通信系统。一个DTC信息占用4个字节。最后一个字节是DTC的状态。前两个字节是我们熟知的类似P0047的故障码。

DTCHighByte

DTCMiddleByte

DTCLowByte

DTCStatus

Byte 1

Byte 2

Byte 3

Byte 4

$19 拥有28个子服务(Sub-Function)。常用的子服务有02(通过DTC状态掩码读取DTC),04(读取快照信息),06(读取扩展信息),0A(读ECU支持的所有DTC数据)。

$14清除DTC

清除(复位)DTC格式,它可以改变DTC的状态。3个FF代表清除所有DTC。

Request:14+FF+FF+FF;

Response:54 。

诊断报文解析

UDS 的诊断数据的发送与接收都是基于CAN,所以每个数据流都包含基本的CAN Message 的架构

CAN Message =CAN ID + CAN DATA

根据上篇UDS文章的叙述,每一个PDU 包含控制信息PCI,数据信息Data.

N_PDU format.png

网络层 PDU(协议数据单元)PCI(协议控制信息)格式:具体如下图所示:

帧类型

bit7-4

bit3-0

Byte 2

Byte 3

单帧

PCItype=0

SF_DL

N/A

N/A

首帧

PCItype=1

FF_DL

FF_DL

N/A

连续帧

PCItype=2

SN

N/A

N/A

流控帧

PCItype=3

FS

BS

ST_min

PCI_format.png

综上所述,N_PDU =N_PCI+N_DATA, N_PCI的值主要集中的前三个字节,N_DATA值主要集中在后面7位字节。其中,

SF_DL 代表单帧中数据字节数(取值0-7),

FF_DL代表 连续帧中的数据字节数(12bit可表四8~4095),

SN代表此帧为连续帧中的第几帧,(0、1、2...E、F、0、1...)

FS流控制帧,有三种状态:继续发送0、保持等待1、数据溢出2

BS规定发送端允许持续传输连续帧数目的最大值(0~255),

STmin限定连续帧相互之间所允许的最小时间间隔。

先面用连个例子进行说明,请参考!

例子 1--- 单帧的数据传输与接收

[图片上传失败...(image-b66bab-1538824826939)]

数据发送: 02 27 09

数据反馈: 03 7F 27 7E ---==否定的响应==(Negative Response),回复==7F+SID+NRC==,回复的是一个声明

数据发送: 02 10 40

数据反馈: 06 50 40 00 32 01 F4 ---==肯定的响应==(Positive Response),回复[==SID+0x40==],就是请求10,响应40;回复的是一组数据

由于这个数据发送与接收都是单帧传输,所以第一个数据的高四位均为0,四个数据流中的第一个字节的低四位,02,03,02,06代表的为此帧数据含有几个字节,多余的数据位都用 00或者AA行填充。

例子2 --- 多帧的数据接收与传输

[图片上传失败...(image-b5e84b-1538824826939)]

数据发送:

06 19 04 00 01 00 00 00

数据反馈:

10 1E 59 04 00 01 00 27

30 00 00 00 00 00 00 00

21 00 0B FF FF FF FF FF

22 FF FF FF FF FF FF FF

23 FF FF FF FF FF FF FF

24 FF FF FF AA AA AA AA

数据发送为单帧,所以06代表发送的数据中含有6个字节,

回复为Positive Response,为连续帧。

10中的1代表连续帧的首帧,==01E代表此连续帧含有30个字节==,

30代表此连续帧的流控制帧,

21,22,23,24代表连续帧中的第几帧,21代表第一帧,22代表第二帧,依此类推,其中AA为填充位。

参考资料:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

彭山计算机培训,彭山2021年初中生学计算机

建校以来,我校一直秉承“让每一个学生具备生存发展的能力,让更多学生体验成功”的办学理念,坚持“诚信、务实、精技、立业”和“先做人、后做事”为校训,多年来优秀的办学质量和成绩屡获***、教育主管部门、专家、家长等社会各界的…

function函数嵌套 matlab_Matlab函数进阶:使用匿名函数和内嵌函数处理多变量传递问题...

Matlab函数进阶:使用匿名函数(Anonymous Function)和内嵌函数(Nested Function)处理多变量传递问题(Matlab 7.0以上)问题:有一个多变量函数f(abcx),现需要分别在aa0bb0cc0和aa1bb1cc1的条件下对f(abcx)进行某一操作。此类问题常在数值积分时出现。解决方…

计算机应知应会培训班,应知应会培训、测试方案(报省里)

2015年度宜昌市专业技术人员外语、计算机应知应会知识培训、测试实施方案根据鄂职改办[2005]82号文件要求及宜市职改办[2015]1号文件安排,现就2015年度外语、计算机应知应会知识培训、测试工作提出如下实施方案:一、指导思想认真贯彻落实党的十八届三中全…

python怎么切换中文键盘_python模拟键盘输入 切换键盘布局过程解析

PostMessage()def keyHwnd(hwndEx, char):"""向指定控件输入值:param hwndEx: 控件句柄:param char: 字符串:return: True or Flase"""try:for _ in char:print(key:%s ascii:%d % (_, ord(_)))win32api.PostMessage(hwndEx, win32con.WM_CHAR, …

计算机控制系统开关,电脑远程开关机控制器

原标题:电脑远程开关机控制器SPD-M05电脑远程开机/关机/复位远程控制器斯必得SPD-M05电脑远程开机/关机/复位控制器是专为各种服务器及无人值守机房电脑远程遥控开机/关机/复位所开发。该控制器采用电话远程遥控操作,无论你何时何地只要你拔打一个电话即…

caffe模型文件解析_深度学习 Caffe 初始化流程理解(数据流建立)

深度学习 Caffe 初始化流程理解(数据流建立)之前在简书的文章,搬迁过来 ^-^本文是作者原创,如有理解错误,恳请大家指出,如需引用,请注明出处。#Caffe FeatureMap数据流的建立 ##用语解释FeatureMap: 输入的图片信息或者…

计算机与编程导论,计算机科学与编程导论

课程概况ビッグデータやAI,いま,そういった言葉が世の中に満ち溢れています。それは,いろいろなことが計算に載るようになって,ビッグデータの利用や,それを使ったAI技術が本格化してきたからです。こうした潮流の中心…

android 按钮顶级效果_Android 源码之button高亮效果

android默认的button在点击以后有默认的高亮效果,但是默认的button比较丑,要替换成自己的按钮背景,采用的方法是:button.setBackgroundDrawable(drawable);//orbutton.setBackgroundResource(resid);可是这样就没有了点击以后的高…

李秀计算机文化基础,计算机文化基础(李秀)绪论.pptx

1计算机文化基础第一次大课:说在前面的话任课教师:李秀lx办公电话办公地点:东主楼8区313室2绪论课程定位课程要求及安排从信息技术产业的发展规律视角,对该产业建立一个整体概貌说在前面的话3课程定位计算机文化基础说文解字这是以…

600度近视眼恢复方法_高度近视600度如何恢复视力?有这三大办法可对付!

原标题:高度近视600度如何恢复视力?有这三大办法可对付!近视其实有3个门槛,很多人都不甚了解。近视度数低于300度,为轻度近视;近视度数高于300度,低于600度,为中度近视;近…

函数计算机怎么去掉fix,excel怎么使用fix函数取整

fiv函数的作用是取整,在excel当中该如何使用呢?下面就跟学习啦小编一起看看吧。excel使用fix函数取整的步骤1、首先我们打开一个工作样表作为例子。2、使用altf11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码&#xff…

creator 静态属性_CocosCreator cc.class声明类

定义类var Sprite cc.Class({name: "sprite"});var obj new Sprite();定义的类的类型名为 Sprite 可以用 new 构造一个对象。也可以不定义类名,直接构造类。构造函数——ctor/ __ ctor__ctor 不允许含有参数,如果构造时需要用到参数&#xf…

如何检测服务器运行正常运行,一种检测服务器运行状态的方法、装置和系统专利_专利查询 - 天眼查...

1. 一种检测服务器运行状态的方法,其特征在于,应用于客户端,所述客户端本地保存 有正常服务器信息表和故障服务器信息表;所述正常服务器信息表中存储有当前处于正常 状态的各服务器的标识信息,所述故障服务器信息表中存储有当前处…

问道五周年服务器维护公告,问道五周年 欢乐嘉年华

任务卷轴任务卷轴记录卷轴任务的道具,可以交易、摆摊、放入商店、卖给NPC、丢弃等操作,道具为打怪掉落或者商城购买,分为5个等级,等级越高,难度系数越高。卷轴使用1、右键点击使用道具,与道具等级不符的玩家…

datagridview设置为勾选才可编辑_使用lightroom前,做好这几项设置,有助于更好使用...

工欲善其事,必先利其器。每一款软件都有它需要特别关注的地方,在使用前做好相应的配置,可以大大提升使用体验,正所谓“磨刀不误砍柴工”。那lightroom使用前需要进行哪些设置呢?一、进行【首选项】设置1、如何打开【首…

惠普服务器u盘做win7系统,惠普u盘装win7系统 利用u盘装win7系统

现如今随着社会水平的提高,无论办公还是生活都是越来越离不开电脑,电脑品牌也很多,惠普电脑是比较受人关注的品牌电脑,惠普电脑在使用过程中系统可能会越来越卡顿或者出问题需要U盘重装系统,有些新手用户对于系统重装还…

mlag 堆叠_S-MLAG解决方案介绍

1摘要本文介绍了互联网接入层可靠性设计的发展和实现。随着互联网业务的快速的扩张和网络架构的发展,接入层可靠性也经历了从分到合,又从合到分的发展历程。本文讲述这一过程的同时也会详细阐述去堆叠技术的原理和实现方式。2服务器接入发展随着互联网的…

一般性能服务器图片及介绍,服务器内部主要几种硬件以及它们的作用介绍

服务器主要在网络中为客户端用户提供各种服务器的高性能的计算机,为用户提供计算、信息发布、数据管理等服务。但是这些服务器都离不开服务器的内部硬件支持。接下来,我们为大家介绍关于服务器的硬件有哪些以及它们的主要作用等知识。1.服务器CPU服务器的…

发那科攻丝回退参数_参数-Fanuc数控系统的攻丝拉拔动作倍率即回退速度倍率

众所周知Fanuc数控系统的参数多如牛毛。上千的参数,并且有的还是八位,虽然Fanuc发布有相关的参数说明书。但是,作为最终用户的我们,有的也只是公开发布的,也没有更新更全的相关资料。即便是有了相关书籍,又…