微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 如何解决FlexRay时钟同步的同向漂移

如何解决FlexRay时钟同步的同向漂移

时间:03-26 来源:中电网 点击:

FlexRay的同步帧是在静态段中传送的,一个时隙(slot)内实际上有很多空闲时间。首先,每个帧是在称为actiON point offset处(gdActionPointOffset)开始发送,这是一个全局参数。帧开始是"0"表示的传送开始序列TSS,经过1位"1"的帧开始序列FSS,再是第一个字节开始序列BSS,它由"10"二位组成。接收节点要正确检测到第一个字节开始序列BSS的1/0跳变沿才作帧接收的同步。帧的最后是"01"构成的帧结束序列FES,然后发送器被禁止了。发送器禁止后30 ns总线处于高阻状态。在帧传送结束后发送节点要有长度为11位的通道空闲分界符(cChannelIdleDelimiter,实际上总线高阻时,经50~250 ns接收节点会发现总线空闲,然后输出RxD="1"。然后总线一直在空闲状态。由于FlexRay的物理连接有可能通过有源星型耦合器,在总线空闲到总线上传送0有一个启动过程,再加总线上位置不同的传送延迟差别、收发器的延迟,发送节点的TSS长度会与接收节点的长度不同,接收节点看到的TSS会比发送节点的TSS短,称为TSS截短。只要接收节点看到的TSS在1~(gdTSSTransmitter + 1)之间,TSS就是有效的。所以gdActionPointOffset之前,总线也是空闲的。因此,若节点时钟差不使总线上的传送提前使gdActionPointOffset前的空闲消失,或落后使cChannelIdleDelimiter后的空闲消失,就不会产生2个发送帧的重叠而影响正常收发。

图1 求取相位差的时间关系

3 FlexRay时钟校正方法

帧的gdActionPointOffset是全局参数,但是由于TSS截短的影响,同步帧接收节点见到的TSS的1/0跳变沿的时间与接收节点ActionPointOffset时间之差并不是节点的时钟差,所以它用第一个BSS中的1/0跳变沿来倒推发送节点ActionPointOffset,如图1所示。倒推是该时刻减去常数pDecodingCorrection和pDelayCompensation得到发送节点TSS的开始时刻。PDecodingCorrection内含有TSS、FSS、BSS、总线滤波延迟和位采样延迟各项。pDelayCompensation内含有收发器延迟、星型耦合器延迟和电缆长度的传输延迟。pDelayCompensation的数值取簇中的最小者。由此倒推出的发送节点的动作点称为primaryTRP,发送和接收的节的动作点的时间偏差就被记录下来。

接收节点对每一个同步帧都加记录,该同步帧接收是否正确也记录在案。只有接收正确的偏差才能用于校正计算之中。

FlexRay有相位与频率的校正,为了频率校正,需要连续2个cycle的同一同步节点所发的帧的偏差,所以校正是以2个cycle为周期进行的。频率校正的计算结果在每个奇数cycle内完成,下一个cycle开始生效,在MT形成过程中实行,因此是均匀分布的。相位校正在奇数cycle的末尾完成,在该cycle的网络空闲段实行。

4 FlexRay算法的问题

图2 同步节点位置分布举例

时钟偏差推算是造成飘移的原因。图2中有4个同步帧发送节点1~4,各相距8 m,节点5是普通非同步帧发送节点。按规定,pDelayCompensation是一个预定的常数,该按最小值选取,对图2的情况,就是节点5和节点2间的延迟,即接近为0。这样,对实际发生的延迟是补偿不足的。不足部分可写为:

节点间的延迟,按每米10 ns计,最大距离为24 m,那么此补偿不足量有0.24 μs。

在图1中,假定同步帧在cycle的第一个static slot,对static slot的开始时间有一个标准的参考点,发送节点和接收节点各有相位差TT(0)和TR(0),此时接收节点得到的偏差将含有延迟补偿不足的部分:

由于距离不同,接收节点得到的URT也是不同的。

FlexRay规定,发同步帧的节点在属于自己的slot上的相位误差登记为0。假定节点间原来已处于接近同步的情况,对节点1而言,e11=0最小,e14最大,按算法它们将被丢弃,于是校正量将按(e12+ e13)/2计算:

当节点初始相位比参考节点2、3的平均相位早时,应该推迟本节点下一cycle的开始,实现负反馈。就应有T1(1)= T1(0)-Corr1。为了分析问题的需要,假定只作一部分校正,即:

其中系数c≤1,对FlexRay而言c=1。于是有:

推而广之,将各节点的相位差写为向量,可以得到状态方程:

对T1而言,系数a11=1-c,a12= c/2,a13= c/2,a14=0,B=-c,U1=120 ns。对节点2而言,它丢弃最大的e24和最小的e22,U2=80 ns。类似可确定其他节点的系数。所以矩阵A有:

同时有B=-c和U=[120ns 80ns 80ns 120ns]T(6)

对A求取特征根得到:λ1=1,λ2= 1-c,λ3=λ4=1-1.5c。

然而在FlexRay中URT是一个系统性偏差,并不因一次校正而消失,因此按(4)式工作时时钟差会不断移动。当U不变时有:

令(7)式中的第二项为S,则有:

(8)式右边各项均

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top