- UDS应用层协议解析
- UDS应用层协议解读(下)
- 诊断服务分类
- 基础服务类
- 0x10
- 0x11
- ECUReset
- 主要作用是通过外部诊断请求进行ECU复位
- 复位模式
- 0x01
- 硬件复位
- 0x02
- 按键复位
- 0x03
- 软件复位
- 0x04
- 启用电源关机
- 0x05
- 禁用电源关机
- 0x01
- 服务实装规则
- ECU收到诊断仪发送的ECU Reset请求时,先返回肯定响应码,再执行Reset动作
- ECU执行Reset动作后,会话模式迁移至默认会话模式
- 28服务、85服务设置的状态需要恢复至默认状态,27服务解锁状态需重新锁定
- ECUReset
- 0x27
- SecurityAccess
- 解锁ECU安全等级时的交互流程
- 安全解锁状态机
- 安全访问failure counter和delay timer更新策略
- 如果ECU在关机之前failure counter不等于0,接下来开机的时候将failure counter清零,以此同时,delay timer开始计时,10s内拒绝任何安全解锁请求;如果ECU在关机之前failure counter等于0,接下来开机的时候不进行delay timer计时,ECU可以立即响应新的安全解锁请求;如果ECU已经解锁成功了 返回肯定响应码了,接下来Tester再次向ECU发送相同等级的安全解锁请求,ECU返回固定的seed 00;ECU在已经解锁的情况下收到send key请求,通过返回NRC24告诉对方,自己已经成功解锁过。
- 应用场景
- SID Security Check
- 服务在执行时需要首先解锁安全等级
- 0x2E
- 0x34
- 0x36
- 0x37
- 服务在执行时需要首先解锁安全等级
- Sub-function Security Check
- 在执行时需要解锁安全等级
- 0x10
- 在执行时需要解锁安全等级
- RID Security Check
- 在执行时需要解锁安全等级
- 0x31
- 在执行时需要解锁安全等级
- SID Security Check
- SecurityAccess
- 0x3E
- TesterPresent
- 主要作用
- Tester通过该服务使ECU保持在当前会话模式
- 请求消息特点:通常为功能寻址、周期性请求
- ECU收到该请求时,Restart S3 sever timer
- 通常是带肯定响应抑制位的,不需要ECU反馈postive response
- 主要作用
- TesterPresent
- 数据交互类
- 0x22
- ReadDataByIdentifier
- 0x2E
- WriteDataByIdentifier
- DID属性分类
- ECU基本信息类:软/硬件版本号、序列号、装配日期、零部件号等
- ECU运行动态信息类:电源电压、电机转速、电机电流、方向盘角度、方向盘扭矩等
- .ECU配置信息:工作模式(sport/comfort/snow/4WD)、ECU当前机型是否配置等
- Implement rules
- 0x22服务Tester可以同时读取多个DID(不同OEM式样定义不一样)
- 0x2E服务Tester同时只能写一个DID
- 0x2E服务需要安全等级解锁后才支持
- 0x22
- 故障交互类
- 0x14
- ClearDiagnosticInformation
- DTC group
- P类
- C类
- B类
- U类
- Implement rules
- ECU 需在发送肯定响应前清除 DTC。如果 ECU 支持存储 DTC 的多个备份(例如:分别存在 RAM和 EEPROM中),其应将所存储的 DTC 信息全部清除
- 在执行完“清除诊断信息”后,如果接收到读取故障信息的请求, ECU 不允许返回任何 DTC
- 当接收到此诊断请求后,即使未存储有 DTC, ECU 也需返回肯定响应
- 此服务不允许依赖于其它的服务,即使故障存储器不可读, ECU 也应该清除故障信息
- 清除诊断信息的方式:接收到诊断工具发送的清除诊断信息(14h)服务清除或故障满足自动恢复条件
- DTC group
- ClearDiagnosticInformation
- 0x19
- ReadDTCInformation
- sub-function definition
- 0x01
- ReportNumberOfDTCByStatusMask
- 0x02
- reportDTCByStatusMask
- 0x04
- reportDTCSnapshotRecordByDTCNumber
- 0x06
- reportDTCExtDataRecordByDTCNumber
- 0x0A
- reportSupportedDTC
- 0x01
- sub-function definition
- DTC
- 3字节DTC码
- DTC状态
- DTC状态是一个字节数据,一共有8bit,每个bit有特殊的含义,每个bit置0、置1的逻辑也不一样
- 快照数据
- 扩展数据
- ReadDTCInformation
- 0x85
- ControlDTCSetting
- 主要作用
- 控制DTC的状态更新,保存动作的开启和停止
- 实装规则
- 当发生以下情况时,ECU 中故障码的设置功能应重新开启
- 接收到控制模式为1(开启)的 ControlDTCSetting 请求报文(禁止肯定响应位有效时)或成功发送了肯定响应(禁止肯定响应位无效时)
- ECU 复位
- 诊断会话从非默认诊断会话变为默认诊断会话
- ReadDTCInformation服务和ClearDiagnosticInformation 服务(14h)应不受此服务影响
- 当发生以下情况时,ECU 中故障码的设置功能应重新开启
- 主要作用
- ControlDTCSetting
- 0x14
- 软件升级类
- 0x28
- 软件升级相关的
- 应用背景
- ECU软件升级的时候,进行总线负荷的控制,把一些非诊断报文的通信给停止掉,这样一来,总线就能完全的空闲下来,接下来在软件进行升级的时候,总线基本上就可以空闲下来给诊断报文使用,这样升级的时间才可能尽可能短
- 网络管理
- 网络管理节点
- 非网络管理节点
- 实装规则
- 以下任一情况发生时, ECU 将返回默认状态(正常发送、接收所有报文)
- 接收到使能收发的通信控制指令
- ECU 硬件或者软件复位
- 由于任何原因, ECU 由非默认会话模式切换到默认会话模式
- 以下任一情况发生时, ECU 将返回默认状态(正常发送、接收所有报文)
- 0x31
- 例程控制
- sub-function
- start
- 01
- stop
- 02
- requestResults
- 03
- start
- routine
- 0203
- 检查进入编程模式前提条件是否满足
- 0202
- 对下载完成数据进行一致性校验(CRC32)
- FF00
- 擦除例程(擦除code flash中升级部分的代码)
- FF01
- 下载完成后软硬件兼容性校验
- XXXX
- 进行方向盘舵角中点标定(4S:四轮定位)
- 0203
- sub-function
- 例程是指单独地请求ECU干一件事情,这件事情不是在ECU的正常运行过程中执行的
- 例程控制
- 0x34
- RoutineControl
- 0x36
- TransferData
- 0x37
- RequestTransferExit
- 0x28
- 基础服务类
- 诊断服务分类
- 关于Autosar中DCM(14229UDS)模块
- UDS统一诊断服务
- 在线诊断(OBD)
- 一般用于传统燃油车中与排放相关的诊断
- 离线诊断
- 非排放相关的
-
- DTC:诊断故障代码,其意思就是通过一个代码 代表一个故障
- 快照/冻结帧:指发生故障时刻的一些便于排查故障的信息
- 扩展信息:这个是指除快照之外,与故障相关的一些信息,例如故障的发生次数、老化次数等等
- 在线诊断(OBD)
- IOS14229
- 10服务
- 为了管理各个服务
- 11服务
- 复位服务,包括了子服务硬件复位 01 子服务KeyOfOn复位02 子服务软件服务03
- 14服务
- 清除故障服务,他可清除一个故障信息,也可以清除一组故障信息
- 19服务
- 查询故障信息
- 22服务
- 通过数据标识符的形式读取数据
- 2E服务
- 表示通过数据标识符写入数据
- 23/3D服务
- 23是通过地址读数据
- 3D是通过地址写入数据,一般用的较少
- 24/2A/2C/86服务
- 27服务
- 权限管理0
- 28服务
- 通信控制,包括对发送和接收消息的开关控制
- 31服务
- 例程控制
- 2F服务
- IO控制,主要用于对一些输入输出口的调试控制
- 34/35/36/37服务
- 和数据传输有关的服务,包括请求传输、请求下载、数据传输、数据上传、退出传输等,这些服务和BootLoader相关
- 85服务
- 用于控制故障的更新,包括开启和关闭故障更新
- 10服务
- UDS统一诊断服务
- UDS应用层协议解读(下)