0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CANFD协议中的概念

AGk5_ZLG_zhiyua 来源:ZLG致远电子 作者:ZLG致远电子 2022-07-08 14:30 次阅读

CANFD协议中,有个重要的概念TDC(Transmitter Delay Compensation)即发送延迟补偿。为什么会存在发送延迟,又为什么CANFD要对发送延迟做补偿?

为什么存在发送延迟?

54fa560c-fe70-11ec-ba43-dac502259ad0.jpg

众所周知,CAN控制器发送信号时,是经过收发器后发往CAN总线后,再经过收发器反馈总线信号。那么发送过程中,控制器发送位信号到接收位信号就不可避免地存在环路延迟。发送延迟时间的总和如下:

CAN控制器内部产生TX信号到Tx引脚的传播延迟;

Tx引脚到收发器TxD引脚的传播延迟;

收发器环路延迟TxD到RxD;

收发器RxD引脚到CAN控制器Rx引脚延迟;

CAN控制器Rx引脚到控制器内部收到Rx信号的延迟。

CAN协议中规定:发送方发送位时,需检测接收到的位与发送是否一致,若不一致则产生错误帧(位错误)。如果发送延迟过长,则将直接导致发送与接收位不一致而产生错误帧。由于传统CAN协议规定最高波特率为1Mbps,即位宽1us,正常情况下,传输延迟不会超过位宽的采样点(当然具体延迟取决于收发器环路延迟、传输距离、传输线缆质量等),因此不会因为发送延迟而产生错误。

为什么CANFD要对发送延迟做补偿?

在CANFD中,数据段的波特率是比CAN更高的(BRS位为隐性时),此时波特率越高,位宽越小,在发送报文时发送延迟影响越大,越容易产生位错误。由于发送延迟无法避免,此时就需要一种机制来保证发送与接收的位对应上,以避免产生位错误。这种机制就是发送延迟补偿了。

发送延迟补偿(TDC)

TDC实际上就是在发送BRS位为隐性的CANFD报文时(BRS隐性即开启数据域波特率),在发送时延迟一定时间后,在第二采样点采样接收位,以正确采样到发送位对应的接收位。

1. 发送延迟测量那么延迟采样的延迟时间是多久呢?实际上,开启TDC后,控制器将自动测量Tx信号线上FDF位到r0位下降沿与Rx信号线上FDF位到r0位边沿的之间的延迟时间,如下图中所示,TDCV即为延迟时间。发送延迟测量的时间单位为CAN控制器时钟(TDC寄存器中一般对TDCV的值有限制,若超过寄存器最大位数,则发送延迟测量失败)。

55b91768-fe70-11ec-ba43-dac502259ad0.png

2. 第二采样点(SSP)

在达到延迟时间后,控制器此时需要采样接收位,该采样点我们称为第二采样点(SSP=Second Sample Point),以区别未延迟之前的采样点(SP),如下图所示。

55c39a26-fe70-11ec-ba43-dac502259ad0.png

SSP等于测量延迟TDCV+发送延迟补偿偏移TDCO(TDC Offset)之和。一般TDCO设置与第一采样点一致,即(PROP+TSEG1) * DBRP。主要注意是:实际填入寄存器的波特率参数一般为实际值减一,具体可参考控制器手册说明。此外,ISO11898-1:2015中还对TDC做了一些规定:

开启TDC后,数据段波特率的预分频值(DBRP)应设置为1或2;

控制器实现TDC机制应能补偿至少两个位时间。

TDC配置建议

当CANFD数据域波特率大于1Mbps时,应开启TDC;

数据段波特率的预分频值(DBRP)建议设置为1或2;

第二采样点SSP=发送延迟测量值TD + Offset, 其中Offset设置与第一采样点一致或早1Tq。

当然,USBCANFD-200U系列CANFD卡的TDC也同样遵循上述配置,用户使用时,无需再手动配置。

原文标题:【Z站推荐】为什么发送CANFD加速报文要开启发送延迟补偿(TDC)?

文章出处:【微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 收发器
    +关注

    关注

    10

    文章

    2965

    浏览量

    104692
  • 控制器
    +关注

    关注

    112

    文章

    15132

    浏览量

    170836
  • CAN
    CAN
    +关注

    关注

    56

    文章

    2451

    浏览量

    458978
  • CANFD
    +关注

    关注

    0

    文章

    41

    浏览量

    4797

