早在1994年以前, ISO制定了ISO14230。 2008年以前, ISO14230是国内许多汽车厂商采用的诊断通信标准, 是基于K线诊断的。 但随着K线的逐步淘汰,CAN (Controller Area Network, 控制器局域网) 网络的大力兴起, 大多数主机厂都过渡到基于ISO15765的诊断协议。 但是随着车载网络的发展, 又出现了MOST、 FlexRay、 无线网络等多种网络并存。 为了统一不同网络的诊断服务, ISO制定了一种新的诊断通信协议, ISO14229-1, 也叫UDS (Unified diagnosticservices, 统一诊断服务)。 UDS诊断服务不仅用于目前 盛 行 的CAN网 络 , 还 可 以 用 于 以 后 的 MOST、FlexRay、 无线网络等, 为汽车网络的发展做铺垫。UDS标准在欧美已经普遍使用, 国内主机厂也正在逐步往UDS标准过渡, 这将是未来的一种发展趋势。
1 UDS诊断服务介绍
UDS诊断服务包括: 诊断和通信管理服务、 数据传输服务、 存储数据传输服务、 输入输出控制服务、例程服务、 上传/下载服务。 具体的服务描述见表1
2 ECU诊断功能设计分析
ECU诊断包括自诊断和外部诊断。
1) 自诊断功能: 汽车正常运行时 , ECU实时监测自身输入输出及其ECU内部状态, 一旦发现故障会将故障码存入内存, 同时根据故障的轻重等级决定是否点亮报警灯。
2) 外部诊断功能: 有故障的汽车驾驶到修理厂进行维修, 维修人员可以利用汽车故障自诊断功能调出故障码, 快速对故障进行定位和修复。这种在车辆出现故障时, 通过外部仪器 (汽车故障诊断仪) 与车辆ECU进行通信, 读出ECU存储器内的故障信息, 查找故障源, 排除故障, 称为外部诊断。
接下来将结合ECU功能原理框图, 分析车载ECU的故障检测功能。 如图1所示, 一个ECU由微控制器(国内习惯称为单片机) 和外围电路组成。 微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机, 包括中央处理器 (CPU)、存储器和输入输出接口。
ECU将输入信号转换成数字形式, 根据存储的参考数据进行对比加工, 计算出输出值, 输出信号再经功率放大去控制若干个调节伺服元件, 例如继电器和开关等。
2.1 输入电路
ECU的输入信号主要有4种形式: ①模拟信号(水温、 油压、 蓄电池电压等); ②数字信号 (各种开关信号等); ③PWM信号 (脉冲信号、 频率信号等); ④网络信号 (CAN、 LIN上传输的信号)。 微控制器可以通过监测这些信号来判别输入电路的工作状况。
在汽车诊断中, 采用UDS诊断服务可以通过读取数据流服务 (0x22) 的形式, 提供实时工作数据供售后诊断分析, 比如电源电压、 输入电流、 水温、 油压、 车速、 转速、 开关的关闭状态、 PWM的占空比、 网络上传输的信号值等。 同时, 以故障码的形式存储以下故障: ①水温传感器、 油压传感器等对电源短路、 断路、 对搭铁短路; ②蓄电池电压过高/过低; ③水温过高; ④开关粘连; ⑤PWM信号异常; ⑥CAN/LIN信号丢失; ⑦CAN/LIN节点丢失等。
2.2 微控制器
微控制器包括CPU、 时钟、 存储器、 特殊功能I/O (定时器、 计数器、 A/D转换器、 中断等)。 微控制器首先完成传感器信号的A/D转换、 周期脉冲信号测量以及其它有关汽车行驶状态信号的输入处理, 然后计算并控制所需的输出值, 按要求适时地向执行机构发送控制信号。
在汽车诊断中, 采用UDS诊断服务可以通过读取数据流服务 (0x22) 的形式, 获取ECU内部状态信息供售后诊断分析, 比如程序刷写次数、 车辆配置信息、 软硬件版本信息、 ECU标定状态等。 同时, 以故障码的形式存储以下故障: ①硬件故障;②EEPROM故障; ③配置不匹配; ④ECU未标定等。
2.3 输出电路
微控制器输出的信号往往用作控制电磁阀、 指示灯、 步进电机等, 大多数为数字信号。在汽车诊断中, 采用UDS诊断服务可以通过读取数据流服务 (0x22) 的形式, 获取输出执行器的状态供售后诊断分析, 比如节气门开度、 指示灯的状态、 步进电机的工作状态等。 同时, 以故障码的形式存储以下故障: ①电磁阀故障; ②指示灯输出对搭铁短路、 对电源短路、 开路; ③电机堵转; ④灯泡过热等。 针对输出电路的故障, 需要ECU增加故障检测回路, 将会产生一定的成本, 厂商应该要综合考虑成本及其故障检测的必要性, 科学地分析设计故障检测功能。