UDS协议介绍-------10服务

1、$10诊断服务

根据<<1SO14229-1>>标准文档中针对10服务做了详细说明,主要体现以下几点:

10服务是用来使能Server(即ECU)不同诊断会话的一种服务

不同的诊断会话则规定了Server在相应session可以开启的功能权限

在不同的诊断会话则因使用对应的数据链路层的时间参数

其中最核心的是诊断服务权限控制,如下图所示:明确规定了不同诊断服务在默认会话和

非默认会话下的可用性,其中“X”则代表可用,“not applicable"则代表不可用。

根据14229-1标准,10服务的请求格式如下图:

DiagnosticSessionControl Request SID:诊断会话控制SID,固定为10。

SubFunction (diagnosticSessionType):会话类型,如默认会话01,编程会话02等。

10服务的会话类型主要可分为以下六种:

2、10服务示例:

在不考虑特殊场景,只需发送"10 02" 诊断请求便可以让Server进入编程会话,如下图:

suppressPosRspMsgIndicationBit:是Subfunction的Bit7 位。

若该Bit位为1,则表示抑制正响应,Server不需要给Client正响应。

若该Bit位为0,则表示不抑制正响应,Server应该给予Client正响应。

10服务诊断正响应的格式如下图所示:

其中sessionParameterRecord参数的具体涵义如下图所示:

关于P2server_max参数(2Byte)及P2*server_max(2Byte)参数值来源于客户诊断需求规范,按照客户需求配置即可。

P2Server_max:该参数指ECU在收到请求和给出响应之间的这个时间间隔,它描述了ECU的反应速度。单位为1ms

P2*Server_max:该参数与P2Server_max类似,区别在于P2*Server_max该参数是在ECU给出NRC 0x78之后生效的。(个人理解为,ECU收到请求到给出NRC 0x78的最长时间),单位为10ms

官方文档参数解释如下图:

ETAS工具下该参数通过如下配置:

10诊断服务的负响应格式如下:

ISO14229-1针对所有的诊断服务提供了一种统一的诊断负响应的格式:7F+SID+NRC

NRC表示Negetive Response Code。每个NRC具有唯一的含义来代表当前诊断请求错误的原因所在。每个诊断服务

支持的NRC也不尽相同,具体支持的NRC需要参考ISO14229-1标准文档。对于10服务而言支持的NRC如下图:

实际CANOE数据截图如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sky丶半导体

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

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

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

打赏作者

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

抵扣说明:

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

余额充值