隨著車內網絡的復雜化對速度,尤其是對故障容錯與實時性的需求不斷增加,FlexRay總線的高速度、確定性、容錯性等特點引起廣大學者和廠商的關注。 FlexRay支持分布式控制系統,具有全面協同工作的能力,其信息傳輸的確定性離不開其內部的時鐘同步機制的支持。時鐘同步機制可根據該節點啟動的不同工作階段,定義成不同的工作狀態,如初始化、等待接收同步幀等。考慮到傳統的FSM方法建立模型存在代碼難以復用、維護困難等問題,本文基于量子框架的角度,采用有限狀態機的方法對FlexRay時鐘同步機制進行研究。
1 量子框架
量子框架是基于事件驅動并發狀態機的一種應用框架,適用于嵌入式的可重用的基礎結構,它為外圍的應用系統提供了硬件框架。量子框架在應用系統中的地位如圖 1所示。
量子框架理論將應用系統按照功能模塊分解成相互獨立的活動對象,它們之間通過量子框架提供的軟總線和可識別的事件實例來實現彼此間的通信,活動對象彼此間沒有任何的通信。事件隊列是為活動對象提供的一個外部通信接口,能夠使活動對象接收事件實例;還提供了保護內部狀態圖的緩沖空間,以防止事件的生產爆發帶來的破壞,保證了活動對象在運行過程中的完整性。
2 FlexRay時鐘同步機制
2.1 FlexRay內部結構
FlexRay按照其功能可以分成3個層次:通信接口及控制層、內部時鐘控制層和外部接口控制層,如圖2所示。
通信接口及控制層主要包括控制主機接口(CHI)和協議運行控制器(POC)。CHI主要負責內核和主機通信接口,POC是內核的控制單元。
內部時鐘控制層包括時鐘同步啟動模塊(CSS)、時鐘同步處理模塊(CSP)和時鐘發生器(MTG)。系統中各個節點的時鐘同步就是主要依靠這個層來實現的。
外部接口控制層包括多路訪問控制模塊(MAC)、數據幀與符號處理模塊(FSP)和編碼解碼處理模塊(CO—DEC)三個部分,可實現對接收發送數據信息的處理和對總線讀/寫操作的編碼解碼功能。
2.2 時鐘周期結構
每一個通信周期內包括最小時間節拍層 (Microtick)、最大時間節拍層(Macrotick)、仲裁網格層(Arbitration—grid)和通信周期層4個時間等級。每個通信周期分成4個部分:靜態段、動態段、符號窗口和空閑網絡段。在靜態段中,基于時分復用(TDMA)技術將固定時槽分配給與各個節點匹配的ID,并允許節點傳輸數據。時槽大小相同,并且是從1開始向上編號。將一個或一個以上的時槽固定分配給每個節點。在運行期間,該時槽的分配不能修改,如圖3所示。
2.3 內部時鐘同步機制
節點的時鐘同步功能主要是由內部時鐘控制層實現的。其內部的MTG模塊控制周期計數器和最大時鐘節拍的計數器,并對其進行修正;CSP模塊主要完成一個通信周期開始的初始化,測量并存儲時間偏差值,計算頻率與相位的修正值;CSS模塊負責在集群啟動,或者在作為冷啟動節點時發出時鐘啟動信號。
當節點被喚醒并完成初始化后,就能在發出相應的主機命令后進入啟動流程。節點開始監控總線,如果沒有其他節點在發送數據,則自身發送數據,從而成為啟動集群的主冷啟動節點。在傳輸符號通知其他節點后,啟動自身時鐘,開始第一個通信循環,并根據預定義機制,主啟動節點將在其分配的時槽中傳輸。與其他所有節點一樣,它將只在一個時槽的啟動階段傳輸。
當節點在接收到消息識別碼(ID)和時槽編號相同時,
節點接收屬于自己的第1條消息。當接收到第2條消息時,后續的冷啟動節點啟動自身時鐘,并通過當前獲得通信循環周期號和消息的時槽編號進行初始化。兩條消息的時間差理論上應該與主冷啟動的通信周期相對應,接收節點要比較它們的可能的偏差,并通過糾正機制計算出修正值,從而通過修改內部時鐘發生器的時基頻率,使其盡可能地與主冷啟動周期值相對應。
FlexRay內部的時鐘同步機制同時采用頻率修正與相位修正兩種方法對時鐘進行修正。
2.3.1 頻率修正
在CSP模塊中,頻率偏差的測量在每個通信周期的靜態段中進行,通過內部算法在奇數周期的靜態段之后計算偏差修正值。如圖4所示,偏差的結果在 Cycle(2n+1)中計算得到,在Cycle(2n+2)和Cycle(2n+3)兩個周期內MTG模塊利用此偏差值進行頻率修正,而在 Cycle(2n+3)中得到的新的偏差值在接下來的2個周期中得到應用。
2.3.2 相位修正
在CSP模塊中,相位修正值的計算是在每個通信周期中都進行采集(靜態段)和計算(在開始進行相位修正之前完成)的;應用于MTG模塊的奇數周期內的NIT段,從 gOffsetCorrectionStart時刻開始到下一個周期開始之前,完成相位的修正過程。
值得注意的是,MTG模塊每個周期都要進行頻率修正。為了保證兩種修正方式的正確性,頻率偏差值的更新周期和相位修正周期是分開的。圖4中,在 Cycle(2n+1)周期中MTG同時進行頻率和相位的修正,但沒有進行頻率修正值的更新;而在Cycle(2n+2)周期,接收到CSP模塊發送的新頻率偏差值vRateCorrection,更新頻率偏差值,進行頻率修正,但沒有進行相位修正。也就是說,在沒有更新頻率偏差值的周期內,兩種修正同時進行;在頻率更新的周期內,不進行相位修正。另外,每個奇數周期內,CSP在靜態段之后進行相位和頻率修正值的計算。理論上這兩個計算過程沒有時間上的先后,只要確保相位修正值在應用前(gOffsetCorrectionStart)得到,而頻率偏差值在下一個周期到來之前得到。
3 基于量子框架的行為建模
3.1 有限狀態機的設計
有限狀態機是對描述對象的抽象描述,它把對象模型分解成一些能夠進行讀/寫操作或者等待外部事件的狀態,并且能夠由外部事件引起對象狀態的轉換,即在當前狀態下,由外部事件的發生并在滿足某些條件的情況下,進入第2個狀態。
3.2 對象分析
根據節點配置的不同功能,FlexRay內部的各個模塊表現為不同的狀態變化。在一個系統的眾多節點中,包括數量有限的冷啟動節點(cold start node)和普通節點。冷啟動的節點分成2種:一種是啟動整個集群的主冷啟動節點(1eading cold start node);另一種是根據其他冷啟動節點的參數來完成啟動的從冷啟動節點(following coldstart node)。這里只討論節點作為從冷啟動節點的情況。
3.3 活動對象建模
如上所述,每個活動對象都是作為一個相對獨立的任務來處理的。量子框架起到了軟件總線的作用,系統的功能擴展、分解、集成比較容易,可以方便地進行升級、裁剪。將FlexRay系統按功能模塊分解成3個活動對象,如圖5所示。
3.3.1 通信接口及控制活動對象
這個活動對象包括CHI和POC兩個模塊。CHI是主機和FlexRay內核通信接口。在實現時鐘同步過程中,該模塊主要是接收MTG的內部時鐘和CSP 發送的當前接收同步幀的溢出信號,以及向CSP發送外部頻率/相位修正值。POC是FlexRay內核非常重要的控制模塊,負責協調節點內各個功能模塊有效地運行。根據節點時鐘同步流程,建立有限狀態模型,如圖6所示。
如圖6所示,節點首先對兩個模塊進行初始化;當接收到主機配置指令后,進行內部功能配置;完成后進入節點啟動狀態,最后轉換到運行狀態。如果在運行狀態接收到主機的外部修正值時,則活動對象發送vExternRate—control和vExternOffsetControl兩個變量到CSP模塊,用于節點內部時鐘修正。
3.3.2 內部時鐘控制活動對象
此活動對象包含CSS、CSP和MTG三個功能模塊,是時鐘同步機制的主要組成部分。這里考慮作為從冷啟動節點的時鐘同步過程,所以采取使用其他主冷啟動節點的同步化參數參來啟動,調整內部時鐘,從而實現系統中各個節點間的時鐘同步,如圖7所示。
上電后,活動對象處于默認狀態。當接收到主機集群啟動指令后,進入等待啟動狀態并建立CSS實例和對測量偏差的變量初始化;在接收兩個啟動幀后,節點啟動內部時鐘。當接收到其他冷啟動節點的時鐘信息同步幀后,采集節點間時間偏差,采用容錯算法計算出頻率和相位的修正值并發送給MTG模塊,從而完成與主冷啟動節點的時鐘同步。
3.3.3 總線接口控制活動對象
此活動對象是FlexRay內核與外部總線的接口,完成對發送數據信息的編碼發送和對接收數據的解碼及識別。考慮到靜態段采用TMDA方式進行傳輸,且時鐘同步采用接收數據幀的方式,這里只根據數據幀的接收及解碼過程建立有限狀態模型,如圖8所示。
圖8中,活動對象在接收到相應信號的空閑標志信號cE Start后,開始對數據幀進行解碼,依次對數據幀的起始標志和幀頭段進行解碼;然后是靜態段以及周期內其他部分的解碼。通過檢查數據幀、符號時序和語法來判斷當前接收數據的有效性。
3.4 活動對象交互
在節點集群啟動過程中,分解的活動對象彼此之間要發生信息交互,如圖9所示。
節點通過通信接口控制對象啟動內部模塊,并發出集群啟動的指令(attempt integration),等待接收主冷啟動節點發出的啟動幀。首先,總線接口控制對象接收到第一個有效偶數啟動幀(valid even startup frame)后,通知內部時鐘控制對象集群啟動;當接收下一個有效奇數啟動幀(valid odd startup frame),并把當前啟動的狀態信息發送給其他的兩個對象,在兩通道完成同步幀的接收后,內部時鐘模塊調用內部宏單元計算頻率和相位偏差,修正內部時鐘使之和主冷啟動節點同步,從而實現時鐘同步,并把結果SyncCalcResult發送到協議控制器,后者根據結果來決定當前節點的工作狀態。
4 軟件結構
應用量子框架編寫應用程序主要有3步:聲明觸發信號和事件;定義活動對象(任務);初始化量子框架并開始運行活動對象。基本結構如下:
5 結論
FlexRay是一種支持多種網絡拓撲結構,高速可靠,尤其適用于汽車環境下的總線。其協議旨在應用于需要高通信帶寬和決定性容錯數據傳輸能力的底盤控制、車身和動力總成等場合,有很好的發展前景;而量子框架則提供了基于有限狀態機的實現技術,能方便地將狀態圖轉化成系統的程序代碼。
責任編輯:gt
-
嵌入式
+關注
關注
5072文章
19026瀏覽量
303517 -
控制系統
+關注
關注
41文章
6550瀏覽量
110498 -
總線
+關注
關注
10文章
2869瀏覽量
87995
發布評論請先 登錄
相關推薦
評論