UDS诊断服务协议中,定义了服务器和客户端应遵循的实现规则 .
1.General server response behaviour-通用的服务器响应行为
如果是不带子功能参数的服务请求(如$22, $2E服务),则走上图中2位置,按寻址方式分类有如下行为
如果是带子功能参数的服务请求(如$10服务), 则走上图中的1位置,后续参考下文中"服务请求中带子功能参数的服务器响应行为"。
2.General server response behaviour for request messages with sub-function parameter-服务请求中带子功能参数的服务器响应行为
对于服务请求中是带子功能参数的,服务器响应行为还受正响应抑制位的影响,并且也需要区分寻址方式.
诊断服务中的正响应抑制位,suppressPosRspMsgIndicationBit,简称为SPRMIB. 其用于告诉服务器是否需要给出正响应.其针对的是带sub-function的请求服务.而且只是对正响应来说的.
正响应抑制位在子功能参数中所处位置如下:
寻址方式 - 物理寻址
寻址方式 - 功能寻址
注:某些情况下,服务器无法立即执行请求的服务,则会先返回NRC 0x78(Response Pending),待请求的服务执行完后才给出最终响应.在这种情况下,即使正响应抑制位为1,服务器的正响应不被抑制.