UDS协议即ISO14229(即Unified Diagnostic Services,统一诊断服务),是汽车电子设备中电子控制单元(ECU)环境中的诊断通信协议,诊断服务的规范化标准,比如读取故障码应该向ecu发什么指令,读数据流又是发什么指令。
1、在OSI七层模型中的位置:
2、服务标识符(SID)
3、寻址方式
寻址方式就有功能寻址(Functionally Addressed Request)和物理寻址(Physically Addressed Request)两种。
功能寻址:以广播形式发送诊断请求Request,同时等待总线上的ECU给与响应。
物理寻址:对指定ECU发送特定诊断请求Request,等待指定ECU给与响应。
4、请求和响应格式
Request基本格式有两种:
SID + Parameter
SID + SubFunction + Parameter
Response基本格式有两种类型:
Positive Response(Request被正确的执行):
(SID+0x40) + Parameter
(SID+0x40) + SubFunction + Parameter
Negative Response(Request执行错误或者不能在规定时间内完成):
0x7** + SID + NRC
诊断常用NRC如下:
5、诊断报文解析
PCI(协议控制信息)格式:
SF_DL:代表单帧中数据字节数(取值0-7);
FF_DL:代表连续帧中的数据字节数(12bit可表四8~4095);
SN:代表此帧为连续帧中的第几帧,(0、1、2...E、F、0、1...);
FS:流控制帧,有三种状态:继续发送0、保持等待1、数据溢出2;
BS:规定发送端允许持续传输连续帧数目的最大值(0~255);
STmin:限定连续帧相互之间所允许的最小时间间隔。
UDS相关博文参考资料:
https://www.zhihu.com/people/zhang-ding-12-47
https://zhuanlan.zhihu.com/p/37310388 作者:智车科技
https://www.jianshu.com/p/b5805e734ed6