UDS服务-10、11、27、28、3E、85服务

参考的链接:https://blog.csdn.net/weixin_48498880/article/details/120221708

0x10

(诊断会话控制)Diagnostic Session Control

每次用到UDS,都需要加上0x10命令
10 01 默认会话模式
10 02 编程会话模式
10 03 扩展会话模式
10 04 安全系统诊断会话
50-7E为肯定响应服务标识符,7F为否定服务响应标识符。即正响应(50) 负响应(7F)

ECU上电之后进入默认会话模式

支持的否定响应码
12 SFNS 请求报文中的子功能参数不支持
13 IMLOIF 报文长度/格式错误
22 CNC 请求诊断会话控制的条件不满足

0x11

ECU reset服务,ECU重置服务

11 01 hardReset(硬重置:模拟KL30电源的重上电)
11 02 keyOffOnReset (模拟KL15点火钥匙的重启)
11 03 softReset(软重置:其实达到的效果和上述一致,实现ECU重置的作用)
11 04 enableRapidPowerShutDown(启用快速断电:该子功能适用于非点火上电而仅采用电池供电的ECU。因此,关闭可强制进入休眠模式,并非单纯关闭电源。休眠意味着关闭电源,但仍时刻准备着被唤醒(电池供电型))

请求0x11服务前提是在外部扩展会话,并且解锁了安全模式(见后期的0x27服务)方可请求0x11ECU重置服务

支持的否定响应码
12 SFNS 请求报文中的子功能参数不支持
13 IMLOIF 报文长度/格式错误
22 CNC 请求诊断会话控制的条件不满足

0x27

“SecurityAccess”,安全访问

安全访问的机制通过使用种子和密钥来实现。

ECU默认上电后将处于锁定状态,上传/下载程序或数据至ECU、从ECU中读取特殊位置内存数据等诊断服务一般需要执行安全访问。

所学的规范中定义了三种状态locked、level1(扩展安全级别 请求种子01 发送密钥02)、levelFBL(重编程安全级别 请求种子09 发送密钥0A)

27 01 安全级别1的请求种子
27 02 安全级别1的发送密钥
27 09 安全级别FBL的请求种子
27 0A 安全级别FBL的发送密钥

请求种子支持的否定响应码
12 SFNS 请求报文中的子功能参数不支持
13 IMLOIF 报文长度/格式错误
36 尝试次数超限
37 延迟时间未到
7F 当前会话模式服务不支持

种子不可为,全0或者全F。
不可为全0,是因为当ECU处于解锁状态的时候,继续发送27 01,返回27 02为全0,代表已解锁;不可为全F,是因为存储器的默认值为全F。

发送密钥支持的否定响应码
12 SFNS 请求报文中的子功能参数不支持
13 IMLOIF 报文长度/格式错误
24 请求顺序错误
35 无效密钥
36 尝试次数超限
7F 当前会话模式服务不支持

0x28

“CommunicationControl”,通信控制

功能: 通讯控制服务用于开启/关闭电控单元对某些报文的发送或接收。

28 00 xx enableRxAndTx 启用消息接受与传输
28 01 xx enableRxAndDisableTx 启用消息接收,禁用消息传输
28 02 xx disableRxAndEnableTx 禁用消息接收,启用消息传输
28 03 xx disableRxAndTx 禁用消息接受与传输
28 04 xx enableRxAndDisableTxWithEnhanceAddressInformation 用增强的地址信息使能接收且禁止发送,此值用于带地址信息的主节点将相关从节点切换到诊断调度模式
28 05 xx enableRxAndTxWithEnhanceAddressInformation 用增强的地址信息使能接收和发送,此值用于带地址信息的主节点将相关从节点切换到应用调度模式

上文中的xx代表通信类型,下文中的xx代表控制类型

28 xx 01 常规应用报文,除了网络报文和诊断报文,都统称常规应用报文
28 xx 02 网络管理报文
28 xx 03 常规应用报文和网络管理报文

正响应只响应控制类型
eg:
02 28 01 03
02 68 01

支持的否定响应码
12 SFNS 请求报文中的子功能参数不支持
13 IMLOIF 报文长度/格式错误
22 CNC 请求诊断会话控制的条件不满足
31 ROOR 请求超出范围
7F 当前会话模式服务不支持

0x3E

诊断仪在线服务

功能: 不会使ECU执行任何诊断操作,单纯告诉ECU诊断仪仍旧处于连接状态,ECU接收到这个报文之后,会把返回默认会话的定时器清零

非默认会话下,长时间没有收到诊断仪发送的诊断请求,会自动返回默认会话
发送请求:3E 00
肯定响应:7E 00

发送请求:3E 80
肯定响应:无肯定响应报文回复

UDS ID 子功能的bit7 禁止肯定响应位 ID为80 = 1000 0000,bit7为1

支持的否定响应码
12 SFNS 请求报文中的子功能参数不支持
13 IMLOIF 报文长度/格式错误

0x85

ControlDTCSetting就是控制诊断故障码设置服务

功能:控制诊断故障码设置服务就是让服务端停止或恢复DTC状态位更新

正常情况下,ECU故障检测功能模块会根据故障检测的结果实时更新每个DTC的状态,85服务用来停止ECU更新DTC状态,停止故障检测功能。

在停止DTC状态更新期间,读故障码的19服务和清楚故障码的14服务功能不受影响。

当我们用读取DTC信息(0x19)服务的特定子功能去读取DTC信息,这时候在该服务的肯定响应在DTC参数状态中会记录所有DTC状态位,我们可以看到这些DTC信息相较于上次读取是被冻结了或还在记录。
该服务可设置支持功能寻址,可控制单个服务端或多个服务端的DTC状态位更新。

在扩展会话下执行,与28服务结合使用,使用28服务停止某个ECU的通信报文之后,会导致其他的ECU记录丢失通信故障码,通常先发送85服务来停止DTC记录,再发送28服务指令。

85 01 ON 恢复根据正常的操作条件,服务端应恢复诊断故障码状态位的更新
85 02 OFF停止服务端应停止诊断故障码状态位的更新

支持的否定响应码
12 SFNS 请求报文中的子功能参数不支持
13 IMLOIF 报文长度/格式错误
22 CNC 请求诊断会话控制的条件不满足
7F 当前会话模式服务不支持

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值