【UDS】ISO14229之0x10服务


->返回总目录<-

前言

`
简称: “Diagnostic Session Control”,诊断会话控制。
功能: 诊断会话控制启用服务器中一组特定的诊断服务/功能,通俗解释就是请求不同的诊断服务需要在不同的会话模式下进行。


一、理论描述

1.分类

UDS定义的session包括:
0x00 ISOSAEReserved(保留)
0x01 defaultSession(默认会话)
0x02 ProgrammingSession(编程会话)
0x03 extendedDiagnosticSession(外部扩展会话)

0x04 safetySystemDiagnosticSession
0x05 – 0x3F ISOSAEReserved(保留)
0x40 – 0x5F vehicleManufacturerSpecific(由整车厂自定义使用)
0x60 – 0x7E systemSupplierSpecific(由ECU供应商自定义使用)
0x7F ISOSAEReserved(保留)

一般常用到的就是上述加粗字体,大家刚开始只需关注这三个会话模式即可。

2.工作模式

那么问题来了?请求诊断服务时如何进行会话间的切换呢?难不成直接选择需要的会话模式?

当然UDS也做了定义,如果未请求其他诊断会话,只要服务器上电,就应该始终处于默认会话。请求会话的切换逻辑如下图:
例如:如果要进入编程会话(Programming),则需要经过默认会话->扩展会话->编程会话在这里插入图片描述
一般诊断仪启动之后,会给ECU发送10 03,让ECU进extendedDiagnosticSession中,在这个session中可执行的诊断服务就很多。当进入该会话时(非defaultSession),经过一段时间会退出并进入defaultSession,这个时间一般为5000毫秒,即ISO 15765-2定义的S3server定时器
而如果要让ECU一直保持在非defaultSession中,则需要诊断仪每隔固定的时间发送0x3E服务(见该服务篇),ECU才会知道诊断仪有和自己通信的需求,从而保持在非defaultSession中。另一个常用的session是ProgrammingSession,在这个session中可以进行软件升级的一系列诊断服务。

二、操作步骤

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定义,当然这个是在软件代码里写死的,只是请求服务时体现出来的数据)。
在这里插入图片描述

博主举个例子,如下图:
在这里插入图片描述
请求帧:02 代表请求的数据字节数10 01,两个字节;
回复帧:06代表ECU回复的数据字节数 ;00 32 01 F4代表上述两个时间参数。

上述只是ECU正常响应,即请求成功。那如果请求失败的,ECU怎么回复呢?
在这里插入图片描述
根本没有10 05会话服务啦:
在这里插入图片描述
瞎搞,请求诊断会话服务需要发三个字节数据嘛…
在这里插入图片描述
另外一个NRC22表示,请求条件不满足,例如:车速大于5km/h。车辆在行驶过程中你进行诊断服务,闹啥呢!不要命啦…

总结

好啦!关于诊断会话控制服务0x10就叙述到这里啦,欢迎大佬指点哦,与君共勉!

->返回总目录<-

  • 20
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&春风有信

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值