基于fpga的時(shí)間間隔精密測(cè)量方法和系統(tǒng)
技術(shù)領(lǐng)域
1.本技術(shù)涉及時(shí)間間隔測(cè)量技術(shù)領(lǐng)域,特別是涉及一種基于fpga的時(shí)間間隔精密測(cè)量方法和系統(tǒng)。
背景技術(shù):2.高精度的時(shí)間間隔測(cè)量技術(shù)廣泛應(yīng)用于衛(wèi)星導(dǎo)航、雷達(dá)定位、激光測(cè)距、核物理探測(cè)和時(shí)頻測(cè)量等領(lǐng)域。時(shí)間間隔測(cè)量技術(shù)一般是用來測(cè)量?jī)蓚€(gè)或多個(gè)物理事件相繼發(fā)生的時(shí)間間隔,同時(shí)把測(cè)量得到的時(shí)間間隔轉(zhuǎn)換成相應(yīng)的數(shù)字,因此這種技術(shù)也被稱為時(shí)間數(shù)字轉(zhuǎn)換技術(shù)(timetodigitalconversion,tdc)。
3.由于單條延時(shí)鏈精度不足,并且fpga內(nèi)部延時(shí)電路的和邏輯布局布線的差異性,每條延時(shí)鏈的特性都有所不同,因此采用單條延時(shí)鏈的測(cè)量方法,或者采用多條延時(shí)鏈取平均的算法,其測(cè)量精度都不能滿足測(cè)量精度的需求。
技術(shù)實(shí)現(xiàn)要素:4.基于此,有必要針對(duì)上述技術(shù)問題,提供一種基于fpga的時(shí)間間隔精密測(cè)量方法和系統(tǒng)。
5.一種基于fpga的時(shí)間間隔精密測(cè)量方法,所述方法包括:
6.采用并聯(lián)的多個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊對(duì)預(yù)設(shè)的同源輸入信號(hào)進(jìn)行測(cè)量,得到每條延時(shí)鏈的測(cè)量結(jié)果;每條延時(shí)鏈的測(cè)量結(jié)果包括的數(shù)據(jù)量的數(shù)量相同。
7.根據(jù)每條延時(shí)鏈的測(cè)量結(jié)果計(jì)算每條延時(shí)鏈的標(biāo)準(zhǔn)差。
8.根據(jù)所有條延時(shí)鏈的標(biāo)準(zhǔn)差,確定每條延時(shí)鏈的權(quán)值;所有延時(shí)鏈的權(quán)值之和為1。
9.將待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)采用多個(gè)所述基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊進(jìn)行測(cè)量,得到多條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果。
10.根據(jù)多條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果和對(duì)應(yīng)的延時(shí)鏈權(quán)值進(jìn)行加權(quán)求和,得到時(shí)間間隔測(cè)量結(jié)果。
11.在其中一個(gè)實(shí)施例中,所有延時(shí)鏈的權(quán)值之和為1。
12.根據(jù)所有條延時(shí)鏈的標(biāo)準(zhǔn)差,確定每條延時(shí)鏈的權(quán)值,包括:
13.計(jì)算每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù),并將每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù)進(jìn)行求和,得到標(biāo)準(zhǔn)差倒數(shù)之和。
14.將每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù)與所述標(biāo)準(zhǔn)差倒數(shù)之商,得到每條延時(shí)鏈的權(quán)值。
15.在其中一個(gè)實(shí)施例中,采用并聯(lián)的多個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊對(duì)預(yù)設(shè)的同源輸入信號(hào)進(jìn)行測(cè)量,得到每條延時(shí)鏈的測(cè)量結(jié)果,步驟中所述預(yù)設(shè)的同源輸入信號(hào)為同源1pps信號(hào)。
16.在其中一個(gè)實(shí)施例中,基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊包括:粗計(jì)數(shù)器、基于延時(shí)鏈的細(xì)計(jì)數(shù)單元、數(shù)據(jù)處理單元,基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的數(shù)量為n;n為
大于1的整數(shù)。
17.將待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)采用多個(gè)所述基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊進(jìn)行測(cè)量,得到多條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果,包括:
18.將待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)分別同時(shí)輸入到第一個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的所述粗計(jì)數(shù)器中采用直接計(jì)數(shù)法,得到起始粗計(jì)數(shù)值和終止粗計(jì)數(shù)值。
19.將待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)分別同時(shí)輸入到第一個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的所述基于延時(shí)鏈的細(xì)計(jì)數(shù)單元,得到起始細(xì)計(jì)數(shù)值和終止細(xì)計(jì)數(shù)值。
20.將所述起始粗計(jì)數(shù)值、所述終止粗計(jì)數(shù)值、所述起始細(xì)計(jì)數(shù)值和所述終止細(xì)計(jì)數(shù)值輸入到第一個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的數(shù)據(jù)處理單元,得到第一條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果。
21.將待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)分別同時(shí)輸入到其余n-1個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊中,得到其他n-1條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果。
22.在其中一個(gè)實(shí)施例中,基于延時(shí)鏈的細(xì)計(jì)數(shù)單元包括選擇器、延時(shí)鏈,編碼器,校準(zhǔn)時(shí)鐘生成器、頻率計(jì)數(shù)器、校準(zhǔn)控制器以及查找表;所述查找表用于存放校準(zhǔn)過程中通過溫度和電壓計(jì)算的細(xì)計(jì)數(shù)值。
23.將待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)分別同時(shí)輸入到第一個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的所述基于延時(shí)鏈的細(xì)計(jì)數(shù)單元,得到起始細(xì)計(jì)數(shù)值和終止細(xì)計(jì)數(shù)值,包括:
24.將校準(zhǔn)信號(hào)和通道信號(hào)輸入到選擇器中,在校準(zhǔn)過程中,則選擇器輸出校準(zhǔn)信號(hào),在測(cè)量過程中,則選擇器輸出通道信號(hào);通道信號(hào)包括待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào);
25.當(dāng)選擇器輸出為通道信號(hào)時(shí):
26.將待測(cè)起始時(shí)間信號(hào)采用延時(shí)鏈進(jìn)行傳遞,輸出類似溫度計(jì)碼的信號(hào)碼;將所述信號(hào)碼通過編碼器采用折半查找法進(jìn)行編碼,得到二進(jìn)制碼;
27.在校準(zhǔn)時(shí)鐘生成器中采用環(huán)形振蕩器得到校準(zhǔn)時(shí)鐘,通過頻率計(jì)數(shù)器在所述校準(zhǔn)時(shí)鐘的驅(qū)動(dòng)下進(jìn)行加1計(jì)數(shù),并將計(jì)數(shù)值輸出至校準(zhǔn)控制器中,并根據(jù)校準(zhǔn)控制器的輸出與所述二進(jìn)制碼在所述查找表中進(jìn)行查找,得到起始細(xì)計(jì)數(shù);
28.將待測(cè)終止時(shí)間信號(hào)輸入到基于延時(shí)鏈的細(xì)計(jì)數(shù)單元,得到終止細(xì)計(jì)數(shù)值;
29.當(dāng)選擇器輸出為校準(zhǔn)信號(hào)時(shí),則利用校準(zhǔn)信號(hào)對(duì)基于延時(shí)鏈的細(xì)計(jì)數(shù)單元進(jìn)行校準(zhǔn)。
30.在其中一個(gè)實(shí)施例中,所述折半查找法具體步驟包括:
31.查找信號(hào)碼的中間為是否為1。
32.若為1,則跳變點(diǎn)在高位數(shù)據(jù)部分,并對(duì)高位數(shù)據(jù)部分的中間位進(jìn)行遞歸查找;若為0,則跳變點(diǎn)在低位數(shù)據(jù)部分,并對(duì)低位數(shù)據(jù)部分的中間位進(jìn)行遞歸查找;依此類推,直至查到0到1的跳變點(diǎn),并將該位數(shù)據(jù)信息以二進(jìn)制形式表示,得到二進(jìn)制碼。
33.一種基于fpga的時(shí)間間隔精密測(cè)量系統(tǒng),所述系統(tǒng)用于采用權(quán)上述的基于fpga的時(shí)間間隔精密測(cè)量方法實(shí)現(xiàn)時(shí)間間隔測(cè)量;所述系統(tǒng)包括:多個(gè)基于fpga延時(shí)鏈的時(shí)間間
隔測(cè)量模塊,數(shù)據(jù)加權(quán)處理模塊。
34.多個(gè)所述基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊用于測(cè)量同源的待測(cè)起始時(shí)間信號(hào)和同源的待測(cè)終止時(shí)間信號(hào)的時(shí)間間隔,得到每條延時(shí)鏈的測(cè)量結(jié)果。
35.所述數(shù)據(jù)加權(quán)處理模塊包括:延時(shí)鏈權(quán)值確定模塊和加權(quán)處理模塊,所述延時(shí)鏈權(quán)值確定模塊,用于根據(jù)獲取的并聯(lián)的多個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊對(duì)預(yù)設(shè)的同源輸入信號(hào)的測(cè)量結(jié)果,采用標(biāo)準(zhǔn)差計(jì)算方法,得到每條延時(shí)鏈的標(biāo)準(zhǔn)差,并根據(jù)所有條延時(shí)鏈的標(biāo)準(zhǔn)差確定延時(shí)鏈權(quán)值。
36.所述加權(quán)處理模塊,用于根據(jù)每條延時(shí)鏈的測(cè)量結(jié)果及對(duì)應(yīng)的延時(shí)鏈權(quán)值進(jìn)行加權(quán)求和,得到時(shí)間間隔測(cè)量結(jié)果。
37.在其中一個(gè)實(shí)施例中,所述延時(shí)鏈權(quán)值確定模塊,還用于計(jì)算每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù),并將每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù)進(jìn)行求和,得到標(biāo)準(zhǔn)差倒數(shù)之和;將每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù)與所述標(biāo)準(zhǔn)差倒數(shù)之商,得到每條延時(shí)鏈的權(quán)值。
38.在其中一個(gè)實(shí)施例中,所述基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊包括:粗計(jì)數(shù)器、基于延時(shí)鏈的細(xì)計(jì)數(shù)單元、數(shù)據(jù)處理單元,基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的數(shù)量為n;n為大于1的整數(shù)。
39.所述粗計(jì)數(shù)器,用于采用直接計(jì)數(shù)法,對(duì)待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)進(jìn)行計(jì)數(shù),得到起始粗計(jì)數(shù)值和終止粗計(jì)數(shù)值。
40.基于延時(shí)鏈的細(xì)計(jì)數(shù)單元,用于采用fpga的延時(shí)鏈對(duì)待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)進(jìn)行計(jì)數(shù),得到起始細(xì)計(jì)數(shù)值和終止細(xì)計(jì)數(shù)值。
41.所述數(shù)據(jù)處理單元,用于根據(jù)起始粗計(jì)數(shù)值、終止粗計(jì)數(shù)值、起始細(xì)計(jì)數(shù)值和終止細(xì)計(jì)數(shù)值進(jìn)行計(jì)算,得到延時(shí)鏈時(shí)間間隔測(cè)量值。
42.在其中一個(gè)實(shí)施例中,所述基于延時(shí)鏈的細(xì)計(jì)數(shù)單元包括:選擇器、延時(shí)鏈,編碼器,校準(zhǔn)時(shí)鐘生成器、頻率計(jì)數(shù)器、校準(zhǔn)控制器以及查找表。
43.所述選擇器、所述延時(shí)鏈連接、所述編碼器依次連接,所述校準(zhǔn)時(shí)鐘生成器、所述頻率計(jì)數(shù)器、所述校準(zhǔn)控制器依次連接;所述編碼器和所述校準(zhǔn)控制器與查找表連接,所述查找表輸出細(xì)計(jì)數(shù)值到數(shù)據(jù)處理單元。
44.上述一種基于fpga的時(shí)間間隔精密測(cè)量方法和系統(tǒng),所述方法包括:采用并聯(lián)的多個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊對(duì)預(yù)設(shè)的同源輸入信號(hào)進(jìn)行測(cè)量,得到每條延時(shí)鏈的測(cè)量結(jié)果;每條延時(shí)鏈的測(cè)量結(jié)果包括的數(shù)據(jù)量的數(shù)量相同;根據(jù)每條延時(shí)鏈的測(cè)量結(jié)果計(jì)算每條延時(shí)鏈的標(biāo)準(zhǔn)差;根據(jù)所有條延時(shí)鏈的標(biāo)準(zhǔn)差,確定每條延時(shí)鏈的權(quán)值;將待測(cè)時(shí)間起始信號(hào)和待測(cè)時(shí)間終止信號(hào)采用多個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊進(jìn)行測(cè)量,得到多條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果;根據(jù)多條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果和對(duì)應(yīng)的延時(shí)鏈權(quán)值進(jìn)行加權(quán)求和,得到時(shí)間間隔測(cè)量結(jié)果。采用本方法可以提高時(shí)間間隔測(cè)量的測(cè)量精度。
附圖說明
45.圖1為tdc測(cè)量原理示意圖;
46.圖2為抽頭延遲鏈的測(cè)量原理示意圖;
47.圖3為一個(gè)實(shí)施例中基于fpga的時(shí)間間隔精密測(cè)量方法的流程示意圖;
48.圖4為一個(gè)實(shí)施例中基于fpga的時(shí)間間隔精密測(cè)量系統(tǒng)框圖;
49.圖5為另一個(gè)實(shí)施例中單延時(shí)鏈測(cè)量原理圖;
50.圖6為另一個(gè)實(shí)施例中校準(zhǔn)時(shí)鐘生成器的結(jié)構(gòu)圖;
51.圖7為另一個(gè)實(shí)施例中測(cè)試結(jié)果對(duì)比。
具體實(shí)施方式
52.為了使本技術(shù)的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本技術(shù)進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處描述的具體實(shí)施例僅僅用以解釋本技術(shù),并不用于限定本技術(shù)。
53.tdc測(cè)量原理如圖1所示,用1路待測(cè)起始時(shí)間信號(hào)(start通道)和1路待測(cè)終止時(shí)間信號(hào)(stop通道)測(cè)量原理以簡(jiǎn)化說明多通道時(shí)間間隔測(cè)量原理,start通道測(cè)量的事件精確發(fā)生時(shí)刻t1,stop通道測(cè)量的事件精確發(fā)生時(shí)刻t2。n1及n2代表start通道及stop通道測(cè)量的粗計(jì)數(shù),t1及t2代表start通道及stop通道測(cè)量的細(xì)計(jì)時(shí)。那么start通道及stop通道時(shí)刻值可以通過以下公式獲得:
54.t1=t0+(n1*tclk-t1)
55.t2=t0+(n2*tclk-t2)
56.而stop通道和start通道之間的待測(cè)時(shí)間間隔δt1為:
57.δt1=t2-t1=(n2-n1)*tclk+(t1-t2)
58.其中tclk是時(shí)鐘周期。
59.抽頭延遲鏈的測(cè)量原理如圖2所示,事件信號(hào)hit在由時(shí)延為τ的延遲單元級(jí)聯(lián)構(gòu)成的延遲鏈上傳遞,鄰近的系統(tǒng)時(shí)鐘clk上升沿到來時(shí),d觸發(fā)器從低位到高位(q1,q2,q3
…
qn)由0跳變?yōu)?,得到(00
…
0111)溫度計(jì)編碼,記錄1的個(gè)數(shù)即可得到細(xì)計(jì)數(shù)n,于是細(xì)計(jì)時(shí)t由下式表示:
60.δt=nτ
61.由式可知,時(shí)延越小,分辨率τ越好,時(shí)延大小主要取決于fpga的工藝架構(gòu),所以越是工藝先進(jìn)的fpga,延時(shí)越小。
62.在一個(gè)實(shí)施例中,如圖1所示,提供了一種基于fpga的時(shí)間間隔精密測(cè)量方法,該方法包括以下步驟:
63.步驟100:采用并聯(lián)的多個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊對(duì)預(yù)設(shè)的同源輸入信號(hào)進(jìn)行測(cè)量,得到每條延時(shí)鏈的測(cè)量結(jié)果;每條延時(shí)鏈的測(cè)量結(jié)果包括的數(shù)據(jù)量的數(shù)量相同。
64.步驟102:根據(jù)每條延時(shí)鏈的測(cè)量結(jié)果計(jì)算每條延時(shí)鏈的標(biāo)準(zhǔn)差。
65.步驟104:根據(jù)所有條延時(shí)鏈的標(biāo)準(zhǔn)差,確定每條延時(shí)鏈的權(quán)值;所有延時(shí)鏈的權(quán)值之和為1。
66.具體的,通過對(duì)并聯(lián)的24條延時(shí)鏈采用同源數(shù)據(jù)進(jìn)行實(shí)際測(cè)量,發(fā)現(xiàn)每條延時(shí)鏈的標(biāo)準(zhǔn)差結(jié)果都不同,存在明顯的差異。基于此觀測(cè)結(jié)果,衍生出加權(quán)平均算法代替簡(jiǎn)單的平均算法,采用標(biāo)準(zhǔn)差結(jié)果作為改延時(shí)鏈的權(quán)系數(shù)參考值,這樣可以計(jì)算得到每條延時(shí)鏈的權(quán)值,后續(xù)測(cè)量和計(jì)算采用此權(quán)值作為加權(quán)平均的權(quán)值。
67.步驟106:將待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)采用多個(gè)基于fpga延時(shí)鏈的
時(shí)間間隔測(cè)量模塊進(jìn)行測(cè)量,得到多條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果。
68.具體的,由于單延時(shí)鏈的測(cè)量精度(方差)只有25ps左右,為了提高測(cè)量精度,采用多延時(shí)鏈同時(shí)測(cè)量的方法,其原理是將start和stop信號(hào)分別同時(shí)進(jìn)入多條延時(shí)鏈同時(shí)測(cè)量,由于fpga內(nèi)部延時(shí)電路的和邏輯布局布線的差異性,每條延時(shí)鏈的特性都有所不同,這樣,如果僅僅簡(jiǎn)單的平均算法,結(jié)果會(huì)得到提升,但是得到的結(jié)果并不是最優(yōu)的結(jié)果。
69.步驟108:根據(jù)多條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果和對(duì)應(yīng)的延時(shí)鏈權(quán)值進(jìn)行加權(quán)求和,得到時(shí)間間隔測(cè)量結(jié)果。
70.上述一種基于fpga的時(shí)間間隔精密測(cè)量方法中,所述方法包括:采用并聯(lián)的多個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊對(duì)預(yù)設(shè)的同源輸入信號(hào)進(jìn)行測(cè)量,得到每條延時(shí)鏈的測(cè)量結(jié)果;每條延時(shí)鏈的測(cè)量結(jié)果包括的數(shù)據(jù)量的數(shù)量相同;根據(jù)每條延時(shí)鏈的測(cè)量結(jié)果計(jì)算每條延時(shí)鏈的標(biāo)準(zhǔn)差;根據(jù)所有條延時(shí)鏈的標(biāo)準(zhǔn)差,確定每條延時(shí)鏈的權(quán)值;將待測(cè)時(shí)間起始信號(hào)和待測(cè)時(shí)間終止信號(hào)采用多個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊進(jìn)行測(cè)量,得到多條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果;根據(jù)多條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果和對(duì)應(yīng)的延時(shí)鏈權(quán)值進(jìn)行加權(quán)求和,得到時(shí)間間隔測(cè)量結(jié)果。采用本方法可以提高時(shí)間間隔測(cè)量的測(cè)量精度。
71.在其中一個(gè)實(shí)施例中,所有延時(shí)鏈的權(quán)值之和為1;步驟104包括:計(jì)算每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù),并將每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù)進(jìn)行求和,得到標(biāo)準(zhǔn)差倒數(shù)之和;將每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù)與標(biāo)準(zhǔn)差倒數(shù)之商,得到每條延時(shí)鏈的權(quán)值。
72.具體的,確定延時(shí)鏈的權(quán)值的步驟包括:
73.1)獲取同源輸入1pps信號(hào)的對(duì)應(yīng)的一組延時(shí)鏈測(cè)量結(jié)果,每條延時(shí)鏈連續(xù)測(cè)量數(shù)據(jù)數(shù)量相同且不低于100個(gè)連續(xù)測(cè)量數(shù)據(jù),測(cè)量數(shù)據(jù)可以用二維數(shù)組來表示:data[i][j],其中i表示延時(shí)鏈的標(biāo)號(hào),延時(shí)鏈數(shù)量為n,j表示該延時(shí)鏈的第j個(gè)測(cè)量數(shù)據(jù)。
[0074]
2)利用標(biāo)準(zhǔn)差計(jì)算公式計(jì)算每條延時(shí)鏈的標(biāo)準(zhǔn)差,可以用一維數(shù)組來表示:std[i]。
[0075]
3)計(jì)算每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù):并求所有倒數(shù)之和和:sum=σrecip[k],k=0,1,...,n-1。
[0076]
4)計(jì)算每條延時(shí)鏈的權(quán)值:所有權(quán)值之和為1。
[0077]
5)將以上計(jì)算得到權(quán)值預(yù)存在設(shè)備非易失存儲(chǔ)器中,每次設(shè)備上電調(diào)取延時(shí)鏈的權(quán)值,實(shí)際測(cè)量后計(jì)算測(cè)量值采用延時(shí)鏈的權(quán)值進(jìn)行加權(quán)求和:value[j]=data[0][j]*weight[0]+data[1][j]*weight[1]+
…
+data[n-1][j]*weight[n-1]。
[0078]
在其中一個(gè)實(shí)施例中,步驟100預(yù)設(shè)的同源輸入信號(hào)為同源1pps信號(hào)。
[0079]
在其中一個(gè)實(shí)施例中,基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊包括:粗計(jì)數(shù)器、基于延時(shí)鏈的細(xì)計(jì)數(shù)單元、數(shù)據(jù)處理單元,基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的數(shù)量為n;n為大于1的整數(shù);步驟106包括:將待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)分別同時(shí)輸入到第一個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的粗計(jì)數(shù)器中采用直接計(jì)數(shù)法,得到起始粗計(jì)數(shù)值和終止粗計(jì)數(shù)值;將待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)分別同時(shí)輸入到第一個(gè)基于
fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的基于延時(shí)鏈的細(xì)計(jì)數(shù)單元,得到起始細(xì)計(jì)數(shù)值和終止細(xì)計(jì)數(shù)值;將起始粗計(jì)數(shù)值、終止粗計(jì)數(shù)值、起始細(xì)計(jì)數(shù)值和終止細(xì)計(jì)數(shù)值輸入到第一個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的數(shù)據(jù)處理單元,得到第一條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果;將待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)分別同時(shí)輸入到其余n-1個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊中,得到其他n-1條延時(shí)鏈的時(shí)間間隔測(cè)量結(jié)果。作為優(yōu)選,n取值為24。
[0080]
在其中一個(gè)實(shí)施例中,基于延時(shí)鏈的細(xì)計(jì)數(shù)單元包括選擇器、延時(shí)鏈,編碼器,校準(zhǔn)時(shí)鐘生成器、頻率計(jì)數(shù)器、校準(zhǔn)控制器以及查找表;查找表用于存放校準(zhǔn)過程中通過溫度和電壓計(jì)算的細(xì)計(jì)數(shù)值;將待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)分別同時(shí)輸入到第一個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的基于延時(shí)鏈的細(xì)計(jì)數(shù)單元,得到起始細(xì)計(jì)數(shù)值和終止細(xì)計(jì)數(shù)值,包括:將校準(zhǔn)信號(hào)和通道信號(hào)輸入到選擇器中,在校準(zhǔn)過程中,則選擇器輸出校準(zhǔn)信號(hào),在測(cè)量過程中,則選擇器輸出通道信號(hào);通道信號(hào)包括待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào);當(dāng)選擇器輸出為通道信號(hào)時(shí):將待測(cè)起始時(shí)間信號(hào)采用延時(shí)鏈進(jìn)行傳遞,輸出類似溫度計(jì)碼的信號(hào)碼;將所述信號(hào)碼通過編碼器采用折半查找法進(jìn)行編碼,得到二進(jìn)制碼;在校準(zhǔn)時(shí)鐘生成器中采用環(huán)形振蕩器得到校準(zhǔn)時(shí)鐘,通過頻率計(jì)數(shù)器在所述校準(zhǔn)時(shí)鐘的驅(qū)動(dòng)下進(jìn)行加1計(jì)數(shù),并將計(jì)數(shù)值輸出至校準(zhǔn)控制器中,并根據(jù)校準(zhǔn)控制器的輸出與所述二進(jìn)制碼在所述查找表中進(jìn)行查找,得到起始細(xì)計(jì)數(shù);將待測(cè)終止時(shí)間信號(hào)輸入到基于延時(shí)鏈的細(xì)計(jì)數(shù)單元,得到終止細(xì)計(jì)數(shù)值;當(dāng)選擇器輸出為校準(zhǔn)信號(hào)時(shí),則利用校準(zhǔn)信號(hào)對(duì)基于延時(shí)鏈的細(xì)計(jì)數(shù)單元進(jìn)行校準(zhǔn)。
[0081]
在其中一個(gè)實(shí)施例中,折半查找法具體步驟包括:查找信號(hào)碼的中間為是否為1;若為1,則跳變點(diǎn)在高位數(shù)據(jù)部分,并對(duì)高位數(shù)據(jù)部分的中間位進(jìn)行遞歸查找;若為0,則跳變點(diǎn)在低位數(shù)據(jù)部分,并對(duì)低位數(shù)據(jù)部分的中間位進(jìn)行遞歸查找;依此類推,直至查到0到1的跳變點(diǎn),并將該位數(shù)據(jù)信息以二進(jìn)制形式表示,得到二進(jìn)制碼。
[0082]
應(yīng)該理解的是,雖然圖3的流程圖中的各個(gè)步驟按照箭頭的指示依次顯示,但是這些步驟并不是必然按照箭頭指示的順序依次執(zhí)行。除非本文中有明確的說明,這些步驟的執(zhí)行并沒有嚴(yán)格的順序限制,這些步驟可以以其它的順序執(zhí)行。而且,圖3中的至少一部分步驟可以包括多個(gè)子步驟或者多個(gè)階段,這些子步驟或者階段并不必然是在同一時(shí)刻執(zhí)行完成,而是可以在不同的時(shí)刻執(zhí)行,這些子步驟或者階段的執(zhí)行順序也不必然是依次進(jìn)行,而是可以與其它步驟或者其它步驟的子步驟或者階段的至少一部分輪流或者交替地執(zhí)行。
[0083]
在一個(gè)實(shí)施例中,如圖4所示,提供了一種基于fpga的時(shí)間間隔精密測(cè)量系統(tǒng),系統(tǒng)用于采用上述的基于fpga的時(shí)間間隔精密測(cè)量方法實(shí)現(xiàn)時(shí)間間隔測(cè)量;系統(tǒng)包括:多個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊,數(shù)據(jù)加權(quán)處理模塊;
[0084]
多個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊用于測(cè)量同源的待測(cè)起始時(shí)間信號(hào)和同源的待測(cè)終止時(shí)間信號(hào)的時(shí)間間隔,得到每條延時(shí)鏈的測(cè)量結(jié)果;
[0085]
數(shù)據(jù)加權(quán)處理模塊包括:延時(shí)鏈權(quán)值確定模塊和加權(quán)處理模塊,延時(shí)鏈權(quán)值確定模塊,用于根據(jù)獲取的并聯(lián)的多個(gè)基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊對(duì)預(yù)設(shè)的同源輸入信號(hào)的測(cè)量結(jié)果,采用標(biāo)準(zhǔn)差計(jì)算方法,得到每條延時(shí)鏈的標(biāo)準(zhǔn)差,并根據(jù)所有條延時(shí)鏈的標(biāo)準(zhǔn)差確定延時(shí)鏈權(quán)值;
[0086]
加權(quán)處理模塊,用于根據(jù)每條延時(shí)鏈的測(cè)量結(jié)果及對(duì)應(yīng)的延時(shí)鏈權(quán)值進(jìn)行加權(quán)求
和,得到時(shí)間間隔測(cè)量結(jié)果。
[0087]
在其中一個(gè)實(shí)施例中,延時(shí)鏈權(quán)值確定模塊,還用于計(jì)算每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù),并將每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù)進(jìn)行求和,得到標(biāo)準(zhǔn)差倒數(shù)之和;將每條延時(shí)鏈的標(biāo)準(zhǔn)差的倒數(shù)與標(biāo)準(zhǔn)差倒數(shù)之商,得到每條延時(shí)鏈的權(quán)值。
[0088]
在其中一個(gè)實(shí)施例中,如圖5所示,基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊包括:粗計(jì)數(shù)器、基于延時(shí)鏈的細(xì)計(jì)數(shù)單元、數(shù)據(jù)處理單元,基于fpga延時(shí)鏈的時(shí)間間隔測(cè)量模塊的數(shù)量為n;n為大于1的整數(shù);粗計(jì)數(shù)器用于采用直接計(jì)數(shù)法,對(duì)待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)進(jìn)行計(jì)數(shù),得到起始粗計(jì)數(shù)值和終止粗計(jì)數(shù)值;基于延時(shí)鏈的細(xì)計(jì)數(shù)單元用于采用fpga的延時(shí)鏈對(duì)待測(cè)起始時(shí)間信號(hào)和待測(cè)終止時(shí)間信號(hào)進(jìn)行計(jì)數(shù),得到起始細(xì)計(jì)數(shù)值和終止細(xì)計(jì)數(shù)值;數(shù)據(jù)處理單元用于根據(jù)起始粗計(jì)數(shù)值、終止粗計(jì)數(shù)值、起始細(xì)計(jì)數(shù)值和終止細(xì)計(jì)數(shù)值進(jìn)行計(jì)算,得到延時(shí)鏈時(shí)間間隔測(cè)量值。
[0089]
在其中一個(gè)實(shí)施例中,基于延時(shí)鏈的細(xì)計(jì)數(shù)單元包括:選擇器、延時(shí)鏈,編碼器,校準(zhǔn)時(shí)鐘生成器、頻率計(jì)數(shù)器、校準(zhǔn)控制器以及查找表;選擇器、延時(shí)鏈連接、編碼器依次連接,校準(zhǔn)時(shí)鐘生成器、頻率計(jì)數(shù)器、校準(zhǔn)控制器依次連接;編碼器和校準(zhǔn)控制器與查找表連接,查找表輸出細(xì)計(jì)數(shù)值到數(shù)據(jù)處理單元。
[0090]
具體的,基于延時(shí)鏈的細(xì)計(jì)數(shù)單元的各個(gè)模塊的功能如下:
[0091]
(1)粗計(jì)數(shù)電路設(shè)計(jì)采用直接計(jì)數(shù)法統(tǒng)計(jì)上電后參考時(shí)鐘上升沿的個(gè)數(shù),設(shè)n為粗計(jì)數(shù)值,tclk為參考時(shí)鐘周期,那么粗計(jì)時(shí)tcoarse可由下式表示:
[0092]
tcoarse=n*tclk
[0093]
粗計(jì)數(shù)器的位數(shù)決定了tdc的測(cè)量范圍。只要fpga芯片邏輯資源足夠多,計(jì)數(shù)器的位數(shù)可以任意設(shè)置。另一方面,參考時(shí)鐘頻率越高,細(xì)計(jì)數(shù)測(cè)量所需的時(shí)間就越短,延遲鏈上的延遲單元就越少,然而時(shí)鐘頻率越高,系統(tǒng)的功耗越大
[0094]
(2)細(xì)計(jì)數(shù)單元主要包括延時(shí)鏈,編碼器,查找表,校準(zhǔn)控制器
[0095]
1)延時(shí)鏈
[0096]
延時(shí)鏈?zhǔn)莊pga中的進(jìn)位鏈carry4,每個(gè)carry4模塊包含4個(gè)進(jìn)位多路復(fù)用器(muxcy)、4個(gè)專用的異或門(xorcy),并且每個(gè)復(fù)用器的附近都有1個(gè)d觸發(fā)器,復(fù)用器和d觸發(fā)器的位置是固定的,d觸發(fā)器用于緩存延時(shí)鏈的輸出。信號(hào)signal從進(jìn)位鏈底部的cyinit引腳處直接注入。s0-s3輸入為“1111”,這意味著進(jìn)位鏈生成一條延遲鏈,每個(gè)muxcy通過co0-co3引出4個(gè)抽頭輸入到d觸發(fā)器陣列進(jìn)行數(shù)據(jù)鎖存
[0097]
2)編碼模塊
[0098]
輸入信號(hào)在延遲鏈上傳遞時(shí),d觸發(fā)器陣列由低位到高位逐級(jí)地由0跳變?yōu)?,根據(jù)最后一位跳變?yōu)?的位置并累加1出現(xiàn)的次數(shù)就能判斷信號(hào)在延遲鏈上的傳播個(gè)數(shù),進(jìn)而得到細(xì)計(jì)數(shù)。抽頭延遲鏈輸出的信息碼與普通溫度計(jì)碼類似,因此稱為溫度計(jì)碼。
[0099]
3)編碼器
[0100]
編碼器采用折半查找法將溫度計(jì)碼轉(zhuǎn)換成二進(jìn)制碼,折半查找法的思想是:假設(shè)理想溫度計(jì)碼是按照000
…
111排列,首先查找中間位是否為1,若為1,那么跳變點(diǎn)在高位數(shù)據(jù)部分,再次對(duì)高位數(shù)據(jù)部分的中間位進(jìn)行遞歸查找;若為0,那么跳變點(diǎn)在低位數(shù)據(jù)部分,再次對(duì)低位數(shù)據(jù)部分的中間位進(jìn)行遞歸查找,以此類推,直至查到0到1的跳變點(diǎn),并將該位數(shù)據(jù)信息以二進(jìn)制形式表示
[0101]
4)校準(zhǔn)時(shí)鐘生成器
[0102]
校準(zhǔn)時(shí)鐘必須與系統(tǒng)時(shí)鐘沒有相關(guān)性,用環(huán)形振蕩器由偶數(shù)個(gè)查找表lut1和1個(gè)查找表lut2生成。校準(zhǔn)時(shí)鐘生成器如圖6所示。另外,環(huán)形振蕩器的頻率根據(jù)fpga的溫度和電壓變化而變化,這也是振蕩器的時(shí)鐘適合用作延時(shí)鏈的校準(zhǔn)的原因。
[0103]
5)頻率計(jì)數(shù)器
[0104]
頻率計(jì)數(shù)器在校準(zhǔn)時(shí)鐘的驅(qū)動(dòng)下進(jìn)行加1計(jì)數(shù),并將計(jì)數(shù)值輸出到校準(zhǔn)控制器。
[0105]
6)校準(zhǔn)控制器
[0106]
延遲鏈中延遲單元的時(shí)延受fpga芯片工藝、溫度及電壓的影響會(huì)發(fā)生變化,因此需要對(duì)時(shí)延進(jìn)行校準(zhǔn)。校準(zhǔn)控制器實(shí)現(xiàn)啟動(dòng)校準(zhǔn)和在線校準(zhǔn)兩種功能。
[0107]
啟動(dòng)校準(zhǔn)時(shí),使能片上環(huán)形振蕩器產(chǎn)生足夠多的隨機(jī)脈沖信號(hào)(獨(dú)立于參考時(shí)鐘及待測(cè)輸入信號(hào))經(jīng)延遲鏈進(jìn)行碼密度校準(zhǔn),建立直方圖并構(gòu)造查找表,同時(shí)測(cè)量各條延遲鏈鄰近位置處環(huán)形振蕩器輸出頻率值。正式測(cè)量時(shí),直接讀取查找表中對(duì)應(yīng)的細(xì)計(jì)數(shù)。在線校準(zhǔn)時(shí),再次周期性地測(cè)量各環(huán)形振蕩器的頻率值,并與啟動(dòng)校準(zhǔn)時(shí)對(duì)應(yīng)環(huán)形振蕩器的輸出頻率值對(duì)比,線性地更新查找表以實(shí)時(shí)補(bǔ)償溫度電壓對(duì)進(jìn)位鏈時(shí)延的影響。
[0108]
7)查找表
[0109]
查找表中存放的是校準(zhǔn)過程中通過溫度和電壓計(jì)算的細(xì)計(jì)數(shù)值。
[0110]
在一個(gè)驗(yàn)證性實(shí)施例中,通過對(duì)1-24條延時(shí)鏈簡(jiǎn)單平均和加權(quán)平均算法的對(duì)比實(shí)驗(yàn),從圖7所示的測(cè)試結(jié)果對(duì)比圖可以看出來,加權(quán)平均算法整體性能明顯優(yōu)于簡(jiǎn)單平均算法,部分性能提升在達(dá)到20%以上,能夠明顯提高測(cè)量的精度。
[0111]
以上實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
[0112]
以上所述實(shí)施例僅表達(dá)了本技術(shù)的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本技術(shù)構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本技術(shù)的保護(hù)范圍。因此,本技術(shù)專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。