目录
3.1.CANFD(TDC以及SSP)收发延迟补偿和第二采样点:
1.can 协议总结
CAN采用的是差分信号:由两根线组成CANH和CANL。
按照定义:CANH-CANL<0.5v时候为隐性,逻辑电平为高
CAN总线与IIC一样采用线与,在总线上显性电平具有优先权,当同时出现显性信号和隐性信号时,总线上为显性数据即0。
是什么时候开始发送什么时候开始接收,不像IIC有SCL时钟线,SPI有CS片选信号,那么每个ECU是怎么知道CAN总线上的数据是发给自己呢,CAN有一套复杂的协议。
空闲状态:在CAN协议中,在总线上出现连续的11位隐性电平(电压差<0.5V),表示总线在空闲状态。
像前面说的CAN采用的是线与通信,当所有总线上的单元都发送隐性信号,才说明总线是空闲的。
2.CAN 控制器结构:

扩展帧:

远程帧:

远程扩展帧:

标准can fd 帧:

can fd 扩展帧:



2.1 帧起始:
2.2 仲裁段:

2.3 控制段:
- ESI = 0:表示发送节点处于 错误主动状态(Error Active),即正常通信状态。
- ESI = 1:表示发送节点处于 错误被动状态(Error Passive),即该节点错误计数较高,但仍然能发送数据

2.4 数据段
2.5 CRC段:
- 为了避免位填充对CRC的影响,CAN FD在CRC场中增加了stuff count记录填充位的个数对应8的模,并用格雷码表示,还增加了奇偶校验位;且在CRC中加入了填充位FSB(fixed stuff-bit)


- 先去掉所有填充位,还原出原始比特流。
- 计算时包含填充计数器 0111,但不包含插入的填充位。
- 先根据填充计数器 删除填充位,恢复原始数据。
- 计算 CRC 并与接收的 CRC 比较,如果匹配,则数据正确,否则报错。

2.6 ACK 段
2.7 帧结束
- 与CAN一样,CAN FD的帧结尾也为连续7位的隐性位
主动错误标志由 6 个连续的显性位构成,这种位序列主动打破了位填充规则,所有其他节点在识别到所生成的位填充错误后,会自行产生错误帧,称为错误反射标志。
3.Can位时间:
CAN 采用同步处理传输的报文,通过一个下降沿产生一个帧起始,又叫做硬同步。为了确保 正确采样到最后一位,CAN节点需要在整个帧中重新同步。
重新同步(Re-synchronization):为了确保整个帧中正确采样到最后一位数据,CAN节点需要在整个帧中重新同步。这是在每个隐性到显性的边缘上完成的。这就是进行比特填充(Bit Stuffing)的原因。(由于can EOF 是7bit 隐性所以需要有位填充)
Segment 1- 同步段
这段的长度总是1tq。如果在前一个位和当前位之间存在位状态变化,那么 接收节点期望在此段内发生总线状态变化
Segment3-相位缓冲段1:这是用来补偿边缘相位误差。该段长度在1到8 TQ之间,在重新同步时可能会 加长。采样点是读取总线电平的点,并将其解释为相应位的 值。它位于阶段缓冲段1的末端(在两个阶段缓冲段之间)。
Segment4-相位缓冲段2:该段长度为1 ~ 8tq,在 重同步时需要缩短。它的长度必须至少等于信息处理时间(见下文),并且不能超过 阶段缓冲段1的长度。
3.1.CANFD(TDC以及SSP)收发延迟补偿和第二采样点:
基于CAN协议规范(ISO11898-1),CAN总线发送数据都有“回采”的理论基础,
bit error位错误
在总线上,一个节点发送一个位也应监视总线。当监视的位值与发送的位值不同时,就会在该bit time检测到bit error位错误。具体步骤如下:
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报文的回采”;
CAN FD 高速通信 下的延迟问题,以及在极限情况下如何计算时延补偿:
1. ISO 11898-5 规定传输时延的上限为 255 ns
根据 ISO 11898-5 标准,CAN 收发器的传输时延上限被定义为 255 ns,这意味着信号从发送端到接收端在物理介质上传输的总延迟可能高达 255 ns。
这个时延包括信号在收发器、线缆和网络节点之间传播的延迟。
2. 位速率为 8 Mbps 的 CAN FD 节点的位时间为 125 ns
位速率 是每秒传输的位数。对于 8 Mbps 的速率,每一位的时间为:在 8 Mbps 的速率下,每传输一位数据所需的时间是 125 ns。
3. 以极限状态下 1 个位时间由 8 个 Tq 组成,单位 Tq 为 15.625 ns
Tq(Time Quantum) 是 CAN 控制器在定义位时间时使用的基本单位。在这个例子中,假设 1 个位时间由 8 个 Tq 组成,因此每个 Tq 的时间为:每个 Tq 是定义和计算 CAN 时间段的基本单位。
4. 传输时延需要 17 个 Tq 来补偿
传输时延可能达到 255 ns。而每个 Tq 的时间是 15.625 ns,因此要补偿 255 ns 的时延,需要的 Tq 数量为:传输延迟相当于 17 个 Tq。
5. 显然一个位时间完全不够来补偿传输时延
在 8 Mbps 的位速率下,1 个位时间为 125 ns,而传输时延为 255 ns,这远远超过了 1 个位时间的长度。因此,即使你在 1 个位时间内使用了所有的 8 个 Tq,也无法完全补偿 255 ns 的延迟。
由于位时间只有 125 ns,而补偿所需的时间是 255 ns(17 个 Tq),显然 单个位时间不足以进行完整的补偿,这就引出了使用 发射机延迟补偿(TDC) 的必要性。
3.2loop delay 环路延迟:
在发送一帧数据时,Tranmitter 将0和1数字电平序列转换为差分信号,receiver将差分电平转换为0和1数字电平数量,因为转换需要时间,会造成物理上的延迟。
TDC :transceiver delay compensation 收发延迟补偿
TDC实际上就是在发送BRS位为隐性的CANFD报文时(BRS隐性即开启数据域波特率),在发送时延迟一定时间后,在第二采样点采样接收位,以正确采样到发送位对应的接收位。
开启TDC后,控制器将自动测量Tx信号线上FDF位到r0位下降沿与Rx信号线上FDF位到r0位边沿的之间的延迟时间,如下图中所示,TDCV即为延迟时间。
在达到延迟时间后,控制器此时需要采样接收位,该采样点我们称为第二采样点(SSP=Second Sample Point),以区别未延迟之前的采样点(SP),如下图所示
SSP等于测量延迟TDCV+发送延迟补偿偏移TDCO(TDC Offset)之和。一般TDCO设置与
第一采样点一致,即(PROP+TSEG1) * DBRP。