英飞凌CANFD一次采样点和二次采样点

采样点的定义

采样点是CAN控制器读取总线电平,并解释各个比特的逻辑值的时间点。在我们了解采样点的测试方法之前,我们需要先了解CAN报文的一个位时间是如何组成的。CAN控制器的最小时间周期称作时间份额(Time quantum,简称Tq),它是通过对芯片晶振周期进行分频而得来的。一个位时间由若干个Tq组成(通常为8到25个),同时根据功能分为4个阶段:同步段、传播段、相位缓冲段1和相位缓冲段2。
在这里插入图片描述
这4个阶段的功能如下:

  1. 同步段(Sync_Seg):用于实现时序调整,总线上各个节点的跳变沿产生在同步段内,通常为1个Tq;
  2. 传播段(Prop_Seg):用于补偿网络上的物理延迟时间。这些延迟时间包含信号在总线上的传输延迟和CAN节点内部的处理延迟。传播段保证了2倍的信号在总线上的延迟时间;
  3. 相位缓冲段1(Phase_Seg1)和相位缓冲段2(Phase_Seg2):用于补偿跳变沿的相位误差,其长度会在重同步的实现过程中延长或缩短。
  4. 采样点位于相位缓冲段1的结尾。由于相位缓冲段1和相位缓冲段2能够延长或缩短,采样点也能够随之变化。

can采样点的计算

在这里插入图片描述
片机振荡器的晶振频率决定的,指的是振荡器每震荡一次所消耗的时间长度,也是整个系统中最小的时间单位;
下面以TP387为例进行计算
通过查看配置我们的canfd的,采样分为仲裁场和数据场。仲裁场的波特率为500Kbit/s,数据场为2Mbit/s,can时钟频率为4.0E7。
查看TP377手册Tq = (DBRP + 1) clock cycles
Tq=(1+1)1/4.0E7(s)=50(ns)

在这里插入图片描述数据位定时和预分频器寄存器 i
该寄存器只有在 CCCR.CCE 和 CCCR.INIT 位被设置时才能写入。CAN 位时间可在 4 至 49 个时间量子范围内编程。CAN 时间量子可在 1 至 32 个时钟周期范围内编程。
DTSEG1 是 Prop_Seg 和 Phase_Seg1 之和。DTSEG2 是 Phase_Seg2。
因此,位时间长度为(编程值)[DTSEG1 + DTSEG2+ 3]tq 或(功能值)[Sync_Seg + Prop_Seg +Phase_Seg1 +Phase_Seg2]tq。
信息处理时间 (IPT) 为零,这意味着在采样点之后的第一个时钟边沿即可获得下一位的数据。

仲裁场计算采样点:
对于仲裁场500k,传输一个bit位的时间1/500000s=2us,所以分配
2us/50ns=40个tq,
如果采样点设置为80%,则sync_seg+prop_seg+phase_seg1=4080%=32Tq
在ET tresos中可以这样配置
在这里插入图片描述
数据场采样点计算:
对于数据场2Mkbs,传输一个bit位的时间1/2000000s=500ns,所以分配
500ns/50ns=10个tq,
如果采样点设置为80%,则sync_seg+prop_seg+phase_seg1=10*80%=8Tq
则对应在EB TRESOS中配置如下
在这里插入图片描述

CAN FD的第二采样点

不同于采样点,第二采样点在CAN FD控制器接收其他节点发送报文的过程中并不会起到任何作用。第二采样点的作用,是在不改变传输延迟补偿的情况下,实现CAN FD在数据场的位错误检测要求。
位错误的检测要求发送节点对总线状态进行回读。传统CAN总线在设计之初考虑到了信号在总线上的传播时延以及发送节点TXD和RXD之间的处理时延,这两种时延通过位时间的传播段实现补偿,进而保证了发送节点在发送一个比特期间也能从总线上回读到这个比特。
在这里插入图片描述
ISO 11898-5规定传输时延的上限为255 ns。位速率为8 Mbps的CAN FD节点的位时间为125 ns。以极限状态下1个位时间由8个Tq组成来计算,单位Tq为15.625 ns。即传输时延需要17个Tq来补偿。显然一个位时间完全不够来补偿传输时延。
解决方法有两种。一是增大位时间,增大传播段的Tq组成数量,但是这种方法会降低位速率,因此和CAN FD高速目标相冲突。二是采用传输时延补偿,即在发送节点回读总线状态时引入一段传输时延补偿,进而保证位错误检测的需要。而引入这段传播时延补偿的结果即为第二采样点(secondary sample point,缩写 SSP)。
SSP对于CAN FD控制器的重要性不言而喻,它是保证控制器在数据段实现位错误检测功能的关键。使用SSP的发送节点会忽略它在采样点检测到的位错误。但是如果在SSP检测到位错误,发送节点将会在下一个采样点对检测到的位错误发出错误帧。

