CAN总线协议的位定时与同步机制
近海
|
2019.12.30
|
0
+关注

CAN总线信号在网络中传输时,由于器件以及总线电缆的延迟作用,各CAN节点之间的信号很难实现同步,因此CAN协议提出了位定时与同步机制的概念,以此来消除物理层对信号传输延时的影响。本文分析了CAN总线位时间的结构以及CAN的两种位同步方式(硬同步和重同步),并给出了重同步时重同步跳转宽度和相位差补偿的关系。

1. CAN总线位时间的定义

位时间表示1个二进制位在总线上传输时所需要的时间。CAN协议规定1个标准的位时间分为:同步段、传播段、相位缓冲段1和相位缓冲段2,如下图所示。

1.1同步段

(1)长度固定,1个时间量子Tq。Tq表示1个CAN时钟周期;

(2)一个位的传输从同步段开始;

(3)同步段用于同步总线上的各个节点,一个位的跳边沿应位于该时间段内。

1.2传播段

(1)传播段用于补偿报文在总线和节点上传输时所产生的时间延迟;

(2)传播段≥2x报文在总线和节点上传输时产生的时间延迟;

(3)传播段可编程1—8个时间量子Tq。

1.3相位缓冲段1

(1)用于补偿节点间的晶振误差;

(2)允许通过重同步对该段加长;

(3)在该时间段末端进行总线电平采样;

(4)该时间段长度可编程1—8个量子时间Tq。

1.4相位缓冲段2

(1)用于补偿节点间的晶振误差;

(2)允许通过重同步对该段缩短;

(3)该段时间长度可编程1—8个时间量子Tq。

1. CAN总线的同步机制

在CAN总线中,有两种同步机制:硬同步和重同步。

2.1 同步的规则

(1)一个位时间内只允许一种同步,要么硬同步要么重同步;

(2)任何一个从隐性到显性的下降沿都可以用于同步;

(3)硬同步发生在报文的SOF位,所有节点调整各自当前位的同步段,使其位于发送的SOF位内;

(4)重同步发生在报文SOF位的其它段,当下降沿落在同步段之外时发生重同步;

(5)在SOF到仲裁场发送的时间段内,如果有多个节点同时发送报文,那么这些发送节点对跳边沿不进行重同步。

2.2 硬同步

硬同步发生在SOF位,所有接收节点调整各自当前位的同步段,调整宽度不限。

(1)发送节点Node_A在发送SOF位时,SOF位的下降沿在SS段;

(2)这个时候接收节点Node_B发现自己当前位的SS段和发送节点SOF位的SS段不同步。也就是说当Node_A产生SOF位SS段时,Node_B的当前位的SS段已经在5个Tq之前产生了;

(3)于是接收节点Node_B强行将自己当前位的SS段拉到与SOF位的SS段同步。

2.3重同步

重同步发生在一个报文SOF位之外的其它位场内,当接收节点Node_B当前位的下降沿落在了发送节点Node_A当前位的同步段之外时发生重同步。重同步会导致相位缓冲段1的延长或者相位缓冲段2的缩短,从而保证采样点的准确。

(1) PBS1延长

发的晚(慢),收的早(快),导致PBS1延长。

(1)发送节点Node_A比接收节点Node_B的时间慢了,也就是说Node_A当前位的ss段产生的时候,Node_B 当前位的ss段已经在2个Tq之前产生了;

(2)所以这个时候接收节点Node_B就将PBS1延长2个Tq的时间;

(3)于是这个时候Node_A当前位的采样点就和Node_B的采样点同步了

(2)PBS1缩短

发的早(快),收的晚(慢),导致PBS2缩短。

(1)发送节点Node_A当前位的SS段诞生2Tq时长之后,接收节点Node_B的当前位才产生SS段;

(2)于是,接收节点Node_B当前位的PBS2段缩短,

(3)这样就会导致接收节点Node_B的下一位能够提前2个Tq,从而Node_B的下一位采样点和Node_A下一位的采样点能够同步

总结

在实际的系统设计中,用户可以根据振荡器时钟频率、总线波特率以及总线的最大传输距离等,对CAN控制器的位定时参数进行优化设置,协调影响位定时设置的振荡器容差和最大总线长度,合理安排位周期中采样点的位置和采样次数,保证总线上位流的有效同步的同时,优化系统的通讯性能,进一步推进CAN总线的广泛应用。

精选留言
延伸阅读
2020.05.19
1882阅读
2020.03.29
2836阅读
更多报告干货
写留言
3086
阅读
收藏
回到顶部