代码收藏家 技术教程 2022-12-28 UDS协议:最全的历史沉淀 UDS协议 UDS应用层协议解读(上) ISO 15765-3主要包含以下内容 应用层时间参数 P2CAN_Client P2*CAN_Client P2CAN_Server P2*CAN_Server P3CAN_Client_Phys P3CAN_Client_Func 会话层时间参数 S3Client 当ECU处于非默认会话模式时,test端会周期性地向ECU端发送诊断设备在线的请求,使ECU端保持在非默认会话模式下,不至于S3Server timeout的发生 S3Server 会话模式 默认会话模式 非默认会话模式 ISO 14229-1主要包含以下内容 服务响应码实装规则 ECU响应码实装规则 物理寻址带sub-function的请求 物理寻址不带sub-function的请求 功能寻址带sub-function的请求 功能寻址不带sub-function的请求 子功能参数结构 诊断服务 DTC状态 ISO 14229-1 概述 定义诊断系统的通用需求 与数据链路无关的诊断服务 应用层接口服务 应用层服务概述 服务原语 请求request 请求_确认req_confirm 指示indication 响应response 响应_确认rsp_confirm 确认confirm 有确认服务 无确认服务 应用层接口服务 车辆系统需求 客户(Tester)和服务器(ECU)统一编址 每一个Tester和ECU的地址是唯一的 RA(远程地址)独立分配 应用层协议 A_SDU——应用层服务数据单元 A_PDU——应用层协议数据单元 请求A_PDU 子功能参数$Level(LEV_)的定义 1字节数据 Bit7——禁止肯定响应指示位 Bit6-0——子功能参数值(0x00~0x7F) 否定A_PDU 否定响应码NRC_ SNS——服务器不支持客户端请求的诊断服务 SFNS——服务器不支持客户端请求服务的子功能 IMLOIF——请求报文的数据长度(或者格式)不符合标准 ROOR——请求超出范围 RCRRP 服务器正忙,暂时无法处理客户端发出的请求 A_PCI——应用层协议控制信息 两种不同的格式(由服务原语和Result参数决定) A_PCI(SI) A_PCI(NR_SI,SI) 服务标识符SI 请求服务标识符SI 肯定响应服务标识符SI 否定响应服务标识符SI A_PUD=A_PCI+A_SDU 服务响应的执行规则 对带子功能参数的请求消息的响应 对物理寻址的客户端请求消息的 对功能寻址的客户端请求消息 对不带子功能参数的请求消息的响应 对物理寻址的客户端请求消息 对功能寻址的客户端请求消息 各功能单元诊断服务 诊断和通信管理功能单元 诊断和通信管理 DiagnosticSessionControl (0x10)服务 用于使能服务器中不同的诊断会话 诊断会话 默认会话模式 非默认会话模式 编程模式 扩展模式 不同的诊断会话具有 不同的功能 不同的定时参数 受到不同的安全访问保护 请求报文 肯定响应 诊断会话模式的状态转移图 DiagnosticSessionControl (10hex)服务 diagnosticSession Type子功能参数 不同会话所允许的诊断服务 支持的否定响应码 0x12 不支持请求服务的子功能 0x13 请求报文的数据长度(或者格式)不符合标准 0x22 条件不满足 SecurityAccess(0x27)服务 安全访问过程的本质 提供保护机制 请求——requestSeed和sendKey子功能 子功能securityAccess Type 肯定响应 支持的否定响应码 0x12 不支持请求服务的子功能 0x13 请求报文的数据长度(或者格式)不符合标准 0x22 条件不满足 0x24 请求顺序错误 0x31 请求超出范围 0x35 无效密钥 0x36 尝试次数超限 0x37 延迟时间未到 CommunicationControl(0x28)服务 用于打开/关闭服务器对非诊断消息的发送和/或接收 请求 子功能controlType 肯定响应 支持的否定响应码 0x12 不支持请求服务的子功能 0x13 请求报文的数据长度(或者格式)不符合标准 0x22 条件不满足 0x31 请求超出范围 TesterPresent(0x3E服务) 用于向服务器指示诊断仪仍然连接在网络上,先前激活的特定诊断服务和/或通信功能仍然保持激活状态 周期性发送 请求 肯定响应 支持的否定响应码 0x12 不支持请求服务的子功能 0x13 请求报文的数据长度(或格式)不符合标准 LinkControl(0x87)服务 请求 子功能linkControlType 肯定响应 支持的否定响应码 0x12 不支持请求服务的子功能 0x13 请求报文的数据长度(或者格式)不符合标准 0x22 条件不满足 0x24 请求顺序错误 0x31 请求超出范围 其他服务介绍 数据传输功能单元 ReadDataByldentifier(0x22)服务 客户端请求读取由数据标识符识别的某个记录的当前值 ReadMemoryByAddress(0x23)服务 客户端请求读取指定存储器范围数据的当前值 ReadScalingDataByIdentifier(0x24)服务 客户端请求读取由数据标识符识别的某个记录的定标信息 ReadDataByPeriodicldentifier(0x2A)服务 客户端请求周期性传输服务器中的数据 DynamicallyDefineDataIdentifier(0x2c)服务 客户端请求动态定义由ReadDataByldentifier服务读取的数据标识符 通过现有的DID或存储器地址定义新的DID 功能强大 实现复杂 WriteDataByIdentifier(0x2E)服务 客户端请求写入由数据标识符指定的某个记录 WriteMemoryByAddress(x3D)服务 客户端请求将数据写入到指定存储器范围内 传输储存的数据功能单元 ReadDTCInformation(0x19)服务 ClearDiagnosticInformation(0x14)服务 输入输出控制功能单元 InputOutputControlByldentifier(0x2F)服务 用于替换服务器输入信号的值或内部功能 控制电子系统的某个输出(执行器) 远程激活例程功能单元 RoutineControl(0x31)服务 用于远程请求启动、停止某个例程或请求例程的执行结果 上传下载功能单元 RequestDownload(0x34)服务 RequestUpload(0x35)服务 TransferData(0x36)服务 RequestTransferExit(0x37)服务 UDS诊断入门 肯定响应[SID+0x40] 否定响应7F+SID+NRC 7种重要的服务 $10Diagnostic Session Control(诊断会话) $14 Clear Diagnostic Information(清除诊断信息) $19 Read DTC Information $22 Read Data By Identifier(通过ID读数据) $27 Security Access(安全访问) $2EWrite Data By Identifier(通过ID写数据) $3E Tester Present(待机握手) MCU stm32 单片机 嵌入式硬件 网络协议 物联沃分享整理物联沃-IOTWORD物联网 » UDS协议:最全的历史沉淀