目录
1.1 Classical CAN节点接收CANFD帧检出错误原因
1 图解CANFD网络兼容Classical CAN
关于CANFD帧和Classical CAN帧结构差异,详见博文《【图解CAN总线】-1-CANFD和经典CAN2.0帧结构对比https://blog.csdn.net/qfmzhu/article/details/122802584》和《【图解CAN总线】-4-详述CANFD和Classic CAN的Frame帧结构差异https://blog.csdn.net/qfmzhu/article/details/122806246》。
下面我们以图1-1为例,来看CANFD和Classical CAN的兼容问题:Node A/B/D为CANFD节点;Node C为Classical CAN节点。
图1-1
发送节点 | 发送帧类型 | 接收节点情况 | |
CANFD节点 | Tx Classical CAN Standard/Extended Frame | Classical CAN节点 | 正常接收 |
CANFD节点 | 正常接收 | ||
Tx CANFD Standard/Extended Frame | Classical CAN节点 | 检出错误 | |
CANFD节点 | 正常接收 | ||
Classical CAN节点 | Tx Classical CAN Standard/Extended Frame | Classical CAN节点 | 正常接收 |
CANFD节点 | 正常接收 |
从这个表格中,您可以清楚的看出:在CANFD网络中,只有在所有CANFD节点发送“Classical CAN Standard/Extended Frame”的情况下,才能兼容Classical CAN节点。
1.1 Classical CAN节点接收CANFD帧检出错误原因
下面以Classical CAN节点接收CANFD Standard Frame为例。
在Classical CAN Standard Frame和CANFD Standard Frame的IDE位前(前14Bit)都是相同的,IDE位后,开始存在差异,详见图2-1。
- Classical CAN Standard Frame中,R0位显性;
- CANFD Standard Frame中,FDF位(原R0位)隐性;Res位显性;BRS位隐性,开始切换Bit Rate(显性不切换Bit Rate);ESI位显性。
- ......
Classical CAN节点在接收到CANFD Standard Frame时,会接收到异常的DLC,但此时不会报错,接着由于CANFD Standard Frame的数据段Bit Rate变化,让Classical CAN节点在CAN Frame数据段(19 Bit之后)检出“Bit Stuffing位填充”错误,见图2-3。
如果CANFD Standard Frame选择“不加速(数据段和仲裁段使用相同Nominal bit time)”,此时Classical CAN节点在接收该帧时,会检出CRC错误。
图2-1
一个CANFD的CANoe脚本工程,接收到CANFD帧,见图2-2。
图2-2
一个Classical CAN的CANoe脚本工程,接收同一帧CANFD帧的效果,见图2-3。
图2-3
1.2 CAN FD升级解决方案选择
如果CAN网络当中传输CANFD帧,则所有CAN节点都需要升级至CANFD节点。
如果CAN网络当中不传输CANFD帧,则原先的部分Classical CAN节点可以继续使用,但其它升级至CANFD的节点只能发送Classical CAN帧。
2 CANFD对硬件设计要求
CANFD的使用意味着:一个Bit time需要比以往使用更多,更小的Tq(详见博文“【MCAL_CANDriver】-1.4-Tq与Bit Rate,Sync_Seg,Prop_Seg,Phase_Seg1, Phase_Seg2之间的关系https://blog.csdn.net/qfmzhu/article/details/126892968”的第3章),这对crystal oscillator晶体振荡器的Oscillator Clock的大小提出了更高要求(选型时,可能要使用20Mhz,40Mhz…的晶振)。
END
获取更多“汽车电子资讯”和“工具链使用”,
请关注“汽车电子助手”,做您的好助手。