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
    +关注

    关注

    57

    文章

    2938

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    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 ?732次阅读
    ATS失效请求<b class='flag-5'>报文</b>问题的故障排除步骤

    解锁TSMaster fifo函数:报文读取的高效方法

    前言:TSMaster目前有两种读取报文的模式:回调函数模式和fifo模式。fifo函数是TSMaster近期新增的函数,本文将重点介绍fifo模块。关于回调函数的使用方法可以参考帮助模块的《快速
    的头像 发表于 03-14 20:04 ?582次阅读
    解锁TSMaster fifo函数:<b class='flag-5'>报文</b>读取的高效方法

    STM32F103做从 上电过程,上位机不断发送数据造成,通讯失败怎么解决?

    主机上挂了多个STM32 485从, 主机不断轮询发送数据,STM32上电过程中如果主已经在不断发送数据了就STM32一直无法接收数据,不知道什么原因造成,请各位大侠指导一下。我使
    发表于 03-13 08:11

    STM32G473 CAN发送数据出现丢帧怎么解决?

    配置CAN以FIFO模式发送,单片机周期发送不同ID的CAN报文,同时使用软件ZCANPRO周期发送不同ID的报文到CAN总线上来模拟总线上
    发表于 03-11 08:30

    TDC1000能否用于多普勒测流?

    你好,我想问下TDC1000能否用于多普勒测流?就是通过STOP的频率计算出回波的频率?根据发送频率和STOP频率来计算频差,使用TDC1000的方案能满足这个技术要求吗?
    发表于 12-25 07:19

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

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

    TDC7201支持全双工SPI吗?

    1.TDC7201支持全双工SPI么?就是SCLK发送了8个地址位数据后,需要等待一会才发送时钟信号读取数据么?还是立马给时钟信号,就可以读取数据的呢? 2.采用模式1,单次测量TOF,出了
    发表于 12-11 08:01

    ProfibusDP主转ModbusTCP协议转换网关技术需求干货讲解

    Modbus 主时,发出一条 Modbus 报文之后等待从设备回答的时间,如果 Modbus 从超出 500mS 未响应,则 WL-ABD3030 不再等待直接
    发表于 11-13 15:23

    方芯半导体推出FCE1100对标ET1100,挑战倍福从控制器芯片(ASIC)霸主地位?

    EtherCAT数据帧经过从时,从可以从报文中提取发送给自己的输出命令数据并将其存储到内部存储区,输入数据从内部存储区又被写到相应的子报文
    的头像 发表于 10-31 14:27 ?3342次阅读
    方芯半导体推出FCE1100对标ET1100,挑战倍福从<b class='flag-5'>站</b>控制器芯片(ASIC)霸主地位?

    w5500 作为tcp server,客户端异常发送【RST,ACK】断开连接问题

    测试1 w5500 作为tcp server,上位机labveiw程序作为clinet,正常第二次交互结束后,客户端发送一个【RST,ACK】报文断开了连接; (1)使用wireshark抓取报文
    发表于 10-14 14:01

    【CANopen系列】CANopen从为什么总不上传PDO报文

    已经确保接线和波特率都没有问题,但无论主如何发送网络管理命令,都无法使从切换操作模式,并且反复给从站上下电也无法获取到从的TPDO数据,这该怎么办呢?别急!很
    的头像 发表于 09-19 08:05 ?846次阅读
    【CANopen系列】CANopen从<b class='flag-5'>站</b>为什么总不上传PDO<b class='flag-5'>报文</b>?

    求助tsw模块cpu端口收报文的方法

    (APP_TSW, buff, 1024, index); tsw_recv(APP_TSW, buff, 1024, index); board_delay_ms(10000); } 用调试助手给板子发送报文,但是buff里内容一直不变。 请问应该如何接收报文
    发表于 09-18 17:25

    如何隔离两线制环路供电式现场发送

    电子发烧友网站提供《如何隔离两线制环路供电式现场发送器.pdf》资料免费下载
    发表于 08-27 09:40 ?0次下载
    如何隔离两线制环路供电式现场<b class='flag-5'>发送</b>器