UDS 诊断 - LinkControl(链路控制)(0x87)服务

UDS 诊断服务系列文章目录

UDS 诊断 - DiagnosticSessionControl(诊断会话控制)(0x10)服务
UDS 诊断 - ECUReset(ECU重置)(0x11)服务
UDS 诊断 - SecurityAccess(安全访问)(0x27)服务
UDS 诊断 - CommunicationControl(通信控制)(0x28)服务
UDS 诊断 - TesterPresent(测试仪保活)(0x3E)服务
UDS 诊断 - AccessTimingParameter(访问计时参数)(0x83)服务
UDS 诊断 - SecuredDataTransmission(受保护的数据传输)(0x84)服务
UDS 诊断 - ControlDTCSetting(控制DTC设置)(0x85)服务
UDS 诊断 - ResponseOnEvent(基于事件响应)(0x86)服务
UDS 诊断 - LinkControl(链路控制)(0x87)服务


一、服务说明

LinkControl(链路控制)服务用于控制客户端与服务器之间的通信,以便获取诊断(如编程)用的总线宽带。在非默认诊断会话期间能够重新配置通信参数(例如,更改 CAN 波特率或重新配置 FlexRay 周期设计)的数据链路层中可以选择此服务。

此服务用于将数据链路层转换至特定状态,以便利用最适合编程的更高诊断宽带。为解决功能通信约束(例如,须同时在多个服务器中转换波特率),将转换操作分成以下两步:

  • **第 1 步:**客户端验证是否可以进行转换,并告知服务器待使用的模型转换机制。在客户端执行第 2 步操作之前,各服务器均须做出肯定响应(suppressPosRspMsgIndicationBit = False)。此步骤的操作实际上不执行模型转换。

  • **第 2 步:**客户端实际上是请求模式转换(如更高的波特率)。只有在成功完成第 1 步的操作后才应请求执行此步骤的操作。进行功能通信时,建议在执行模式转换期间服务器应不作出任何响应(suppressPosRspMsgIndicationBit = True),这是因为,某个服务器可能已经转换至新模式,而其他服务器仍然处于模式转换中。

请求消息中的 linkControlType(链路控制类型)参数连同有条件的 linkControlModeIdentifier / linkRecord(链路控制模式标识符 / 链路记录)参数提供了一种使用预定义模式转换参数或专门定义的模式转换参数的转换机制。

此服务与非默认会话相连。会话层计时器超时将使服务器重新转换至其正常运行模式。这同样适用于执行 0x11 服务的情况。一旦进行数据链路模式转换,任何附加的非默认会话请求应不造成重新转换至默认运行模式(如编程会话期间)。

二、请求消息

1.请求消息定义

下表定义了请求消息 linkControlType = verifyModeTransitionWithFixedParameter

字节参数名称字节值
#1LinkControl(链路控制)请求SID0x87
#2sub-function = [ linkControlType ]0x01
#3linkControlModeIdentifier(链路控制模式标识符)0x00 - 0xFF

下表定义了请求消息 linkControlType = verifyModeTransitionWithSpecificParameter

字节参数名称字节值
#1LinkControl(链路控制)请求SID0x87
#2sub-function = [ linkControlType ]0x02