原文标题:【Z站推荐】为什么发送CANFD加速报文要开启发送延迟补偿(TDC)?

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TC275D系列的芯片支持标准CANFD能配置成非标准CANFD的吗?

    TC275D系列的芯片支持标准CANFD,是否也能配置成非标准CANFD的呢,有那位技术人员配置过吗?
    发表于 02-06 08:31

    使用CYT2B75芯片CANFD模块无法发送消息是什么原因导致的呢?

    你好,我使用SDL的exampleCANFD代码测试CYT2B75芯片CANFD模块,对部分代码进行了硬件适配修改,详见附件,配置为每秒发送一次CAN报文。 问题:消息发送失败,且电脑上位机无法
    发表于 02-02 06:57

    CANFD SDL无法被接收到的原因?

    任何 CANFD 消息,如果把 cy_stc_canfd_config_t 的 .canFDMode 改为 false 就可以收到,是因为 BAUDRATE 与 DATARATE 的关系吗 ?,我应该要填多少 ?,该怎么从代码推算呢 ?
    发表于 02-01 07:27

    求助,关于M467系列CANFD的BSP例程疑问

    CANFD_SetSIDFltr(g_pCanfd, 0, CANFD_RX_BUFFER_STD(0x111, 0)); CANFD_SetSIDFltr(g_pCanfd, 0
    发表于 01-16 08:19

    M467的CANFD通道如何使传送效率最高?

    现在我在用M467-64PIN 进行解算与数据收发; M467的CANFD通道,如何使传送效率最高? 例如使用1M+5M传输模式,如何使传送效率最高? 例如循环发送64 Byte的计算数据,需要
    发表于 01-16 06:18

    CAN与CANFD的区别 CAN与CANFD如何转换

    CAN与CANFD的区别 CAN与CANFD如何转换  CAN(Controller Area Network)是一种广泛应用于汽车和工业控制系统等领域的串行通信协议,用于在不同的设备间传输数据
    的头像 发表于 11-22 16:37 3560次阅读

    RA MCU CANFD在FSP中的配置详解

    在瑞萨RA系列MCU产品中,目前RA4E2、RA4T1、RA6E2、RA6T2和RA6T3搭载了CANFD Lite(硬件手册中成为CANFD_B)模块,相关的详细IP介绍,请参见之前的文章
    的头像 发表于 10-20 14:46 605次阅读
    RA MCU <b class='flag-5'>CANFD</b>在FSP中的配置详解

    CAN和CANFD协议简介(下)

    前篇内容请点击查看: RA MCU CAN和CANFD IP介绍 CAN和CANFD协议简介(上) 2. CAN协议 2.2 协议层 前文
    的头像 发表于 08-02 12:15 1361次阅读
    CAN和<b class='flag-5'>CANFD</b><b class='flag-5'>协议</b>简介(下)

    玩转先楫CANFD外设系列之一:轻松搞起CANFD

    一、概述先楫的CANFD外设,有两个CANFD的IP,其中HPM6700系列,HPM6400系列、HPM6300系列使用的是CAN,包括了经典CAN和CANFD。而HPM6200系列则使用的MCAN
    的头像 发表于 08-02 08:20 1284次阅读
    玩转先楫<b class='flag-5'>CANFD</b>外设系列之一:轻松搞起<b class='flag-5'>CANFD</b>

    开发者分享:轻松搞起CANFD

    先楫的CANFD外设,有两个CANFD的IP,其中HPM6700系列,HPM6400系列、HPM6300系列使用的是CAN,包括了经典CAN和CANFD
    的头像 发表于 08-01 10:28 1494次阅读
    开发者分享:轻松搞起<b class='flag-5'>CANFD</b>

    CAN和CANFD协议简介(上)

    前篇内容请点击查看: RA MCU CAN和CANFD IP介绍 1. 概述 CAN(Controller Area Network)和CANFD(Controller Area Network
    的头像 发表于 07-31 12:10 1483次阅读
    CAN和<b class='flag-5'>CANFD</b><b class='flag-5'>协议</b>简介(上)

    CANFD协议 CANFD优势分析

    CAN-FD概述 1.1 基于OSI参考模型的CAN-FD 协议分层 CAN-FD 的协议架构(网络分层)与传统 CAN 保持一致,故后文中对协议架构部分的说明将不对CAN与CAN-FD进行区分
    的头像 发表于 07-18 11:24 914次阅读
    <b class='flag-5'>CANFD</b><b class='flag-5'>协议</b>  <b class='flag-5'>CANFD</b>优势分析

    基于Tricore的CANFD入门工程

    汽车嵌入式开发,很多时候,想学一些东西(eg:CANFD),但又不知道如何下手,这应该是大多数刚入行工程师的苦恼。目前项目上,CANFD的使用已经很普遍,而单纯阅读芯片手册,可能无法透彻的理解CANFD,如果想透彻的理解
    的头像 发表于 07-12 09:46 627次阅读
    基于Tricore的<b class='flag-5'>CANFD</b>入门工程

    求助,LPC5516 CANFD采样点4M以上波特率如何设置70%以上?

    当采样点设置大于70%时,数据阶段会出现协议错误,发送错误帧。数据波特率小于4M时无此问题,采样点小于70%即可。 单片机:LPC5516 CANFD发射器:TJA1042/3 CANFD模块时钟:80MHz 通讯接口:Kvas
    发表于 05-16 06:59

    Can_43_LLCE驱动程序示例代码如何将CANFD更改为经典CAN?

    我下载了LLCE CAN驱动程序,运行LLCE CAN示例代码ok,目前示例代码can frame是CANFD,我想将CANFD改成经典CAN(CAN2.0),但是我找不到任何与can frame format setting
    发表于 05-12 06:28