量子框架的FlexRay時(shí)鐘同步功能建模

發(fā)布時(shí)間:2010-5-13 14:05    發(fā)布者:李寬
關(guān)鍵詞: FlexRay , 建模 , 時(shí)鐘同步
隨著(zhù)車(chē)內網(wǎng)絡(luò )的復雜化對速度,尤其是對故障容錯與實(shí)時(shí)性的需求不斷增加,FlexRay總線(xiàn)的高速度、確定性、容錯性等特點(diǎn)引起廣大學(xué)者和廠(chǎng)商的關(guān)注。 FlexRay支持分布式控制系統,具有全面協(xié)同工作的能力,其信息傳輸的確定性離不開(kāi)其內部的時(shí)鐘同步機制的支持。時(shí)鐘同步機制可根據該節點(diǎn)啟動(dòng)的不同工作階段,定義成不同的工作狀態(tài),如初始化、等待接收同步幀等?紤]到傳統的FSM方法建立模型存在代碼難以復用、維護困難等問(wèn)題,本文基于量子框架的角度,采用有限狀態(tài)機的方法對FlexRay時(shí)鐘同步機制進(jìn)行研究。

1 量子框架

量子框架是基于事件驅動(dòng)并發(fā)狀態(tài)機的一種應用框架,適用于嵌入式的可重用的基礎結構,它為外圍的應用系統提供了硬件框架。量子框架在應用系統中的地位如圖 1所示。



量子框架理論將應用系統按照功能模塊分解成相互獨立的活動(dòng)對象,它們之間通過(guò)量子框架提供的軟總線(xiàn)和可識別的事件實(shí)例來(lái)實(shí)現彼此間的通信,活動(dòng)對象彼此間沒(méi)有任何的通信。事件隊列是為活動(dòng)對象提供的一個(gè)外部通信接口,能夠使活動(dòng)對象接收事件實(shí)例;還提供了保護內部狀態(tài)圖的緩沖空間,以防止事件的生產(chǎn)爆發(fā)帶來(lái)的破壞,保證了活動(dòng)對象在運行過(guò)程中的完整性。

2 FlexRay時(shí)鐘同步機制

2.1 FlexRay內部結構

FlexRay按照其功能可以分成3個(gè)層次:通信接口及控制層、內部時(shí)鐘控制層和外部接口控制層,如圖2所示。



通信接口及控制層主要包括控制主機接口(CHI)和協(xié)議運行控制器(POC)。CHI主要負責內核和主機通信接口,POC是內核的控制單元。

內部時(shí)鐘控制層包括時(shí)鐘同步啟動(dòng)模塊(CSS)、時(shí)鐘同步處理模塊(CSP)和時(shí)鐘發(fā)生器(MTG)。系統中各個(gè)節點(diǎn)的時(shí)鐘同步就是主要依靠這個(gè)層來(lái)實(shí)現的。

外部接口控制層包括多路訪(fǎng)問(wèn)控制模塊(MAC)、數據幀與符號處理模塊(FSP)和編碼解碼處理模塊(CO—DEC)三個(gè)部分,可實(shí)現對接收發(fā)送數據信息的處理和對總線(xiàn)讀/寫(xiě)操作的編碼解碼功能。

2.2 時(shí)鐘周期結構

每一個(gè)通信周期內包括最小時(shí)間節拍層 (Microtick)、最大時(shí)間節拍層(Macrotick)、仲裁網(wǎng)格層(Arbitration—grid)和通信周期層4個(gè)時(shí)間等級。每個(gè)通信周期分成4個(gè)部分:靜態(tài)段、動(dòng)態(tài)段、符號窗口和空閑網(wǎng)絡(luò )段。在靜態(tài)段中,基于時(shí)分復用(TDMA)技術(shù)將固定時(shí)槽分配給與各個(gè)節點(diǎn)匹配的ID,并允許節點(diǎn)傳輸數據。時(shí)槽大小相同,并且是從1開(kāi)始向上編號。將一個(gè)或一個(gè)以上的時(shí)槽固定分配給每個(gè)節點(diǎn)。在運行期間,該時(shí)槽的分配不能修改,如圖3所示。



2.3 內部時(shí)鐘同步機制