#3
#4
#5
linkRecord[] = [
modeParameterHighByte
modeParameterMiddleByte
modeParameterLowByte ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

下表定义了请求消息 linkControlType = transitionMode

字节参数名称字节值
#1LinkControl(链路控制)请求SID0x87
#2sub-function = [ linkControlType ]0x03

2.请求消息子功能参数定义

子功能参数 linkControlType(链路控制类型)用在 LinkControl(链路控制)请求消息中,用以描述服务器中待执行的操作。

第 6 位值说明
0x00保留
0x01verifyModeTransitionWithFixedParameter(验证能否使用固定参数进行模式转换)
该参数用于验证能否使用 linkControlModeIdentifier(链路控制模式标识符)数据参数所指定的预定义参数进行模式转换。
0x02verifyModeTransitionWithSpecificParameter(验证能否使用特定参数进行模式转换)
该参数用于验证能否使用 LinkRecord(链路记录)数据参数所指定的并经过专门定义的参数(如特定波特率)进行模式转换。
0x03transitionMode(转换模式)
该子功能参数请求服务将数据链路转换至前述验证消息所请求的模式。
0x04 - 0x3F保留
0x40 - 0x5FVehicleManufacturerSpecific(由车辆制造商规定)
0x60- 0x7ESystemSupplierSpecific(由系统供应商规定)
0x7F保留

2. 请求消息数据参数定义

定义
linkControlModeIdentifier(链路控制模式标识符)
此条件参数引用了一个待转换的已定义的固定模式参数。
LinkRecord(链路记录)
此条件参数记录包含一个特定的模式参数,用于子功能参数表明使用特定参数的情况。

下表定义了 linkControlModeIdentifier(链路控制模式标识符)的值。

字节值说明
0x00保留
0x01PC9600Baud
该值指定了 9.6KB 时的标准 PC 波特率。
0x02PC19200Baud
该值指定了 19.2KB 时的标准 PC 波特率。
0x03PC38400Baud
该值指定了 38.4KB 时的标准 PC 波特率。
0x04PC5760000Baud
该值指定了 57.6KB 时的标准 PC 波特率。
0x05PC115200Baud
该值指定了 115.2KB 时的标准 PC 波特率。
0x06 - 0x0F保留
0x10CAN125000Baud
该值指定了 125KB 时的标准 CAN 波特率。
0x11CAN250000Baud
该值指定了 250KB 时的标准 CAN 波特率。
0x12CAN500000Baud
该值指定了 500KB 时的标准 CAN 波特率。
0x13CAN1000000Baud
该值指定了 1MB 时的标准 CAN 波特率。
0x14 - 0x1F保留
0x20ProgrammingSetup(编程设置)
该值规定了网络的编程设置,可根据车辆的网络要求以参数表示。
0x21 - 0xFF保留

三、肯定响应消息

1. 肯定响应消息定义

字节参数名称字节值Cvt
#1LinkControl(链路控制)响应SID0xC7
#2linkControlType(链路控制类型)0x00 - 0x7F

2. 肯定响应消息数据参数定义

定义
linkControlType(链路控制类型)
该参数是请求消息中 LinkControlType(链路控制类型)子功能参数第 6 至 0 位的回显。

四、支持的NRC

NRC说明
0x12不受支持的子功能
0x13消息长度不正确或格式无效
0x22条件不正确
若不满足所请求的 LinkControl(链路控制)的标准,则应回传此 NRC。
0x24请求序列错误
若客户端请求在不执行指定待转换模式的前述验证步骤的情况下转换运行模式,则应回传此 NRC。
0x31请求超过限值
以下情况下,应回传该 NRC:
所请求的 linkControlModeIdentifier(链路控制模式标识符)无效;特定的 modeParameter(模式参数)(linkRecord(链路记录))无效。

五、示例

1. 固定波特率的转换(PC 波特率 115200 kBit/s)

step1:验证是否满足波特率选择开关的所有标准

suppressPosRspMsgIndicationBit = False

req   87 01 05
resp  C7 01

step 2:转换波特率

suppressPosRspMsgIndicationBit = True

req   87 83

// 服务其未作出响应。客户端和服务器须转换其通信链路的波特率。

2. 特定波特率的转换(150 kBit/s)

step1:验证是否满足波特率选择开关的所有标准

suppressPosRspMsgIndicationBit = False
modeParameter = 0x0249F0

req   87 02 02 49 F0
resp  C7 02

step 2:转换波特率

suppressPosRspMsgIndicationBit = True

req   87 83

// 服务其未作出响应。客户端和服务器须转换其通信链路的波特率。

3. FlexRay 周期设置至 ‘编程’ 的转换

以下示例显示了将 FlexRay 网络周期设计转换至已优化的 ‘编程’ 模式(例如,利用已增强的动态编程段)的场景

step1:验证是否满足调度器开关的所有标准

suppressPosRspMsgIndicationBit = False

req   87 01 20
resp  C7 01

step 2:转换至编程调度器

suppressPosRspMsgIndicationBit = True

req   87 83

// 服务其未作出响应。客户端和服务器须转换其 FlexRay 通信链路的周期设计。
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值