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

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

3天内不再提示

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

ZLG致远电子 2022-07-22 15:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

b6bdbe6a-03ed-11ed-9ade-dac502259ad0.jpg  为什么存在发送延迟?

b6cfb520-03ed-11ed-9ade-dac502259ad0.jpg

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

  • CAN控制器内部产生TX信号到Tx引脚的传播延迟;
  • Tx引脚到收发器TxD引脚的传播延迟;
  • 收发器环路延迟TxD到RxD;
  • 收发器RxD引脚到CAN控制器Rx引脚延迟;

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

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


b6bdbe6a-03ed-11ed-9ade-dac502259ad0.jpg  为什么CANFD要对发送延迟做补偿?

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


b6bdbe6a-03ed-11ed-9ade-dac502259ad0.jpg  发送延迟补偿(TDC)

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

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

b6f92e6e-03ed-11ed-9ade-dac502259ad0.png

2.第二采样点(SSP)

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

b70c1b14-03ed-11ed-9ade-dac502259ad0.png

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

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

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


b6bdbe6a-03ed-11ed-9ade-dac502259ad0.jpg  TDC配置建议

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

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

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

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

b73668f6-03ed-11ed-9ade-dac502259ad0.png

【版权声明】本文为ZLG开发者社区用户原创内容,未经授权不得转载。欢迎更多用户到社区交流互动、创作博文,一经采用,可获得百元京东E卡。

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

    关注

    59

    文章

    3093

    浏览量

    473403
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RDMA设计32:RoCE v2 发送模块4

    请求状态机发送一个新的发送队列条目,重新开始数据包发送流程。 B已给出相关性能的视频,如想进一步了解,请搜索B用户:专注与守望 http
    发表于 01-29 16:05

    RDMA设计30:RoCE v2 发送模块2

    当 RoCE v2 发送模块检测到发送队列非空时,则从发送队列中读取一个发送队列条目,并判断请求类型。根据不同的请求类型和请求长度进入不同的包生成流程,这一过程由请求状态机实现。
    的头像 发表于 01-27 11:56 808次阅读
    RDMA设计30:RoCE v2 <b class='flag-5'>发送</b>模块2

    RDMA设计29:RoCE v2 发送及接收模块设计2

    的数据。 由于请求生成单元和应答生成单元并不是所有时刻都需要与 DMA 控制器进行数据交互,所以这里使用两个状态机分别控制请求生成和应答生成流程,以此来提高系统工作效率、降低响应延迟。RoCE v2 发送
    发表于 01-26 16:47

    RDMA设计25:队列管理模块之发送模块详细设计分析

    发送队列存储为所有发送队列共用的存储空间,根据用户环境和开发板环境不同可由 BRAM、URAM 或 LUTRAM 实现。发送队列管理单元则负责管理这个存储空间,并处理用户指令和发送队列
    的头像 发表于 01-25 16:27 4884次阅读
    RDMA设计25:队列管理模块之<b class='flag-5'>发送</b>模块详细设计分析

    RDMA设计28:RoCE v2 发送及接收模块设计

    较慢、延迟相对较高。因此在RoCE v2 发送及接收模块中,SEND 单元只用于进行主机间的信息参数交换,不直接涉及大批量的数据传输操作,可以在一定程度上降低传输延迟、增加数据吞吐量。而DMA 控制器在其
    发表于 01-25 10:45

    RDMA设计20:RoCE v2 发送及接收模块设计2

    IDLE 状态并返回异常完成条目。 DONE:请求完成状态。该状态下将发送寄存器中剩余的最后一帧数据并生成指 令完成信号。在一个时钟周期后回到 IDLE 状态。 B已给出相关性能的视频,如想进一步了解,请
    发表于 01-08 08:49

    RDMA设计19:RoCE v2 发送及接收模块设计

    较慢、延迟相对较高。因此在RoCE v2 发送及接收模块中,SEND 单元只用于进行主机间的信息参数交换,不直接涉及大批量的数据传输操作,可以在一定程度上降低传输延迟、增加数据吞吐量。而DMA 控制器在其
    发表于 01-06 08:08

    【瑞萨FPB-RA6E2试用】【原创】【瑞萨RA × Zephyr开发板评测】+进阶级任务测试之CAN发送数据测试

    ;counter_frame, K_MSEC(100), NULL, NULL); k_sleep(K_MSEC(500)); } } 如上线程主要实现发送两条报文,一条是标准报文,ID为0x10,一条是扩展
    发表于 12-31 13:32

    华为手机如何定时发送消息

    选项,让你设置未来发送的时间, 这个功能适用于单独联系人和群组, 你输入信息,选择日期和时间,手机会在设定时自动发送, 操作步骤很简单,基本使用不需要额外的软件, 磨针工具软件可以帮你记录发的内容并提醒你检查
    的头像 发表于 11-22 09:52 2047次阅读

    SNN加速器内部神经元数据连接方式

    的数量级,而且生物轴突的延迟和神经元的时间常数比数字电路的传播和转换延迟大得多,AER 的工作方式和神经网络的特点相吻合,所以受生物启发的神经形态处理器中的NoC或SNN
    发表于 10-24 07:34

    【CPKCOR-RA8D1】+ 4. 解析CANFD 的DBC协议,破解整车厂奥秘

    DBC文件是一种集成了CAN和CANFD报文格式帧的数据库,和整车厂合作开发项目时,必定会接触到DBC文件,解析DBC文件是考验一个汽车诊断工程师的终极水平题目!!!!!! 手头上刚好有和宝马
    发表于 10-18 18:12

    SPI主机/从机接收发送开启DMA通信

    AT32_SPI主机/从机接收发送开启DMA通信 示例目的 本示例代码展示了如何使用 AT32 的 DMA 进行 SPI 数据传输。SPI 作为主机时,接收和发送同时开启 DMA
    发表于 09-10 16:56

    CANFD 0 通道 2 上收到的所有消息传递到 CANFD 1 通道 0,是否可以使用 DAM 通道?

    你好 我正在尝试将 CANFD 0 通道 2 上收到的所有消息传递到 CANFD 1 通道 0,是否可以使用 DAM 通道?如何。 我在配置 CANFD 1 通道 0 中的源 FiFo 0 和目标 FiFo 0 的 DMA 描述
    发表于 07-14 06:56

    2.4GHZ 发送/接收 ZIGBEE RFEIC,带分集开关 skyworksinc

    电子发烧友网为你提供()2.4GHZ 发送/接收 ZIGBEE RFEIC,带分集开关相关产品参数、数据手册,更有2.4GHZ 发送/接收 ZIGBEE RFEIC,带分集开关的引脚图、接线图、封装
    发表于 06-26 18:35
    2.4GHZ <b class='flag-5'>发送</b>/接收 ZIGBEE RFEIC,带分集开关 skyworksinc

    ATS失效请求报文问题的故障排除步骤

    本篇文章提供了解决 ATS 失效请求报文问题的故障排除步骤,主要聚焦在 CQ 接口上未显示主机发送报文的情况。
    的头像 发表于 06-09 15:17 1911次阅读
    ATS失效请求<b class='flag-5'>报文</b>问题的故障排除步骤