一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于有限狀態(tài)機的FlexRay時鐘同步機制

電子設(shè)計 ? 來源:單片機與嵌入式系統(tǒng)應(yīng)用 ? 作者:姜文超;張承瑞 ? 2021-03-31 10:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

1 量子框架

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

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

2 FlexRay時鐘同步機制

2.1 FlexRay內(nèi)部結(jié)構(gòu)

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

基于有限狀態(tài)機的FlexRay時鐘同步機制

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

內(nèi)部時鐘控制層包括時鐘同步啟動模塊(CSS)、時鐘同步處理模塊(CSP)和時鐘發(fā)生器(MTG)。系統(tǒng)中各個節(jié)點的時鐘同步就是主要依靠這個層來實現(xiàn)的。

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

2.2 時鐘周期結(jié)構(gòu)

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

2.3 內(nèi)部時鐘同步機制

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

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

當(dāng)節(jié)點在接收到消息識別碼(ID)和時槽編號相同時,

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

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

2.3.1 頻率修正

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

2.3.2 相位修正

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

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

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

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

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

3.2 對象分析

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

3.3 活動對象建模

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

3.3.1 通信接口及控制活動對象

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

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

3.3.2 內(nèi)部時鐘控制活動對象

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

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

3.3.3 總線接口控制活動對象

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

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

3.4 活動對象交互

在節(jié)點集群啟動過程中,分解的活動對象彼此之間要發(fā)生信息交互,如圖9所示。

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

4 軟件結(jié)構(gòu)

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

5 結(jié)論

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

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19675

    瀏覽量

    317655
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6781

    瀏覽量

    112188
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2960

    瀏覽量

    89778
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    FPGA有限狀態(tài)機

    FPGA有限狀態(tài)機
    發(fā)表于 09-08 08:45

    有限狀態(tài)機有什么類型?

    在實際的應(yīng)用中,根據(jù)有限狀態(tài)機是否使用輸入信號,設(shè)計人員經(jīng)常將其分為Moore型有限狀態(tài)機和Mealy型有限狀態(tài)機兩種類型。
    發(fā)表于 04-06 09:00

    什么是有限狀態(tài)機

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

    有限狀態(tài)機_FSM_的實現(xiàn)

    本文主要介紹了IP模塊的有限狀態(tài)機的實現(xiàn)。
    發(fā)表于 03-22 15:42 ?0次下載

    有限狀態(tài)機FSM在PLD中的實現(xiàn)分析

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

    有限狀態(tài)機的建模與優(yōu)化設(shè)計

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

    VHDL有限狀態(tài)機設(shè)計-ST

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

    初學(xué)者對有限狀態(tài)機(FSM)的設(shè)計的認(rèn)識

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

    如何使用FPGA實現(xiàn)序列檢測有限狀態(tài)機

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

    基于事件驅(qū)動的有限狀態(tài)機介紹

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

    如何以面向?qū)ο蟮乃枷朐O(shè)計有限狀態(tài)機

    有限狀態(tài)機又稱有限狀態(tài)自動機,簡稱狀態(tài)機,是表示有限狀態(tài)以及在這些
    發(fā)表于 02-07 11:23 ?4次下載
    如何以面向?qū)ο蟮乃枷朐O(shè)計<b class='flag-5'>有限狀態(tài)機</b>

    基于事件驅(qū)動的有限狀態(tài)機介紹

    EFSM(event finite state machine,事件驅(qū)動型有限狀態(tài)機),是一個基于事件驅(qū)動的有限狀態(tài)機,主要應(yīng)用于嵌入式設(shè)備的軟件系統(tǒng)中。
    的頭像 發(fā)表于 02-11 10:17 ?1311次閱讀

    一個基于事件驅(qū)動的有限狀態(tài)機

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

    有限狀態(tài)機分割設(shè)計

    有限狀態(tài)機分割設(shè)計,其實質(zhì)就是一個狀態(tài)機分割成多個狀態(tài)機
    的頭像 發(fā)表于 10-09 10:47 ?910次閱讀

    基于有限狀態(tài)機的車身防盜報警的實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于有限狀態(tài)機的車身防盜報警的實現(xiàn).pdf》資料免費下載
    發(fā)表于 10-26 09:48 ?1次下載
    基于<b class='flag-5'>有限狀態(tài)機</b>的車身防盜報警的實現(xiàn)