ISO 14229学习笔记_02
书接上回ISO是国际标准化组织ISO 14229 通常被称为 UDSUnified Diagnostic Services统一诊断服务ISO 14229基于开放系统互连OSI模型该模型一共有七层分别是应用层表示层会话层传输层网络层数据链路层物理层。ISO 14229是汽车电子诊断中最核心的一类应用层标准之一定义了诊断测试设备如何与 ECU 进行标准化交互。 你可以把它理解成“诊断仪和 ECU 之间的一套统一对话规则” 通过这套规则外部测试设备可以读取 ECU 信息、查看故障码、执行控制、进入特殊会话、进行安全认证甚至完成软件下载/刷写等操作。今天补充一下关于目的和对象方面的知识目的ISO 14229 用来统一汽车 ECU 的诊断交互方式使测试设备能够以标准化方式访问 ECU 的诊断、控制、配置和软件传输能力。核心统一制定规则满足所有需求操作标准化提高安全性问题可溯源1. 统一语言规则不同供应商不同功能域不同芯片不同ECU不同的寄存器操作方式不同代码风格都会导致开发、测试、售后、标定混乱。基于此ISO 14229统一诊断交互方式提供一套相对统一的交互服务模型怎么发送请求怎么回复响应错误怎么表示特定功能怎么实现。举例来说就是教你怎么和别人说话教你怎么回复别人教你怎么描述问题教你怎么干活2. 覆盖所有需求ISO 14229支持汽车全生命周期的诊断需求UDS不只是给维修站用的它贯穿了ECU的多个阶段开发调试台架测试生产下线售后维修标定维护软件升级/刷写故障分析看不懂就是ISO 14229 伴随汽车的一生3. 提供标准化接口ECU 内部其实有很多能力比如读取版本号查询传感器值读取故障码擦除故障记录控制执行器动作触发某项例程解锁安全功能下载新软件对于这些功能ISO 14229 将其抽象成标准服务接口让外部工具可以按规则访问它们。就像给空调插上电你就能用它来控制温度了4. 安全规范保障ISO 14229 通过限制高风险操作来保证安全性很多服务会改变ECU状态从而影响车辆功能例如:写参数执行执行器控制擦除故障码进入编程会话下载程序因此UDS通过会话、权限、安全访问、时序等机制对高风险操作进行约束。5. 提供错误反馈当请求不合法、条件不满足、权限不足、顺序错误、参数越界时ECU 不能就这么看着。ISO 14229 定义了一套否定响应机制NRC用于告诉请求方为什么失败是长度错、条件不满足还是服务不支持是当前状态不允许还是安全访问未通过这让诊断行为可分析、可调试、可追踪。就像你身体出现问题在医院做完检查后大夫看着诊断单给你分析病因。对象ISO 14229 的核心是一个客户端—服务器模型客户和老板它围绕客户端测试设备与服务器ECU之间的请求—响应交互展开运行于不同的传输介质之上。Client诊断请求发起方通常是外部测试设备例如诊断仪标定工具刷写工具工程测试软件产线测试设备它的职责是1. 发起诊断请求2. 按协议格式组织报文3. 处理 ECU 的响应4. 根据响应决定下一步动作Server诊断服务提供方通常是 ECU。它的职责是1. 接收诊断请求2. 判断请求是否合法3. 检查当前条件是否满足4. 执行对应服务5. 返回正响应或否定响应传输载体ISO 14229 本身主要描述的是应用层服务而不是底层总线细节。它可以运行在不同的传输环境上例如CAN和CAN FD这里需要区分ISO 14229 定义“说什么、怎么表达服务语义”而底层协议定义“如何把这些消息传过去”交互关系本质从本质上说UDS 是一种交互协议采用请求—响应式模型并且受规则条件约束整体流程如下1. Client 发请求2. Server 检查当前状态和参数3. Server 返回正响应、否定响应或先返回等待类响应询问思考回答