一種消除網(wǎng)絡(luò)時鐘偏差的數(shù)據(jù)同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于網(wǎng)絡(luò)通信技術(shù),涉及由網(wǎng)絡(luò)時鐘偏差帶來的數(shù)據(jù)同步方法。
【背景技術(shù)】
[0002]在高速網(wǎng)絡(luò)通信中,接收數(shù)據(jù)均使用時鐘恢復(fù)單元的恢復(fù)時鐘進(jìn)行數(shù)據(jù)采樣。雖然整個網(wǎng)絡(luò)的通信速率唯一,但網(wǎng)絡(luò)各數(shù)據(jù)源采用的時鐘存在偏差,接收采樣到的數(shù)據(jù)必須通過數(shù)據(jù)同步方法轉(zhuǎn)化為本地時鐘域的數(shù)據(jù)。
[0003]在數(shù)據(jù)同步時存在跨時鐘域的問題,目前大多采用異步FIFO解決該問題。當(dāng)本地時鐘比恢復(fù)時鐘快時,異步FIFO讀比寫快,不存在數(shù)據(jù)丟棄問題;當(dāng)本地時鐘比恢復(fù)時鐘慢時,異步FIFO讀比寫慢,緩存滿后將出現(xiàn)數(shù)據(jù)丟棄。該數(shù)據(jù)同步方法示意圖見圖1:當(dāng)異步FIFO不空時,通過本地時鐘讀取異步FIFO獲得本地?cái)?shù)據(jù);當(dāng)異步FIFO滿時,將輸入數(shù)據(jù)丟棄。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提出了一種消除網(wǎng)絡(luò)時鐘偏差的數(shù)據(jù)同步方法,能夠消除由網(wǎng)絡(luò)各數(shù)據(jù)源時鐘偏差帶來的跨時鐘域問題,確保網(wǎng)絡(luò)中數(shù)據(jù)可以正確的傳遞。
[0005]本發(fā)明的技術(shù)方案:
[0006]—種消除網(wǎng)絡(luò)時鐘偏差的數(shù)據(jù)同步方法,包括以下步驟:
[0007]I)選擇全局時鐘,從各通道數(shù)據(jù)的恢復(fù)時鐘和晶振產(chǎn)生的本地時鐘中選擇最快的時鐘作為全局時鐘;
[0008]2)數(shù)據(jù)處理
[0009]2.1)為輸入數(shù)據(jù)設(shè)置nl個數(shù)據(jù)寄存器,使用恢復(fù)時鐘采樣輸入數(shù)據(jù),循環(huán)存入nl個數(shù)據(jù)寄存器中;
[0010]為恢復(fù)時鐘的計(jì)數(shù)器設(shè)置n2個計(jì)數(shù)寄存器,將恢復(fù)時鐘計(jì)數(shù)器的值循環(huán)存入n2個計(jì)數(shù)寄存器中;
[0011]其中,nl和n2均大于或等于3、且nl=n2;最好nl和n2均等于3;
[0012]2.2)使用全局時鐘對數(shù)據(jù)寄存器中最早更新的寄存器進(jìn)行采樣,得到本地?cái)?shù)據(jù);
[0013]使用全局時鐘對計(jì)數(shù)寄存器中最早更新的寄存器進(jìn)行采樣;
[0014]2.3)將計(jì)數(shù)寄存器的相鄰兩次采樣值進(jìn)行比較,如果不相同,使能數(shù)據(jù)使能信號將本地?cái)?shù)據(jù)作為有效數(shù)據(jù)保存,否則丟棄本地?cái)?shù)據(jù)。
[0015]其中,步驟I)選擇全局時鐘具體包括以下步驟:
[0016]1.1)對本地時鐘和各個恢復(fù)時鐘的計(jì)數(shù)器進(jìn)行復(fù)位;
[0017]1.2)本地時鐘和各個恢復(fù)時鐘在復(fù)位完成后開始計(jì)數(shù);
[0018]1.3)確定計(jì)時時長,經(jīng)過該計(jì)時時長的時間后,各時鐘計(jì)數(shù)器的計(jì)數(shù)結(jié)果開始不相同;
[0019]1.4)本地時鐘達(dá)到設(shè)定的計(jì)時時長時觸發(fā)時長使能信號,并將本地時鐘計(jì)數(shù)器的計(jì)數(shù)值存入本地寄存器;
[0020]1.5)各個恢復(fù)時鐘采樣時長使能信號,并將恢復(fù)時鐘計(jì)數(shù)器的計(jì)數(shù)值存入恢復(fù)時鐘寄存器;
[0021 ] 1.6)對比本地時鐘寄存器和各個恢復(fù)時鐘寄存器的值,最大的即為全局時鐘。
[0022]步驟1.3)確定的計(jì)時時長是根據(jù)本地時鐘和恢復(fù)時鐘的最小時鐘精度確定的。
[0023]本發(fā)明具有的優(yōu)點(diǎn):
[0024]1.通過時鐘比對的方法獲得最快的全局時鐘,使用該時鐘采樣接收到的數(shù)據(jù),從而消除網(wǎng)絡(luò)中硬件時鐘偏差帶來的跨時鐘域問題;2.使用統(tǒng)一的時鐘進(jìn)行數(shù)據(jù)傳遞,解決數(shù)據(jù)同步問題;3.不需要使用異步FIFO,占用邏輯資源少;4.可以線速的接收數(shù)據(jù),無丟包,
可靠性高。
【附圖說明】
[0025]圖1是米用異步FIFO時的數(shù)據(jù)同步方法不意圖;
[0026]圖2是無跨時鐘域問題的數(shù)據(jù)同步電路結(jié)構(gòu)圖;
[0027]圖3是時鐘選擇電路結(jié)構(gòu)圖;
[0028]圖4是數(shù)據(jù)處理電路結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0029]本發(fā)明提出了一種消除網(wǎng)絡(luò)時鐘偏差的數(shù)據(jù)同步方法,通過分析跨時鐘域問題產(chǎn)生的原因,本發(fā)明設(shè)計(jì)數(shù)據(jù)同步電路,進(jìn)而解決數(shù)據(jù)同步的問題。
[0030]跨時鐘域問題的產(chǎn)生是由于接收數(shù)據(jù)使用的采樣時鐘與數(shù)據(jù)處理時使用的本地時鐘存在偏差,如果采樣時鐘與數(shù)據(jù)處理的時鐘為同一時鐘,則可以從根本上消除跨時鐘域問題。為此,將所有通道的數(shù)據(jù)恢復(fù)時鐘與本地時鐘進(jìn)行比對,獲得最快的全局時鐘。由于該全局時鐘比其他時鐘快,通過它采樣的數(shù)據(jù)不存在遺漏的情況,并且可以保證數(shù)據(jù)的穩(wěn)定傳遞。
[0031]本發(fā)明實(shí)現(xiàn)的數(shù)據(jù)同步方法支持多通道數(shù)據(jù)輸入,無需考慮時鐘相位偏差,不占用存儲資源。電路結(jié)構(gòu)圖見圖2。
[0032]數(shù)據(jù)同步電路分為時鐘選擇電路和數(shù)據(jù)處理電路兩部分。
[0033]時鐘選擇電路:該電路的主要功能是從各通道數(shù)據(jù)的恢復(fù)時鐘和晶振產(chǎn)生的本地時鐘中選擇最快的時鐘作為全局時鐘。電路結(jié)構(gòu)圖見圖3。
[0034]時鐘選擇電路的關(guān)鍵在于鑒別出最快的時鐘。在同樣的時間長度內(nèi),快的時鐘計(jì)數(shù)得到的數(shù)值比慢的時鐘得到的數(shù)值大,選擇計(jì)數(shù)值最大的時鐘即為最快的時鐘。時鐘選擇電路接收各通道數(shù)據(jù)的恢復(fù)時鐘和本地時鐘,分別使用計(jì)數(shù)器進(jìn)行計(jì)時,本地時鐘計(jì)數(shù)器在計(jì)時結(jié)束時使能時長使能信號并將計(jì)數(shù)值存入寄存器中,各通道的恢復(fù)時鐘采樣時長使能信號后生成各自的使能信號,通過使能信號將計(jì)數(shù)值存入各自寄存器中。最后,通過比較信號使能比較器選擇計(jì)數(shù)值最大的時鐘作為全局時鐘。
[0035]選擇最快時鐘的方法為所有時鐘通過各自的計(jì)數(shù)器進(jìn)行計(jì)數(shù),在同樣的時間內(nèi)計(jì)數(shù)值最大的時鐘即為最快時鐘。基準(zhǔn)時鐘F通過計(jì)數(shù)器計(jì)數(shù)N后,使能時長使能信號,各恢復(fù)時鐘采樣時長使能信號后生產(chǎn)各自的使能信號,通過使能信號將計(jì)數(shù)值存入寄存器。通過比較器選擇各數(shù)據(jù)通道時鐘和本地時鐘計(jì)數(shù)值最大的時鐘即為最快的時鐘。
[0036]該方法需要能鑒別時鐘精度最小的兩個時鐘F和K,同時要考慮時鐘之間相位的差異。為此,通過計(jì)數(shù)器計(jì)數(shù)N后累計(jì)的時鐘差異值應(yīng)該大于2個時鐘長度,這樣可以保證在計(jì)數(shù)結(jié)束后,選擇兩個時鐘F和K的計(jì)數(shù)值N和V中大的數(shù)值的時鐘即為快的時鐘。
[0037]計(jì)數(shù)器的最小計(jì)數(shù)值N、兩個時鐘頻率F、K之間的關(guān)系應(yīng)該為:
[0038]N.(1/F-1/F7)> 2/F
[0039]最小時鐘精度Δ的計(jì)算公式為:
[0040]Δ = (F7 -F)/F.106(單位為ppm)
[0041 ]經(jīng)過計(jì)算,最小計(jì)數(shù)值N應(yīng)該為:
[0042]Ν>2.(1+106/Δ )(N取整數(shù)的最小值)。
[0043]通過該公式可以看出,計(jì)數(shù)值N的取值僅與時鐘精度△有關(guān),當(dāng)時鐘精度△為Ippm時,N的取值應(yīng)該大于等于2000002。
[0044]在本電路中,本地時鐘的計(jì)數(shù)器L、恢復(fù)時鐘1、2...η的計(jì)數(shù)器1、2...η在復(fù)位后同時開始計(jì)數(shù),當(dāng)計(jì)數(shù)器L計(jì)數(shù)值為N時,使能時長使能信號?;謴?fù)時鐘1、2...η采樣時長使能信號后生成使能信號1、2...η,將計(jì)數(shù)值存入寄存器1、2...η中。比較信號觸發(fā)比較器對寄存器L、寄存器1、2...η進(jìn)行比較,選擇出計(jì)數(shù)值最大的寄存器對應(yīng)的時鐘即為全局時鐘。
[0045]數(shù)據(jù)處理電路:該電路的主要功能是使用全局時鐘采樣各通道的數(shù)據(jù),將有效數(shù)據(jù)進(jìn)行傳遞。當(dāng)數(shù)據(jù)寄存器的數(shù)量nl和計(jì)數(shù)寄存器的數(shù)量η2均為3時,電路結(jié)構(gòu)圖見圖4。
[0046]全局時鐘是最快的時鐘,在采樣各通道的數(shù)據(jù)時,會對慢的通道的同一數(shù)據(jù)進(jìn)行重復(fù)采樣,需要剔除采樣到的重復(fù)數(shù)據(jù)。
[0047]在本電路中,以通道I為例,輸入數(shù)據(jù)I依次存入數(shù)據(jù)寄存器1Α、IB和IC中,全局時鐘采樣其中最早的數(shù)據(jù)后得到本地?cái)?shù)據(jù),該數(shù)據(jù)包含采樣到的重復(fù)數(shù)據(jù)?;謴?fù)時鐘I的計(jì)數(shù)器I將計(jì)數(shù)值依次存入計(jì)數(shù)寄存器1Α、IB和IC中,全局時鐘對其中最早的計(jì)數(shù)寄存器進(jìn)行第一次采樣,將第一次采樣值通過觸發(fā)器延遲I個全局時鐘周期,同時全局時鐘對計(jì)數(shù)寄存器1Α、1Β和IC中最早的計(jì)數(shù)寄存器進(jìn)行第二次采樣,將第一次采樣值和第二次采樣值通過比較器進(jìn)行比較,相同則數(shù)據(jù)使能信號為O,否則為I。通過過濾器將本地?cái)?shù)據(jù)進(jìn)行過濾,將數(shù)據(jù)使能信號I為O時的數(shù)據(jù)進(jìn)行丟棄,最終留下的數(shù)據(jù)就是通道I的有效數(shù)據(jù)I。
[0048]數(shù)據(jù)處理電路的關(guān)鍵在于剔除采樣到的重復(fù)數(shù)據(jù)。全局時鐘是最快的時鐘,在采樣各通道的數(shù)據(jù)時,會對慢的通道的同一數(shù)據(jù)進(jìn)行重復(fù)采樣。為了剔除采樣到的重復(fù)數(shù)據(jù),使用全局時鐘采樣恢復(fù)時鐘的計(jì)數(shù)器,將兩次采樣值通過比較器比較后得到數(shù)據(jù)使能信號,根據(jù)數(shù)據(jù)使能信號對采樣到的本地?cái)?shù)據(jù)進(jìn)行過濾,留下的數(shù)據(jù)就是最終的有效數(shù)據(jù)。
[0049]為消除計(jì)數(shù)器和數(shù)據(jù)抖動對全局時鐘采樣的影響,為每個計(jì)數(shù)器和數(shù)據(jù)設(shè)置3個循環(huán)寄存器Α、Β和C。計(jì)數(shù)器和數(shù)據(jù)使用最新的數(shù)值依次替換A、B、C中的數(shù)值,全局時鐘每次僅采樣A、B、C中數(shù)值最早的寄存器。
【主權(quán)項(xiàng)】
1.一種消除網(wǎng)絡(luò)時鐘偏差的數(shù)據(jù)同步方法,其特征在于,包括以下步驟: 1)選擇全局時鐘,從各通道數(shù)據(jù)的恢復(fù)時鐘和晶振產(chǎn)生的本地時鐘中選擇最快的時鐘作為全局時鐘; 2)數(shù)據(jù)處理 2.1)為輸入數(shù)據(jù)設(shè)置nl個數(shù)據(jù)寄存器,使用恢復(fù)時鐘采樣輸入數(shù)據(jù),循環(huán)存入nl個數(shù)據(jù)寄存器中; 為恢復(fù)時鐘的計(jì)數(shù)器設(shè)置n2個計(jì)數(shù)寄存器,將恢復(fù)時鐘計(jì)數(shù)器的值循環(huán)存入n2個計(jì)數(shù)寄存器中; 其中,nl和n2均大于或等于3、且nl=n2; 2.2)使用全局時鐘對數(shù)據(jù)寄存器中最早更新的寄存器進(jìn)行采樣,得到本地?cái)?shù)據(jù); 使用全局時鐘對計(jì)數(shù)寄存器中最早更新的寄存器進(jìn)行采樣; 2.3)將計(jì)數(shù)寄存器的相鄰兩次采樣值進(jìn)行比較,如果不相同,使能數(shù)據(jù)使能信號將本地?cái)?shù)據(jù)作為有效數(shù)據(jù)保存,否則丟棄本地?cái)?shù)據(jù)。2.根據(jù)權(quán)利要求1所述的消除網(wǎng)絡(luò)時鐘偏差的數(shù)據(jù)同步方法,其特征在于,步驟I)選擇全局時鐘具體包括以下步驟: 1.1)對本地時鐘和各個恢復(fù)時鐘的計(jì)數(shù)器進(jìn)行復(fù)位; 1.2)本地時鐘和各個恢復(fù)時鐘在復(fù)位完成后開始計(jì)數(shù); 1.3)確定計(jì)時時長,經(jīng)過該計(jì)時時長的時間后,各時鐘計(jì)數(shù)器的計(jì)數(shù)結(jié)果開始不相同; 1.4)本地時鐘達(dá)到設(shè)定的計(jì)時時長時觸發(fā)時長使能信號,并將本地時鐘計(jì)數(shù)器的計(jì)數(shù)值存入本地寄存器; 1.5)各個恢復(fù)時鐘采樣時長使能信號,并將恢復(fù)時鐘計(jì)數(shù)器的計(jì)數(shù)值存入恢復(fù)時鐘寄存器; 1.6)對比本地時鐘寄存器和各個恢復(fù)時鐘寄存器的值,最大的即為全局時鐘。3.根據(jù)權(quán)利要求2所述的消除網(wǎng)絡(luò)時鐘偏差的數(shù)據(jù)同步方法,其特征在于,步驟1.2)中的nl和n2均等于3。4.根據(jù)權(quán)利要求1或2或3所述的消除網(wǎng)絡(luò)時鐘偏差的數(shù)據(jù)同步方法,其特征在于,步驟.1.3)確定的計(jì)時時長是根據(jù)本地時鐘和恢復(fù)時鐘的最小時鐘精度確定的。
【專利摘要】本發(fā)明屬于網(wǎng)絡(luò)通信技術(shù),涉及由網(wǎng)絡(luò)時鐘偏差帶來的數(shù)據(jù)同步方法。本發(fā)明提出一種消除網(wǎng)絡(luò)時鐘偏差的數(shù)據(jù)同步方法,通過分析跨時鐘域問題產(chǎn)生的原因,設(shè)計(jì)數(shù)據(jù)同步電路,該數(shù)據(jù)同步電路由時鐘選擇電路和數(shù)據(jù)處理電路組成,通過時鐘比對的方法獲得最快的全局時鐘,使用該時鐘采樣接收到的數(shù)據(jù)。本發(fā)明消除了由網(wǎng)絡(luò)各數(shù)據(jù)源時鐘偏差帶來的跨時鐘域問題,確保網(wǎng)絡(luò)中數(shù)據(jù)可以正確的傳遞,解決了網(wǎng)絡(luò)中硬件時鐘偏差帶來的跨時鐘域問題,使用統(tǒng)一的時鐘進(jìn)行數(shù)據(jù)傳遞,不需要使用異步FIFO,占用邏輯資源少,可以線速的接收數(shù)據(jù),無丟包,可靠性高。
【IPC分類】H04L7/00, H04L29/08
【公開號】CN105515752
【申請?zhí)枴緾N201510888968
【發(fā)明人】楊可, 王紅春, 朱志強(qiáng), 鄧發(fā)俊, 雷宇宏
【申請人】中國航空工業(yè)集團(tuán)公司西安航空計(jì)算技術(shù)研究所
【公開日】2016年4月20日
【申請日】2015年12月7日