CAN总线上的报文帧类型(N_PCI)

1.四种报文类型(简洁明了)

请记住对于CAN报文来说,可以通过识别每条CAN的首个字节来确定它的类型,4种:
单帧 0
首帧 1
连续帧 2
流控帧 3

在这里插入图片描述

2. 单帧(SF,Single Frame)

0X 单帧首个字节:0(4bit)+ Data Length(4bit),控制信息占用1个字节
在这里插入图片描述
举例:

报文:01 B0 00 00 00 00 00 00

解析:
0:这是个单帧
1:有1个有效字节就是B0
剩下的自动填充

3.首帧(FF,First Frame)

1X XX前两个字节为1(4bit)+ Data Length(12bit),控制信息共占用2个字节。
在这里插入图片描述
数据长度最大:111111111111=2的12次方-1=4095 此时报文格式1F FF
举例:

报文:10 0C 70 07 04 C7 6E D2

解析:
1:这是个首帧
00C:代表着数据长度为12个字节
剩余的都是数据,因为DLC=8字节,所以首帧还可以带6个数据字节,剩余的6个数据怎么办呢?看流控帧

4.流控帧(FC,Flow Control)

3X 流控帧:前三个字节为FC :3(4bit)+流状态(FS,4bit)+块大小(BS,8bit)+最小间隔时间(STmin,8bit),控制信息共占用三个字节。
在这里插入图片描述
FC:3才能代表着这是流控帧

FS:
0:继续发送,Continue To Send(CTS)可无限发送
1:为Wait(WT)
2:为Overflow(OVFLW)

BS: 块大小,允许一次发送连续帧CF的个数。如果BS = 0,代表在数据传输的时,接收端不再发送流控帧了。发送端应当连续不断的发送数据,可无限制发送。

STmin: 上一个连续帧的确认接收(ACK)到新的连续帧开始发出的最小间隔时间
在这里插入图片描述
举例:

报文:30 08 02 00 00 00 00 00

解析:
3:这是个流控帧
0:继续发送流控帧
08:允许一次发送数据块的数量是8
02:间隔时间是2ms

5. 连续帧(CF,Consecutive Frame)

2X 连续帧:第一个字节为2+SN(最多16个SN,溢出后从0开始重新计数),控制信息占用1个字节。
在这里插入图片描述
需要注意的是,首帧虽然没有SN的区域,但是在首帧也占一个SN,因此首帧之后的连续帧需要从1开始计数。
第一个连续帧自然是0x21,之后一直到0x2F,下一个是0x20,循环。
举例:

报文:
21 E0 C4 89 CB 7B 78 68
22 47 14 DD 30 3C FE D1

解析:
2:代表着连续帧
1,2,3,4,5…F,1,2:序列

6.传输格式及其实例

在这里插入图片描述
在这里插入图片描述
这些报文看起来是不是熟悉多了。

7.总结

现在真的只想吃现成的,越快的掌握看懂才爽,所以不写太多文字,只把比较主要的标注一下。个人学习使用。
这个写的非常好,超级推荐更深入一点的朋友

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值