参考:UDS网络层/TP层(ISO 15765-2)的解读
讲的很非常好。
can报文一帧只能最多传输8个字节,但是UDS协议要求最多能传输4095字节,因此就产生了ISO15765协议。
数据单元(N_PDU)有四种类型,即单帧(SF)
、首帧(FF)
、连续帧(CF)
、流控制帧(FC)
,用于建立对等实体间的通信。这四种类型的数据,是通过一种叫PCI的东西来区分的。
对于这四种类型的数据单元是通过协议控制信息(N_PCI,Protocol Control Information)进行区分的。每一个N_PDU都只有一个N_PCI。PCI信息位于一帧数据开始的几个字节,通过第一个字节,就可以看出一帧数据是哪种帧。
四种帧开头第一个字节的4个bit分别是0、1、2、3,然后分别是DATA_LEN或者其他的控制信息。
0、1、2、3分别是单帧、首帧、连续帧、流控帧。
4种帧的PCI信息如下:
单帧:(SF,Single Frame):首个字节为0(4bit)+ Data Length(4bit),控制信息占用1个字节
首帧(FF,First Frame):前两个字节为1(4bit)+ Data Length(12bit),控制信息共占用2个字节。
流控制帧(简称流控帧,FC,Flow Control):前三个字节为3(4bit)+流状态(FS,4bit)+块大小(BS,8bit)+最小间隔时间(STmin,8bit),控制信息共占用三个字节。
连续帧(CF,Consecutive Frame):第一个字节为2+SN(最多16个SN,溢出后从0开始重新计数),控制信息占用1个字节。