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)服务
数据传输功能单元
UDS 诊断 - ReadDataByIdentifier(按标识符读取数据)(0x22)服务
UDS 诊断 - ReadMemoryByAddress(按地址读取内存)(0x23)服务
UDS 诊断 - ReadScalingDataByIdentifier(按标识符读取换算数据)(0x24)服务
UDS 诊断 - ReadDataByPeriodicIdentifier(按周期性标识符读取数据)(0x2A)服务
UDS 诊断 - DynamicallyDefineDataIdentifier(动态定义数据标识符)(0x2C)服务
UDS 诊断 - WriteDataByIdentifier(按标识符写数据)(0x2E)服务
UDS 诊断 - WriteMemoryByAddress(按地址写内存)(0x3D)服务
存储数据传输功能单元
UDS 诊断 - ClearDiagnosticInformation(清除诊断信息)(0x14)服务
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(1) - 服务说明
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(2) - 请求消息
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(3) - 响应消息
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(4) - 示例
输入输出控制功能单元
UDS 诊断 - InputOutputControlByIdentifier(按标识符的输入输出控制)(0x2F)服务
例程功能单元
UDS 诊断 - RoutineControl(例程控制)(0x31)服务
上传下载功能单元
UDS 诊断 - RequestDownload(请求下载)(0x34)服务
UDS 诊断 - RequestUpload(请求上传)(0x35)服务
UDS 诊断 - TransferData(传输数据)(0x36)服务
UDS 诊断 - RequestTransferExit(请求传输终止)(0x37)服务
UDS 诊断 - RequestFileTransfer(请求文件传输)(0x38)服务
文章目录
一、服务说明
本服务旨在开启 / 关闭服务器一些消息的传输和 / 或接收(例如,应用程序通信消息)。
二、请求消息
1.请求消息定义
字节 | 参数名称 | 字节值 |
---|---|---|
#1 | CommunicationControl(通信控制)请求SID | 0x28 |
#2 | sub-function = [ controlType ] | 0x00 - 0xFF |
#3 | communicationType(通信类型) | 0x00 - 0xFF |
#4 | nodeIdentificationNumer(节点标识符)(高位字节) controlType 为 0x04 或 0x05 时,使用该参数 | 0x00 - 0xFF |
#5 | nodeIdentificationNumer(节点标识符)(低位字节) controlType 为 0x04 或 0x05 时,使用该参数 | 0x00 - 0xFF |
2.请求消息子功能参数定义
子功能参数 controlType(控制类型)包含服务器应如何修改 communicationType(通信类型)参数中引用的通信类型相关信息。
第 6 至 0 位 | 说明 |
---|---|
0x00 | enableRxAndTx(启用 Rx 和 Tx) 该值表明应为规定的 communicationType(通信类型)启用接收和传输消息。 |
0x01 | enableRxAndDisableTx(启用 Rx 和禁用 Tx) 该值表明应为规定的 communicationType(通信类型)启用接收消息,并禁用传输消息。 |
0x02 | disableRxAndEnableTx(禁用用 Rx 和 启用Tx) 该值表明应为规定的 communicationType(通信类型)禁用接收消息,并启用传输消息。 |
0x03 | disableRxAndTx(启用 Rx 和 Tx) 该值表明应为规定的 communicationType(通信类型)禁用接收和传输消息。 |
0x04 | enableRxAndDisableTxWithEnhancedAddressInformation(根据强化的地址信息启用 Rx 和禁用 Tx) 该值表明寻址到的总线主机应将相关子总线段切换为仅诊断调度方式。 |
0x05 | enableRxAndTxWithEnhancedAddressInformation(根据强化的地址信息启用 Rx 和 Tx) 该值表明寻址到的总线主机应将相关子总线段切换为应用程序调度方式。 |
0x06 - 0x3F | 保留 |
0x40 - 0x5F | VehicleManufacturerSpecific(由车辆制造商规定) |
0x60- 0x7E | SystemSupplierSpecific(由系统供应商规定) |
0x7F | 保留 |
3. 请求消息数据参数定义
定义 |
---|
communicationType(通信类型) 使用该参数来引用将受控制的通信类型,communicationType(通信类型)参数为各位代码值,此参数可同时控制多个通信类型。 |
nodeIdentificationNumer(节点标识号) 该两字节参数用于标识车辆内某些地方的子网络内、无法使用低 OSI 层 1 至 6 层的寻址方法进行寻址的节点。仅当子功能参数 controlType(控制类型)设置为 0x04 或 0x05 时存在该参数。 |
3.1 communicationType(通信类型)
下表为 communicationType(通信类型)和 subnetNumber(子网号)字节的定义
位编码 | 值 |
---|---|
0 - 1 | 0x0:保留 0x1:正常应用报文 0x2:网络管理报文 0x3:应用和网络管理报文 |
2 - 3 | 0x0 - 0x3:保留 |
4 - 7 | 0x0:禁用 / 启用指定通信类型。此代码仅禁用节点与所连接网络的通信,但不禁用网络中其他节点的通信。 0x1 - 0xE:禁用 / 启用由子网号标识的规定子网。 0xF:禁用 / 启用接收请求的网络(接收节点(服务器))。 |
3.2 nodeIdentificationNumer(节点标识号)
nodeIdentificationNumer(节点标识号)是一个双字节值,代表与车辆网络链接的某一节点的唯一标识号,在不同的汽车线路中,相同节点可连接至不同的网络。(例如,在某一车型中,具有唯一节点地址的 LIN 节点连接至网络 A ,然而在另一车型中,相同的节点可连接至网络B)。因此,nodeIdentificationNumer(节点标识号)提供了一种机制,使远程节点所连接的关联主节点将相关网络转换为某种诊断模式(例如,禁用 LIN 网络的正常通信)。只有检测到连接了由 nodeIdentificationNumer(节点标识号)标识的相关节点连接的关联主节点,才能执行请求 communication(通信控制)服务。
该参数仅在 controlType(控制类型)值设置为 0x04 或 0x05 时可用。
下表定义了 nodeIdentificationNumer(节点标识号)的值。
字节值 | 说明 |
---|---|
0x0000 | 保留 |
0x0000 - 0xFFFF | nodeIdentificationNumer(节点标识号) 这些值标识车辆总线系统上连接的节点。仅在标识号有效时,用于接收的 ECU 才能执行请求的 ConmmunicationControl(通信控制)功能。 |
三、肯定响应消息
1. 肯定响应消息定义
字节 | 参数名称 | 字节值 |
---|---|---|
#1 | CommunicationControl(通信控制)响应SID | 0x68 |
#2 | sub-function = [ controlType ] | 0x00 - 0x7F |
2. 肯定响应消息数据参数定义
下表为响应消息数据参数定义
定义 |
---|
controlType(控制类型) 该参数是对来自请求消息的子功能参数第 6 至 0 位的回显。 |
四、支持的NRC
NRC | 说明 |
---|---|
0x12 | 不受支持的子功能 |
0x13 | 消息长度不正确或格式无效 |
0x22 | 条件不正确 服务器因处于关键的正常模式活动而无法禁用 / 启用所请求的通信类型时,使用该NRC。 |
0x31 | 请求超过限值 如果服务器探测到 communicationType(通信类型)或 nodeIdentificationNumber(节点标识号)参数出差,响应该NRC。 |
五、示例
设置抑制肯定响应消息指示位为 “0”。
1. 禁用传输网络消息
req 28 01 02
resp 68 01
2. 将远程网络转换为与地址 0x000A 的节点相连接的仅诊断调度方式
req 28 04 01 00 0A
resp 68 04