目录
1 CAN Transceiver收发器结构
1.1 CAN收发器对本ECU发送CAN报文的“回采”
1.2 什么是Loop delay环路延迟
1.2.1 Loop delay环路延迟的典型值
2 什么是TDC:Transceiver Delay Compensation收发器延迟补偿
2.1 总结:Transceiver Delay Compensation启用条件
2.2 Secondary sample point test第二采样点测试方法
2.3 Infineon英飞凌TC2xx系列芯片 – TDC配置寄存器摘录
END
注:Transceiver Delay Compensation同Transmitter Delay Compensation
推荐阅读(单击下方文字即可跳转至对应博文):
Vector工具链
CAN Matrix DBC
CAN Matrix Arxml
CANFD/经典CAN/CANXL
1 CAN Transceiver收发器结构
以NXP恩智浦的TJA1145A为例(见图1-1),来介绍CAN收发器。TJA1145A是一款高速CAN收发器,可在控制器局域网(CAN)协议控制器和物理双线式CAN总线之间提供接口。该收发器专门设计用于汽车行业的高速CAN和CAN FD应用,可为微控制器中的CAN协议控制器提供具有差异化优势的信号发送和接收能力。
TJA1145A在CAN FD快速相位下,即使数据速率高达5 Mbit/s,也能实现可靠的通信。
TJA1145A在待机模式和休眠模式下具有超低的功耗,通过使用选择性唤醒功能,支持符合ISO 11898-6标准的CAN Partial networking(PN)。
图1-1
下图(见图1-2)为TJA1145A高速CAN收发器功能框图。
图1-2
Pin编号 | Pin名称 | 描述 |
1 | TXD | MCU的CAN控制器发送报文。CAN收发器通过该pin接收发送报文的0和1数字电平序列,并通过CANH和CANL转换为差分电平。 |
2 | GND | Ground地 |
3 | VCC | CAN收发器的5V供电 |
4 | RXD | 节点接收报文,以及CAN收发器回采的报文。CAN收发器通过该pin将差分电平转换为0和1数字电平序列给到MCU的CAN控制器。 |
5 | VIO | 输入/输出电平适配器的供电电压 |
6 | SDO | SPI通信。CAN收发器作为从机,通过该pin发送数据给主机MCU。 |
7 | INH | 用于切换外部稳压器的高边输出。CAN总线或WAKE引脚上的唤醒事件将INH引脚切换到BAT电平。系统上电后(BAT从零上升),INH引脚自动切换到BAT电平。 |
8 | SCK | SPI通信。MCU作为主机,通过该pin提供Clock时钟。 |
9 | WAKE | Local Wake-up输入 |
10 | BAT | 车辆低压12V电池供电输入 |
11 | SDI | SPI通信。CAN收发器作为从机,通过该pin接收来自主机MCU的数据。 |
12 | CANL | CAN低 |
13 | CANH | CAN高 |
14 | SCSN | SPI通信。MCU作为主机,通过该pin提供片选信号。 |
1.1 CAN收发器对本ECU发送CAN报文的“回采”
“回采”的理论基础。在CAN协议规范(ISO 11898-1-2015)中,有如下图的要求:
“监视(发送器将发送的位电平与网络上检测到的位电平进行比较);”
“a)bit error位错误
在总线上,一个节点发送一个位也应监视总线。当监视的位值与发送的位值不同时,就会在该bit time检测到bit error位错误。”
上述这些要求,在CAN controller与CAN transceiver之间是如何实现的?我们将图1-2的左下角部分进行单独的分解,得到图1-3:
Step1:ECU准备发送一帧报文,CAN控制器按照经典CAN/CANFD帧格式,通过TX发送0和1数字电平序列给到CAN收发器;
Step2:CAN收发器中的Transmitter将0和1数字电平序列转换差分电平,通过CANH和CANL发送到CAN Bus上;
Step3:与此同时,CAN收发器中的Receiver回读CAN Bus上的差分电平,并转化为0和1数字电平,给到CAN控制器,完成一次“该ECU发送一帧CAN报文的回采”;
Step4:CAN控制器比较Step1和Step3中TX和RX上数字电平是否一致,见图1-4,CAN报文发送过程可详见博文“【图解CAN总线】-9-详述经典CAN和CANFD报文是如何收发的”。
图1-3
图1-4
1.2 什么是Loop delay环路延迟
loop delay环路延迟的概念:
在“回采”过程中,CAN收发器经历了两次转换:Transmitter将0和1数字电平序列转换差分电平;Receiver将差分电平转换0和1数字电平序列。因为转换是需要时间的,势必有物理上的延迟。见图1-5,ECU发送一帧报文。TX和Rx Pin上电平变化:Rx上的数字电平变化会滞后些许时间。
图1-5
图1-6展示的是示波器下,一个CANFD帧局部放大的后效果:RX电平变化相比TX滞后了100多纳秒。
图1-6
1.2.1 Loop delay环路延迟的典型值
另外在TJA1145A的Data Sheet数据手册中,也给出了Loop delay环路延迟的典型值,见图1-7和1-8。该值随着电气参数的变化而变化。
图1-7
图1-8
2 什么是TDC:Transceiver Delay Compensation收发器延迟补偿
在CAN FD数据段,如果使用较快的比特率(启用BRS位),导致bit time较短,则local CAN transceiver loop delay造成的延迟将大于Phase_Seg1(见图2-1,采样点前的time segment时间段):假设Loop delay环路延迟是255纳秒,如果CANFD帧数据段Bit Rate大于等于4Mhz,即一个Bit Time小于等于250纳秒,从而导致检测到bit error位错误。transceiver loop delay收发器环路延迟限制了CAN FD帧数据段的Bit Rate比特率。
图2-1
因此,为了克服这一限制,引入了TDC(Transceiver Delay Compensation收发器延迟补偿)功能,即在CAN FD帧的数据段,发送器应使用一个新的采样点SSP(Secondary Sample Point第二采样点),而忽略transceiver loop delay收发器环路延迟的SP(sample point)。
Secondary Sample Point第二采样点由transceiver loop delay收发器环路延迟和可配置的transceiver delay compensation offset收发器延迟补偿偏移组成。
Transceiver loop delay收发器环路延迟是在每个发送帧中从EDL位(同FDF位)到下一位r0的边沿,对应发送位边沿和接收位边沿之间测量的(见图2-2,图2-3)。测得的loop delay不足以用于定义secondary sample point,因为它与位边沿有关。
图2-2 Transceiver loop delay收发器环路延迟测量
图2-3 示波器下,一个CANFD帧RX电平变化相比TX滞后了120纳秒
Transceiver delay compensation offset收发器延迟补偿偏移用于将secondary sample point从边沿转移到bit time内的中间点,远离其边沿。因此,offset值不能大于data phase的bit time。
如果secondary sample point设置得非常接近CAN bit边沿(见图2-1,Sync_Seg字段),则在data phase的位采样期间可能会出现问题。为了使TDC可靠地工作,offset必须使用最佳设置。为确保在最佳区域中执行位采样,TDC offset建议参考如下等式,参考图2-1:
Offset = Phase_Seg1 + Prop_Seg + 2
下图2-4显示了使用这些设置时的SSP位置。
图2-4
2.1 总结:Transceiver Delay Compensation启用条件
通过以上章节的描述,总结如下:
条件1:该帧必须是CANFD帧(不适用于经典CAN帧,原因是其bit time远大于Loop Delay),并且启用了BRS位(数据段比特率高于仲裁段比特率),SSP作用在CANFD帧的数据段;
条件2:TDC仅适用于ECU发送的CANFD帧,不适用ECU接收的CANFD帧;
条件3:在MCU的寄存器中启用TDC功能;
2.2 Secondary sample point test第二采样点测试方法
在《ISO 16845-1-Part 1_Data link layer and physical signalling_2016》标准的”8.8.2 Secondary sample point test”章节描述SSP的测试方法。
2.3 Infineon英飞凌TC2xx系列芯片 – TDC配置寄存器摘录
Transceiver Delay Compensation收发器延迟补偿寄存器TDCRx包含设置Transceiver Delay Compensation收发器延迟补偿功能的所有参数以及相应的状态位。NTDCRx寄存器只有在NCRx.CCE位被设置时才能写入。
CAN_NTDCRx(x = 0-2)
Node x Transceiver Delay Compensation收发器延迟补偿寄存器(23CH+x*100H)0000 0000H
CAN1_NTDCRz(z = 0-2)
Node z Transceiver Delay Compensation收发器延迟补偿寄存器(23CH+z*100H)0000 0000H
Field | Bits | Type | Description |
TDCV | [4:0] | r | Transceiver Delay Compensation Value 该位字段显示secondary sample point第二采样点,即测量的transceiver delay收发器延迟(从CAN发送到接收)与transceiver delay compensation offset收发器延迟补偿偏移NTDCRz.TDCO之和。 TDCV的有效值为tq(time quanta)的0至31倍。 |
TDCO | [11:8] | rw | Transceiver Delay Compensation Offset 该位字段定义了Transceiver Delay Compensation收发器延迟补偿偏移量,该偏移量被添加到测量的transceiver delay收发器延迟(从CAN发送到接收)中,形成secondary sample point。 TDCO的有效值为tq(time quanta)的0至15倍。 |
TDC | 15 | rw | Transceiver Delay Compensation Enable 该位启用Transceiver Delay Compensation收发器延迟补偿功能: 0B:禁用Transceiver Delay Compensation收发器延迟补偿。 1B:启用Transceiver Delay Compensation收发器延迟补偿。 |
0 | [7:5], [14:12], [31:16] | r | Reserved 读为0;应写为0。 |
推荐阅读(单击下方文字即可跳转至对应博文):
《Autosar从入门到精通-实战篇》总目录_培训教程持续更新中...
《Autosar_BSW高阶配置》总目录_培训教程持续更新中...
《Autosar_MCAL高阶配置》总目录_培训教程持续更新中...
END
获取更多“汽车电子资讯”和“工具链使用”,
请关注“汽车电子助手”,做您的好助手