CAN-FD与CAN发送速率的不同

CAN最大传输速率1Mbps,CAN-FD速率可变,仲裁比特率最高1Mbps(与CAN相同),数据比特率最高8Mbps。BRS位速率切换为,BRS位为0时CANFD速率保持恒定速率、BRS位为1时CANFD的数据段会被切换到高速率。
在这里插入图片描述
ESI错误状态指示位:CAN报文中发送节点的错误状态只有该节点自己知道,CANFD报文中可以通过ESI标志位来告诉其他节点该节点的错误状态,当ESI为1时表示发送节点处于被动错误状态、当ESI为0时表示发送节点处于主动错误状态。
在这里插入图片描述

发送延迟补偿

在这里插入图片描述
CAN控制器发送信号时,是经过收发器后发往CAN总线后,再经过收发器反馈总线信号。那么发送过程中,控制器发送位信号到接收位信号就不可避免地存在环路延迟。发送延迟时间的总和如下:

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

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

3 ).收发器环路延迟TxD到RxD;

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

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

CAN协议中规定:发送方发送位时,需检测接收到的位与发送是否一致,若不一致则产生错误帧(位错误)。如果发送延迟过长,则将直接导致发送与接收位不一致而产生错误帧。由于传统CAN协议规定最高波特率为1Mbps,即位宽1us,正常情况下,传输延迟不会超过位宽的采样点(当然具体延迟取决于收发器环路延迟、传输距离、传输线缆质量等),因此不会因为发送延迟而产生错误。
在CANFD中,数据段的波特率是比CAN更高的(BRS位为隐性时),此时波特率越高,位宽越小,在发送报文时发送延迟影响越大,越容易产生位错误。由于发送延迟无法避免,此时就需要一种机制来保证发送与接收的位对应上,以避免产生位错误。这种机制就是发送延迟补偿了。
发送延迟补偿(TDC)
TDC实际上就是在发送BRS位为隐性的CANFD报文时(BRS隐性即开启数据域波特率),在发送时延迟一定时间后,在第二采样点采样接收位,以正确采样到发送位对应的接收位。
发送延迟测量
那么延迟采样的延迟时间是多久呢?实际上,开启TDC后,控制器将自动测量Tx信号线上FDF位到r0位下降沿与Rx信号线上FDF位到r0位边沿的之间的延迟时间,如下图中所示,TDCV即为延迟时间。发送延迟测量的时间单位为CAN控制器时钟(TDC寄存器中一般对TDCV的值有限制,若超过寄存器最大位数,则发送延迟测量失败)。
在这里插入图片描述
不同于采样点,第二采样点在CAN FD控制器接收其他节点发送报文的过程中并不会起到任何作用。第二采样点的作用,是在不改变传输延迟补偿的情况下,实现CAN FD在数据场的位错误检测要求。
根据TP387手册

在这里插入图片描述
发送器延迟补偿可用于数据位时间短于发送器延迟的配置,新的 ISO11898-1 对其进行了详细描述。通过设置位 DBTPi(i=0- 3).TDC 来启用该功能。在二次采样点将接收到的比特与发送的比特进行比较。二次采样点位置的定义是从 M_CAN 的发送输出 TX 通过收发器到接收输入 RX 的测量延迟之和,加上由 TDCRi(i=0-3).TDCO 配置的发送器延迟补偿偏移。发射机延迟补偿偏移用于调整 SSP 在接收比特内的位置(例如数据阶段比特时间的一半)。PSRi.TDCV 显示实际的发射机延迟补偿值。PSRi (i=0-3).TDCV 在 CCCRi.INIT 设置时清零,并在 DBTPi (i=0-3).TDC 设置时,在每次传输 FD 帧时更新。
M_CAN 中实施的发射机延迟补偿必须考虑以下边界条件:
在数据阶段,从 TX 到 RX 的测量延迟与配置的发射机延迟补偿偏移量 TDCRi(i=0-3).TDCO 之和必须小于 6 比特倍。从 RX 到 RX 的测量延迟与配置的发射机延迟补偿偏移量 TDCRi.TDCO 之和必须小于或等于 127 mtq。
如果总和超过 127 mtq,则使用最大值 127 mtq 进行发射机延迟补偿。数据阶段在 CRC 分隔符的采样点结束,停止对二次采样点的接收比特进行检查。

根据手册TDCV是接收到数据时的发送延迟时间,是当TDC使能的时候会自己自动计算的。
TDCO就是设置的正常采样点的时间。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值