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