ECU(Electronic Control Unit)是电子控制单元的简称。从用途上来说就是汽车专用的微型计算机。现代汽车的功能越来越丰富,汽车上的各个子系统都需要功能强大的ECU来控制本系统的工作。比如,变速箱ECU根据当前的车速和转速来调整合适的档位,空调ECU根据当前的温度来自动调整温度。 ECU的功能从逻辑上来说分为3种,分别是:
UDS的全称是Unified Diagnostic Services,ISO标准号是14229,其中14229-3定义了UDS在CAN总线上的实现。UDS是应用层协议,它对所有的诊断命令进行了定义,比如诊断请求和诊断响应的格式。
OBD是法律法规强制要求实现的协议,主要用于排放相关系统,比如发动机和变速箱等,它也是应用层协议,定义了法规要求的与排放检测相关的诊断命令。
ISO 14229-2定义了为应用层提供的服务,为UDS和传输层、网络层(ISO 15765-2DoCAN, ISO 10681-2 Communication on FlexRay, ISO 13400 DoIP, ISO 14230-2 DoK-Line 等)之间提供独立性。
传输层和网络层由ISO15765-2实现,它的主要作用是为数据包提供分段、流控制、错误检测等功能。
数据链路层和物理层就是由ISO11898实现的CAN总线要求。这只是一种可能性,还可以使用Ethernet技术来实现诊断通信,由ISO13400中定义。无论底层使用什么总线技术,最终目的都是在诊断仪和ECU之间传输诊断命令和响应。
诊断的通信过程从诊断仪用户的角度来看非常简单,由诊断仪发出请求(request),由ECU给出响应(response),在这个通信过程中,诊断仪和ECU分别是计算机网络通信中的client和server的角色。