抽个时间来把UDS的初步介绍,整理下。
在新能源汽车电子开发中UDS是越来月绕不过去的一个技术话题了。UDS并不是新的事物,在汽车排放诊断中,我们常常讲的OBD,就是UDS特定应用,且是法规强制的。
在电动汽车中,OBD是不存在的,所以没有ISO15765系列的强制要求。但是。。。
还是先从概念开始写,怎么写,采用答问的方式吧。(最近教小孩作业,小学语文书上说这种表达方式叫设问----自己问自己答。这样的好处是自己可以回答全,虽然不一定对,最大的好处是还可以选择性的问)
一、什么是UDS?
UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是ISO 15765 和ISO 14229 定义的一种汽车通用诊断协议,位于OSI模型中的应用层,它可在不同的汽车总线(例如CAN, LIN, Flexray,Internet 和K-line)上实现。
二、应用层如何定义?
UDS协议的应用层定义是ISO 14229-1,目前大部分汽车厂商均采用UDS on CAN的诊断协议。
三、为什么大家都采用UDS on CAN?
因为CAN总线在汽车上比较常见,常见就容易基于CAN总线来实现,大家交流也方便,就像大家都用微信,你也用微信一样。
四、还有网络层?
当然要定义网络层。ISO 14229-1也就是UDS协议仅对应用层做出了定义,物理层有双绞线和光纤供用户选择,数据链路层采用CAN总线的ISO 11898-1协议,针对Classical CAN仅有8个字节的数据场与应用层可处理多帧数据的矛盾,ISO 15765-2对网络层进行了定义。CAN的8字节数据场会腾出一帧来表示网络层的信息。
五、到底有几层?
简单分
应用 | 诊断应用 |
应用层 | ISO 14229(UDS) / ISO15031/ ISO15765-3 |
网络层 | ISO15765-2 |
数据链路层 | ISO11898-1 |
物理层 | 双绞线 或 其他媒介 |
完整分
OSI各层 | 汽车制造商 |
诊断应用 | 车厂自定义 |
应用层 | ISO 14229(UDS) / ISO15031/ ISO15765-3 |
表示 | 无 |
会话层 | ISO15765-3 |
传输层 | 无 |
网络层 | ISO15765-2 |
数据链路层 | ISO11898-1 |
物理层 | 车厂定义(双绞线 或 其他媒介) |
六、UDS有哪些功能?
功能即服务,UDS的本质是各类服务Service Identifier(SID)。总体上6大类,分别是通信管理、数据传输、存储数据传输、输入输出控制、例程控制和上传下载。
七、SID具体有哪些?
八、SID关键有哪些?
UDS的26种服务中,有7种很重要。它们分别是:
$10 Diagnostic Session Control(开启诊断会话);
$14 ClearDiagnostic Information(清除诊断信息);
$19 Read DTC Information(读取DTC信息);
$22 Read Data By Identifier(通过ID读数据);
$27 SecurityAccess(安全访问);
$2EWrite Data By Identifier(通过ID写数据);
$3E TesterPresent(待机握手);
九、SID怎么服务?
UDS本质上是一种定向的通信,是一种交互协议(Request/Response),即诊断方给ECU(这里的ECU可以是VCU、BMS、MCU等等各种U)发送指定的请求数据(Request),这条数据中需要包含SID。如果是肯定的响应(Positive Response),回复[SID+0x40],就是请求10,响应50;请求22,响应62,回复的是一组数据。如果是否定的响应(Negative Response),回复7F+SID+NRC,回复的是一个声明。
时间到,刚刚吧概念写明白。先到这里。后续有时间再写:
1、DTC的定义
2、网络层数据传输
3、具体服务的实现
......
等等。
最后,截个图,直观说明下UDS服务。