精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于有限狀態機的FlexRay時鐘同步機制

電子設計 ? 來源:單片機與嵌入式系統應用 ? 作者:姜文超;張承瑞 ? 2021-03-31 10:22 ? 次閱讀

隨著車內網絡的復雜化對速度,尤其是對故障容錯與實時性的需求不斷增加,FlexRay總線的高速度、確定性、容錯性等特點引起廣大學者和廠商的關注。 FlexRay支持分布式控制系統,具有全面協同工作的能力,其信息傳輸的確定性離不開其內部的時鐘同步機制的支持。時鐘同步機制可根據該節點啟動的不同工作階段,定義成不同的工作狀態,如初始化、等待接收同步幀等。考慮到傳統的FSM方法建立模型存在代碼難以復用、維護困難等問題,本文基于量子框架的角度,采用有限狀態機的方法對FlexRay時鐘同步機制進行研究。

1 量子框架

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

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

2 FlexRay時鐘同步機制

2.1 FlexRay內部結構

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

基于有限狀態機的FlexRay時鐘同步機制

通信接口及控制層主要包括控制主機接口(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
收藏 人收藏

    評論

    相關推薦

    FPGA有限狀態機

    FPGA有限狀態機
    發表于 09-08 08:45

    有限狀態機有什么類型?

    在實際的應用中,根據有限狀態機是否使用輸入信號,設計人員經常將其分為Moore型有限狀態機和Mealy型有限狀態機兩種類型。
    發表于 04-06 09:00

    什么是有限狀態機

    在嵌入式,機器人領域,由于多的復雜邏輯狀態,我們編寫程序的時候不得不考慮很多種情況,容易造成功能間的沖突。有限狀態機(finite-state machine),簡稱狀態機,是一種表示有限
    發表于 12-20 06:51

    有限狀態機_FSM_的實現

    本文主要介紹了IP模塊的有限狀態機的實現。
    發表于 03-22 15:42 ?0次下載

    有限狀態機FSM在PLD中的實現分析

    本文通過舉例 利用VHDL 語言描述了不同模式的有限狀態機 分析了有限狀態機在 PLD 中綜合的特點 。
    發表于 03-22 15:41 ?3次下載

    有限狀態機的建模與優化設計

    本文提出一種優秀 、高效的 Verilog HDL 描述方式來進行有限狀態機設計 介紹了 有限狀態機的建模原則 并通過一個可綜合的實例 驗證了 該方法設計的有限狀態機在面積和功耗上的優勢。
    發表于 03-22 15:19 ?1次下載

    VHDL有限狀態機設計-ST

    EDA的有限狀態機,廣義而言是指只要涉及觸發器的電路,無論電路大小都可以歸結為狀態機有限狀態機設計在學習EDA時是很重要的一章。
    發表于 06-08 16:46 ?3次下載

    初學者對有限狀態機(FSM)的設計的認識

    有限狀態機(FSM)是一種常見的電路,由時序電路和組合電路組成。設計有限狀態機的第一步是確定采用Moore狀態機還是采用Mealy狀態機
    發表于 02-11 13:51 ?4274次閱讀
    初學者對<b class='flag-5'>有限狀態機</b>(FSM)的設計的認識

    如何使用FPGA實現序列檢測有限狀態機

    有限狀態機是絕大部分控制電路的核心結構, 是表示有限狀態以及在這些狀態之間轉移和動作等行為的數學模型。有限狀態機是指輸出取決于過去輸入部分
    發表于 11-04 17:17 ?12次下載
    如何使用FPGA實現序列檢測<b class='flag-5'>有限狀態機</b>

    基于事件驅動的有限狀態機介紹

    ? 一、介紹 EFSM(event finite state machine,事件驅動型有限狀態機),是一個基于事件驅動的有限狀態機,主要應用于嵌入式設備的軟件系統中。 EFSM的設計原則是:簡單
    的頭像 發表于 11-16 15:29 ?2324次閱讀

    如何以面向對象的思想設計有限狀態機

    有限狀態機又稱有限狀態自動機,簡稱狀態機,是表示有限狀態以及在這些
    發表于 02-07 11:23 ?4次下載
    如何以面向對象的思想設計<b class='flag-5'>有限狀態機</b>

    基于事件驅動的有限狀態機介紹

    EFSM(event finite state machine,事件驅動型有限狀態機),是一個基于事件驅動的有限狀態機,主要應用于嵌入式設備的軟件系統中。
    的頭像 發表于 02-11 10:17 ?1023次閱讀

    一個基于事件驅動的有限狀態機

    EFSM(event finite state machine,事件驅動型有限狀態機),是一個基于事件驅動的有限狀態機,主要應用于嵌入式設備的軟件系統中。 EFSM的設計原則是:簡單!EFSM的使用者只需要關心:
    的頭像 發表于 08-30 09:28 ?821次閱讀
    一個基于事件驅動的<b class='flag-5'>有限狀態機</b>

    有限狀態機分割設計

    有限狀態機分割設計,其實質就是一個狀態機分割成多個狀態機
    的頭像 發表于 10-09 10:47 ?615次閱讀

    基于有限狀態機的車身防盜報警的實現

    電子發燒友網站提供《基于有限狀態機的車身防盜報警的實現.pdf》資料免費下載
    發表于 10-26 09:48 ?0次下載
    基于<b class='flag-5'>有限狀態機</b>的車身防盜報警的實現