UDS(Unified Diagnostic Services,统一诊断服务)是汽车电子领域的关键通信协议(ISO 14229标准),它如同车辆的"神经系统",让诊断仪能够与ECU(电子控制单元)进行深度交互。在车辆全生命周期中,UDS支撑着故障排查、软件刷写、传感器校准等核心操作,其分层架构将复杂功能拆解到OSI模型的各层协作实现。
偌大的城市车流不息,面对繁杂且实时性要求高的通勤来说,红绿灯是保障通行效率的利器,在汽车诊断通信的世界里,这个角色就是UDS会话层 (ISO 14229-2标准的核心),虽然它不像红绿灯那样直观可见,却是保障整个诊断会话有序、高效的关键!
它在OSI网络模型的第5层——会话层,夹在网络层(负责“数据打包运输”,如CAN, IP)和应用层(负责“发号施令”,如诊断服务指令)之间,如下图所示。
会话管理,就如同对话需要管理发言顺序和主题,车辆诊断时也需要管理客户端(诊断仪)和服务器(车辆ECU)之间的“对话状态”(例如切换到默认模式、编程模式或扩展模式)。
和网络层协议(DoCAN、DoIP等)能在报文中直接看到地址不同,会话层是“无形的智慧规则”。我们只能通过理解它的运作方式(流程)来把握它。
会话层通过三个核心的“服务原语”与应用层和网络层沟通,相当于三个专职“联络员”:
S_Mtype:消息类型(诊断或远程诊断)
S_SA:发送方地址
S_TA:接收方地址
S_TAtype:地址类型(物理寻址或功能寻址)
(可选)S_AE:扩展地址(远程诊断需要)
S_Length:数据长度
S_Data:要发送的诊断指令内容(如0x10 01 切到默认会话)
S_Result:接收结果(成功S_OK、失败S_NOK)
通知应用层对之前S_Data.request的回应
SOM(Start Of Message) 是多帧传输的起始标识,用于处理长度超过单帧容量的诊断数据,当诊断数据包超过单帧最大长度时(如 CAN 总线单帧最大 8 字节),UDS 通过多帧传输机制分段发送数据,SOM 作为多帧传输的起始标志,承担关键功能:
会话层定义了关键的时间参数,以保障诊断通信高效且不至于无限等待:
以下是时间参数的一些常用值和推荐值:
区别点:客户端应用层不再接收到T_DataSOM.ind指示
图中可以看出:
因此,P4Server计时器为服务器接收到请求到发送最终响应的时间,当P2Servermax=P4Server时,不允许发送NRC78的负响应
注意:S3Server的定时器处理是基于网络层/传输层服务,因此当服务器接收到任何不支持的诊断消息时也能够重新启动S3Server定时器,以下是一个功能寻址0x3E服务的示例
由图可知:
1、第一步客户端请求了一个非默认会话的请求,例如:10 03或10 02
2、第二步当客户端成功发送请求消息,向应用层上报T_Data.con后,开启S3Client计时器
3、第四步中服务器响应消息成功发送,向应用层上报T_Data.con,服务器开启S3Server计时器
4、第六步中服务器接收到客户端发送来的请求消息,向应用层上报T_Data.ind,停止S3Server计时器,当服务器处理响应报文时,任何由客户端发送的功能寻址0x3E 0x80将被忽略
5、第9步中,S3Client超时,客户端发送功能寻址的0x3E 0x80
6、第10步中,客户端成功发送功能寻址的0x3E 0x80,向应用层上报T_Data.con,开启新的S3Client计时器
7、第11步中服务器成功发送响应消息,向应用层上报T_Data.con,开启新的S3Server计时器
8、第13步中,客户端S3Client超时后,再次发送功能寻址的0x3E 0x80,这时服务器S3Server计时器计时中,因此会被客户端发送的功能寻址的0x3E 0x80重置S3Server计时器
汽车诊断绝非简单的“一问一答”。UDS会话层作为OSI模型里的“第五层居民”,就像一位看不见的交通指挥员和会话管家:
让诊断仪能和ECU在正确的“频道”(会话模式)上沟通。
通过精心设计的服务接口,有序传递命令和响应。
用各种定时器防止通信卡死或ECU“失联”,保证流程高效可靠。
理解会话层,是真正吃透UDS协议精髓的关键一步。ISO14229-2协议文本如同藏宝图,里面还蕴含着错误处理、复杂寻址等更多秘密,等待你去发掘!下次诊断时,别忘了这台“精密对话机器”背后,还有这位无形的秩序维护者在默默工作。
1.Road vehicles— Unified diagnostic services (UDS) —Part 2: Session layer services
2.Road vehicles—Diagnostic communication over Controller Area Network(Do CAN) — Part 2: Transport protocol and network layer services