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

    文章

    3437

    浏览量

    106062
  • 控制器
    +关注

    关注

    112

    文章

    16396

    浏览量

    178492
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2756

    浏览量

    463895
  • CANFD
    +关注

    关注

    0

    文章

    58

    浏览量

    4969

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

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

收藏 人收藏

    评论

    相关推荐

    CAN/CANFD 总线干扰仪TESTBASE-BDI

    总线干扰仪是CAN/CANFD总线一致性测试必不可少的重要设备,用于实现采样点以及故障注入等测试项配合桌面式车载网络自动化测试系统TESTBASE-DESKNAT以及基于VBA的CAN/CANFD一致性测试套件可以便捷、高效、
    的头像 发表于 12-26 11:24 632次阅读
    CAN/<b class='flag-5'>CANFD</b> 总线干扰仪TESTBASE-BDI

    rk3588 canfd发送部分数据失败的问题

    在使用rk3588的板子进行canfd通信时,有些数据发送必然失败: 1,cansend can0 200##065.68.00.00.96.00.00.01 必然成功 2,cansend can0
    发表于 12-18 10:53

    CAN/CANFD卡接口函数使用说明

    电子发烧友网站提供《CAN/CANFD卡接口函数使用说明.pdf》资料免费下载
    发表于 10-15 17:35 0次下载

    RA MCU CANFD在FSP的配置详解

    RA MCU CANFD在FSP的配置详解
    的头像 发表于 06-19 08:06 555次阅读
    RA MCU <b class='flag-5'>CANFD</b>在FSP<b class='flag-5'>中</b>的配置详解

    CYT2B75 SK Rev03无法正常发送CANFD数据,为什么?

    (T2G_Sample_Driver_Library_8.0.0tviibe1msrcexamplescanfdUseAsCANFDMode),代码未经过任何修改,测试CANFD功能,初始化完成,debug,首次调用 Cy_CANFD_UpdateAndTransmitM
    发表于 05-24 07:37

    一帧CANFD报文由多少个位组成?

    要想知道CANFD报文由多少个位组成,那么我们就要了解CANFD帧结构,知道每个段占用位数从而得出CANFD报文位数。
    的头像 发表于 04-27 06:08 4540次阅读
    一帧<b class='flag-5'>CANFD</b>报文由多少个位组成?

    canfd协议是什么?canfd协议的应用场景

    CAN FD(CAN with Flexible Data rate)协议是一种串行通讯协议,继承了CAN总线的主要特性,如双线串行通讯、非破坏性仲裁技术、分布式实时控制,以及可靠的错误处理和检测
    的头像 发表于 04-17 14:55 2256次阅读

    汽车测试系统如何实现CANFD到EtherCAT的协议转换

    在汽车测试领域,EtherCAT为主控的汽车底盘测试控制系统,需接入CANFD为传输信号的汽车底盘控制器进行采集分析,系统间数据无法直接读取,该如何解决?我们知道汽车车机通讯系统CAN、CANFD
    的头像 发表于 03-22 08:23 988次阅读
    汽车测试系统如何实现<b class='flag-5'>CANFD</b>到EtherCAT的<b class='flag-5'>协议</b>转换

    CAN和CANFD协议简介(下)

    CAN和CANFD协议简介(下)
    的头像 发表于 02-19 12:08 1161次阅读
    CAN和<b class='flag-5'>CANFD</b><b class='flag-5'>协议</b>简介(下)

    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

    CAN和CANFD协议简介(上)

    CAN和CANFD协议简介(上)
    的头像 发表于 01-26 08:06 1442次阅读
    CAN和<b class='flag-5'>CANFD</b><b class='flag-5'>协议</b>简介(上)

    求助,关于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