首页 > 其他分享 >车载测试系列:UDS诊断服务(二)

车载测试系列:UDS诊断服务(二)

时间:2022-12-02 12:00:54浏览次数:62  
标签:UDS 字节 车载 响应 ECU 测试 SID 请求

诊断请求格式

UDS的服务包含6大类,共26种。每种服务都有自己独立SID。 SID:Service Identifier,诊断服务ID。

  • 按不同服务类型,诊断请求格式有三种:

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

格式2:[SID] + [DID]

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

  • 对应的肯定响应(Positive Response)类型:

格式1:[SID + 40] + [Sub-Function]

格式2:[SID + 40] + [DID]

格式3:[SID + 40] + [Sub-Function] + [DID]

  • 否定响应(Negative Response):[0x7F] + [SID] +[NRC]

否定响应类型有一种,NRC(Negative Response Code)为否定响应码。

举例:诊断仪Tester给ECU发送指定的请求数据(Request),这条数据中需要包含SID,且SID处于该应用层数据的第一个字节。如果是肯定的响应,首字节回复[SID+0x40],举例子就是请求0x10,响应0x50;请求0x22,响应0x62。如果是否定的响应,首字节回复0x7F,第二字节回复刚才询问的SID。比如Tester请求0x10服务,我想进入编程模式,ECU给出否定响应,首字节0x7F,第二字节回复0x10,代表我否定你的0x10服务请求,第三字节是NRC(否定响应码),代表我否定你的依据。

 

UDS的寻址模式

CAN总线中Addressing information寻址信息会在CAN的帧ID中体现,例外是远程寻址,但不常使用。

所谓的寻址信息包含了源地址和目标地址,即这条信息是由谁发给谁的,类似于收件人和发件人。当ECU回信给Tester时,ECU就变成源地址了。源地址和目标地址在UDS中并不是一成不变的。

UDS的寻址模式分两种,一种是物理寻址(点对点、一对一),根据物理地址的不同进行访问,但只能访问单个ECU节点,Tester为源地址,ECU作为目标地址;对应的,另一种是功能寻址(广播、一对多),根据功能的不同进行访问,它能访问多个ECU节点,对于标准帧来说,通常是0x7DF。

每一个ECU都有2个CAN的诊断帧ID,分别对应物理寻址的收与发。通常由主机厂确定不同的ECU这两个特定的诊断ID。比如0x701对应接收Tester的消息,0x709对应发给Tester的消息。

UDS的26种服务

UDS的服务分为6大类,常用的服务是绿色背景色的15种。

 

10服务分析

  • 10服务实现了不同诊断会话之间的切换,不同的诊断会话包含不同的诊断功能。
  • 会话类型分六种

 

  • 操作步骤

1、请求:该服务SID是0x10,发送帧固定为2个byte,第一个byte是SID,第二个byte的低7bit是sub-function,用于指示ECU将进入的session。例如:发送帧10 03,ECU响应之后从默认会话进入外部扩展会话。

 

2、响应:ECU响应中将请求的SID+0x40作为回复的第一个字节。这个诊断服务的response分为三部分,第一部分是0x50,作为SID的回复;第二部分是进入的session,作为sub-function的回复;第三部分是4个字节,前两个字节代表P2Server_max, 即ECU在应用层上对诊断命令的响应时间,后两个字节代表P2*Server_max,(这两个时间参数是ISO 15765-2定义,在软件代码里写死的,只是请求服务时体现出来的数据)。

 

例如:ECU正常响应,即请求成功。如下图

 

请求帧:02 代表请求的数据字节数10 01,两个字节;
回复帧:06代表ECU响应的数据字节数 ;00 32 01 F4代表上述两个时间参数。

请求失败-没有10 05会话,ECU响应如下:

NRC12: Sub-Function 没有05子服务

标签:UDS,字节,车载,响应,ECU,测试,SID,请求
From: https://www.cnblogs.com/laoluoits/p/16944038.html

相关文章

  • 车载测试系列:基于CANoe的UDS诊断测试
    针对新款车型,OEM会提出新车型的诊断需求,形成诊断需求规范。车内控制器由不同供应商提供。供应商根据需求规范来完成其功能实现。功能实现是否正确需要进行诊断测试验证。......
  • 车载测试系列:CAN报文之Intel格式与Motorola格式
    CAN通讯矩阵中关于信号排列格式ByteOrder的字段,其作用为:描述字节排布顺序。取值包含:Intel、MotorolaLSB、MotorolaMSB、Motorolasequential。LSB:leastsignificant......
  • 车载测试系列:CANoe功能介绍
    CANoe(CANopenenvironment)是德国Vetor公司推出的一款用于总线开发的设备。主要是用于CAN总线的开发、仿真、测试和分析。后来随着总线技术的发展,CANoe不仅限于CAN类型的总......
  • 车载测试系列:DBC文件格式解析
    DBC文件:CAN报文的数据库。用来描述CAN网络节点间数据通讯的文件,包含了CAN总线协议中协议数据及其所代表的具体意义。可以用来监测与分析CAN网络上的报文数据,也可以用来模......
  • 车载测试系列:CAN协议之波特率
    位时序分解CAN协议把每一个数据位的时序都分解成了若干个段。其中包括SS、PTS、PBS1、PBS2段,这四段加起来即为一个CAN数据位的长度。分解后最小的时间单位为Tq,一个完整的......
  • 火山引擎 DataTester 揭秘:字节如何用 A/B 测试,解决增长问题的?
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群上线六年,字节跳动的短视频产品——抖音已成为许多人记录美好生活的平台。除......
  • junit之测试顺序
    BriefJunit4.11里增加了指定测试方法执行顺序的特性测试类的执行顺序可通过对测试类添加注解“@FixMethodOrder(value)”来指定,其中value为执行顺序三种执行顺序可......
  • 2022 ios APP最新iOS开发上架测试教程
     本文详细介绍最新的在windows上进行iosapp开发编译打包安装到手机测试的完整流程。介绍ios开发经常遇到的问题和解决方法,包括ios开发证书,ios开发描述文件等。2.Ap......
  • 如何使用向导创建Openflow 流表-网络测试仪实操
    ​使用向导创建Openflow中的FlowTable,按照下面的步骤:1、打开Renix软件,连接机框并预约测试端口;​编辑2、配置一个IPv4接口​编辑3、配置一个OpenFlowController绑......
  • 测试怎么才能测得更全面
    1、熟悉项目的业务多问产品经理,自己多想,如果能将业务讲给别人听,自己顺几遍,基本可以判定了解很大一部分。再通过每次提测,加深自己对被测系统的理解。再不济,可以写出来,每天......