UDS诊断学习系列4——应用层协议

本文详细阐述了应用层协议的基本概念,包括确认消息传输、A_PDU结构、A_PCI协议控制信息、服务标识符、否定响应/确认服务原语以及服务端响应实施规则,特别关注了子功能参数、物理寻址和功能寻址的请求响应流程。
摘要由CSDN通过智能技术生成

5.3 应用层协议

5.3.1 一般定义

        应用层协议规定消息传输应始终是确认的消息传输,即从客户端发送的每一个服务请求都有有一个或者多个相应的响应。当然也存在一些特殊情况,比如功能寻址下一些服务端完成不了的服务请求,并不会进行相应的响应。(该部分内容会在7.5详细展开讲解)

        应用层协议应与会话层协议并行处理。即等待响应时间应满足会话层的定时参数要求。

5.3.2 协议数据单元规定

        A_PDU由A_SDU和A_PCI构成,A_PDU的通用格式如下:

        A_PDU (

                        Mtype,

                        SA,

                        TA,

                        TA_type,

                        [RA,]

                        A_Data = A_PCI + [parameter 1, ...],

                        Length

                        )

        其中:

        ——“Mtype,SA,TA,TA_type,RA,Length”与 A_SDU 中使用的参数相同;

        ——“A_Data”是为每个单独的应用层服务定义的一串字节数据。 A_Data 字符串应以 A_PCI 开头,后面 是每个服务指定的 A_SDU 的所有服务特定参数。 括号表示参数列表的这部分可能为空;

        ——“Length”决定 A_Data 的字节数。

5.3.3 应用层协议控制信息

5.3.3.1 PCI 协议控制信息

        A_PCI 有两种格式。 A_PCI 参数的第一个字节的值代表格式。

        对于所有第一个字节不等于 0x7F 的服务请求和服务响应,

        应使用以下定义: A_PCI ( SI) 其中: ——“SI”是参数服务标识符。

        对于第一个字节值等于 0x7F 的服务响应,

        应使用以下定义: A_PCI ( NR_SI, SI )

        其中: ——“NR_SI”是识别否定服务响应/确认的特殊参数; ——“SI”是服务标识符的参数。

        特殊情况:对于服务通过周期性标识符读取数据(0x2A,见 10.5)中定义的周期性数据响应消息的传输,应用层协议数据单元(A_PDU) 中不存在 A_PCI。

5.3.3.2 SI 服务标识符

        数据类型:1字节无符号整型数值

        范围:0x00~0xFF

        

        5.3.3.3 NR_SI 否定响应服务标识符

        数据类型:1字节无符号整型数值

        固定值:0x7F

        描述:

        用于表示该响应消息为否定响应

5.3.4 否定响应/确认服务原语

        每个诊断服务都具有否定响应/否定确认消息。(这部分没啥好说的,约定俗成的东西)

        

5.3.5 服务端响应实施规则

5.3.5.1 一般定义

        以下小节规定了执行服务时的服务端的行为。 服务端和客户端应遵循这些实施规则。

5.3.5.2 一般的服务端响应行为

        本节中规定的一般的服务端响应行为对所有请求消息都是必需的。

        ——强制:每个请求消息都要进行检查

        ——可选:可以由每个请求消息来选择性地进行检查

        ——制造商/供应商自定义:该步骤可以通过附加的制造商/供应商的具体检查来扩展。

        下图描述了一般的服务器响应行为流程。

        

        通过改图也可以很清楚的看出一般服务的NRC优先级为:0x21>0x11>0x7F>0x33>0xXX(供应商自定义)>0x31。

5.3.5.3 具有子功能参数的请求消息和服务端响应行为
5.3.5.3.1 对具有子功能参数的请求消息的一般的服务端响应行为

        对于具有子功能参数的所有请求消息,此子条款中指定的一般服务端响应行为是必需的。

        下图为带子功能参数的请求消息的一般的服务端响应行为流程。

        

        通过该流程图不难看出,带子功能参数的NRC优先级为:           0x13>0x12>0x7E>0x33>0x24>0xXX(供应商自定义)。

5.3.5.3.2 物理寻址的客户端请求消息

        下图为具有子功能参数的物理寻址请求消息和服务端响应行为的具体实施情况。

        

5.3.5.3.3 功能寻址客户端请求消息

        下图为具有子功能参数的物理寻址请求消息和服务端响应行为的具体实施情况。

        

5.3.5.4 不具子功能参数的请求消息和服务端响应行为
5.3.5.4.1 对不具子功能参数的请求消息和服务端响应行为

        对于没有子功能参数的请求消息没有通用的服务端响应行为可用。在本节上下文中的请求消息为符合本标 准格式化要求的服务请求消息。

5.3.5.4.2 物理寻址客户端请求消息

        下图为物理寻址下不具有子功能参数的客户端请求消息的具体实施情况

        

5.3.5.4.2 功能寻址的客户端请求消息

        下图为物理寻址下不具有子功能参数的客户端请求消息的具体实施情况。

        

        

        

  • 43
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你也想学习吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值