關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 如何解決FlexRay時鐘同步的同向漂移

如何解決FlexRay時鐘同步的同向漂移

作者: 時間:2011-04-15 來源:網絡 收藏

隨著安全性要求的提高, CAN總線的帶寬就嫌不足,消息送達的確定性不夠。為此,一些汽車大廠和汽車電子的大廠成立了研發(fā)新型通信協(xié)議的聯(lián)盟[1],目標是開發(fā)出稱為的協(xié)議,使它成為下一代車用通信協(xié)議的事實上的標準。2005年聯(lián)盟推出了2.1版的規(guī)范,2009年完成3.0版規(guī)范,然后就結束了。現(xiàn)在公眾還無法見到3.0版規(guī)范,但是據介紹,關鍵部分并無大的變化。

本文引用地址:http://butianyuan.cn/article/162165.htm

  BMW車上在2006年已開始應用,各大電子器件生產廠開始了批量生產控制器?,F(xiàn)在業(yè)界正處于爭取FlexRay技術早日成熟的階段,在系統(tǒng)設計、測試、標定等方面開始了大量投入。因此,任何涉及FlexRay協(xié)議的基礎性問題的研究就格外重要,一旦有新的未發(fā)現(xiàn)的隱患披露,無疑會引起大的波動。

  FlexRay是基于時間觸發(fā)的協(xié)議,節(jié)點間的時間是它的關鍵,參考文獻[5]是2.1版規(guī)范直接引用的主要原始資料的2009年修訂版,其主要內容是有相位與頻率校正時誤差的靜態(tài)傳遞分析,求出可以達到的最壞或最好狀態(tài)下的簇內差的精度。參考文獻[5]指出了5種計算時的誤差來源:采樣的量化誤差、微拍非均勻分布誤差、傳遞延遲誤差、整除誤差和簇漂阻尼誤差。由于校正實際上是一個反饋控制問題,但以前的研究沒有采用反饋控制的分析方法,沒有考慮幀發(fā)送節(jié)點間的交互影響,以及傳遞延遲誤差作為系統(tǒng)性誤差的長期存在,得到的結論并不全面,這是本文要重點討論的問題:由于系統(tǒng)性誤差的持續(xù)存在,節(jié)點的相位差會單向,與hoST的越離越遠,造成新的失誤。參考文獻[6]用軟件仿真FlexRay時鐘頻率跳變或緩變時校正算法的有效性,它證實算法是收斂的,簇內時鐘差校正后的精度與頻率率無關,跳變時有一個過渡過程,瞬態(tài)差可能超過精度范圍。參考文獻[7]分析了有拜占庭錯時FlexRay容錯中值相位校正算法的收斂性,非常有趣的是在推導過程中也得到了校正后cycle開始時間真值Us隨延遲補償不足而推遲的公式,它表明每校正一次存在的差,但是這種并未受到FlexRay重視。參考文獻[8]是對容錯中值算法正確性的形式化證明,該算法就是FlexRay采用的算法,在分析每輪修正后的虛擬時鐘與真實時鐘差時,存在±ε的漂移,其中ε是傳送延遲。這也證實了本文分析的問題早已存在,而FlexRay未對該問題的后果有所警覺。

  1 FlexRay時鐘的概念

  FlexRay的時間單位是從大到小分級的:通信Cycle、通信宏拍(Macrotick,MT)和微拍(Microtick)。每一個節(jié)點中的振蕩器,經過分頻之后,產生一個本地的微拍時鐘單位,它與位采樣數(shù)及位采樣時鐘周期有關,所以節(jié)點中最小的時間單位是位采樣時鐘周期。各個節(jié)點可以有不同的微拍,簇內共同的時間單位是MT,每個節(jié)點組態(tài)時定義正常時每MT內本地微拍的個數(shù)。本地MT的生成有專門的邏輯,在每一本地微拍時執(zhí)行一次,以實現(xiàn)本地MT的修正,以保證MT盡量全局一致,并且可以保證頻率的校正均勻分布在整個cycle中。

  2 FlexRay收發(fā)的

  在收發(fā)過程中還有字節(jié)的位同步和幀開始同步來可能的抖動與延遲,它們極大地緩解了時鐘同步的精度要求。

  在以字節(jié)為單位的幀數(shù)據傳送時,每個字節(jié)的開頭有由“10”構成的字節(jié)開始序列(BSS),這個1/0跳變沿是位時間同步用的:發(fā)現(xiàn)跳變沿后位采樣計數(shù)器就設為2,當位采樣計數(shù)器=5時,zVotedVal的值就作為當時的位值。位采樣計數(shù)器為9后溢出復位為1。顯然,若因收發(fā)有時鐘差,而要在下一個BSS的1處采錯,需要差4個位采樣時鐘周期時才會發(fā)生。也就是說,時鐘差5%才會發(fā)生。

  FlexRay的同步幀是在靜態(tài)段中傳送的,一個時隙(slot)內實際上有很多空閑時間。首先,每個幀是在稱為actiON point offset處(gdActionPointOffset)開始發(fā)送,這是一個全局參數(shù)。幀開始是“0”表示的傳送開始序列TSS,經過1位“1”的幀開始序列FSS,再是第一個字節(jié)開始序列BSS,它由“10”二位組成。接收節(jié)點要正確檢測到第一個字節(jié)開始序列BSS的1/0跳變沿才作幀接收的同步。幀的最后是“01”構成的幀結束序列FES,然后發(fā)送器被禁止了。發(fā)送器禁止后30 ns總線處于高阻狀態(tài)。在幀傳送結束后發(fā)送節(jié)點要有長度為11位的通道空閑分界符(cChannelIdleDelimiter,實際上總線高阻時,經50~250 ns接收節(jié)點會發(fā)現(xiàn)總線空閑,然后輸出RxD=“1”。然后總線一直在空閑狀態(tài)。由于FlexRay的物理連接有可能通過有源星型耦合器,在總線空閑到總線上傳送0有一個啟動過程,再加總線上位置不同的傳送延遲差別、收發(fā)器的延遲,發(fā)送節(jié)點的TSS長度會與接收節(jié)點的長度不同,接收節(jié)點看到的TSS會比發(fā)送節(jié)點的TSS短,稱為TSS截短。只要接收節(jié)點看到的TSS在1~(gdTSSTransmitter + 1)之間,TSS就是有效的。所以gdActionPointOffset之前,總線也是空閑的。因此,若節(jié)點時鐘差不使總線上的傳送提前使gdActionPointOffset前的空閑消失,或落后使cChannelIdleDelimiter后的空閑消失,就不會產生2個發(fā)送幀的重疊而影響正常收發(fā)。

圖1 求取相位差的時間關系


上一頁 1 2 3 4 下一頁

評論


相關推薦

技術專區(qū)

關閉