同步FlexRay時鐘的方法及系統的制作方法
【技術領域】
[0001]本發明涉及信息應用技術領域,尤其是涉及一種同步FlexRay時鐘的方法及系統。
【背景技術】
[0002]隨著車輛技術的發和人們對車輛安全性,可操控性,和舒適性要求的越來越高,車輛中加入了越來越多的車載電子控制單元,使得車輛總線的數據傳輸量激增,同時由于控制精度要求越來越高,對車輛總線數據傳輸的時序要求也越來越苛刻,原有的CAN總線逐漸不能滿足要求。
[0003]新一代車載通信網絡FlexRay具備通信容量大,能確定性傳輸,可靠性高,容錯能力強等優點,從而得到廣泛支持,并于2010年被納入國際標準,成為IS010681。目前,FlexRay正處在快速成長推廣期間,汽車產業鏈的各大生產廠家正圍繞FlexRay進行了大量研究,FlexRay相對于原有車載網絡CAN總線的重要性能之一是FlexRay能夠提供一個高精度的同步時鐘,使得車輛各功能模塊精確協作,這依賴于FlexRay的時鐘同步功能及時將節點本地時鐘同步到網絡時鐘。
[0004]但目前FlexRay時鐘同步的實現成本較高、占用資源大,且運算速度慢,不易集成到目前的車載通信網絡FlexRay協議中,應用局限性大。
【發明內容】
[0005]本發明所要解決的技術問題是:提供一種快速的硬件時鐘同步算法,對存儲要求低,速度快,易于集成,可以在中低端FPGA芯片中實現,也可集成到專用的FlexRay通信控制器芯片中。
[0006]為了解決上述技術問題,本發明采用的技術方案為:提供一種同步FlexRay時鐘的方法,包括:
[0007]測量FlexRay時鐘的偏差數據,并存儲;
[0008]讀取所述偏差數據,并計算校正值;
[0009]根據所述校正值,對FlexRay時鐘進行校正。
[0010]為解決上述問題,本發明還提供一種同步FlexRay時鐘的系統,包括:
[0011 ]存儲器,用于存儲FlexRay時鐘的偏差數據;
[0012]時鐘同步進程模塊,用于讀取所述偏差數據,并計算校正值;
[0013]宏時隙產生邏輯電路,用于根據所述校正值,對FlexRay時鐘進行校正。
[0014]本發明的有益效果在于:區別于現有技術,本發明通過測量并存儲FlexRay時鐘的偏差數據并計算校正值后,對FlexRay時鐘進行校正。通過上述方式,本發明的硬件時鐘同步算法簡單易操作、對存儲要求低,速度快,易于集成,可以在中低端FPGA芯片中實現,也可集成到專用的FlexRay通信控制器芯片中。
【附圖說明】
[0015]圖1為本發明方法實施例一的流程示意圖;
[0016]圖2為本發明具體實施例中的系統框圖;
[0017]圖3為本發明具體實施例中的偏差測量框圖;
[0018]圖4為本發明具體實施例中的校正值計算邏輯框圖;
[0019]圖5為本發明具體實施例中的快速容錯中值算法實現框圖;
[0020]圖6為本發明具體實施例中的宏時隙產生邏輯實現框圖。
【具體實施方式】
[0021]為詳細說明本發明的技術內容、所實現目的及效果,以下結合實施方式并配合附圖予以說明。
[0022]本發明最關鍵的構思在于:通過計算FlexRay時鐘的偏差數據的校正,實現對FI exRay時鐘的校正。
[0023]請參照圖1,本發明實施例一提供一種同步FlexRay時鐘的方法,包括:
[0024]S1:測量FlexRay時鐘的偏差數據,并存儲;
[0025]S2:讀取所述偏差數據,并計算校正值;
[0026]S3:根據所述校正值,對FlexRay時鐘進行校正。
[0027]其中,步驟SI具體為:
[0028]微時隙時基計數器產生基本時鐘信號,接收介質訪問控制模塊的活動點信號,并記錄時間點;
[0029]估計主時間參考點,并計算同步幀時間偏差,獲得FlexRay時鐘的偏差數據;
[0030]偏差測量邏輯模塊發送所述偏差數據到偏差存儲電路;
[0031 ]偏差存儲電路接收所述偏差數據,并存入存儲器中。
[0032]在存儲后,步驟S2具體為:
[0033]從存儲器中讀取所述偏差數據,發送至校正值計算電路;
[0034]校正值計算電路采用快速容錯中值算法進行偏移校正值計算和速率校正值計算,獲得校正值。
[0035]在獲得校正值后,步驟S3具體為:
[0036]校正值計算電路發送校正值到校正電路中;
[0037]校正電路校正宏時隙的長度,并控制宏時隙計數,使本地時鐘與FlexRay總線時鐘同步。
[0038]例如,首先晶振分頻產生uT脈沖32位uT時基對uT脈沖進行計數,并在FlexRay的調度周期開始時,對uT時基清零,當FlexRay總線MAC檢測到活動點時,活動點捕獲模塊記錄32位uT時基計數值,得到對應的時間戳,作為同步幀發送方發送的起始時間;
[0039]FlexRay解碼模塊接收到所述同步幀時,輸出第二時間參考點信號,第二時間參考點信號捕獲模塊記錄這時的uT時基計數,并送入主時間參考點估計模塊,并通過傳輸延時補償后,得到發送節點的發送時間;
[0040]發送節點的發送時間扣除同步幀發送方發送的起始時間,獲得偏差數據;
[0041]發送所述偏差數據到偏差存儲電路的寫入控制邏輯電路,并寫入存儲器。
[0042]然后,偏差存儲電路的讀出控制邏輯電路從存儲器中讀出所述偏差數據,并發送至校正值計算電路中;其中:
[0043]在偏移校正中,所述校正值計算電路包括容錯中值實現模塊,容錯中值實現模塊包括高位數據存儲模塊、低位數據存儲模塊以及中值運算模塊;
[0044]高位數據存儲模塊由高位寄存器組、數據插入模塊以及數據比較器組成;高位寄存器組包括高位高值、高位中值和高位低值三個寄存器,其中的數據按非遞增排序,每次運算前三個寄存器清零;
[0045]當有偏差數據輸入時,數據比較器將偏差數據與高位中值比較,具體地:
[0046]當偏差數據2高位中值時,將偏差數據與高位高值比較,如果偏差數據2高位高值,則數據插入模塊將高位寄存器中的數據整體下移,偏差數據存入高位高值;否則,數據插入模塊將高位中值下移到高位低值,偏差數據取代高位中值;
[0047]當偏差數據〈高位中值時,將偏差數據與高位低值比較,如果偏差數據I高位低值,則數據插入模塊將偏差數據取代高位低值,否則,不做處理;
[0048]低位數據存儲模塊由低位寄存器組、數據插入模塊以及數據比較器組成;低位寄存器組包括低位高值,低位中值,低位低值三個寄存器,其中的數據按非遞減排序,每次運算前三個寄存器清零;
[0049]當有偏差數據輸入時,數據比較器將偏差數據與低位中值比較,具體地:
[0050]當偏差數據< 低位中值時,將偏差數據與低位低值比較,如果偏差數據 < 低位低值,則數據插入模塊將低位寄存器中的數據整體上移,偏差數據存入低位低值;否則,數據插入模塊將低位中值上移到低位高值,偏差數據取代低位中值;
[0051]當偏差數據〉低位中值時,將偏差數據與低位高值比較,如果偏差數據< 低位高值,則數據插入模塊將偏差數據取代低位高值,否則,不做處理;
[0052]當偏差數據輸入完畢后,中值運算模塊將高位寄存器組中的高位低值與低位寄存器組中的低位高值進行加運算,然后取平均值,即得到校正值;
[0053]在速率校正中,將奇數同步幀的偏差值與偶數同步幀的偏差值相減,得到的差作為偏差數據,在輸入到數據比較器中進行比較。
[0054]其中,應當理解的是,在對FlexRay時鐘進行校正之前,需要設定校正相位時間、每個通信周期的初始uT脈沖數、每個通信周期的宏時隙數;并在通信周期開始時,uT計數器和宏時隙計數器清零。
[0055]最后,對FlexRay時鐘進行校正中,在通信周期內,校正時鐘相位及非時鐘相位。
[0056]本發明