【车载开发系列】总线物理层规范中篇
【车载开发系列】总线物理层规范中篇
- 【车载开发系列】总线物理层规范中篇
-
- 一. 什么是位时间
- 二. 位时间与时间份额的关系
- 三. 什么是时间份额Tq
-
- 1)同步段(SS: Synchronization Segment)
- 2)传播段(PTS: Propagation Time Segment)
- 3)相位缓冲段1
- 4)相位缓冲段2
- 四. 什么是采样点
- 五. 采样点与总线质量的关系
- 六. 什么是第二采样点
- 七. 什么是位同步机制
- 八. 为什么CAN总线波特率是一个范围
- 九. 总结
一. 什么是位时间
由发送单元在非同步的情况下每秒钟发送的位数称为位速率,即一个二进制位在总线上传输所需要的时间就是位时间。1除以位时间之后可以得到波特率(也就是位的速率)。
二. 位时间与时间份额的关系
Tq是CAN总线上的最小时间段。而一个电平位时间由若干个Tq组成,根据标准规定一个位时间最小由8个Tq组成。
三. 什么是时间份额Tq
时间份额是通过MCU芯片的晶振周期分频得到的,它的作用是用于定义CAN通信中每一位的时序结构,确保数据传输的稳定性和同步性。每一位Tq都包含以下四个部分:
同步段(Synchronization Segment)
传播段(Propagation Segment)
相位缓冲段1(Phase Buffer Segment 1)和相位缓冲段2(Phase Buffer Segment 2),这些段的长度以Tq为单位进行配置
1)同步段(SS: Synchronization Segment)
每个位的传输从同步段开始,用于同步各节点,同步进行接收和发送的工作。长度对应1个Tq
2)传播段(PTS: Propagation Time Segment)
用于吸收网络上的物理延迟的段。所谓的网络的物理延迟指发送单元的输出延迟、总线上信号的传播延迟、接收单元的输入延迟,这个段的时间为以上各延迟时间的和的两倍。其长度对应1~8个Tq
3)相位缓冲段1
相位缓冲段用于补偿跳变沿的相位误差,其长度会在重同步的实现过程中延长或缩短。
同步过程中可以对TSEG1进行延长,此外为方便编程,许多CAN模块将传播段及TSEG1合并为一段。最小为3个Tq。
4)相位缓冲段2
同步过程中可以对TSEG2进行缩短。最小为2个Tq
四. 什么是采样点
采样点英文为SAMPLE POINT。它是位时间内的一个时间点。采样点是读取CAN总线的电平,并将读到的电平作为相应位值的点。通常情况下,采样点位于相位缓冲段1的结尾。
CAN FD报文的采样点必须符合表"CAN FD报文的位编码/解码值"中的要求。对于CAN FD报文仲裁段,采样点必须设置在80%;而对于CAN FD报文数据段,采样点必须设置在75%。
五. 采样点与总线质量的关系
如果采样点过早,信号可能未稳定,容易受到噪声干扰;而采样点过晚则可能错过有效信号窗口,特别是在长距离传输时。
理想采样点:应在信号最稳定的中点稍后位置,通常采样点选择建议在75%-85%之间。
采样点可以设置1个或者3个。正确的采样点设置对可靠通信至关重要。
六. 什么是第二采样点
SSP是CAN控制器针对自发报文回读时的采样点,SSP位置由TD和SSP offset决定。它实现了数据回读时的位错误检测。
SSP是发送端独有武器,接收端不需要。仲裁段不用SSP:低速传输(≤500kbps)延迟影响小。
七. 什么是位同步机制
在CAN通信中,有两种同步机制:硬同步与重同步。
2.1 同步的规则
☆ 一个位时间内只允许一种同步方式,要么硬同步要么重同步;
☆ 任何一个从"隐性"到"显性"的下降沿都可以用于同步;
☆ 硬同步发生在报文的SOF位,所有接收节点调整各自当前位的同步段,使其位于发送的SOF位内;
☆ 重同步发生在一个报文SOF位之外的其它段,当下降沿落在了同步段之外时发生重同步;
在SOF到仲裁场发送的时间段内,如果有多个节点同时发送报文,那么这些发送节点对跳变沿不进行重同步
八. 为什么CAN总线波特率是一个范围
根据 CAN 规范的要求,总线上的所有器件都必须使用相同的比特率才能完成通信。然而,并非所有器件都要求具有相同的主振荡器时钟频率。所以,CAN 总线能够在一定的范围内容忍总线上CAN节点的通信波特率的偏差,这种机能使得 CAN 总线有很强的容错性,同时也降低了对每个节点的振荡器精度。所以CAN总线的波特率是一个范围。
九. 总结
本文首先介绍了位时间的概念,它是一个bit数据在CAN总线上的传输时间。它由若干个时间份额Tq决定,一般是8个时间份额决定一个位时间。1除以位时间就可以得到波特率。时间份额可以通过MCU芯片的晶振周期分频得到,时间份额由四个部分组成,分别是同步段,传播段,相位缓冲段1和2。在时间份额上,有一个点叫做采样点,采样点一般位于相位缓冲段1之上,它就是CAN总线上的电平。为啥要将采样点设置到相位缓冲段上呢?因为只有将采样点选择到75%-85%中,才能准确的取到电平的高低。
一般我们所说的CAN总线波特率是一个范围,这样可以让总线可以有更好的容错性,可以让每个总线上的组件即使存在一定的时钟偏差,依然可以很好的通信。