关注菲益科公众号—>对话窗口发送 “CANoe ”或“INCA”,即可获得canoe入门到精通电子书和INCA软件安装包(不带授权码)下载地址。
前面我们讲了CAN的基础知识,但是由于CAN总线存在通讯速率低,报文头过长,刷新速率低等缺点。为解决这些问题CAN-FD应运而生。首先看看发展历史,2012年,BOSCH发布CAN FD white paper V1.0;2014,Infineon开发出支持CAN FD 的控制器(开始有相应的硬件),在2015年,ISO组织发布CAN FD标准(ISO 11898-1)。CAN FD有以下两个主要特点
- 双速率传输;仲裁场速率保持不变,数据场速率提高
- 数据场长度增加;最多支持64bytes,带宽利用率高
上图是CAN标准帧和CAN FD标准帧对比图
- SOF(Start of frame):帧起始,用于标识一个数据帧的开始,是一个显性位,只有当总线空闲时候节点才能够发送SOF
- ID:标识符,用于确定报文的ID,确定报文的仲裁优先级,ID数值越小,优先级越高
- RRS:对应传统CAN报文的RTR,
- IDE:用于区分CAN FD的扩展帧和标准帧(CANFD有两种格式)标准帧IDE=0;扩展帧IDE=1
- FDF:用于区分普通CAN报文和CAN FD报文。CAN报文,FDF=0;CAN FD报文,FDF=1
- res:保留位,当前为0
- BRS(Bit Rate Switch):前面提到CAN FD主要特点是双速率,双速率就是在这个地方切换的,BRS=1,进行速率切换;BRS=0,不进行速率切换
- ESI(Error State Indicator):错误状态指示,ESI=0,处于主动错误状态的节点;ESI=1,处于被动错误状态的节点
- DLC数据长度,表示数据场包含数据的字节数,CAN支持8bytes,而CANFD最多支持64bytes
- DATE Field数据场,具有0-64个字节长度,由DLC确定,包含数据帧发送的内容
- CRC(Cyclic Redundancy Check)循环校验
- ACK应答,确定报文被至少一个节点正确接收,发送节点发送隐性位,接收节点正确接收后发送显性。
- EOF(End of frame)表示数据帧结束。固定格式,7个连续的隐性位
- 部分新手不了解显性和隐形,简单解释下,CAN总线为隐性(逻辑1)时,CAN_H和CAN_L的电平都为2.5V(电位差为0V);CAN总线为显性(逻辑0)时,CAN_H和CAN_L电平分别为3.5V和1.5V(电位差为2.0V)
以上可以看出,CAN-FD显著提高了车载CAN网络的带宽,更长的数据场长度可以避免CAN总线上使用多次传输。并且CAN-FD的成本与CAN总线基本接近,对目前的软件和应用程序改动较小,CAN-FD保留了车载CAN网络的物理层和拓扑结构,能够提供CAN总线网络的无缝升级,这些优越性为CAN-FD提供了良好的发展前景。