刚接触CAN不久,对很多CAN相关的知识不了解,就难以进行灵活的运用。今天弄懂了CAN的标准帧和扩展帧的使用场合,故此做一下笔记。
首先,得知道为什么会有这两种不同的帧。
其实原因和IPV4和IPV6的区别一样,IPV6的出现,是为了解决IPV4的地址不够用的尴尬。同样,CAN的扩展帧,是为了解决CAN标准帧的11位标识符不够用的情况。所以,才有扩展帧。
拿汽车的CAN设备来说,每一个设备,都给一个CAN标识符,如果设备的数量超过了11位能表示的范围,那就采用CAN扩展帧。反之,采用标准帧就够了。
说到这个,今天调试的时候,发现CAN一次只能发送8个字节,也就是64Bit。如果你的数据大于8个字节,怎么办?
看了许多帖子说,拆包发送,这是一个方法。
另外,也可以使用CAN FD。
CAN FD有两种好处,速率可变。
第二个,也就是解决一次发送可以超过8个字节的问题,它一次能发送最多64个字节。
不过,就现在来说,并不兼容普通CAN,意思就是CAN FD发送的数据,普通CAN接受的话,会识别不了,出错。
CAN FD 发送数据给CAN FD,这没有问题。
但,普通CAN发送的数据,CAN FD,可以正常识别。
|