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