都说CANFD是兼容CAN的,实际上这句话有个大前提,那就是CAN控制器是完全遵循ISO11898-1规范的。为什么这么说,接下来听君娓娓道来…
我们先看下CAN的帧结构:
CAN帧结构
从上图可以看出,标准帧中有个r0位,这个位实际上是个保留位,ISO11898-1中规定:发送方发送r0位固定为显性,接收方则不对该位显隐性做判断。同样,扩展帧除r0位还有个r1位,也是保留位,其规定与r0位一致。由于ISO11898-1对保留位的规定,导致部分老旧的CAN控制器在发送保留位时,未遵循ISO规范要求,将r0或r1位发送为隐性,而不是显性,接收方也能正常接收CAN报文。那么CAN控制器发送标准帧r0或扩展帧r1为隐性,在CANFD中会导致什么问题呢?这个就要从CANFD帧结构说起了。
CANFD帧结构
如上图所示中箭头方向,在CANFD帧中,原来的CAN标准帧中的r0为此时变为了EDL位(CANFD位),CAN扩展帧中的r1位也同样变为EDL位。EDL位规定,EDL为隐性时为CANFD帧,显性为CAN帧。
CAN标准帧r0位和扩展帧r1位发送隐性位带来的问题那么问题就来了,那些未完全符合ISO11898-1规范的CAN控制器,他们发送CAN帧时R0位为隐性,此时若总线上存在CANFD节点时,就会被CANFD控制器识别为CANFD帧,但是实际上他发送又是CAN帧,这种情况下就导致CANFD控制器接收异常而发送错误帧。这种情况下,对于不完全遵循ISO11898-1规范的CAN控制器来说,CANFD就不兼容CAN了。
最后,我们再通过上面这张图总结下:未符合ISO11898-1规范的CAN控制器,因其发送报文时,标准帧r0位或扩展帧r1位为隐性,在CANFD网络中,会被CANFD控制器的接收方判别为CANFD帧,从而导致总线错误。
解决方法
若总线存在此CAN控制器时,我们可以将CANFD控制器设置为CAN控制器以兼容该CAN节点。
若使用USBCANFD-200U系列CANFD卡,遇到不规范的CAN控制器时,我们可以通过ZCANPRO设置控制器类型为CAN,就可以解决这个问题。
原文标题:【Z站推荐】CANFD真的完全兼容CAN?
文章出处:【微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。
-
CAN
+关注
关注
57文章
2775浏览量
464566 -
CAN控制器
+关注
关注
3文章
74浏览量
15111 -
CANFD
+关注
关注
0文章
59浏览量
5025
原文标题:【Z站推荐】CANFD真的完全兼容CAN?
文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
CAN/CANFD 总线干扰仪TESTBASE-BDI
![<b class='flag-5'>CAN</b>/<b class='flag-5'>CANFD</b> 总线干扰仪TESTBASE-BDI](https://file1.elecfans.com/web3/M00/03/D5/wKgZPGdszDuAd9_oAABhbiYsSsg400.png)
如何选择CAN总线控制器
一款实现PLC扩展CANFD的好工具 — PXB-6020D协议转换器
![一款实现PLC扩展<b class='flag-5'>CANFD</b>的好工具 — PXB-6020D协议转换<b class='flag-5'>器</b>](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
CAN总线控制器的工作原理
CAN总线控制器是什么意思
![](https://file1.elecfans.com/web2/M00/05/E9/wKgaombWYRuADTnVAAeYRVxabc8621.jpg)
![](https://file1.elecfans.com/web2/M00/05/75/wKgaombP37GAUQ6xAAmYuqOKRig366.jpg)
【龙芯2K0300蜂鸟板试用】CAN接口驱动板设计、CANFD测试、CAN C++程序驱动测试
![](https://file1.elecfans.com/web2/M00/EE/3C/wKgaomZqtZyAU9VMAAHe9U_zjLI026.png)
详解TSMaster CAN 与 CANFD 的 CRC E2E 校验方法
![详解TSMaster <b class='flag-5'>CAN</b> 与 <b class='flag-5'>CANFD</b> 的 CRC E2E 校验方法](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
CYT2B75 SK Rev03无法正常发送CANFD数据,为什么?
汽车测试系统如何实现CANFD到EtherCAT的协议转换
![汽车测试系统如何实现<b class='flag-5'>CANFD</b>到EtherCAT的协议转换](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
评论