如何解決FlexRay時(shí)鐘同步的同向漂移
補償過(guò)頭時(shí)URT為負值,通信時(shí)鐘將比標準時(shí)間提前。這種情況一般不會(huì )發(fā)生,因為規定選延遲的最小值作pDelayCompensation。但是這里又出現了host時(shí)鐘的漂移問(wèn)題:所有同步幀的內容是由host寫(xiě)入的,host必須在相應slot的開(kāi)始前使同步幀的內容就緒。最壞情況是原來(lái)host在slot開(kāi)始前寫(xiě)入,漂移超過(guò)了gdActionPointOffset就會(huì )產(chǎn)生同步幀未寫(xiě)入的情況。FlexRay的幀頭部有一位標志null frame. indicator,當幀內容未更新時(shí),這一位自動(dòng)設為0,同步幀還是發(fā)出去,所以并不影響同步幀的個(gè)數。
6 頻率校正中的問(wèn)題
頻率校正時(shí)采用了連續2個(gè)cycle的同一同步節點(diǎn)的相位差,將這兩個(gè)相位差的差作原始數據,用類(lèi)似算法計算校正量,然后按死區與限幅的方法實(shí)施校正。在同一同步節點(diǎn)的相位差的減法中,系統性偏差URT互相抵消,因此不引起頻率的漂移。但是,在接收節點(diǎn)測取BSS的跳變沿時(shí)存在誤差的可能性(如圖1所示),BSS的跳變沿的誤差直接影響到倒推ActionPointOffset的位置,從而進(jìn)入eRT:
式中Uglitch為毛刺造成的誤差,奇數cycle和偶數cycle的Uglitch可能是不同幅值和符號的。BSS的跳變沿是在經(jīng)濾波后的zVotedVal上采取的,毛刺長(cháng)度小于3個(gè)位采樣周期時(shí)被濾掉,大于3個(gè)位采樣周期時(shí)就可以見(jiàn)到。毛刺的存在位置有如下幾種可能:
?、?“0“毛刺在TSS之前,真正TSS的跳變沿被解讀為BSS中的跳變沿。此時(shí)讀到的相位差較大,但是后續BSS以及其它的幀檢查會(huì )發(fā)現此幀有接收錯。
?、?“1“毛刺在TSS之中,毛刺的1/0跳變沿被解讀為BSS中的跳變沿。此時(shí)讀到的相位差比上述情況小,同樣可檢查出有錯。
?、?“0“毛刺使BSS內的跳變沿提前,或“1“毛刺使BSS內的跳變沿推后,當提前或推后的量較大時(shí),后續BSS以及其它的幀檢查會(huì )發(fā)現此幀有接收錯。
?、?毛刺使BSS跳變沿變化量小于0.5位時(shí),后續BSS以及其他的幀檢查不會(huì )發(fā)現此幀有接收錯,所以此幀會(huì )被用于時(shí)鐘同步。
一個(gè)接收節點(diǎn)在同一cycle里受到毛刺干擾而造成有幾個(gè)同步幀受影響是可能的。此時(shí)盡管有最大最小頻率差的丟棄,毛刺造成的誤差仍可能要進(jìn)入校正量的計算。
易于導出頻率校正的狀態(tài)方程,它與(4)式的形式類(lèi)似。因此FlexRay的頻率校正可使簇內的頻率趨于一致,但是仍有頻率相對于標準值漂移的可能性,此漂移的方向是不定的,受毛刺出現的情況而變。
參考文獻[6]進(jìn)行了FlexRay的頻率校正的軟件仿真試驗,對節點(diǎn)頻率作階躍變化、斜坡變化的試驗結果是令人滿(mǎn)意的。但是它并未考慮過(guò)毛刺影響。
7 時(shí)變傳遞矩陣的漂移
如(5)式所示的傳遞矩陣還有非常多的形式,由于FlexRay在選取作校正計算時(shí)要用丟棄排序后的最大最小二個(gè)誤差,實(shí)際采用的同步節點(diǎn)的可能性組合很多。例如對4個(gè)同步節點(diǎn)的簇,對每個(gè)同步節點(diǎn)(矩陣A的一行)將有6種可能的系數,整個(gè)簇的傳遞矩陣A將有64=1296種可能。對矩陣A求特征根時(shí)可以發(fā)現它們都有λ=1的臨界穩定的特征根:實(shí)際上每行系數的和都等于1,在用行列式求特征根時(shí)就可以將λ-1提出來(lái)。而由于FlexRay在每次排序后選中的同步節點(diǎn)可能不同,傳遞矩陣是時(shí)變的,那么是否還有漂移呢?為此按照算法作了含有排序的程序,這是相位校正的算法(不含頻率校正的非線(xiàn)性部分)。
8.結語(yǔ)
FlexRay采用分布式時(shí)鐘的本意是強化對抗失效的能力:有F個(gè)同步幀發(fā)送節點(diǎn)失效時(shí),只要同步幀發(fā)送節點(diǎn)為3F+1個(gè),簇內的時(shí)鐘仍是正確同步的,因此可以保證簇內的正常通信服務(wù)。但是根據本文的動(dòng)態(tài)分析,時(shí)鐘相位會(huì )由于延遲補償誤差而漂移,與真實(shí)時(shí)鐘有頻差。這種延遲補償誤差是無(wú)法消除的,而已有頻率校正方法無(wú)法發(fā)現通信時(shí)鐘對真實(shí)時(shí)間的頻差,因此通信時(shí)鐘會(huì )與host的時(shí)鐘越離越遠,導致發(fā)送幀被新幀覆蓋,或者時(shí)隙到達時(shí)消息尚未就緒。這些漂移引起的出錯發(fā)生頻率是相當高的。
由于毛刺引起的頻率漂移可以用死區算法克制,但是其他各種毛刺的情況會(huì )使有效的同步幀數目減少,使容錯中值算法的魯棒性下降。按容許F個(gè)錯需要3F+1個(gè)同步幀計算,同時(shí)有2個(gè)錯對4個(gè)同步節點(diǎn)的簇就不能保證同步精度了。
對應用而言,丟幀或時(shí)序的錯誤會(huì )引起很壞的后果,如工作的邏輯連鎖條件破壞。例如速度下降應在前,換檔工作應在后,由于速度下降信號丟失,降速后換檔的要求未滿(mǎn)足會(huì )形成自動(dòng)變速器的沖擊,造成噪聲和壽命下降,又如停止加油后再剎車(chē)的要求未滿(mǎn)足,會(huì )延長(cháng)剎車(chē)距離,危及安全。對于傳送的消息是模擬量時(shí),丟幀或延遲的后果只是暫時(shí)的,對傳送的是邏輯變量,丟幀或延遲會(huì )造成邏輯的錯誤。這種時(shí)鐘上的錯誤會(huì )同時(shí)影響FlexRay的2個(gè)通道,因此也影響了FlexRay對抗故障的能力。
評論