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