量子框架的FlexRay時(shí)鐘同步功能建模
如圖6所示,節(jié)點(diǎn)首先對(duì)兩個(gè)模塊進(jìn)行初始化;當(dāng)接收到主機(jī)配置指令后,進(jìn)行內(nèi)部功能配置;完成后進(jìn)入節(jié)點(diǎn)啟動(dòng)狀態(tài),最后轉(zhuǎn)換到運(yùn)行狀態(tài)。如果在運(yùn)行狀態(tài)接收到主機(jī)的外部修正值時(shí),則活動(dòng)對(duì)象發(fā)送vExternRate―control和vExternOffsetControl兩個(gè)變量到CSP模塊,用于節(jié)點(diǎn)內(nèi)部時(shí)鐘修正。
3.3.2 內(nèi)部時(shí)鐘控制活動(dòng)對(duì)象
此活動(dòng)對(duì)象包含CSS、CSP和MTG三個(gè)功能模塊,是時(shí)鐘同步機(jī)制的主要組成部分。這里考慮作為從冷啟動(dòng)節(jié)點(diǎn)的時(shí)鐘同步過程,所以采取使用其他主冷啟動(dòng)節(jié)點(diǎn)的同步化參數(shù)參來啟動(dòng),調(diào)整內(nèi)部時(shí)鐘,從而實(shí)現(xiàn)系統(tǒng)中各個(gè)節(jié)點(diǎn)間的時(shí)鐘同步,如圖7所示。
上電后,活動(dòng)對(duì)象處于默認(rèn)狀態(tài)。當(dāng)接收到主機(jī)集群啟動(dòng)指令后,進(jìn)入等待啟動(dòng)狀態(tài)并建立CSS實(shí)例和對(duì)測(cè)量偏差的變量初始化;在接收兩個(gè)啟動(dòng)幀后,節(jié)點(diǎn)啟動(dòng)內(nèi)部時(shí)鐘。當(dāng)接收到其他冷啟動(dòng)節(jié)點(diǎn)的時(shí)鐘信息同步幀后,采集節(jié)點(diǎn)間時(shí)間偏差,采用容錯(cuò)算法計(jì)算出頻率和相位的修正值并發(fā)送給MTG模塊,從而完成與主冷啟動(dòng)節(jié)點(diǎn)的時(shí)鐘同步。
3.3.3 總線接口控制活動(dòng)對(duì)象
此活動(dòng)對(duì)象是FlexRay內(nèi)核與外部總線的接口,完成對(duì)發(fā)送數(shù)據(jù)信息的編碼發(fā)送和對(duì)接收數(shù)據(jù)的解碼及識(shí)別??紤]到靜態(tài)段采用TMDA方式進(jìn)行傳輸,且時(shí)鐘同步采用接收數(shù)據(jù)幀的方式,這里只根據(jù)數(shù)據(jù)幀的接收及解碼過程建立有限狀態(tài)模型,如圖8所示。
圖8中,活動(dòng)對(duì)象在接收到相應(yīng)信號(hào)的空閑標(biāo)志信號(hào)cE Start后,開始對(duì)數(shù)據(jù)幀進(jìn)行解碼,依次對(duì)數(shù)據(jù)幀的起始標(biāo)志和幀頭段進(jìn)行解碼;然后是靜態(tài)段以及周期內(nèi)其他部分的解碼。通過檢查數(shù)據(jù)幀、符號(hào)時(shí)序和語法來判斷當(dāng)前接收數(shù)據(jù)的有效性。
3.4 活動(dòng)對(duì)象交互
在節(jié)點(diǎn)集群啟動(dòng)過程中,分解的活動(dòng)對(duì)象彼此之間要發(fā)生信息交互,如圖9所示。
節(jié)點(diǎn)通過通信接口控制對(duì)象啟動(dòng)內(nèi)部模塊,并發(fā)出集群啟動(dòng)的指令(attempt integration),等待接收主冷啟動(dòng)節(jié)點(diǎn)發(fā)出的啟動(dòng)幀。首先,總線接口控制對(duì)象接收到第一個(gè)有效偶數(shù)啟動(dòng)幀(valid even startup frame)后,通知內(nèi)部時(shí)鐘控制對(duì)象集群啟動(dòng);當(dāng)接收下一個(gè)有效奇數(shù)啟動(dòng)幀(valid odd startup frame),并把當(dāng)前啟動(dòng)的狀態(tài)信息發(fā)送給其他的兩個(gè)對(duì)象,在兩通道完成同步幀的接收后,內(nèi)部時(shí)鐘模塊調(diào)用內(nèi)部宏單元計(jì)算頻率和相位偏差,修正內(nèi)部時(shí)鐘使之和主冷啟動(dòng)節(jié)點(diǎn)同步,從而實(shí)現(xiàn)時(shí)鐘同步,并把結(jié)果SyncCalcResult發(fā)送到協(xié)議控制器,后者根據(jù)結(jié)果來決定當(dāng)前節(jié)點(diǎn)的工作狀態(tài)。
4 軟件結(jié)構(gòu)
應(yīng)用量子框架編寫應(yīng)用程序主要有3步:聲明觸發(fā)信號(hào)和事件;定義活動(dòng)對(duì)象(任務(wù));初始化量子框架并開始運(yùn)行活動(dòng)對(duì)象?;窘Y(jié)構(gòu)如下:
5 結(jié) 論
FlexRay是一種支持多種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),高速可靠,尤其適用于汽車環(huán)境下的總線。其協(xié)議旨在應(yīng)用于需要高通信帶寬和決定性容錯(cuò)數(shù)據(jù)傳輸能力的底盤控制、車身和動(dòng)力總成等場(chǎng)合,有很好的發(fā)展前景;而量子框架則提供了基于有限狀態(tài)機(jī)的實(shí)現(xiàn)技術(shù),能方便地將狀態(tài)圖轉(zhuǎn)化成系統(tǒng)的程序代碼。
評(píng)論