天天看點

FlexRay關注事項2_網絡總線資源配置設定問題

FlexRay關注事項2_網絡總線資源配置設定問題

      要了解總線資源的分類,需要了解幾個技術前提,第一個就是Flexray的資料收發硬體機制:

FlexRay關注事項2_網絡總線資源配置設定問題

      被發送的資料首先到達資料主機進行資料确認,然後道道資料通信器,在其中進行資料編碼,形成資料位流,然後通過總線驅動器将資料輸出到總線上。整個過程總線螢幕将進行狀态監測。

FlexRay關注事項2_網絡總線資源配置設定問題

      在時序範圍内,總線驅動器通路總線,并将資料傳輸到總線通信器進行資料解碼,解碼後的資料傳給資料主機。全過程總線螢幕将進行狀态監測。

      第二個是需要了解Flexray的時序格式:

FlexRay關注事項2_網絡總線資源配置設定問題

      傳輸起始序列TSS是一連串的低電平,後面緊跟幀傳輸序列FSS,則是一段時間的高電平,然後是起始位元組傳輸序列BSS,用于給接收方提供定時資訊。後續為位元組串,最後以一段低電平加高電平的幀結束序列FES結束,如果是動态幀,最後還需要一段低電平的動态尾部序列DTS。

      第三個是需要了解Flexray的資料格式:

FlexRay關注事項2_網絡總線資源配置設定問題

      三大組成:40位幀頭;最大254位元組資料,24位校驗。不同場景下的資料部分又有具體的格式标注。

      FlexRay的高速和高效特性展現在通信機制采用分時複用機制,具體在運作種存在兩種模式,一種是TDMA模式,即分時多址接入;一種是基于最小時間片模式。

      在1個通訊周期内,有4個時間等級(timing hierarchy),從最低層到最高層分别是:最小時間節拍層(microtick)、最大時間節拍層(macrotick)、仲裁網格層(arbitrationgrid)和通訊周期層。

在最高層即通訊周期層,由靜态部分、動态部分、特征窗和網絡閑置時間(NIT)4個部分組成。在靜态部分采用的是TDMA方式;在特征窗的這段時間内主要傳輸的是特征符。

僅次于最高層就是仲裁網格層,仲裁網格層形成FlexRay的媒體接入仲裁的核心,它解決的是采用何種方式接入媒體。在動态部分,仲裁網格由若幹個最小時間片(minislot)組成。

FlexRay關注事項2_網絡總線資源配置設定問題

第一部分:靜态部分

在該時間段内由若幹個靜态時間片(staticslot)組成,每個時間片的長度都相等。不同的節點根據全局時間判斷在某一時刻開始接收或發送某一特定的資料幀(flameID)。為了确定這一時刻每個節點的每一個通道上都含有一個時間片計數器,兩個計數器是同步計數的。

例如有3個節點,分别為node1、node2和node3。假設靜态部分開始于00:10,節點在時間上的順序為1-2-3,那麼node1将在00:10這一時刻開始在兩個通道上傳輸flameID1;在00:20時刻node2開始在一個通道上傳輸flameID2;node3在00:30開始傳輸,即使沒有資料幀。

FlexRay關注事項2_網絡總線資源配置設定問題

第二部分:動态部分

      采用的是基于最小時間片的時序,由若幹個最小時間片組成,最小時間片的長度都相等。幀的長度是可變的,而且與靜态部分相比,動态部分的兩個時間片計數器是獨立計數的,在不傳輸資料幀時,計數器以minislot為周期進行加1計數,在傳輸資料幀時計數器不工作。兩個通訊通道不必同步。一個動态時間片(Dynamicslot)包含一個或多個minislot。

FlexRay關注事項2_網絡總線資源配置設定問題

第三部分:時鐘同步

      時鐘同步是非常核心的一部分,了解起來有難度。在Flexray總線的整個時序過程,包括資料幀的控制時序内,都是有時鐘、時間、時序的概念的,這一點在Can上面很難了解。

總線所有的節點都應有相同的“時間觀”,整個總線需要遵循一個時間節拍。

但這并不意味着節點間具有完全嚴格的同步時間,隻要節點間的時間差保持在允許的誤差範圍内即可。

Flexray的時間等級制度:若幹個最小時鐘節拍構成一個最大時鐘節拍,而若幹個最大時鐘節拍又構成通訊周期的一個單元。最小時鐘節拍是由通訊控制器(CC)的外部晶振提供,對于不同的控制器,最小時鐘節拍可能會不相同;在一個總線内所有同步節點的最大時鐘節拍都相等。

      時鐘同步包含兩個主要過程:最大時鐘節拍産生過程(MTG)和時鐘同步過程(CPS)。

FlexRay關注事項2_網絡總線資源配置設定問題

      MTG控制時間片計數器初值,并對其進行修正。時鐘同步過程(CPS)主要完成一個通訊周期開始的初始化,測量并存儲時間偏內插補點,計算頻率與相位的修正值。時間偏差可以分為相位(offset)和頻率(rate)偏差。相位偏差是兩個時鐘在某一特定時間的絕對差别頻率偏差是相位.偏差随着時間推移的變化,它反映了相位偏差在特定時間的變化。FlexRay同時對頻率與相位進行修正。節點計算資料幀到達的實際時刻,并與理論上的預測時刻比較,得到的值就是發送節點與接收節點的時間偏差,并采取一定的算法進行修正,最終使簇内的節點上的時間實作“同步”。

第四部分:喚醒與啟動(wakeup and startup)

喚醒針對的是電源管理系統。有些節點在不工作時處于“節電”模式(power-savingmode),當再次投入工作時就需要“喚醒”該節點;單個節點可喚醒整個組群;主機可在通訊信道上傳輸喚醒模式(wakeup-pattern)。節點通過收發器進行喚醒:當節點的收發器接收到喚醒特征符(wakeup-symbol)後,對主機處理器和通訊控制器進行上電。

      隻有将節點喚醒後,才能啟動節點工作。初始化一個啟動過程稱為“冷啟動(coldstart)”,能進行冷啟動的節點數目是有限的。系統的啟動由兩個邏輯步驟組成:  ①冷啟動節點啟動;

      ②其他非冷啟動節點通過接收啟動幀,與冷啟動節點整合到一起。

      實際上雖然整個過程很複雜,但是我們實際使用的時候不需要關注這些過程,因為總線控制器都給我們完成了,我們隻要關注總線監視寄存器的内容,并對錯誤和狀态處理進行及時處理就行,其他的隻需要了解即可,不用重點關注。

繼續閱讀