UDS
uds:统一诊断服务
协议中一般会包含必须实现的内容以及可选实现内容
还可能包含用户自定义内容。
从OSI七层模型角度,can协议属于数据链路层+物理层,uds协议属于应用层+会话层
uds协议数据会包含在can协议的数据域中,可以通过can总线来进行传输
uds协议中定义了诊断指令,通过发送诊断指令的请求
给ecu,ecu回复响应(类似于http协议,发送请求给服务器,服务器回复响应)
仪表=仪表ecu+仪表屏

诊断主要实现
1、ecu的数据和故障信息的读取
2、往ecu中写入数据
ecu中需要靠软件来实现对于各种诊断指令的处理
常见的诊断指令
1、0x10指令,会话控制指令
后续的所有指令都是在会话上进行的。
类似于访问网站,对服务器的各种请求包含session
id,也是在会话下进行的。
2、0x11指令,重启ecu指令
3、0x27指令,ecu解锁指令
主要从安全性角度来考虑,要想对ecu进行数据的修
改,需要解锁才行,解锁需要密钥的。
4、0x3e指令,会话保持指令
类似于网站的session会话保持,在超时之前都是ok
的
5、0x19指令,读取故障信息指令
6、0x14指令,清除故障信息指令
7、0x22指令,读取ecu中数据指令
8、0x2e指令,往ecu中写入数据指令
can报文的数据域长度8个字节 64个bit位
can报文id 标准can是11位 扩展can是29位
第一列是字节长度 第二列是诊断指令
诊断过程中诊断指令的使用
浏览器--------(http请求)>服务器
浏览器<-(http响应)----服务器
tester(canoe/诊断仪) (诊断指令请求)-->ecu
tester(canoe/诊断仪)&