Diagnostic request
形式多种:
1.SID+DID
2.SID+Sub-Func+DID
3.SID+Sub-Func
SID占1个Byte,Sub-func占一个Byte,DID通常两个Byte
eg.10 01 (SID+Sub-Func)
10 03 05 02 (SID+Sub-Func+DID)
22 02 00 (SID+DID)
肯定响应抑制位
抑制正响应信息除非是收到NRC 0x78的情况下 不会抑制 正负响应都会反馈
就是如果接收到否定响应的情况下就可以反馈所有信息
肯定响应抑制位如果为0就是FALSE 不会禁止postive信息的反馈 如果是1的话就是true会禁止所有postive信息的反馈 肯定响应抑制位是bit7
Positive response
Negtive response
NRC code
第一个是错的 不是10 是11
当客户端向ECU发送一个服务请求时,如果ECU检测到任何异常情况,则会返回带有否定响应码(NRC)的结果包。例如,在调用Security Access ( 0x27
)服务过程中,若输入的安全种子校验失败,则ECU将回应数据流为 7F 27 33
,其中 7F
代表否定响应标志,而 33
即表示“安全性访问受限”的具体原因
正响应回复和负响应回复
寻址模式
一对多就是功能寻址
下图tester发送0x6FF到总线上被三个节点接收了
一对一是物理寻址
下图can总线上只有一个节点反馈 就是一对一 物理寻址
诊断报文三个CAN ID :物理寻址id 功能寻址id 只有一个ECU反馈的报文
ISO-15765(网络层协议)
网络层用15765 应用层用14229
单帧传输
一帧数据发一次就是单包 单帧的高位开头都是0000 后面控制数据位数
例如:02开头的0是单包 2是带了2个数据10 01 后面的FF其实都是诊断补充位
0代表单包4代表有四个数据50 01 00 32 后面都是诊断填充位