節點(diǎn)的時(shí)鐘同步功能主要是由內部時(shí)鐘控制層實(shí)現的。其內部的MTG模塊控制周期計數器和最大時(shí)鐘節拍的計數器,并對其進(jìn)行修正;CSP模塊主要完成一個(gè)通信周期開(kāi)始的初始化,測量并存儲時(shí)間偏差值,計算頻率與相位的修正值;CSS模塊負責在集群?jiǎn)?dòng),或者在作為冷啟動(dòng)節點(diǎn)時(shí)發(fā)出時(shí)鐘啟動(dòng)信號。

當節點(diǎn)被喚醒并完成初始化后,就能在發(fā)出相應的主機命令后進(jìn)入啟動(dòng)流程。節點(diǎn)開(kāi)始監控總線(xiàn),如果沒(méi)有其他節點(diǎn)在發(fā)送數據,則自身發(fā)送數據,從而成為啟動(dòng)集群的主冷啟動(dòng)節點(diǎn)。在傳輸符號通知其他節點(diǎn)后,啟動(dòng)自身時(shí)鐘,開(kāi)始第一個(gè)通信循環(huán),并根據預定義機制,主啟動(dòng)節點(diǎn)將在其分配的時(shí)槽中傳輸。與其他所有節點(diǎn)一樣,它將只在一個(gè)時(shí)槽的啟動(dòng)階段傳輸。

當節點(diǎn)在接收到消息識別碼(ID)和時(shí)槽編號相同時(shí),
節點(diǎn)接收屬于自己的第1條消息。當接收到第2條消息時(shí),后續的冷啟動(dòng)節點(diǎn)啟動(dòng)自身時(shí)鐘,并通過(guò)當前獲得通信循環(huán)周期號和消息的時(shí)槽編號進(jìn)行初始化。兩條消息的時(shí)間差理論上應該與主冷啟動(dòng)的通信周期相對應,接收節點(diǎn)要比較它們的可能的偏差,并通過(guò)糾正機制計算出修正值,從而通過(guò)修改內部時(shí)鐘發(fā)生器的時(shí)基頻率,使其盡可能地與主冷啟動(dòng)周期值相對應。

FlexRay內部的時(shí)鐘同步機制同時(shí)采用頻率修正與相位修正兩種方法對時(shí)鐘進(jìn)行修正。

2.3.1 頻率修正

在CSP模塊中,頻率偏差的測量在每個(gè)通信周期的靜態(tài)段中進(jìn)行,通過(guò)內部算法在奇數周期的靜態(tài)段之后計算偏差修正值。如圖4所示,偏差的結果在 Cycle(2n+1)中計算得到,在Cycle(2n+2)和Cycle(2n+3)兩個(gè)周期內MTG模塊利用此偏差值進(jìn)行頻率修正,而在 Cycle(2n+3)中得到的新的偏差值在接下來(lái)的2個(gè)周期中得到應用。



2.3.2 相位修正

在CSP模塊中,相位修正值的計算是在每個(gè)通信周期中都進(jìn)行采集(靜態(tài)段)和計算(在開(kāi)始進(jìn)行相位修正之前完成)的;應用于MTG模塊的奇數周期內的NIT段,從 gOffsetCorrectionStart時(shí)刻開(kāi)始到下一個(gè)周期開(kāi)始之前,完成相位的修正過(guò)程。

值得注意的是,MTG模塊每個(gè)周期都要進(jìn)行頻率修正。為了保證兩種修正方式的正確性,頻率偏差值的更新周期和相位修正周期是分開(kāi)的。圖4中,在 Cycle(2n+1)周期中MTG同時(shí)進(jìn)行頻率和相位的修正,但沒(méi)有進(jìn)行頻率修正值的更新;而在Cycle(2n+2)周期,接收到CSP模塊發(fā)送的新頻率偏差值vRateCorrection,更新頻率偏差值,進(jìn)行頻率修正,但沒(méi)有進(jìn)行相位修正。也就是說(shuō),在沒(méi)有更新頻率偏差值的周期內,兩種修正同時(shí)進(jìn)行;在頻率更新的周期內,不進(jìn)行相位修正。另外,每個(gè)奇數周期內,CSP在靜態(tài)段之后進(jìn)行相位和頻率修正值的計算。理論上這兩個(gè)計算過(guò)程沒(méi)有時(shí)間上的先后,只要確保相位修正值在應用前(gOffsetCorrectionStart)得到,而頻率偏差值在下一個(gè)周期到來(lái)之前得到。

