CANFD报文由多少个位组成? | 您所在的位置:网站首页 › canfd驱动芯片 › CANFD报文由多少个位组成? |
我们知道CANFD比CAN拥有更长的数据长度(最长64字节),更高的波特率(8Mbps甚至更高)。那么波特率更高,数据更长的CANFD,一秒钟最高可以发送多少帧CANFD报文呢? 要想知道问题的答案,那么我们就要知道一帧CANFD报文由多少个位组成,再由具体波特率算出报文时间,最后就可以得出每秒能发送的帧数了。接下来,我们就一步步来算出答案。要想知道CANFD报文由多少个位组成,那么我们就要了解CANFD帧结构,知道每个段占用位数从而得出CANFD报文位数。
![]() 如上图所示,分别为CANFD标准帧和扩展帧,其组成如下: 1. 帧起始:起始信号,由1个显性位组成。2. 仲裁段: 标准帧仲裁段由11位ID和r1位(显性)、IDE(显性)组成,总共13位; 扩展帧仲裁段由29位ID和SRR(隐性)、IDE(隐性)、r1位(显性)组成,总共32位。○ SRR:替代CAN标准帧中的RTR位; ○ IDE:扩展帧标志位; ○ r1:保留位,为显性; 3. 控制段:由EDL、r0、BRS、ESI、DLC总共8个位组成。 EDL:CANFD帧标识,为隐性; r0:保留位,为显性; BRS:位速率切换,该位显性则仍采用仲裁域波特率;该位为隐性,则该位发送到采样点后,采用数据域波特率; ESI:错误状态指示位,指示发送节点为主动错误状态(显性),还是被动错误状态(隐性);DLC:数据段长度指示,4个位组成。 4. 数据段:0~64字节,也就是0~512个位。5. CRC段:由固定填充位FSB(6/7位)、填充位计数(4位)、CRC(17/21位)CRC界定符(1位)组成,总共28或33位组成。![]() 采用CRC17时,FSB为6个位; 采用CRC21时,FSB为7个位; 7. 填充位计数:由填充位计数(3位)和奇偶校验位(1位)组成。8. CRC: 报文长度小于16时,采用CRC17,17位组成; 报文长度大于16时,采用CRC21,21位组成。 9. CRC界定符:固定为隐性位;从该位采样后,切换为仲裁域波特率。10. ACK段:由ACK位和ACK界定符位组成,总共2位。ACK:接收节点应答位,接收节点应应答显性位; ACK界定符,固定为隐性; 11. 帧结束:固定为7个隐性位。 12. 帧间隔:每次发送一帧报文后,需留3位时间作为帧间隔。
标准帧,数据0字节: 帧起始(1位)+ 仲裁段(13位)+ 控制段(8位)+ 数据段(0位)+ CRC段(28位)+ ACK段(2位)+ 帧结束(7位)= 59位 标准帧,数据64字节: 帧起始(1位)+ 仲裁段(13位)+ 控制段(8位)+ 数据段(512位)+ CRC段(33位)+ ACK段(2位)+ 帧结束(7位)= 576位 扩展帧,数据0字节: 帧起始(1位)+ 仲裁段(32位)+ 控制段(8位)+ 数据段(0位)+ CRC段(28位)+ ACK段(2位)+ 帧结束(7位)= 78位 扩展帧,数据64字节: 帧起始(1位)+ 仲裁段(13位)+ 控制段(8位)+ 数据段(512位)+ CRC段(33位)+ ACK段(2位)+ 帧结束(7位)= 590位
由于CANFD采用了双波特率形式:标准波特率(也称仲裁域波特率)和数据域波特率,所以帧结构中不同段采用的波特率也不同。 仲裁域波特率所占位数: 帧起始(1位)+ 仲裁段(13位)+ 控制段的EDL、r0、BRS(3位)+ ACK段(2位)+ 帧结束(7位) 数据域波特率所占位数:控制段的ESI、DLC(5位)+ 数据段(0~512位)+ CRC段(28/33位) 主要说明的是,BRS位和CRC界定符位均同时使用了两个波特率: BRS位:由**仲裁域波特率 * 仲裁域采样点 + 数据域波特率 * (1 - 仲裁域采样点)**组成; CRC界定符:由**数据域波特率 * 数据域采样点 + 仲裁域波特率 * (1 - 数据域采样点)**组成; 我们此处将BRS认定采用仲裁域波特率、CRC界定符采用数据域波特率以方便计算。
![]()
下面我们给出一些常用波特率下,不同类型报文每秒最多可以发送的CANFD报文帧数(下表中报文BRS位为1,ESI位为0),供大家参考。 500K/2M波特率 ![]()
1M/8M波特率 ![]()
|
CopyRight 2018-2019 实验室设备网 版权所有 |