如何解決FlexRay時鐘同步的同向漂移
FlexRay規(guī)定,發(fā)同步幀的節(jié)點在屬于自己的slot上的相位誤差登記為0。假定節(jié)點間原來已處于接近同步的情況,對節(jié)點1而言,e11=0最小,e14最大,按算法它們將被丟棄,于是校正量將按(e12+ e13)/2計算:
當節(jié)點初始相位比參考節(jié)點2、3的平均相位早時,應(yīng)該推遲本節(jié)點下一cycle的開始,實現(xiàn)負反饋。就應(yīng)有T1(1)= T1(0)-Corr1。為了分析問題的需要,假定只作一部分校正,即:
其中系數(shù)c≤1,對FlexRay而言c=1。于是有:
推而廣之,將各節(jié)點的相位差寫為向量,可以得到狀態(tài)方程:
對T1而言,系數(shù)a11=1-c,a12= c/2,a13= c/2,a14=0,B=-c,U1=120 ns。對節(jié)點2而言,它丟棄最大的e24和最小的e22,U2=80 ns。類似可確定其他節(jié)點的系數(shù)。所以矩陣A有:
同時有B=-c和U=[120ns 80ns 80ns 120ns]T(6)
對A求取特征根得到:λ1=1,λ2= 1-c,λ3=λ4=1-1.5c。
然而在FlexRay中URT是一個系統(tǒng)性偏差,并不因一次校正而消失,因此按(4)式工作時時鐘差會不斷移動。當U不變時有:
令(7)式中的第二項為S,則有:
?。?)式右邊各項均為有限值,而因為A的特征根有λ1=1,(I-A)是不可求逆的,所以S將含有不定值,所以隨著n的增加, T(n+1)是不斷漂移的。
5 漂移對系統(tǒng)的影響
漂移使通信時鐘離標準時鐘越來越遠,通信時鐘初始相位的負值代表它比標準時間延遲(如圖1所示)。在延遲超過1個cycle時就會使上次寫入的幀還未發(fā)出就被覆蓋。以cycle=5 ms、100次校正漂9.3 μs計,53763次校正會漂1個cycle,這就是說,8.96 min會產(chǎn)生一次丟幀。由于節(jié)點都是同步的,每個slot都會發(fā)生丟幀,如果每個cycle有91個靜態(tài)slot,那么意味著每8.96 min丟失91個幀--平均每6 s丟一幀。而且,如果host時鐘是偏快方向漂移,那么丟幀的頻度還要增大。
評論