关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯 来源: 知乎用户 CAN与CANFD的传输速率与数据域长度比较 1、传输速率不同 CAN的传输速率: 一般的工程中比较常用的为500K每秒的通讯速率。这个速率在实际测试的时候也是非常可靠的。CAN总线上任意两个节点的最大传输距离与其位速率有关。最大通信距离指的是同一条总线上两个节点之间的距离。从下面图中,可以看到速率越低通讯距离就越远,也就是说CAN总线的通讯距离和波特率成反比。CAN最大传输速率为1Mbps
CAN总线的通讯距离和波特率的关系图 CANFD的传输速率: CAN-FD 采用了两种位速率:从控制场中的 BRS 位到 ACK 场之前(含 CRC 分界符)为可变速率,其余部分为原 CAN 总线用的速率。两种速率各有一套位时间定义 寄存器,它们除了采用不同的位时间单位 TQ 外,位时间各段的分配比例也可不同。 因此,对于 CAN FD而言,是在 CAN 的基础上增加了一个数据域的传输速率,数据传输速率要大于等于原 CAN 总线用的速率。也就是说 CAN FD 支持两种传输速率,两种速率可以保持一致,也可以不保持一致。速率可变,仲裁比特率最高1Mbps,数据比特率最高8Mbps。
标准帧对比
扩展帧对比 2、数据域长度不同 CAN的数据域长度,一帧数据最长8字节。CAN FD数据域长度,一帧数据最长64字节。 传统CAN报文与CANFD报文的DLC长度区别如下所示:
传统CAN报文与CANFD报文的最大区别有2点 1、CANFD可以传输更多的数据 2、CANFD报文在传输中由2种传输速率完成传输,一种是标称的CAN总线速率(用于传输非数据域的字段),另一种是数据域传输速度(用于传输数据域的字段)。 3、帧格式不同 在CAN总线上传输的信息称为报文,当总线空闲时任何连接的单元都可以开始发送新的报文。CAN通信是通过以下5种类型的帧进行的:数据帧 、遥控帧 、错误帧 、过载帧 、帧间隔。
can总线数据帧格式
can遥控帧 Framing 帧格式 标准帧 标准帧(11 ID + 0~8 bytes data) 标准远程帧(11 ID + 0 byte data) 扩展帧 扩展帧(29 ID + 0~8 bytes data) 扩展远程帧(29 ID + 0 byte data)
SOF :0(显性电位为 0,隐性电位为 1,总线空闲默认为 1),帧起始,接收节点收到帧起始会和总线时钟进行同步(硬同步、重同步,这里是硬同步)。 仲裁字段 ID:高位在前 RTR :远程帧请求,远程帧为 0,表示是数据帧,否则是远程帧。远程帧表明接受该帧的节点即不主动发送数据,当他收到远程帧时,才开始发送数据,减少占用 CAN 的通信。 控制字段 IDE :表示是否是扩展帧,IDE 为 1 是扩展帧 r :保留位DLC :数据长度,合理范围是 0 - 8,超过则表示 8 字节数据字段 校验字段 CRC :15位校验位 DEL(delimter) :分隔符,无意义,为 1 确认字段 ACK :发送节点,该位都为 1,接受节点 CRC 正确则在 ACK 位时,该位置置为 0,否则还是 1。如果发送节点回读 ACK 是 0,继续发送,否则停止发送,下一次发送一个错误帧。(下一次发送错误帧不太理解) DEL EOF + ITM :结束字段 + 帧间隔
扩展帧结构 位填充 : 出现了五个相同的位(包括填充位),就在下一个位置填充一个相反的位。 范围从 SOF 开始一直到 CRC。 帧错误检测机制 位监控 :回读发送出去的位的数据 ACK 位 :发送数据的节点回读 ACK 是 0,继续发送,否则意味着发生错误停止发送 Stuff Check :填充检测 CRC 检测 Form 检测 :一些分隔符 del 等 发先帧错误后:某一个节点检查到发送或者接受的帧出现错误,会以发送错误帧的方式告知其他参与通信的节点,当前正在发送或者接受的帧是有问题的。
帧错误检测机制 FD结构 硬件、协议轻微改动。CAN FD 数据段最多 64 字节。CAN FD 最高支持 8MB/s 的传输速率。CAN FD 采用可变速率,数据字段传输快。 CAN FD 没有远程帧,只分为两种:标准帧(标识符 11 位)和扩展帧(标识符 29 位)
CAN FD标准帧中的数据帧
CAN FD标准帧和扩展帧结构 SOF :帧起始 标识符ID RRS 代替原来的 CAN 帧的 RTR IDE :表示是否是扩展帧 FDF :表示是否是 CAN 帧还是 CAN FD 帧 r :保留位 BRS (Bit Rate Switch):之后数据段传输是否变换速度,BRS 之前属于仲裁段,会以低速传输;BRS 开始到 CRC 分隔符为止,属于数据段,可以高速传输。CRC 分割符之后,由于需要 ACK 应答,因此又变为低速传输。 ESI :用来告知其余节点,发送方的错误状态。 DLC :0-8 线性表示数据长度,9-15离散的表示数据长度。 CRC :根据不同的数据长度使用不同长度的 CRC 校验。CAN 使用 15 位的 CRC 校验,且不包含填充位。CAN FD CRC 包含数据填充位。CAN FD 在 CRC 字段的前四位增加了对前面填充位的计数校验,前面的填充同样是 5 个相同位跟一个相反的位。CRC 字段不适用之前的填充,而是使用固定位填充,从 CRC 字段开始位置开始填充,每隔四个位填充一位,每次填充的位都取前一个的相反值。 先统计 SOF 开始到 CRC 字段之前填充位的个数对 8 取模,将数值以格林编码的形式存放在高三位,最后一位偶校验位,校验前三位。 当数据段大于 16 字节,使用 21 位 CRC 当数据段小于等于 16 字节,使用 17 位 CRC 3.3.CAN FD新增了FDF、BRS、ESI位 FDF :表示CAN报文还是CAN-FD报文。 BRS :表示位速率转换,该位隐性时,速率可变(即BSR到CRC使用转换速率传输),该位为显性时,以正常的CAN-FD总线速率传输(恒定速率); ESI :表示发送节点状态。
关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车 电子与软件最新资讯
会务组联系方式 电话:13248139830(门票)