實施例一的有益效果在于:
[0057]區(qū)別于現(xiàn)有技術,本發(fā)明采用了一種快速的硬件時鐘同步算法,對存儲要求低,速度快,易于集成,可以在中低端FPGA芯片中實現(xiàn),也可集成到專用的FlexRay通信控制器芯片中。
[0058]對應地,本發(fā)明實施例二提供一種同步FlexRay時鐘的系統(tǒng),包括:
[0059]存儲器,用于存儲FlexRay時鐘的偏差數(shù)據(jù);
[0060]時鐘同步進程模塊,用于讀取所述偏差數(shù)據(jù),并計算校正值;
[0061]宏時隙產(chǎn)生邏輯電路,用于根據(jù)所述校正值,對FlexRay時鐘進行校正。
[0062]其中,所述時鐘同步進程模塊包括偏差測量邏輯電路、偏差存儲電路及校正值計算電路;宏時隙產(chǎn)生邏輯電路包括宏時隙計數(shù)器及宏時隙長度校正邏輯電路。
[0063]為方便理解本發(fā)明所述技術方案,以下結合附圖1?5,通過一個具體的實施例進行說明。
[0064]本發(fā)明所要解決的技術問題在于實現(xiàn)FexRay協(xié)議所規(guī)定的時鐘同步功能。本發(fā)明采用以下技術方案解決上述技術問題:
[0065 ]本FI exRay時鐘同步的實現(xiàn)方法,該方法包括5個步驟:
[0066]I)實現(xiàn)方法的如圖2所示,系統(tǒng)由時鐘同步進程(CSP,Clock Synchronizat1nProcess)和宏時隙產(chǎn)生(MTG,Macrotick Generat1n)邏輯以及存儲器組成;
[0067]2)偏差測量邏輯如圖3所示,利用由微時隙(uhMicrotick)時基計數(shù)器產(chǎn)生基本時鐘信號,接收FI e xRay的介質訪問控制(MAC ,Media Access Con tr ο I)模塊的活動點(act1n point)信號并記錄時間點,并估計主時間參考點(I st TRP , primary timereference point),然后計算同步幀時間偏差,送往偏差存儲電路
[0068]3)偏差存儲電路接收偏差測量邏輯送來的同步幀偏差數(shù)據(jù),將其存入存儲器,在FI exRay的校正值計算時,從存儲器讀出偏差數(shù)據(jù),送入校正值計算電路;
[0069]4)校正值計算如圖4所示,校正值計算由偏移校正值計算和速率校正值計算組成,從偏差存儲電路讀出偏差數(shù)據(jù)后,送入本發(fā)明的快速容錯中值算法模塊進行校正值的計算,并將校正值送往MTG邏輯進行時鐘校正.
[0070]5)MTG邏輯如圖5所示,校正電路接收校正值計算電路送來的校正值,校正宏時隙(MT)的長度,并控制宏時隙計數(shù),從而實現(xiàn)相位偏移校正和速率校正,使本地時鐘與FI e xRay總線時鐘同步。
[0071]本發(fā)明的優(yōu)點在于:提出了一種在可以實現(xiàn)FlexRay時鐘同步方法,且該方法具有所需資源少,同步運算速度快,易于集成的優(yōu)點。
[0072]本發(fā)明可以在專用集成電路或FPGA中實現(xiàn)的FlexRay時鐘同步的實現(xiàn)方法,在該方法中,首先在FlexRay協(xié)議所定義的偏差測量相位由偏差測量模塊測量并計算出同步幀的偏差值,并將其存入專用的偏差存儲器,在校正值計算時,校正值計算邏輯采用本發(fā)明中的快速容錯中值算法計算出偏移校正和速率校正所需的校正值,最后有宏時隙產(chǎn)生(MTG)邏輯依據(jù)計算的校正值對FlexRay幀偏移位置和速率進行校正,從而使本地時鐘與FlexRay總線時鐘同步。
[0073]圖2是本發(fā)明FlexRay時鐘同步的系統(tǒng)框圖,其中詳細展示了FlexRay時鐘同步實現(xiàn)方法的三個部分及其關系。
[0074]第一個部分為同步幀偏差存儲器,可由普通隨機訪問存儲器構成,在FPGA上實現(xiàn)時,可以由FPGA的嵌入式存儲器實現(xiàn)。第二部分為協(xié)議所規(guī)定的時鐘同步進程(CSP)實現(xiàn)方法,由偏差測量邏輯,偏差存儲電路,和校正值計算組成。第三部分為宏時隙產(chǎn)生(MTG)邏輯,用于實現(xiàn)協(xié)議所規(guī)定的要求實時更新宏時隙MT長度,從而實現(xiàn)幀起始偏移位置和幀長度的調整,完成偏移校正與速率校正。
[0075]圖3是本發(fā)明的時鐘偏差測量框圖,其詳細展示了FlexRay同步幀的時鐘偏差測量方法,即:
[0076]uT時脈沖由晶振分頻產(chǎn)生,32位uT時基對uT脈沖進行計數(shù),每個FlexRay的調度周期開始時對uT時基清零,當FlexRay的總線解碼器檢測到活動點(act1n point)時,act1npoint捕獲模塊立即記錄uT時基計數(shù)值,得到對應的時間戳tact1n point,作為認定的應該的同步幀發(fā)送方發(fā)送的起始位置。FlexRay解碼模塊接收到同步幀時,輸出第二時間參考點(2nd TRP)信號,2nd TRP捕獲模塊便記錄這時的uT時基計數(shù)為t2nd TRP并送入1st TRP估計模塊,再加上傳輸延時補償(即圖3中的偏移補償參數(shù))后,得到tlst TRP。這個即接收節(jié)點認為的發(fā)送節(jié)點的發(fā)送時間,兩者相減得到偏差deviat1n,即有deviat1n = tlstTRP-tact1n point為兩個節(jié)點對時鐘的認知差別。然后經(jīng)寫入控制模塊按順序寫入存儲器。
[0077]圖4是本發(fā)明的校正值計算邏輯框圖,其詳細展示了校正值計算的實現(xiàn)方法,即:
[0078]校正值計算由偏移校正值計算,速率校正值計構成。校正值計算采用了一種快速容錯中值算法如圖5所示,偏移校正和速率校正實現(xiàn)方法如下:
[0079]I)偏移校正
[0080]由讀出控制邏輯將偏差值從存儲器中讀出,送往本發(fā)明中的容錯中值算法實現(xiàn)模塊進行偏移校正值計算,容錯中值實現(xiàn)方法如圖5所示。
[0081]圖5為本發(fā)明的快速容錯中值算法實現(xiàn)框圖,其詳細展示了一種快速的容錯中值算法的實現(xiàn)方法,即:
[0082]容錯中值實現(xiàn)方法模塊分成3個子模塊,即高位數(shù)據(jù)存儲模塊、低位數(shù)據(jù)存儲模塊以及中值運算模塊。高位數(shù)據(jù)存儲模塊由高位寄存器組、數(shù)據(jù)插入模塊以及數(shù)據(jù)比較器組成。高位寄存器組由H2、H1和HO三個寄存器構成,其中的數(shù)據(jù)按非遞增排序,每次運算前三個寄存器清零。當有數(shù)據(jù)輸入時,比較器首先將輸入數(shù)據(jù)deviat1n與Hl比較:(I)當deviat1n > Hl時,將deviat1n與H2比較,如果deviat1n > H2,數(shù)據(jù)插入邏輯將高位寄存器中的數(shù)據(jù)整體往下移,deviat1n存入H2,否則,數(shù)據(jù)插入邏輯將原來Hl下移到HO,deviat1n取代Hl ; (2)當deviat1n〈Hl時,將deviat1n與HO比較,如果deviat1n > HO,數(shù)據(jù)插入邏輯將deviat1n取代HO,否則,不做處理。
[0083]類似的,低位寄存器組由L2,L1,L0三個寄存器構成,其中的數(shù)據(jù)按非遞減排序,每次運算前,三個寄存器清零。當有數(shù)據(jù)輸入時,比較器首先將輸入數(shù)據(jù)deviat1n與LI比較:(I)當deviat1n < LI時,將deviat1n與LO比較,如果deviat1n < L0,數(shù)據(jù)插入邏輯將低位寄存器中的數(shù)據(jù)整體往上移,deviat1n存入LO,否則,數(shù)據(jù)插入邏輯將原來LI上移到L2,deviat1n取代LI ; (2)當deviat1n>Ll時,將deviat1n與L2比較,如果deviat1n < L2,數(shù)據(jù)插入邏輯將deviat1n取代L2,否則,不做處理。
[0084]當數(shù)據(jù)輸入完畢,將高位寄存器組中的HO與低位寄存器組中的L2送入中值算法模塊,在中值算法模塊中,這兩個值首先進行加運算,然后取平均值即得到濾波校正結果。此算法中,不需存儲所有數(shù)據(jù),高位寄存器組合低位寄存器組只要存3個最高和3個最低的數(shù)據(jù),在做數(shù)據(jù)比較時,高位存儲和低位存儲都只需比較兩次,不需一次性整體排序。
[0085]如果有η個數(shù)據(jù)需要排序,則需比較次數(shù)為η(η-1)/2,采用本算法,無論是高位還是低位,每個數(shù)據(jù)輸入只需比較2次,由于高位和低位比較可并發(fā)運行,故一共只需2η次即可,大大提高了運算速度。
[0086]2)速率校正
[0087]由讀出控制邏輯將偏差值從存儲器中讀出,首先將奇數(shù)同步幀的偏差值與偶數(shù)同步幀的偏差值相減,得到的差再送往本發(fā)明中的容錯中值算法實現(xiàn)模塊進行速率校正值計算,剩余步驟與I)中的容錯中值算法相同,此處不再贅述。
[0088]圖6是本發(fā)明的宏時隙產(chǎn)生邏輯實現(xiàn)框圖。其詳