CAN总线UDS的研究与应用

2020-11-16 01:50张航张宇

张航 张宇

摘 要:由于汽车电子控制单元(ECU)的数量不断增加,车辆网络总线的负荷也在不断增加。在发生故障时,基于CAN总线的UDS(unified diagnostic services,简称UDS),在出现故障时能迅速确定故障原因和位置,在汽车网络诊断领域受到广泛关注。通过大量的文献资料,本文简要分析了 CAN总线技术的特点,以及 CAN总线技术的UDS实现。

关键词:CAN总线UDS协议;KWP2000;IS015765;IS014229

1 CAN总线概述

伴随着CAN总线技术的广泛应用,CAN技术在汽车制造企业和零部件生产企业的应用越来越广泛。国际上有一整套关于统一诊断的诊断服务系统标准,针对各個零部件厂商和研发机构,为整车企业提供一整套的诊断服务。汽车电子零部件开发中的诊断部件具有可重复使用性,缩短了开发周期和成本,提高了汽车制造企业的管理能力和生产效率。bootloader是基于UDS服务的软件程序下载方法。由于can总线和UDS还没有被广泛使用,现在有许多程序下载的方式,比如RS232,SPI,JTAG协议等等。由于没有统一的标准和流程,因此下载数据的可靠性无法得到保证。这样,在这种机制下,bootloader就具有一个显著的特性,即快速、可靠、安全、可重用和易于管理。

德国vector公司在UDS诊断产品中,can总线最为著名,也是应用最广泛的。该产品以其组网灵活且软件功能齐全,适于系统级轿车的开发,已为多数汽车厂商所采用。

1.1 CAN总线协议简介

串口通信协议是一种支持分布式实时控制、安全可靠的串口通信技术。在OSI分层系统中,CAN总线物理层是最基本的一层。在同一个网络中,每个结点应该具有相同的物理层电特性。物理层按其功能可分为三个层次:物理信号层(PLS),主要有执行位编码、位定时、物理介质附件层(PMA)和介质接口层(MDI),其中包括电缆/连接器。

1.2 CAN总线UDS的网络层分析

网络层是按照ISO11898协议定义的控制局域网,它由is014229-1和ISO15031-5协议组成,用于满足车辆控制系统对CAN总线的需求。网络层主要为用户提供业务接口,提供网络层不同节点之间数据的分段、重组和传输流控制框架等功能。为了发送一个比can数据帧长度更长的消息,您需要将消息信息分割并发送。

2 CAN总线UDS与KWP2000诊断协议的对比

KWP2000(关键字协议)是目前世界上最成熟的诊断协议之一,其车载诊断协议已在欧洲汽车中得到广泛应用。基于can线和K线,KWP2000协议分为两种类型。提出了汽车电子控制器和计算机之间通过串行数据线进行串行通讯的一般要求。

根据OSI模型,ISO14230-1协议对应的是物理层,ISO14230-2协议对应的是数据链路层,ISO14230-3协议对应的是应用层,以及与发射相关的ISO14230-4协议。数据链路层采用ISO9141国际标准定义的K-line实现。单线信号完成半双工异步通讯。尽管K线是容易实现的,但是需要转换电路来改变它的逻辑水平。

2.1 物理层

线路物理层由国际标准化组织(ISO)142000线路规范(KW1)规定。提供系统诊断的硬件配置,设计系统的接口电路。在初始化时,诊断设备的ECU地址信息通过K线传送到车辆总线上。在系统稳定运行时,L-line不进行信息传输,保持了较高水平。

2.2 数据链路层

ISO14230-2定义了一个数据链路层,包括初始化、通信连接、消息结构、定时参数、错误处理。该协议的消息由消息头、数据字段、校验和数据字段组成。文章比较了长度字节的消息格式,其中报告了格式字节、目标地址字节、源地址字节、长度字节、服务标识字节、数据以及校验和,数据字段中的第一个字节是服务标识符,最后校验码(CS)用于数据校验。在字节和字节之间以及消息和消息之间都有严格的时序要求。

3 CAN总线UDS的实现

3.1 座椅控制器的硬件设计

单片机采用了Freescalc公司的MC9S08DZ60芯片,而飞思卡所有系列的Metrowerks都可以用Metrowerks开发的Codewarrior IDE进行软件开发,在这种环境下,飞思卡所有系列的 Metrowerks都可以通过Metrowerks开发的Codewarrior IDE进行读写,然后编程、编译。

3.2 座椅控制器的软件设计

根据功能将座椅控制器诊断控制单元划分为:BootLoader层、CAN设备驱动层、传输层、网络层、诊断服务层、诊断应用层。

3.3 诊断系统的设计

它的存储空间可以被划分为:引导区、ECU数据检查区、应用层数据区和网络配置区。主要功能为存储固定消息数据、产品信息、故障诊断代码。

一般而言,故障诊断系统中,汽车电子控制器的开发不仅能完成ECU的具体功能,而且还能进行故障诊断和网络管理。本系统的实现过程如下:如果每台ECU工作正常,且某台设备在运行过程中发生故障,诊断系统根据协议内容记录相应的诊断错误码(DTC),并将其存储在EEPROM中。故障码可以分为历史故障码、间隔故障码和当前故障码三部分。测试机可通过诊断界面读取故障诊断码数据,并根据诊断协议的定义,将所有故障码以不同格式显示出来。

4 展望

ISO14229(UDS)协议是汽车故障诊断的理想标准。ISO15765协议基于CAN总线技术,是UDS协议的标准和未来发展方向。

5 结束语

ISO 14229(UDS)协议是一种非常完善的汽车故障诊断标准。

本文研究了主流的CAN总线UDS技术,总结了CAN-UDS技术的优点。CAN总线是UDS系统传输数据的主要方式,针对CAN总线汽车电子系统,设计了一个汽车座椅电子诊断系统,并对该系统进行了硬件设计和软件编程。通过系统调试,证明了设计方案的可行性和稳定性。

参考文献:

[1]宋他芳.基于CAN总线的车身电器控制实验台的优化设计[D].河南科技大学硕士论文,2010.05.01

[2]周涛.ISO15765协议的研究与实现[D].合肥工业大学,2011.04.