0
点赞
收藏
分享

微信扫一扫

[4.8]-AutoSAR零基础学习-UDS介绍

目录

1 基于OSI模型的UDS参考实现

2 UDS的相关概念

3  应用层服务

3.1服务原语

3.2 应用层协议数据单元 A_PDU

3.2.1应用层数据单元A_SDU

3.2.2应用层协议控制信息 A_PCI

3.3 服务标志符

3.4 诊断三要素

3.4.1 请求

3.4.2 肯定响应

3.4.3 否定响应

3.5 应用层服务响应的行为


1 基于OSI模型的UDS参考实现

            

2 UDS的相关概念

客户端

诊断请求的提出者--测试仪,发送诊断请求

服务器

诊断相应的提供者--某个诊断ECU,发送诊断响应

本地客户端和本地服务器

两者在同一网段进行连接

远程客户端和远程服务器

两者不在同网段,通过远程地址进行标识

协议数据单元-PDU

信息和数据的集合,发送方和接受方之间的信息和数据

(协议控制信息-PCI)+Data

就是所谓的PDU

各层的PDU

L_PDU,N_PDU,T_PDU,S_PDU,A_PDU

UDS 物理寻址 1:1

客户端和服务端之间采用1对1 的诊断通信方式

UDS功能寻址 1:N

客户端和服务端之间采用1对多 的诊断通信方式

源地址

发送节点地址 SA

目标地址

接受节点地址 TA

        其中 源地址和目标地址:

        地址和报文ID相关:诊断报文ID = 基地址 + 节点地址

        例如:某个ECU为物理寻址,基地址为0x700,测试仪的地址为0x01,ECU的地址为0x08,则测试仪对此ECU的物理寻址为:0x701,ECU的响应则为0x708.

        功能寻址则一般根据特定的ID。

3  应用层服务

        应用层服务通常称之为诊断服务。诊断服务基于客户端-服务端系统,用来作为车载服务器的测试检查和诊断的功能。

3.1服务原语

        基本的使用流程如下图:

        

3.2 应用层协议数据单元 A_PDU

        A_PDU = A_PCI + A_SDU

3.2.1应用层数据单元A_SDU

        从下面的结构图中,可以看出应用层协议数据的格式

        

3.2.2应用层协议控制信息 A_PCI

        根据A_PCI的第一个字节是否为0x7F ,将其分为两种个格式,但是对于周期性数据响应消息的传输,应用层协议数据单元中,并不存在A_PCI.

        

3.3 服务标志符

        类型:1个字节的无符号整数

        范围:0x00 - 0xFF

        ISO 14229中,定义的SID总共有26个,总共分为6大类,如下图:

        

        具体的定义位置,在以下表中进行标注:

        

3.4 诊断三要素

        诊断请求/响应行为如下:

        

3.4.1 请求

        对应请求服务标志符

类型

1个字节的无符号整形

范围

0x00-0xFF

SID

X0xxxxxx (SID第6位为0)

示例

ReadDTCInformation(0x19) 的SID为00011001

        请求服务的A_PDU

        

3.4.2 肯定响应

        对应肯定响应服务标志符

类型

1个字节的无符号整形

范围

0x00-0xFF

SID

X1xxxxxx (SID6位为1) ==== >所以,肯定响应SID = 请求服务SID+0X40

示例

ReadDTCInformation(0x19) 的肯定响应SID为01011001 = 0x59

3.4.3 否定响应

        对应肯定响应服务标志符(NR_SID)

类型

1个字节的无符号整形

范围

固定值:0x7F

SID

0x7F

        否定响应的A_PDU如下图:其中参数responeCode用于否定响应消息,来表示诊断服务失败或无法及时完成的原因,也就是我们所说的否定响应代码

        

        

3.5 应用层服务响应的行为

        

 =>总目录<=

举报

相关推荐

0 条评论