跟我学UDS(ISO14229) ———— 0x87(LinkControl)

客户端请求控制通信波特率。LinkControl服务用于控制客户端和服务器之间的通信链接波特率,以交换诊断数据。 该服务可选地应用于那些数据链路层,这些数据链路层允许在活动诊断会话期间进行波特率转换。

在实现转换数据链路层的波特率过程中,将整个流程划分为两个步骤。主要是为了克服功能性通信,即必须同时在多个服务器中转换波特率。
步骤1:客户端验证是否可以执行转换,并通知服务器要使用的波特率。在客户端执行步骤2之前,要求每个服务器都应作出肯定响应。但此步骤并不执行波特率转换。
步骤2:客户端实际上请求转换波特率。仅在验证可以执行波特率转换(执行步骤#1)的情况下,才应执行此步骤。在进行功能通信的情况下,建议在转换波特率时(suppressPosRspMsgIndicationBit = TRUE),服务器不应有任何响应,因为一台服务器可能已经转换为新的波特率,而其他服务器仍需要传输它们响应消息(避免波特率不匹配)。

任何波特率转换应按以下方式进行:
⎯preventPosRspMsgIndicationBit = TRUE:成功发送/接收客户端请求消息后,该请求请求波特率转换。
⎯preventPosRspMsgIndicationBit = FALSE:成功发送/接收服务器肯定响应消息后,确认消息已成功接收,该请求请求波特率转换。

注意:此服务绑定到非defaultSession。 会话层计时器超时会将服务器转换回其正常运行速度。 如果执行ECUReset服务(十六进制),则同样适用。 过渡到另一个非defaultSession不会影响波特率。

诊断请求格式

当 sub-function参数等于verifyBaudrateTransitionWithFixedBaudrate(0x01)时,诊断请求具体格式如下:
在这里插入图片描述
当 sub-function参数等于verifyBaudrateTransitionWithSpecificBaudrate(0x02)时,诊断请求具体格式如下:
在这里插入图片描述
关于其他的sub-function的参数值以及说明,这边请看下表:

HexNameDescription
00ISOSAEReservedISO 保留,未定义
01verifyBaudrateTransitionWithFixedBaudrate验证是否可以执行到由baudrateIdentifier数据参数指定的预定义波特率的转换
02verifyBaudrateTransitionWithSpecificBaudrate验证是否可以执行到由linkBaudrateRecord数据参数指定的特定定义的波特率的转换
03transitionBaudrate将波特率转换为前面的验证消息中指定的波特率
04ISOSAEReservedISO保留,未定义
...
3F
40vehicleManufacturerSpecific主车场定义
...
5F
60systemSupplierSpecific供应商定义
...
7E
7FISOSAEReservedISO 保留,未定义

对于没有给出具体格式定义的sub-function,请参看主车场给到的需求进行分析。不可盲目套用在ISO中定义好的另外两个sub-function。

ISO定义的波特率参数如下:

HexNameDescription
00ISOSAEReservedISO 保留,未定义
01PC9600Baud9600 的标准PC波特率
02PC19200Baud19200 的标准PC波特率
03PC38400Baud38400 的标准PC波特率
04PC57600Baud57600 的标准PC波特率
05PC115200Baud115200 的标准PC波特率
06ISOSAEReservedISO 保留,未定义
...
0F
10CAN125000Baud125000 的标准CAN波特率
11CAN250000Baud250000 的标准CAN波特率
12CAN500000Baud500000 的标准CAN波特率
13CAN1000000Baud1000000 的标准CAN波特率
14ISOSAEReservedISO 保留,未定义
...
FF

正响应格式

具体的格式如下:
在这里插入图片描述

负响应NRC码

具体的NRC码如下:
在这里插入图片描述
在这些NRC码中,需要格外注意0x31(requestOutOfRange)。因为这里的错误原因与其他服务的错误原因不太一样。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小趴菜_自动驾驶搬砖人

谢谢大爷赏饭吃

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

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

打赏作者

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

抵扣说明:

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

余额充值