3 基于量子框架的行為建模

3.1 有限狀態(tài)機的設計

有限狀態(tài)機是對描述對象的抽象描述,它把對象模型分解成一些能夠進(jìn)行讀/寫(xiě)操作或者等待外部事件的狀態(tài),并且能夠由外部事件引起對象狀態(tài)的轉換,即在當前狀態(tài)下,由外部事件的發(fā)生并在滿(mǎn)足某些條件的情況下,進(jìn)入第2個(gè)狀態(tài)。

3.2 對象分析

根據節點(diǎn)配置的不同功能,FlexRay內部的各個(gè)模塊表現為不同的狀態(tài)變化。在一個(gè)系統的眾多節點(diǎn)中,包括數量有限的冷啟動(dòng)節點(diǎn)(cold start node)和普通節點(diǎn)。冷啟動(dòng)的節點(diǎn)分成2種:一種是啟動(dòng)整個(gè)集群的主冷啟動(dòng)節點(diǎn)(1eading cold start node);另一種是根據其他冷啟動(dòng)節點(diǎn)的參數來(lái)完成啟動(dòng)的從冷啟動(dòng)節點(diǎn)(following coldstart node)。這里只討論節點(diǎn)作為從冷啟動(dòng)節點(diǎn)的情況。

3.3 活動(dòng)對象建模

如上所述,每個(gè)活動(dòng)對象都是作為一個(gè)相對獨立的任務(wù)來(lái)處理的。量子框架起到了軟件總線(xiàn)的作用,系統的功能擴展、分解、集成比較容易,可以方便地進(jìn)行升級、裁剪。將FlexRay系統按功能模塊分解成3個(gè)活動(dòng)對象,如圖5所示。



3.3.1 通信接口及控制活動(dòng)對象

這個(gè)活動(dòng)對象包括CHI和POC兩個(gè)模塊。CHI是主機和FlexRay內核通信接口。在實(shí)現時(shí)鐘同步過(guò)程中,該模塊主要是接收MTG的內部時(shí)鐘和CSP 發(fā)送的當前接收同步幀的溢出信號,以及向CSP發(fā)送外部頻率/相位修正值。POC是FlexRay內核非常重要的控制模塊,負責協(xié)調節點(diǎn)內各個(gè)功能模塊有效地運行。根據節點(diǎn)時(shí)鐘同步流程,建立有限狀態(tài)模型,如圖6所示。



如圖6所示,節點(diǎn)首先對兩個(gè)模塊進(jìn)行初始化;當接收到主機配置指令后,進(jìn)行內部功能配置;完成后進(jìn)入節點(diǎn)啟動(dòng)狀態(tài),最后轉換到運行狀態(tài)。如果在運行狀態(tài)接收到主機的外部修正值時(shí),則活動(dòng)對象發(fā)送vExternRate—control和vExternOffsetControl兩個(gè)變量到CSP模塊,用于節點(diǎn)內部時(shí)鐘修正。

3.3.2 內部時(shí)鐘控制活動(dòng)對象

此活動(dòng)對象包含CSS、CSP和MTG三個(gè)功能模塊,是時(shí)鐘同步機制的主要組成部分。這里考慮作為從冷啟動(dòng)節點(diǎn)的時(shí)鐘同步過(guò)程,所以采取使用其他主冷啟動(dòng)節點(diǎn)的同步化參數參來(lái)啟動(dòng),調整內部時(shí)鐘,從而實(shí)現系統中各個(gè)節點(diǎn)間的時(shí)鐘同步,如圖7所示。



上電后,活動(dòng)對象處于默認狀態(tài)。當接收到主機集群?jiǎn)?dòng)指令后,進(jìn)入等待啟動(dòng)狀態(tài)并建立CSS實(shí)例和對測量偏差的變量初始化;在接收兩個(gè)啟動(dòng)幀后,節點(diǎn)啟動(dòng)內部時(shí)鐘。當接收到其他冷啟動(dòng)節點(diǎn)的時(shí)鐘信息同步幀后,采集節點(diǎn)間時(shí)間偏差,采用容錯算法計算出頻率和相位的修正值并發(fā)送給MTG模塊,從而完成與主冷啟動(dòng)節點(diǎn)的時(shí)鐘同步。

