一、单帧与多帧传输

UDS网路层的相关类型帧:

SF单帧参数:

SF_DL:后续数据长度

FF首帧参数:

FF_DL:后续数据长度

CF连续帧参数:

SN:连续帧序号,连续帧的第1帧值为1,每增加一个连续帧,SN值加1,后续SN达到15(0xF)时候,下一帧连续帧为0.(流控帧FC不影响连续帧SN值的计算)

FC流控帧参数:

FS:FlowStatus(流控制状态),为0表示准备好等待BS声明的最大连续帧数,为1表示等待一个新的流控帧,为2表示流控溢出,将会引起发送终止发送BS:Block Size,为0 表示分段报文期间不再发送流控帧,所有连续帧都将持续发送到接收端。0x01~0xFF,定义为到下一个流控帧为止的连续帧最大数量STmin:定义2个连续帧(CF)之间的最小允许时间。0~7F 表示0~127ms;F1~F9的单位为100us,其中F1表示100us,F9表示900us

补充:带CAN FD的网络层 [15765-2 2016新版]

1、单帧传输

单帧传输中仅需要用到SF(SingleFrame):

举个例子:UDS中10服务

TX:02 10 03 00 00 00 00 00

单帧的第一个字节02,高4位为0表示是SF帧;低4位为2,表示后面的有效字节长度为2个字节

2、多帧传输

多帧传输中需要用到:FF(首帧)、FC(流控帧)、CF(连续帧)

举个例子:2E服务写DID

TX:10 14 2E F1 90 FF FF FF

RX:30 08 14 00 00 00 00 00

TX:21 FF FF FF FF FF FF FF

TX:22 FF FF FF FF FF FF FF

(1)其中首帧FF第1个字节与第2个字节(10 14),第1个字节高4位 0x01 表示了该帧是首帧,第1个字节低4位,和第二个字节表示长度为0x014,表示后续有效字节数为20个字节

(2)当Sender首帧发出后,需要等待Receiver发送流控帧后,才能接着发送后面的流控帧数据。其中流控帧第1个字节30,其中高4位 3 表示为流控帧,低4位 0 表示流控帧的状态。流控帧第2个字节08 表示接收了8帧连续帧后,就需要等待流控帧

(3)当Sender接受到流控帧后,就需要开始发送连续数据,其中连续帧第1个字节21,高4位2表示是连续帧,低4位1表示连续帧的第一帧(注:其中连续帧的第1帧SN为1,后续SN达到15后,下一个连续帧的SN为0)

二、网络层相关时间参数

注:时间参数末尾的s表示sender,r表示receiver

N_As:控制器访问网络并在发送端传输诊断报文允许的时间。(即:访问网络层As开始计时,到报文发出后As停止计时,这一段时间)N_Br:控制器接收到第一帧或连续帧之后,在控制器传输FC之前的允许时间。(即:网络层接收解析到为FF时候,Br开始计时,当访问网络层准备回复FC时,Br停止)N_Ar:控制器访问网络并且在接收端传输诊断报文允许的时间。(即:访问网络层准备回复FC时,Ar开始计时,当报文发出后Ar停止计时,这一段时间)N_Bs:传输首帧或连续帧与接收流控帧之间的时间(即:传输完FF或者CF时,Bs开始计时,当接受到FC或者是最后一帧CF,Bs停止计时)N_Cs:控制器在接收到FC或发送完CF后,到传输连续帧之间允许的时间N_Cr:控制器在发送流控帧或者接收前一个连续帧后等待连续帧的时间