随着汽车电子和工业的蓬勃发展, CAN总线上的设备数量和数据吞吐量都大大提升。为了满足更高带宽和数据的吞吐量,CAN FD应运而生。CANFD的延迟时间更短,具有更好的实时性能和更高的带宽,可以显著提升数据传输的效率。
越来越多的应用需要支持CAN FD通讯,然而很多主控芯片的CAN 控制器模块尚未支持CANFD。TI的TCAN4550(-Q1)及TCAN4551(-Q1)产品集成了SPI转CAN的CAN控制器和CAN 收发器,并支持CANFD功能,可以帮助开发者在现有平台的基础上迅速拓展CAN FD通讯功能。
为什么CAN FD通讯要开启收发送延时补偿TDC
传统CAN最大传输速率1Mbps,CAN-FD采用两种位速率,BRS到ACK中间(数据传输段)为可变速率,速率最高为8Mbps,其余部分(仲裁段和数据控制段)为原CAN总线用的速率,最高1Mbps。针对不同的速率有相应的时间定义寄存器。
CAN 控制器要经过CAN收发器将信号发往CAN总线,再经过收发器反馈总线信号。而CAN协议规定,发送方发送位时,需要检测接收到的位与发送的位是否一致,否则会产生位错误帧。对于传统CAN来说,因为其最高波特率位1Mbps,位宽只有1us,所以大部分情况下传输的延迟不会超过位宽的一次采样点Sample Point SP (通过TSEG1设置),见图1。
图1 发送延时对传统CAN 位校验的影响
传输延迟受收发器环路延迟、传输距离和传输线缆带来的硬件延时影响。CAN FD的数据段具有比传统CAN更高的波特率,位宽也更小。因此传输延时对CAN
FD的采样准确性的影响就比较大了,在一次采样点采样容易产生位错误,如图2所示。
图2 发送延时对CAN FD 位校验的影响
在汽车应用中,受限于车辆线缆布局的限制,难免会有长距离布线的要求。而因为传输延迟无法避免,所以在CANFD通讯中引入了发送延时补偿Transmitter Delay Compensation (TDC)和二次采样点 Secondary Sample Point(SSP)的机制,将发送的数据与二次采样点时刻接收到的数据进行比较,从而保证发送与接受的位可以更好地匹配。在采用CAN FD时,建议启动此功能。
如何在TCAN4550 配置TDC 和SSP
1. 首先,需要配置CC Control 寄存器的configuration change enable (CCE) 位,才能写保护寄存器,并将TCAN4550的Date Bit Timing and Prescaler (DBTP)寄存器中配置使能TDC功能。
2. 使能了TDC之后,芯片会在CAN FD帧发送FD Format (FDF) 位的下降沿开始计算传输延时,直到RX收到这一位。
图3 延时补偿和二次采样点图示
3. 二次采样点的偏置位置称为Transmitter Delay Compensation SSP Offset
(TDCO),建议配置成与DBTP寄存器DTSEG1相同的值,通常建议采样点在80%的位置。确定采样点是否需要调整的方法如下:
通过监控发送和接受的错误计数( TEC Transmitter Error Counter和REC Receiver ErrorCounter)来判断采样位置是否合适;
通过示波器来监控CANH 和CANL的信号,判断是否有较久的振铃时间(通常出现于长的线缆)需要通过更晚的采样点来规避;
对一次采样点SP来说,可以通过增加DTSEG1/DTSEG2推迟采样点,对二次采样点SSP来说,可以通过增加偏置位置TDCO推迟二次采样点。
4. 芯片会自动根据测量到的延时时间和配置的TDCO偏置值,计算发送延时补偿后的二次测量点位置Transmitter DelayCompensation Value (TDCV)。TDCV= delay+ TDCO。
5.为了避免在收到的FDF位中出现干扰,导致延时计算被显性边缘误触发提前结束,从而出现二次采样点的位置非预期的提前,用户可以通过TDCF(Transmitter
delay compensation filter windowlength)配置一个最短的滤波窗口时间为最小的SSP位置。通常,对于delay时间范围未知的系统,建议设定TDCF=TDCO,以使得二次采样点的位置通过TDCV设定。对于delay已知的系统,建议将TDCF设置为小于并接近TDCV的值。
6. 当计算的TDCV《TDCF时,二次采样点SSP为TDCF设定值。当TDCV》TDCF时,二次采样点为TDCV计算结果。
图4 延时补偿和二次采样点对CAN FD 位校验的影响
需要特别注意的是上述计算的单位,传输延时补偿寄存器都是基于minimum time quantum (mtq)即最小时间量做计算的,一般为CAN时钟的一个时钟周期。TDCO和TDCF的单位为mtq,自动测量的延时时间的分辨率也为一个mtq。
tq为mtq的整数倍,Nominal Bit Timing and Prescaler (NBTP) 和Data Bit Timing andPrescaler (DBTP)寄存器是以tq为单位,相应的Prescaler系数决定了一个tq为多少倍的mtq。所以在配置TDCO与DTSEG1相同时,需要注意这个单位的转换。如果DBRP=1,1tq=1mtq。如果DBRP=2, 1tq= 2mtq。DTSEG1的单位为tq,且由于它的值是从1开始的,所以其配置值比实际值大1。
-
CAN
+关注
关注
57文章
2754浏览量
463702 -
TDC
+关注
关注
0文章
38浏览量
13777 -
SSP
+关注
关注
0文章
16浏览量
11577 -
CANFD
+关注
关注
0文章
58浏览量
4946
发布评论请先 登录
相关推荐
评论