一文了解CANFD基础
文章目录
- 1、为什么会出现CANFD?
- 2、ISO CANFD 和 NON-ISO CANFD的区别?
- 3、CANFD怎么提高数据传输速率的?
- 4、CANFD的帧结构
- 5、CANFD的CRC校验机制
- 6、CANFD的位填充机制
1、为什么会出现CANFD?
CANFD,全称CAN with Flexible Data rate,顾名思义是可变数据速率的CAN报文。CANFD是在CAN的基础上的迭代更新,具备以下几个优势:
- 支持更高的传输速率(最高达到8Mbps),提高ECU刷写效率;
- CANFD通信能够利用CAN控制器的线束和物理层,可重复利用的特点降低成本,同时提高了兼容性;
- 更高的带宽在新能源汽车上具有更大的优势;
- 单个数据帧能够传输64个字节信息,避免了CAN数据分拆传输;
- 应用层不需要做调整,只是在原基础上做扩展。
因此,CANFD得到了广泛的应用与发展。
2、ISO CANFD 和 NON-ISO CANFD的区别?
如下图,在CANoe中配置通道信息时关于CAN Controller的Mode中CANFD有两种选择,NON-ISO CANFD 和 ISO CANFD应该选择哪一个呢?首先CANFD在2012年由博世开发,到2015年在ISO 11898-1中标准化。在2012到2015年之间,已经开发了不少CANFD产品在市面上应用,属于非ISO标准的CANFD产品,但是又无法被完全召回,因此把这一部分的产品称为NON-ISO CANFD控制器。
NON-ISO CANFD 和 ISO CANFD相同点:传输速率一致,数据长度一致。
NON-ISO CANFD 和 ISO CANFD不同点: ISO CANFD引入了一个3位的填充位计数器和额外的校验位;二者的CRC计算值也不同,所以两者是不兼容的
。
3、CANFD怎么提高数据传输速率的?
CANFD支持消息的双比特率,具体实现上CANFD在仲裁段由于总线上可能存在多个发送节点,这时使用较低的传输速率;而数据段结束仲裁,总线上只有一个节点在发送数据,传输速率可以切换到一个较高的值,CANFD使用更大的数据场来提高传输效率,取消了远程帧。
4、CANFD的帧结构
CANFD帧由帧起始SOF,ID仲裁段,控制段,数据域,CRC域,ACK域,帧结束,共七个部分组成。各段长度信息已经在CANFD帧结构图中给出标示。标准帧格式如下图,扩展帧格式与CAN类似,仅在此基础上对ID做了扩展,不做赘述。
5、CANFD的CRC校验机制
由于CANFD数据场长度有变化区间,为了提高数据传输的正确性,根据数据场长度变化采用不同的CRC校验机制:
- 数据场长度小于16位,采用17位CRC校验;
- 数据场长度大于16位,采用21位CRC校验。
6、CANFD的位填充机制
CANFD在CRC场前面增加了4个位(stuff bit Counter),统计SOF到CRC前的填充位个数。从上面的帧结构来看,CANFD报文在CRC前和CRC段采用不同的位填充机制。
- SOF到Data段:每5个相同位填充一个相反位(位填充规则与CAN一致)
- CRC场:固定位置的位填充方式。规则为:确定在第1位以及以后每4位添加一个填充位,该填充位是上一位的反码。如果检测到填充位不是上一位的反码,就判定为错误处理。