- 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
- 会话模式
- 默认会话模式
- 非默认会话模式
- 会话模式
- S3Client
- 应用层时间参数
- ISO 14229-1主要包含以下内容
- 服务响应码实装规则
- ECU响应码实装规则
- 物理寻址带sub-function的请求
- 物理寻址不带sub-function的请求
- 功能寻址带sub-function的请求
- 功能寻址不带sub-function的请求
- ECU响应码实装规则
- 子功能参数结构
- 诊断服务
-
- DTC状态
- 服务响应码实装规则
- ISO 15765-3主要包含以下内容
- 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)
- 子功能参数$Level(LEV_)的定义
- 否定A_PDU
- 否定响应码NRC_
- SNS——服务器不支持客户端请求的诊断服务
- SFNS——服务器不支持客户端请求服务的子功能
- IMLOIF——请求报文的数据长度(或者格式)不符合标准
- ROOR——请求超出范围
- RCRRP
- 服务器正忙,暂时无法处理客户端发出的请求
- 否定响应码NRC_
- 请求A_PDU
- A_PCI——应用层协议控制信息
- 两种不同的格式(由服务原语和Result参数决定)
- A_PCI(SI)
- A_PCI(NR_SI,SI)
- 服务标识符SI
- 请求服务标识符SI
- 肯定响应服务标识符SI
- 否定响应服务标识符SI
- 两种不同的格式(由服务原语和Result参数决定)
- A_PUD=A_PCI+A_SDU
- 服务响应的执行规则
- 对带子功能参数的请求消息的响应
- 对物理寻址的客户端请求消息的
- 对功能寻址的客户端请求消息
- 对不带子功能参数的请求消息的响应
- 对物理寻址的客户端请求消息
- 对功能寻址的客户端请求消息
- 对带子功能参数的请求消息的响应
- 各功能单元诊断服务
- 诊断和通信管理功能单元
- 诊断和通信管理
- DiagnosticSessionControl (0x10)服务
- 用于使能服务器中不同的诊断会话
- 诊断会话
- 默认会话模式
- 非默认会话模式
- 编程模式
- 扩展模式
- 不同的诊断会话具有
- 不同的功能
- 不同的定时参数
- 受到不同的安全访问保护
- 诊断会话
- 请求报文
- 肯定响应
- 诊断会话模式的状态转移图
-
- 用于使能服务器中不同的诊断会话
- DiagnosticSessionControl (10hex)服务
- diagnosticSession Type子功能参数
- 不同会话所允许的诊断服务
- 支持的否定响应码
- 0x12
- 不支持请求服务的子功能
- 0x13
- 请求报文的数据长度(或者格式)不符合标准
- 0x22
- 条件不满足
- 0x12
- SecurityAccess(0x27)服务
- 安全访问过程的本质
- 提供保护机制
- 请求——requestSeed和sendKey子功能
- 子功能securityAccess Type
- 肯定响应
- 支持的否定响应码
- 0x12
- 不支持请求服务的子功能
- 0x13
- 请求报文的数据长度(或者格式)不符合标准
- 0x22
- 条件不满足
- 0x24
- 请求顺序错误
- 0x31
- 请求超出范围
- 0x35
- 无效密钥
- 0x36
- 尝试次数超限
- 0x37
- 延迟时间未到
- 0x12
- 安全访问过程的本质
- CommunicationControl(0x28)服务
- 用于打开/关闭服务器对非诊断消息的发送和/或接收
- 请求
- 子功能controlType
- 肯定响应
- 支持的否定响应码
- 0x12
- 不支持请求服务的子功能
- 0x13
- 请求报文的数据长度(或者格式)不符合标准
- 0x22
- 条件不满足
- 0x31
- 请求超出范围
- 0x12
- TesterPresent(0x3E服务)
- 用于向服务器指示诊断仪仍然连接在网络上,先前激活的特定诊断服务和/或通信功能仍然保持激活状态
- 周期性发送
- 请求
- 肯定响应
- 支持的否定响应码
- 0x12
- 不支持请求服务的子功能
- 0x13
- 请求报文的数据长度(或格式)不符合标准
- 0x12
- LinkControl(0x87)服务
- 请求
- 子功能linkControlType
- 肯定响应
- 支持的否定响应码
- 0x12
- 不支持请求服务的子功能
- 0x13
- 请求报文的数据长度(或者格式)不符合标准
- 0x22
- 条件不满足
- 0x24
- 请求顺序错误
- 0x31
- 请求超出范围
- 0x12
- 其他服务介绍
-
- DiagnosticSessionControl (0x10)服务
- 诊断和通信管理
- 数据传输功能单元
- ReadDataByldentifier(0x22)服务
- 客户端请求读取由数据标识符识别的某个记录的当前值
- ReadMemoryByAddress(0x23)服务
- 客户端请求读取指定存储器范围数据的当前值
- ReadScalingDataByIdentifier(0x24)服务
- 客户端请求读取由数据标识符识别的某个记录的定标信息
- ReadDataByPeriodicldentifier(0x2A)服务
- 客户端请求周期性传输服务器中的数据
- DynamicallyDefineDataIdentifier(0x2c)服务
- 客户端请求动态定义由ReadDataByldentifier服务读取的数据标识符
- 通过现有的DID或存储器地址定义新的DID
- 功能强大
- 实现复杂
- WriteDataByIdentifier(0x2E)服务
- 客户端请求写入由数据标识符指定的某个记录
- WriteMemoryByAddress(x3D)服务
- 客户端请求将数据写入到指定存储器范围内
- ReadDataByldentifier(0x22)服务
- 传输储存的数据功能单元
- ReadDTCInformation(0x19)服务
- ClearDiagnosticInformation(0x14)服务
- 输入输出控制功能单元
- InputOutputControlByldentifier(0x2F)服务
- 用于替换服务器输入信号的值或内部功能
- 控制电子系统的某个输出(执行器)
- InputOutputControlByldentifier(0x2F)服务
- 远程激活例程功能单元
- RoutineControl(0x31)服务
- 用于远程请求启动、停止某个例程或请求例程的执行结果
- 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(待机握手)
- UDS应用层协议解读(上)

















![[学习笔记] 二进制小数表示方法](https://img-blog.csdnimg.cn/f5bc7c1a5487406f95b1fce456335fbf.jpg#pic_center)
