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