物理层
引脚
|
|
|
6#,14# |
通讯引脚 |
2.5V |
4#,5# |
接地 |
0V |
16# |
正极(电源) |
12V~14.6V |
- 6#和14#引脚,属于全双工通讯
- 6#发送,14#接收(其实,这两个引脚都能发能收)
(以差分信号格式发送,优点就是可以降低误差)
工作电平
通讯电平
通讯波特率
关于初始化
- CAN协议不需要初始化过程,所有功能任何时候都是处于响应状态
(它根据帧头的优先级,来判断先响应谁)
链路层-帧格式
标准帧
- 11位的CAN协议
- 07 DF 08 02 01 02 99 99 99 99 99
- 其中,这个11位并不是指的上面这里是11个字节的意思,而是,前面两个字节一共16位,它只用到了其中的11位,也就是说,第一个字节的高5位是没有被用到的,即,第一个字节的低3位,最大二进制为111,也就是07(11位CAN的第一个字节的取值范围为:01-07,超过07,那就是另一种协议了)
- 前面两个字节,代表系统地址
- 第三个字节,代表后面的byte3-byte10一共是8个字节,所以这个08其实是个固定值
- 第四个字节,表示的是它后面的字节中的有效数据的个数(也就是说,02表示后面有两个有效数据,分别是01,02)
- 其他的99,是用来填充无效位的,这个可以用任何数字来填充。
扩展帧
- 29位的CAN协议
- 18 DA 10 F1 08 02 01 02 99 99 99 99 99
- 上面的这个帧,是29位的CAN协议,其中,08后面的字节的含义,是和11位的CAN协议一致的
- 不同的是
- 29位的CAN,帧头是由前4个字节构成的,4个字节,一共就是32位,而第一个字节的高3位没有被用到,所以它就是29位。
链路层-帧介绍
SF
- 单帧
- N_PCI(协议控制信息)占1个字节
- 传输的信息长度不能超过7个字节
- 07 DF 08 03 01 02 03 99 99 99 99
- 也就是说,上面的03不能超过07
(第一个字节的高4位如果是0000,那就是单帧,低4位表示长度)
FF
- 第一帧或首帧
- N_PCI占2个字节
- 传输的信息长度不超过8个字节,那就得分开发,分开发的话,第一帧,就是首帧,首帧只存放6个有效字节的有效数据
(首帧) 07 DF 08 10 09 01 02 03 04 05 06
(流控制帧)07 DF 08 30 00 99 99 99 99 99 99
- (连续帧) 07 DF 08 21 07 08 09 99 99 99 99
- 也就是说,上面的03不能超过07
(08后面第一个字节的高4位如果是0001,那就是首帧)
CF
- 连续帧
- N_PCI占1个字节
(08后面第一个字节的高4位如果是0010,那就是连续帧)
- 连续帧的序号,比如上面的就从21开始,到2F,然后再到20,然后再循环,也有直接从20开始计数的情况。
FC
- 流控制帧
(08后面第一个字节的高4位如果是0011,那就是流控制帧)
- 第一个字节的低4位,FS,流的状态
|
|
|
0 |
连续传输 |
传输的信息能达到最大值 |
1 |
正等待 |
正等待CF |
2 |
溢出 |
收到的FF_DL超过了缓冲区的大小 |
3-F |
保留 |
|
|
|
00 |
表示连续帧信息可达到最大量 |
01-FF |
接收每段连续帧可传输信息的量 |
|
|
00-7F |
0-127ms |
80-F0 |
保留 |
F1-F9 |
100-900us |
FA-FF |
保留 |
本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!
Bingliaolong
关注:0 粉丝:0
最后编辑于:2021-11-21
Everything will be better.