車內通信網絡標準FlexRay的功能和特性分析
2.骨干網絡
FlexRay具有很高的數據速率,因而非常適合于汽車骨干網絡,用于連接多個獨立網絡。
3.實時應用,分布式控制系統
用戶可以提前知道消息到達時間,消息周期偏差非常小,這使得FlexRay成為具有嚴格實時要求的分布式控制系統的首選技術。
4.面向安全的系統
FlexRay本身不能確保系統安全,但它具備大量功能,可以支持面向安全的系統(如線控系統)設計。
在車內通信方面,FlexRay提供了從事件驅動的CAN通信轉換到時間驅動通信的一個轉換范例。這種轉換需要一定時間,因為它不僅會影響新技術的引入,還要求對涉及到的所有人員都進行重新培訓。一旦這個轉換步驟完成,就可以發現更多的應用領域。
功能和機制分析
1.訪問方法
FlexRay的通信是在逐周期中進行的,一個通信周期始終由靜態部分和網絡閑置時間(NIT)組成。協議內部流程需要網絡閑置時間,在這個時段內,群組的節點之間不進行任何通信(見圖2)。
![]() |
圖4:FlexRay 群組啟動。 |
除了靜態部分以外,通信周期還可以選擇性地組成動態部分。一種所謂的“微時隙”法用來訪問動態部分內的通信媒介。發送出去的消息永遠分配給動態時隙。只要時隙分配給了節點,與大小都相同、始終用于傳輸的靜態時隙相反,動態部分就只能在需要時才進行傳輸。因此,動態部分的可用帶寬是動態分配的。
如果消息號(ID)和時隙號對應,有待發消息的節點就會進行傳輸。如果沒有節點傳輸,則所有節點就會等候,等待的時間長度正是微時隙的長度,然后它們的時隙計數器也會增加。在時隙計數器增加以后,所有節點都將檢查該時隙號是否與將發出的消息對應。如果兩者匹配,該節點將發送消息。所有其它節點接受這條消息,并且一直等到它們完全接收了這條消息后再增加時隙讀數。這一過程將會持續,直至動態部分結束。如果在一個周期中,沒有或者只有少數節點發送消息,在動態部分的結尾將達到更高的時隙號。如果有大量節點進行發送,則到達的時隙號就比較低。因此,擁有較高編號的(即優先權較低)發送消息的節點可能在一個周期中傳輸,而不在另一個周期中傳輸,具體取決于在其之前在動態部分已經由多少個節點進行了消息傳輸。要確定消息已經傳輸,用戶必須在靜態部分發送該消息,或者必須在動態部分中對其分配較低消息編號(即優先權較高)。
2.時鐘同步
如果使用基于TDMA的通信協議,則在時間域上控制對通信媒介的訪問。因此,每個節點都必須保持時間同步,這一點非常重要。所有節點的時鐘必須同步,并且最大偏差必須在限定范圍內,這是實現時鐘同步的前提條件。最大的偏差反應了精確度的大小。
![]() |
圖5:雙信道拓撲舉例。 |
通過相位修正和頻率修正可以實現時鐘同步。FlexRay使用了一種綜合方法,即同時采用相位修正和頻率修正。時鐘同步是一個控制環路,與其它控制環路一樣,也由測量、計算和設定功能組成。
要測量每個時鐘與其它時鐘的偏差,所有節點都要在接收期間測量消息的到達時間。通過靜態部分的定時機制,每個節點都知道消息應當何時到達。如果消息比預計時間早到或晚到,將能測量得出實際時間與預定時間之間的偏差。該偏差代表了傳輸和接收節點之間的時鐘偏差。借助獲得的測量值,可用容錯平均算法計算出每個節點的修正值。
在頻率修正中,需要使用兩個通信周期的測量值。這些測量值之間的差值反映每個通信周期中的時鐘偏差變化,它通常用于計算雙周期結束時的修正值(見上文提及的方法)。在整個后來的兩個周期中,都使用該修正值。
相位修正值的計算只需一個周期的測量值,一旦接收了所有測量值,即可開始進行計算,并且它必須在開始相位修正前完成。在通信周期末尾,網絡閑置時間(NIT)的一部分被保留,用于相位修正。相位修正要相隔一個周期來完成,避免影響時鐘頻率偏差的確定。圖3概述了時鐘同步的每個階段,以及不同訪問方法的分配。
3. 群組啟動
與許多技術流程或程序一樣,FlexRay中的啟動階段同樣也是最復雜的階段之一。這是因為FlexRay中的通信基于同步時鐘機制,但在啟動階段這種機制還未建立。由于具備容錯功能,FlexRay中不存在主時鐘,因而時基不是由主時鐘定義的。
啟動群組時,將會啟動“coldstarter”,coldstarter總是存在于多個實例中。首先,啟動傳輸消息的coldstarter被稱為“主coldstarter”(leading coldstarter),其它coldstarter則被稱為“從coldstarter”(following coldstarter)。
![]() |
圖6:雙信道星型拓撲。 |
主coldstarter發送的消息可由從coldstarter接收。在消息ID(該號碼與時隙編號相同)的幫助下,接收器能夠確定發送器位于哪個時隙。傳輸節點的當前周期編號附帶在每條消息中發送。在接收第一條消息后,其它節點等待在下一個通信周期中發送的第二條消息。一旦收到第二條消息,從coldstarter將開始啟動它們的時鐘,該時鐘由周期編號和接收消息的時隙號進行初始化。這樣就可以為傳輸器和接收器之間的同步時間操作奠定基礎。此外,接收節點會測量第一條消息和第二條消息之間的時間,該時間與通信周期的周期時間對應。測量出的時間與本地coldstarter時間進行比較。還可以通過減法確定可能偏差,頻率修正機制使用該偏差值作為修正值。因此,從coldstarter不僅使用接收到的周期號和時間值(與傳輸的時隙對應)來啟動其時鐘,還會修改其時基的頻率,使它盡可能地接近主coldstarter的值。
評論