UDS诊断详解(二)- ISO15765-2 详解

目录

传输层协议与网络层服务

1.1 数据帧格式

1.1.1 单帧(SF)

1.1.2 首帧(FF)

1.1.3 连续帧(CF)

1.1.4 流控帧(FC)

1.2 数据传输流程

1.2.1 单帧传输流程

1.2.2 多帧传输流程

1.3 网络层参数

1.3.1 接收方时间参数

1.3.2 发送方时间参数


 

经典CAN数据链路层最大能够支持8个字节,但ISO 14229并不仅仅是为了CAN总线设计的,最大容量达到4095个字节。比如VIN码是17个字节,CAN总线必然需要传递3帧才能传完VIN码,那么如何科学、快捷、安全地将多个字节通过经典CAN来进行传输,就成了一个需要解决的问题,ISO 15765-2协议由此诞生。

传输层协议与网络层服务

1.1 数据帧格式

UDS诊断报文收发相关的网络层协议一般采用 ISO 15765 - 2,ISO 15765 - 2采用4种数据帧,分别是单帧(SF)、首帧(FF)、连续帧(CF)、流控帧(FC);

下图为ISO 15765 - 2 中定义的4种数据帧的帧格式:

1.1.1 单帧(SF)

当诊断报文的长度大于0,小于8 bytes时,选用单帧进行传输;

单帧(SF)的格式如下图所示:

其中,SF_DL表示单帧的数据长度,如:诊断仪发送85 02服务请求,其诊断报文为:02 85 02 CC CC CC CC CC,CC为填充字节;

1.1.2 首帧(FF)

当诊断报文的长度大于等于8 bytes时,采用首帧、流控帧、连续帧的形式进行传输;

首帧(FF)的格式如下图所示:

其中,首字节高四位为1,低四位和Byte2组成FF_DL,FF_DL表示多帧传输数据的有效数据的长度;

1.1.3 连续帧(CF)

连续帧(CF)的格式如下图所示:

其中,首字节高四位为2,低四位组成SN,SN为多帧数据传输的帧序列号;

 

SN规则:

1. SN始终开始于0;

2. 第一个流控帧后的第一个连续帧SN 为1;

3. 在同一个多帧传输时,每增加一个连续帧,SN加1;

4. SN 的值不受后续流控帧的影响当SN的值达到15时,下一个连续帧的SN为0;

 

应用场合:

当诊断报文长度大于等于8时,再加上一个字节的PCI控制信息就是大于8,无法在单帧完成数据传输,在首帧和流控帧之后的数据连续帧;

1.1.4 流控帧(FC)

流控帧(FC)的帧格式如下图所示:

其中,首字节高四位为3,低四位组成FS,Byte2为BS,Byte3为Stmin;

FS:流控状态参数,控制多帧传输的状态

BS:块大小值,控制连续帧的连续传输的个数。例如:当BS设置成8时,表示接收流控帧之后,当发送完8个连续帧就需要再次接受流控帧。当值为0时,表示后续连续帧的发送不受流控帧的控制。

Stmin:连续帧之间最小时间间隔,接受方设置该参数,由连续帧发送实体实现。

应用场合:

当诊断报文长度大于等于8时,再加上一个字节的PCI控制信息就是大于8,无法在单帧完成数据传输,开始进行多帧传输,流控帧根据自身的接收能力控制发送端按照自身的能力发送连续帧。

例子:

响应报文ID为:0x7E2,为流控帧请求

FS:0,发送连续帧

BS:8,后续完成8个连续帧发送后,需要再次发送流控帧

Stmin: 0x14,连续帧的时间间隔最小为20ms;

1.2 数据传输流程

1.2.1 单帧传输流程

单帧传输,一帧单帧报文就可以完成:

1.2.2 多帧传输流程

1.发送方先发送首帧(FF),告诉对方我要发送FF DL长度的数据及N-2字节的数据;

2.接收方收到首帧后,发送流控帧(FC),告诉发送方流控的状态(FS)以及接收数据的能力 (ST)和下一次发送流控帧的间隔(BS);

3.发送方接收到流控帧后,就按照ST的时间间隔发送按SN计数的序列帧 (CF),每帧序列帧有N-1字节的数据;

4.发送方发送BS数量的序列帧(CF)后,等待流控帧,如果BS等于零,则此步骤省略;

5.发送方如果最后发送的序列帧数量小于BS,则不用等待流控帧,传输结束;

1.3 网络层参数

网络层参数包括N_As、N_Ar、N_Bs、N_Br、N_Cs、N_Cr;

其中N_Ar、N_Br、N_Cr为接收方时间参数,N_As、N_Bs、N_C发送方时间参数;

1.3.1 接收方时间参数

N_Ar:接收方数据帧经数据链路层传输的时间;

N_Br:接收方发送流控帧的时间间隔;(接收到发送请求到开始发送流控帧的时间间隔);

N_Cr: 接收方接收连续帧的等待时间;(即 NCr=NCs+NAs);

1.3.2 发送方时间参数

N_As:发送方数据帧经数据链路层传输的时间;

N_Bs:发送方接收流控帧的等待时间;

N_Cs:上一次连续帧发送成功到这一次连续帧开始发送的时间间隔;

 

实际开发过程中,需要对网络层时间参数和应用层时间参数进行配置,以满足需求;

应用层时间参数见上一篇文章《UDS诊断详解(一)》的第五章节:UDS相关的时间参数 - P2,P3,S3;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值