一、UDS协议说明:
源自百度:UDS协议(Unified Diagnostic Services,统一诊断服务)是诊断服务的规范化标准,比如读取故障码应该向ecu发什么指令,读数据流又发什么指令。OBD是关注车辆售后实时排放的理念形成的行业规范,而UDS是诊断服务的统一化规范,只是应用层的规范。
UDS与OBD最大的区别就在于“Unified”上,它是面向整车所有ECU(电控单元)的,而OBD是面向排放系统ECU的。单说UDS而言,它只是一个应用层协议(ISO14229-1),所以它既可以在CAN线上实现,甚至也能在Ethernet上实现。并且UDS提供的是一个诊断服务的基本框架,主机厂和零部件供应商可以根据实际情况选择实现其中的一部分或是自定义出一些私有化的诊断服务来,所以基于UDS协议的诊断又常常被称为增强型诊断,UDS不是法规要求的,没有统一实现标准,其优势在于方便生产线检测设备的开发,同时更大的方便了售后维修保养和车联网的功能实现
SO14229-1协议定义了6类功能,26种服务,分别是:
1)诊断和通信管理功能单元,包括10,11,27,28,3E,83,84,85,86,87共10种服务;
2)数据传输功能单元,包括22,23,24,2A,2C,2E,3D共7种服务;
3)存储数据传输功能单元,包括14,19共2种服务;
4)输入输出控制功能单元,包括2F服务;
5)例行程序功能单元,包括31服务;
6)上传下载控制功能单元,包括34,35,36,37,38共5种服务
本文旨在通过scapy框架组装UDS中14229-1的应用层常用数据服务,对14229-1的内容做更深入理解。
服务数据包实现
1, 10 diagnosticSession服务组包实现