【车载开发系列】UDS诊断---链接控制服务($0x87)

【车载开发系列】UDS诊断—链接控制服务($0x87)

诊断---链接控制服务($0x87)

  • 【车载开发系列】UDS诊断---链接控制服务($0x87)
    • 一.概念定义
    • 二.应用场景
    • 三.报文格式
      • 1)报文请求
      • 2)肯定响应
      • 3)否定响应
      • 4)参数说明

一.概念定义

可以用来改变网络传输速率,确切的说是客户端请求控制通信波特率,这些数据链路层允许在活动诊断会话期间进行波特率转换。
此服务绑定到非defaultSession,也就是链接控制服务应在非默认会话下执行,当发生会话转换(诊断会话控制服务)或ECU复位,通信速率要恢复默认状态。
LinkControl服务用于控制客户端和服务器之间的通信链接波特率,以交换诊断数据。 该服务可应用于那些允许在活动诊断会话期间进行波特率转换数据链路层。

二.应用场景

最为常用的应用场景是在BootLoader刷写程序时临时提高传输速率,刷写完毕后再恢复正常,以提高刷写速度。这个服务在之前车上CAN总线通信速率较低的时候有应用场景,现在应用比较少是因为车上的CAN总线速率普遍比较高了,能到500K,刷写程序也够用,所以就不需要改变通信速率了。而且运行过程中改变通信速率很容易出现错误帧。
链接控制服务只适用于集中特定的底层传输协议,例如CAN、Flexray等速率可变的通信方式。

三.报文格式

在改变传输速率前,要先校验ECU是否支持某种控制方式(用子功能0x01/0x02),校验通过后,再发命令改变传输速率。且如果改变传输速率的命令是用功能寻址发送的,那么应该将禁止肯定响应位置为有效,以防止某些ECU的通信速率已经改变后,另外的ECU才发送肯定响应,导致总线上出现错误帧。

1)报文请求

当sub-function参数等于verifyBaudrateTransitionWithFixedBaudrate(0x01)时,诊断请求具体格式如下:
【车载开发系列】UDS诊断---链接控制服务($0x87)_第1张图片
当sub-function参数等于verifyBaudrateTransitionWithSpecificBaudrate(0x02)时,诊断请求具体格式如下:
【车载开发系列】UDS诊断---链接控制服务($0x87)_第2张图片

2)肯定响应

在这里插入图片描述

3)否定响应

在NRC码中,需要格外注意0x31(requestOutOfRange)。因为这里的错误原因与其他服务的错误原因不太一样。
【车载开发系列】UDS诊断---链接控制服务($0x87)_第3张图片

4)参数说明

Hex Name Description
0x01 verifyBaudrateTransitionWithFixedBaudrate 验证是否可以执行到由baudrateIdentifier数据参数指定的预定义波特
0x02 verifyBaudrateTransitionWithSpecificBaudrate 验证是否可以执行到由linkBaudrateRecord数据参数指定的特定定义的波特率的转换
0x03 transitionBaudrate 将波特率转换为前面的验证消息中指定的波特率
0x40-0x5F vehicleManufacturerSpecific 主车场定义
0x60-0x7F systemSupplierSpecific 供应商定义

0x01和0x02都是比较常用的subfunction功能,对于没有给出具体格式定义的sub-function,请参看主车场给到的需求进行分析

你可能感兴趣的:(#,汽车嵌入式---UDS诊断,网络协议,网络,信息与通信)