CAN FD帧结构
CAN FD节点可以正常收、发CAN报文,但CAN节点不能正确收、发CAN FD报文,因为其帧格式不一致。
与CAN一样,CAN FD一共具有:帧起始,仲裁段,控制段,数据段,CRC段,ACK段和帧结束,7部分组成。
2.1、帧起始
CAN与CANFD使用相同的SOF标志位来标志报文的起始。帧起始由1个显性位构成,标志着报文的开始,并在总线上起着同步作用。
2.2、仲裁段
与CAN不同,CAN FD取消了对远程帧的支持,用RRS位替换了RTR位,为常显性。IDE用于区分标准帧和扩展帧。
标准帧仲裁段由11位ID和r1位(显性)、IDE(显性)组成,总共13位。扩展帧仲裁段由29位ID和SRR(隐性)、IDE(隐性)、r1位(显性)组成,总共32位。
SRR:替代CAN标准帧中的RTR位;
IDE:扩展帧标志位;
r1:保留位,为显性。
2.3、控制段
CAN FD与CAN有着相同的IDE、res和DLC位,同时增加了FDF、BRS、ESI三个bit位。
FDF 位(Flexible Data Rate Format):原 CAN 数据帧中的保留位 r。表示 CAN 报文还是 CAN-FD 报文,FDF
位常为隐性(1),表示 CAN FD 报文;
BRS 位( Bit Rate Switch):表示位速率转换,当 BRS 为显性位(0)时数据段的位速率与仲裁段的位速率一致(恒定速率),当 BRS
为隐性位(1)时速率可变(即 BSR 到 CRC 使用转换速率传输);
ESI 位(Error State Indicator):发送节点错误状态指示,主动错误时发送显性位(0),被动错误时发送隐性位(1)。
2.4、数据段
CAN FD兼容CAN的数据格式,同时最大还能支持:12、16、 20、 24、 32、 48和64byte。
像在传统CAN中一样,CAN FD DLC是4位,表示帧中数据字节的数量。为了维持4位DLC,CAN
FD使用从9到15的其余7个值来表示所使用的数据字节数(12、16、20、24、32、48、64)。
2.5、CRC段
传统CAN中的循环冗余校验(CRC)为15位,而在CAN
FD中由固定填充位FSB(6/7位)、填充位计数(4位)、CRC(17/21位)和CRC界定符(1位)组成,总共28或33位组成。在传统CAN中,CRC中可以包含0到3个填充位,而在CAN
FD中,总是有4个固定填充位以提高通信可靠性。
固定填充位(FSB):CRC段中每4个位固定填充一个与上位相反的位。
采用CRC17时,FSB为6个位;
采用CRC21时,FSB为7个位。
填充位计数:由填充位计数(3位)和奇偶校验位(1位)组成。
CRC:
报文长度小于16时,采用CRC17,17位组成;
报文长度大于16时,采用CRC21,21位组成。
CRC界定符:固定为隐性位;从该位采样后,切换为仲裁域波特率。
2.6、ACK段
ACK紧跟着CRC结束标识位。不同的是,CAN FD支持2bits的ACK的识别,由ACK位和ACK界定符位组成。
ACK:接收节点应答位,接收节点应应答显性位;
ACK界定符,固定为隐性。
2.7、帧结束
与CAN一样,CAN FD的帧结尾也为连续7位的隐性位。
相关文章