3.3.3 總線(xiàn)接口控制活動(dòng)對象

此活動(dòng)對象是FlexRay內核與外部總線(xiàn)的接口,完成對發(fā)送數據信息的編碼發(fā)送和對接收數據的解碼及識別?紤]到靜態(tài)段采用TMDA方式進(jìn)行傳輸,且時(shí)鐘同步采用接收數據幀的方式,這里只根據數據幀的接收及解碼過(guò)程建立有限狀態(tài)模型,如圖8所示。



圖8中,活動(dòng)對象在接收到相應信號的空閑標志信號cE Start后,開(kāi)始對數據幀進(jìn)行解碼,依次對數據幀的起始標志和幀頭段進(jìn)行解碼;然后是靜態(tài)段以及周期內其他部分的解碼。通過(guò)檢查數據幀、符號時(shí)序和語(yǔ)法來(lái)判斷當前接收數據的有效性。

3.4 活動(dòng)對象交互

在節點(diǎn)集群?jiǎn)?dòng)過(guò)程中,分解的活動(dòng)對象彼此之間要發(fā)生信息交互,如圖9所示。



節點(diǎn)通過(guò)通信接口控制對象啟動(dòng)內部模塊,并發(fā)出集群?jiǎn)?dòng)的指令(attempt integration),等待接收主冷啟動(dòng)節點(diǎn)發(fā)出的啟動(dòng)幀。首先,總線(xiàn)接口控制對象接收到第一個(gè)有效偶數啟動(dòng)幀(valid even startup frame)后,通知內部時(shí)鐘控制對象集群?jiǎn)?dòng);當接收下一個(gè)有效奇數啟動(dòng)幀(valid odd startup frame),并把當前啟動(dòng)的狀態(tài)信息發(fā)送給其他的兩個(gè)對象,在兩通道完成同步幀的接收后,內部時(shí)鐘模塊調用內部宏單元計算頻率和相位偏差,修正內部時(shí)鐘使之和主冷啟動(dòng)節點(diǎn)同步,從而實(shí)現時(shí)鐘同步,并把結果SyncCalcResult發(fā)送到協(xié)議控制器,后者根據結果來(lái)決定當前節點(diǎn)的工作狀態(tài)。

4 軟件結構

應用量子框架編寫(xiě)應用程序主要有3步:聲明觸發(fā)信號和事件;定義活動(dòng)對象(任務(wù));初始化量子框架并開(kāi)始運行活動(dòng)對象;窘Y構如下:



5 結論

FlexRay是一種支持多種網(wǎng)絡(luò )拓撲結構,高速可靠,尤其適用于汽車(chē)環(huán)境下的總線(xiàn)。其協(xié)議旨在應用于需要高通信帶寬和決定性容錯數據傳輸能力的底盤(pán)控制、車(chē)身和動(dòng)力總成等場(chǎng)合,有很好的發(fā)展前景;而量子框架則提供了基于有限狀態(tài)機的實(shí)現技術(shù),能方便地將狀態(tài)圖轉化成系統的程序代碼。

參考文獻

   1. 劉欣.楊志家 FlexRay 通信控制器收發(fā)功能的研究和實(shí)現 [期刊論文] -微計算機信息2007(17)
   2. 徐小良.汪樂(lè )宇.周泓 有限狀態(tài)機的一種實(shí)現框架 [期刊論文] -工程設計學(xué)報2003(5)
   3. Samek Miro.敬萬(wàn)鈞.陳麗蓉 嵌入式系統的微模塊化程序設計--實(shí)用狀態(tài)圖C/C++實(shí)現 2004
   4. 李佳.田光宇.鈕翔.陳全世 FlexRay 網(wǎng)絡(luò )通信延遲時(shí)間分析 [期刊論文] -清華大學(xué)學(xué)報(自然科學(xué)版)2007(8)
   5. Rausch Mathias FlexRay設計、功能和應用 2006
   6. FlexRay communication system protocol specification.Version2.1 2005

作者:山東大學(xué) 姜文超  張承瑞
來(lái)源:單片機與嵌入式系統應用 2008 (12)
本文地址:http://selenalain.com/thread-11237-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
dddg 發(fā)表于 2010-5-14 11:32:50
mark
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页