2026/8/23 19:18:21
网站建设
项目流程
1、SID称为:服务ID
![]()
2、诊断请求和诊断响应的报文格式,其中特别关注否定响应码,遇到一个记住一个,这里的0x33(ECU为诊断仪发送的)代表:安全访问被拒绝,通常是因为未通过安全验证或权限不足,需要先解锁ECU
![]()
3、诊断与响应必然以某一种具体的总线通信的载体实现传输 最经典的传输方式是CAN总线 对于CAN总线而言,一帧CAN报文数据域最多是8个字节(引入单帧首帧连续帧流控帧诊断报文底层传输的机制上说起)
![]()
4、一帧能装下(单帧,见下方图3),一帧装不下()
![]()
![]()
![]()
5、有的people说 使用CAN FD,如果ECU不支持CAN FD(一帧最多64个字节,数据域)怎么办,如果支持CAN FD,UDS报文有200个字节怎么办 ,此时引入多帧通信。接收方发流控帧,发送方 收到流控帧之后,里面包含信息,会指示发送方 继续发 送连续帧(consecutive frame)经过一段过程,才能完成一次UDS报文的传输(不管是诊断还是响应)
![]()
6、详细介绍单帧传输,基于CAN通信的UDS的诊断,在一帧经典CAN报文的数据域中,传输了一个UDS诊断请求,三个字节 22 01 07 完全可以CAN报文传输,单帧的第一个字节的前半个字节为0 ,就是单帧了。后半个字节就是UDS长度,3代表三个字节。
![]()
7、如果是首帧的话,就规定这帧报文的前两个字节是协议控制信息,还剩1.5字节(即第一个字节的后半个字节+第二个字节)本列中0x10有16个字节,你需要数深蓝色的是不是16个字节
![]()
8、第二行:流控帧(第一个字节的前半字节),前三个字节为3协议控制信息,0 08 14 在干啥?后续介绍,也附上代码。
![]()
9、连续帧 2代表是连续帧,接跟着数字是序列号,但我们知道序列号,最大能到16,即F,如果F发完之后,接跟着在重新开始(不可能是30,30的话不就又变成流控帧了),2021 22 .......一直到发完
![]()