“CAN 与 CAN FD 通信详解:协议、时间分析与延迟补偿机制“

目录

1.can 协议总结

2.Can位时间:

3.CANFD(TDC以及SSP)收发延迟补偿和第二采样点:


1.can 协议总结

CAN采用的是差分信号:由两根线组成CANH和CANL。

按照定义:CANH-CANL<0.5v时候为隐性,逻辑电平为高

CANL-CANH>0.9v时为显性,逻辑电平为低。

CAN总线与IIC一样采用线与,在总线上显性电平具有优先权,当同时出现显性信号和隐性信号时,总线上为显性数据即0。

通信过程:

由于CAN通信只有两根数据线,没有时钟线所以并不知道数据

是什么时候开始发送什么时候开始接收,不像IIC有SCL时钟线,SPI有CS片选信号,那么每个ECU是怎么知道CAN总线上的数据是发给自己呢,CAN有一套复杂的协议。

空闲状态:在CAN协议中,在总线上出现连续的11位隐性电平(电压差<0.5V),表示总线在空闲状态。

像前面说的CAN采用的是线与通信,当所有总线上的单元都发送隐性信号,才说明总线是空闲的。

开始数据传输:

每次数据传输前,节点都会监听总线的状态,如果说总线为空闲状态,那么就会发送自己的数据包,数据包包括本身的ID信息或者其他控制指令,也称之报文。当报文传输到其他节点时,其他节点就得按照固定格式去解读数据包。这里固定格式即整车厂会定义好CAN Communication Matrix(后续有时间会单独出一篇关于通信矩阵的应用)。

其实可以简单的理解CAN Communication Matrix就是定义报文标识符和信号值描述对每一帧数据的解析。

报文格式:起始标签、识别标签、控制标签、数据段、CRC校验标签、应答标签、结束标签。

标准帧的报文由:起始位、识别码、控制码、数据码、CRC、ACK、结束位

CAN2.0B

CAN FD:

CAN 2.0B:

起始位:信号为显性信号(0)

识别码:11位ID 表明报文的含义和优先级(标准11id,扩展29位ID)

RTR:远程传送请求位(0:数据帧,1:远程帧)

SRR:远程帧恒为1(CANFD的SRR刚好对上CAN2.0B的RTR)标准帧优先级高于扩展数据帧

IDE:该标志用于区分标准帧还是扩展帧(1:扩展帧,0:标准帧)标准帧优先于扩展帧

r:保留位

IDextension:扩展帧的扩展ID

FDF:用于区分普通CAN报文和CAN FD报文。CAN报文,FDF=0;CAN FD报文,FDF=1

DLC:数据长度

data field:标准帧最大8byte,扩展帧最大64 byte

CRC:循环冗余校验码,校验报文是否正确。(数据段的CRC(循环冗余校验)通常由硬件自动计算和填充。)

ACK:0为接收应答,1:未应答(当一个节点发送一帧数据后,其他节点会在一定时间内检测到这一帧,并发送一个ACK信号0,表示它已成功接收到数据。)

EOF:帧结束(7bit 连续隐性)

远程帧:

数据传输是由数据源节点(例如,传感器发出数据帧)自主完成的。但也可能存在目标节点向源节点请求发送数据的情况。要做到这一点,目标节点需发送一个远程帧,其中的标识符应与所需数据帧的标识符相匹配。随后,相应的数据源节点会发送一个数据帧以响应远程帧请求。

远程帧 与数据帧存在两点不同:

1)远程帧的 RTR 位为隐性状态;

2)远程帧没有数据字段。

位填充与错误帧

当CAN节点发送 逻辑电平(显性dominant或隐性recessive)相同的五bit时,它必须发送一bit相反电平。 CAN接收 节点会自动删除这个新增的额外bit。

当带有相同标识符的数据帧和远程帧同时发出时,数据帧将赢得仲裁,因为其标识符后面的 RTR 位为显性。这样,可使发送远程帧的节点立即收到所需数据。

主动错误帧

主动错误标志由 6 个连续的显性位构成,这种位序列主动打破了位填充规则,所有其他节点在识别到所生成的位填充错误后,会自行产生错误帧,称为错误反射标志。

2.Can位时间:

CAN 采用同步处理传输的报文,通过一个下降沿产生一个帧起始,又叫做硬同步。为了确保 正确采样到最后一位,CAN节点需要在整个帧中重新同步。

重新同步(Re-synchronization):为了确保整个帧中正确采样到最后一位数据,CAN节点需要在整个帧中重新同步。这是在每个隐性到显性的边缘上完成的。这就是进行比特填充(Bit Stuffing)的原因。(由于can EOF 是7bit 隐性所以需要有位填充)

Segment 1- 同步段

这段的长度总是1tq。如果在前一个位和当前位之间存在位状态变化,那么 接收节点期望在此段内发生总线状态变化

Segment2-传播段

这用于补偿网络上的信号延迟。该段长度可能为1 ~ 8tq

Segment3-相位缓冲段1:这是用来补偿边缘相位误差。该段长度在1到8 TQ之间,在重新同步时可能会 加长。采样点是读取总线电平的点,并将其解释为相应位的 值。它位于阶段缓冲段1的末端(在两个阶段缓冲段之间)。

Segment4-相位缓冲段2:该段长度为1 ~ 8tq,在 重同步时需要缩短。它的长度必须至少等于信息处理时间(见下文),并且不能超过 阶段缓冲段1的长度。

3.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) 的必要性。

loop delay 环路延迟:

在发送一帧数据时,Tranmitter 将0和1数字电平序列转换为差分信号,receiver将差分电平转换为0和1数字电平数量,因为转换需要时间,会造成物理上的延迟。

TDC transceiver delay compensation 收发延迟补偿

TDC实际上就是在发送BRS位为隐性的CANFD报文时(BRS隐性即开启数据域波特率),在发送时延迟一定时间后,在第二采样点采样接收位,以正确采样到发送位对应的接收位。

发送延迟测量

开启TDC后,控制器将自动测量Tx信号线上FDF位到r0位下降沿与Rx信号线上FDF位到r0位边沿的之间的延迟时间,如下图中所示,TDCV即为延迟时间。

第二采样点(SSP)

在达到延迟时间后,控制器此时需要采样接收位,该采样点我们称为第二采样点(SSP=Second Sample Point),以区别未延迟之前的采样点(SP),如下图所示

SSP等于测量延迟TDCV+发送延迟补偿偏移TDCO(TDC Offset)之和。一般TDCO设置与

第一采样点一致,即(PROP+TSEG1) * DBRP。

第二采样点SSP=发送延迟测量值TD + Offset, 其中Offset设置与第一采样点一致或早1Tq。

“CAN 与 CAN FD 通信详解:协议、时间分析与延迟补偿机制“_canfd tdc-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值