UDS中的物理寻址和功能寻址(服务器不同的应答策略和NRC回复策略)

服务器 0

1:功能寻址,服务器应答与NRC回复策略

详细策略上,又分为服务有子功能,和不存在子功能。

1.1功能寻址,存在子功能

存在子功能的情况下,又分为supress postive response (即子功能字节的bit7)位=1,和=0两种情况

iso 14229-1也给我们列出了表格

1.1.1先讲功能寻址,supress postive response =0的情况!

看图之前,对图中描述作出必要的解释

*1)Yes代表服务器经过检查,支持此服务/子功能/和DID

*2)No代表服务器经过检查,不支持此此服务/子功能/和DID

*3)服务/子功能/和DID之间存在线性依赖关系,即只有支持某一项服务,才能支持其子服务,然后才能支持DID或其他参数。

1和2的情况是,抑制肯定响应位 =0 ,服务和子功能均支持。没有错误就发送肯定响应,有错误就发送相对应的NRC,没毛病!

3:抑制肯定响应位 =0

3:当DID或RID或PID不支持,不返回报文,如 0x85 服务,0x628(功能寻址IP)  04 85 01 77 xx xx xx。

这个77是不符合要求的,故服务器不会产生应答。

4:表示子功能都,不支持,服务器不回答。

5:服务支持,子功能不支持,服务器不回答。

总结:从服务器的角度来说,当服务器检查出客户端发出的请求信息,存在以下错误时(假设长度,顺序,条件,解锁等信息均正确)

1:0x11与0x7F,服务不支持时,不予回复

2:0x12与0x7E,子功能不支持时,不予回复

3:0x31,参数(如DID)不支持时,不予回复

1.1.2再看:功能寻址下,supress postive response =1的情况!

 6和7表示,服务,子功能 ,DID/RID/PID都支持的情况下。服务器正响应不回复,但是当请求报文出现故障时(前提条件:服务/子功能/和DID均没有错误)如长度出现错误时,负相应报文肯定是要被发送的。

多说一句,当发送者将supress postive response =1时,客户端就默认,不需要接收返回报文,就默认为发送成功了。

总结:从服务器的角度来说,当服务器检查出客户端发出的请求信息,存在以下错误时(假设长度,顺序,条件,解锁等信息均正确)

1:0x11与0x7F,服务不支持时,不予回复,与肯定抑制响应位无关。

2:0x12与0x7E,子功能不支持时,不予回复,与肯定抑制响应位无关。

3:0x31,参数(如DID)不支持时,不予回复,与肯定抑制响应位无关。

4:当请求报文没有错误时,服务器不应答,与肯定抑制响应位有关。

2:物理寻址,服务器应答与NRC回复策略

物理寻址,本质很简单,对检查出的0x11与0x7F,0x12与0x7E,0x31出的错误都要作出Negative response 的否定应答。无论是肯定抑制响应位=1或=0。

对于没有错误的请求报文,肯定抑制响应位=1时,服务器不予应答。肯定抑制响应位=0时,服务器正响应。

也许您对下面的内容还感兴趣: