本發(fā)明涉及控制技術(shù)的領(lǐng)域,特別是涉及一種脈沖寬度采集方法。
背景技術(shù):
目前,在控制領(lǐng)域,經(jīng)常需要測(cè)量一個(gè)輸入脈沖或一段過(guò)程花了多長(zhǎng)時(shí)間。傳統(tǒng)的方法一般是采用MCU(Microcontroller Unit,微控制單元)、FPGA(Field-Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)等對(duì)這段時(shí)間進(jìn)行計(jì)數(shù),多次采樣后,再根據(jù)計(jì)數(shù)周期計(jì)算出時(shí)間。但對(duì)于納米ns級(jí)別的精度要求,MCU處理比較難以達(dá)到,F(xiàn)PGA單時(shí)鐘采樣受限于時(shí)鐘頻率,也可能因采樣時(shí)鐘與采樣脈沖具有相同的相位,即使多次采樣也達(dá)不到精度要求。
技術(shù)實(shí)現(xiàn)要素:
基于此,有必要針對(duì)如何提高脈沖時(shí)間采樣精度以及如何提高采樣速度的技術(shù)問(wèn)題,提供一種脈沖寬度采集方法。
一種脈沖寬度采集方法,包括:將單路時(shí)鐘輸入現(xiàn)場(chǎng)可編程門陣列,通過(guò)所述現(xiàn)場(chǎng)可編程門陣列的鎖相環(huán)產(chǎn)生多路時(shí)鐘;對(duì)所述單路時(shí)鐘為高電平或者低電平狀態(tài)下的由所述鎖相環(huán)輸出的每一路時(shí)鐘的上升沿或下降沿進(jìn)行計(jì)數(shù),得到對(duì)應(yīng)的每個(gè)時(shí)鐘的上升沿或下降沿的個(gè)數(shù)數(shù)組;根據(jù)所述個(gè)數(shù)數(shù)組,利用預(yù)設(shè)計(jì)算公式,計(jì)算得到脈沖寬度時(shí)間。
在其中一個(gè)實(shí)施例中,所述根據(jù)所述個(gè)數(shù)數(shù)組,利用預(yù)設(shè)計(jì)算公式,計(jì)算得到脈沖寬度時(shí)間,包括:取所述個(gè)數(shù)數(shù)組中最小的數(shù)為基數(shù),計(jì)算所述個(gè)數(shù)數(shù)組中最大的數(shù)的數(shù)量,利用預(yù)設(shè)計(jì)算公式,計(jì)算得到脈沖寬度時(shí)間。
在其中一個(gè)實(shí)施例中,所述利用預(yù)設(shè)計(jì)算公式,計(jì)算得到脈沖寬度時(shí)間,包括:獲取所述鎖相環(huán)輸出的時(shí)鐘周期以及時(shí)鐘個(gè)數(shù);計(jì)算所述基數(shù)與所述時(shí)鐘周期的第一乘積,以及所述數(shù)量與所述時(shí)鐘個(gè)數(shù)的比值與所述時(shí)鐘周期的第二乘積;計(jì)算所述第一乘積與所述第二乘積的和,得到所述脈沖寬度時(shí)間。
在其中一個(gè)實(shí)施例中,通過(guò)所述現(xiàn)場(chǎng)可編程門陣列的鎖相環(huán)產(chǎn)生八路時(shí)鐘。
在其中一個(gè)實(shí)施例中,多路所述時(shí)鐘的頻率相同。
在其中一個(gè)實(shí)施例中,相鄰兩路所述時(shí)鐘之間的相位差相同。
在其中一個(gè)實(shí)施例中,通過(guò)所述現(xiàn)場(chǎng)可編程門陣列的鎖相環(huán)產(chǎn)生八路時(shí)鐘,相鄰兩路所述時(shí)鐘之間的相位差為45度。
在其中一個(gè)實(shí)施例中,通過(guò)所述現(xiàn)場(chǎng)可編程門陣列的鎖相環(huán)產(chǎn)生四路時(shí)鐘,相鄰兩路所述時(shí)鐘之間的相位差為90度。
在其中一個(gè)實(shí)施例中,通過(guò)所述現(xiàn)場(chǎng)可編程門陣列的鎖相環(huán)產(chǎn)生十六路時(shí)鐘,相鄰兩路所述時(shí)鐘之間的相位差為22.5度。
在其中一個(gè)實(shí)施例中,對(duì)所述單路時(shí)鐘為高電平狀態(tài)下的由所述鎖相環(huán)輸出的每一路時(shí)鐘的上升沿進(jìn)行計(jì)數(shù),得到對(duì)應(yīng)的每個(gè)時(shí)鐘的上升沿的個(gè)數(shù)數(shù)組。
在其中一個(gè)實(shí)施例中,對(duì)所述單路時(shí)鐘為高電平狀態(tài)下的由所述鎖相環(huán)輸出的每一路時(shí)鐘的下降沿進(jìn)行計(jì)數(shù),得到對(duì)應(yīng)的每個(gè)時(shí)鐘的下降沿的個(gè)數(shù)數(shù)組。
在其中一個(gè)實(shí)施例中,所述個(gè)數(shù)數(shù)組中的各數(shù)據(jù)之間相差一個(gè)數(shù)量級(jí)。
上述脈沖寬度采集方法,通過(guò)將單路時(shí)鐘輸入現(xiàn)場(chǎng)可編程門陣列產(chǎn)生多路時(shí)鐘,采集每路時(shí)鐘,利用預(yù)設(shè)計(jì)算公式,計(jì)算得到脈沖寬度時(shí)間,如此利用多路采樣的高分辨率,相對(duì)應(yīng)單路采集的低分辨率,時(shí)鐘頻率通常取該現(xiàn)場(chǎng)可編程門陣列在滿足時(shí)序要求下的最快時(shí)鐘,其采樣精度完全可以達(dá)到納米級(jí),且提高了采樣速度,相關(guān)的控制、測(cè)試設(shè)備精度得到提升。
附圖說(shuō)明
圖1為一個(gè)實(shí)施例中脈沖寬度采集方法采集流程示意圖;
圖2為一個(gè)實(shí)施例中脈沖寬度采集方法的步驟示意圖;
圖3為一個(gè)實(shí)施例中脈沖寬度的采集計(jì)算應(yīng)用示意圖;
圖4為另一個(gè)實(shí)施例中脈沖寬度的采集計(jì)算應(yīng)用示意圖;
圖5為另一個(gè)實(shí)施例中脈沖寬度的采集計(jì)算應(yīng)用示意圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式做詳細(xì)的說(shuō)明。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以很多不同于在此描述的其它方式來(lái)實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似改進(jìn),因此本發(fā)明不受下面公開的具體實(shí)施例的限制。
請(qǐng)參閱圖1,其為一個(gè)實(shí)施例中脈沖寬度采集方法采集流程示意圖,在該脈沖寬度采集方法采集流程中,首先:要檢測(cè)的脈沖到達(dá),即外部要檢測(cè)的時(shí)鐘脈沖到達(dá)FPGA;然后,各時(shí)鐘分別計(jì)數(shù),即一路外部時(shí)鐘輸入到FPGA后,通過(guò)鎖相環(huán)PLL,產(chǎn)生n路高精度、高速、同頻率時(shí)鐘。例如,PLL輸出時(shí)鐘為全局時(shí)鐘,保證到達(dá)每一個(gè)邏輯資源的時(shí)間是一樣的;其次,得到n個(gè)數(shù)據(jù),即對(duì)輸入的脈沖信號(hào)的高電平時(shí)間進(jìn)行采集,在脈沖信號(hào)為高電平的狀態(tài)下,分別對(duì)鎖相環(huán)PLL輸出的每個(gè)時(shí)鐘的上升沿或下降沿進(jìn)行計(jì)數(shù),得到每個(gè)時(shí)鐘在脈沖信號(hào)為高電平的狀態(tài)下上升沿或下降沿個(gè)數(shù),如X1,X2,X3……Xn,且該組數(shù)據(jù)各數(shù)據(jù)之間只相差1。最后,利用公式計(jì)算脈沖寬度時(shí)間,即利用公式計(jì)算得到的每個(gè)時(shí)鐘在脈沖信號(hào)為高電平的狀態(tài)下上升沿或下降沿個(gè)數(shù),從而得到單路時(shí)鐘的脈沖寬度,也即輸入脈沖信號(hào)在高電平狀態(tài)下的時(shí)間t。
請(qǐng)參閱圖2,其為一個(gè)實(shí)施例中脈沖寬度采集方法20的結(jié)構(gòu)示意圖,一種脈沖寬度采集方法20包括:
步驟S210:將單路時(shí)鐘輸入現(xiàn)場(chǎng)可編程門陣列,通過(guò)所述現(xiàn)場(chǎng)可編程門陣列的鎖相環(huán)產(chǎn)生多路時(shí)鐘。
具體的:?jiǎn)温窌r(shí)鐘是指外部時(shí)鐘,用戶需要測(cè)量一個(gè)高電平脈沖狀態(tài)下的脈沖寬度或者用戶需要測(cè)量一個(gè)低電平脈沖狀態(tài)下的脈沖寬度?,F(xiàn)場(chǎng)可編程門陣列即FPGA,將單路時(shí)鐘輸入FPGA后,由FPGA內(nèi)的鎖相環(huán)PLL產(chǎn)生多路時(shí)鐘。本實(shí)施例中,由FPGA內(nèi)的鎖相環(huán)PLL產(chǎn)生多路高精度、高速、同頻率時(shí)鐘。也就是說(shuō),PLL由FPGA內(nèi)部產(chǎn)生,輸入一路時(shí)鐘,輸出多路時(shí)鐘,即一進(jìn)多出。
例如,一路外部時(shí)鐘,輸入到FPGA后,通過(guò)鎖相環(huán)PLL,產(chǎn)生n路高精度、高速、同頻率時(shí)鐘,每路時(shí)鐘的相位差為360°/n。PLL輸出時(shí)鐘為全局時(shí)鐘,保證到達(dá)每一個(gè)邏輯資源的時(shí)間是一樣的。例如,通過(guò)所述現(xiàn)場(chǎng)可編程門陣列的鎖相環(huán)產(chǎn)生八路時(shí)鐘。例如,多路所述時(shí)鐘的頻率相同。例如,相鄰兩路所述時(shí)鐘之間的相位差相同。例如,相鄰兩路所述時(shí)鐘之間的相位差為45度。例如,通過(guò)現(xiàn)場(chǎng)可編程門陣列的鎖相環(huán)產(chǎn)生八路時(shí)鐘,相鄰兩路時(shí)鐘之間的相位差為45度。又如,通過(guò)現(xiàn)場(chǎng)可編程門陣列的鎖相環(huán)產(chǎn)生四路時(shí)鐘,相鄰兩路時(shí)鐘之間的相位差為90度。又如,通過(guò)現(xiàn)場(chǎng)可編程門陣列的鎖相環(huán)產(chǎn)生十六路時(shí)鐘,相鄰兩路時(shí)鐘之間的相位差為22.5度。
步驟S220:對(duì)所述單路時(shí)鐘為高電平狀態(tài)下的由所述鎖相環(huán)輸出的每一路時(shí)鐘的上升沿或下降沿進(jìn)行計(jì)數(shù),得到對(duì)應(yīng)的每個(gè)時(shí)鐘的上升沿或下降沿的個(gè)數(shù)數(shù)組。
具體的:假如需要對(duì)輸入的脈沖信號(hào)的高電平時(shí)間進(jìn)行采集,在脈沖信號(hào)為高電平的狀態(tài)下,分別對(duì)鎖相環(huán)PLL輸出的每個(gè)時(shí)鐘的上升沿或下降沿進(jìn)行計(jì)數(shù),得到每個(gè)時(shí)鐘在脈沖信號(hào)為高電平的狀態(tài)下上升沿或下降沿個(gè)數(shù),如個(gè)數(shù)數(shù)組X1,X2,X3……Xn,且該組數(shù)據(jù)各數(shù)據(jù)之間只相差1。例如,對(duì)個(gè)數(shù)數(shù)組進(jìn)行賦值,{X1,X2,X3,X4,X5……Xn}={10,10,11,11,11……10}。需要說(shuō)明的是,本實(shí)施例中的數(shù)據(jù)是一組假設(shè)數(shù)據(jù),即脈沖信號(hào)在有效時(shí)間內(nèi)各路時(shí)鐘的上升沿或下降沿個(gè)數(shù),是通過(guò)計(jì)數(shù)器計(jì)數(shù)得到。
例如,對(duì)所述單路時(shí)鐘為高電平狀態(tài)下的由所述鎖相環(huán)輸出的每一路時(shí)鐘的上升沿進(jìn)行計(jì)數(shù),得到對(duì)應(yīng)的每個(gè)時(shí)鐘的上升沿的個(gè)數(shù)數(shù)組。例如,對(duì)所述單路時(shí)鐘為高電平狀態(tài)下的由所述鎖相環(huán)輸出的每一路時(shí)鐘的下降沿進(jìn)行計(jì)數(shù),得到對(duì)應(yīng)的每個(gè)時(shí)鐘的下降沿的個(gè)數(shù)數(shù)組。例如,所述個(gè)數(shù)數(shù)組中的各數(shù)據(jù)之間相差一個(gè)數(shù)量級(jí)。
步驟S230:根據(jù)該個(gè)數(shù)數(shù)組,利用預(yù)設(shè)計(jì)算公式,計(jì)算得到脈沖寬度時(shí)間。
具體的:例如,所述根據(jù)所述個(gè)數(shù)數(shù)組,利用預(yù)設(shè)計(jì)算公式,計(jì)算得到脈沖寬度時(shí)間,包括:取所述個(gè)數(shù)數(shù)組中最小的數(shù)為基數(shù),計(jì)算所述個(gè)數(shù)數(shù)組中最大的數(shù)的數(shù)量,利用預(yù)設(shè)計(jì)算公式,計(jì)算得到脈沖寬度時(shí)間。
例如,所述利用預(yù)設(shè)計(jì)算公式,計(jì)算得到脈沖寬度時(shí)間,包括:獲取所述鎖相環(huán)輸出的時(shí)鐘周期以及時(shí)鐘個(gè)數(shù);計(jì)算所述基數(shù)與所述時(shí)鐘周期的第一乘積,以及所述數(shù)量與所述時(shí)鐘個(gè)數(shù)的比值與所述時(shí)鐘周期的第二乘積;計(jì)算所述第一乘積與所述第二乘積的和,得到所述脈沖寬度時(shí)間。
本實(shí)施例中,在個(gè)數(shù)數(shù)組{X1,X2,X3,X4,X5……Xn}中,取較小的數(shù)為基數(shù)Xm,并計(jì)算較大數(shù)的個(gè)數(shù)i,那么得到輸入脈沖信號(hào)高電平時(shí)間t的計(jì)算公式:t=(Xm+i/n)*T,式中,T為鎖相環(huán)PLL輸出的時(shí)鐘周期,Xm為序列數(shù)中較小的數(shù),i為較大數(shù)的個(gè)數(shù),n為時(shí)鐘個(gè)數(shù)。也就是說(shuō),預(yù)設(shè)計(jì)算公式為t=(Xm+i/n)*T,式中,T為鎖相環(huán)PLL輸出的時(shí)鐘周期,Xm為序列數(shù)中較小的數(shù),i為較大數(shù)的個(gè)數(shù),n為時(shí)鐘個(gè)數(shù)。
上述脈沖寬度采集方法,通過(guò)單路時(shí)鐘輸入現(xiàn)場(chǎng)可編程門陣列產(chǎn)生多路時(shí)鐘,采集每路時(shí)鐘,利用預(yù)設(shè)計(jì)算公式,計(jì)算得到脈沖寬度時(shí)間,如此利用多路采樣的高分辨率,相對(duì)應(yīng)單路采集的低分辨率,時(shí)鐘頻率通常取該現(xiàn)場(chǎng)可編程門陣列在滿足時(shí)序要求下的最快時(shí)鐘,其采樣精度完全可以達(dá)到納米級(jí),且提高了采樣速度,相關(guān)的控制、測(cè)試設(shè)備精度得到提升。
為便于理解本實(shí)施例,下面以具體的實(shí)施例對(duì)本發(fā)明做出說(shuō)明。
如圖3所示,鎖相環(huán)PLL產(chǎn)生八路頻率相同,相位各相差45°的高速時(shí)鐘,時(shí)鐘周期為16ns,輸入一脈沖信號(hào),脈沖信號(hào)對(duì)就各路時(shí)鐘的上升沿個(gè)數(shù)分別為{9,9,9,9,9,9,9,10},取基數(shù)為9,較高位的個(gè)數(shù)為1,得到脈沖信號(hào)寬度時(shí)間為T=(9+1/8)*16=146ns,測(cè)得與實(shí)際相等。
如圖4所示,鎖相環(huán)PLL產(chǎn)生八路頻率相同,相位各相差45°的高速時(shí)鐘,時(shí)鐘周期為10ns,得到的上升沿個(gè)數(shù)分別為{7,7,7,7,7,7,7,7},基數(shù)為7,較高位的個(gè)數(shù)為0,得到脈沖信號(hào)寬度時(shí)間為T=(7+0/8)*10=70ns。實(shí)際為69.7ns,誤差為0.3ns。
如圖5所示鎖相環(huán)PLL產(chǎn)生八路頻率相同,相位各相差45°的高速時(shí)鐘,時(shí)鐘周期為16ns,得到的上升沿個(gè)數(shù)分別為{8,8,7,7,7,7,7,8},基數(shù)為7,較高位的個(gè)數(shù)為3,得到脈沖信號(hào)寬度時(shí)間為T=(7+3/8)*16=118ns。實(shí)際為118.03ns,誤差為0.03ns。
如此,多路采樣的分辨率為(1/n)*T,相對(duì)應(yīng)單路采集分辨率T,相應(yīng)提高了n倍,在實(shí)際上,時(shí)鐘頻率通常取該FPGA在滿足時(shí)序要求下的最快時(shí)鐘,如250M,8路或16路時(shí)鐘輸出,其采樣精度完全可以達(dá)到ns級(jí),且提高了采樣速度,相關(guān)的控制、測(cè)試設(shè)備精度得到提升。
需要說(shuō)明的是,本實(shí)施例中的脈沖寬度采集方法還可以用于其他的時(shí)間測(cè)量,例如一個(gè)輸入脈沖或一段過(guò)程花了多長(zhǎng)時(shí)間。例如,想要知道DSP執(zhí)行某段代碼花了多長(zhǎng)時(shí)間,可以將這段代碼執(zhí)行前后輸出一個(gè)脈沖到FPGA,就可以分析出該代碼執(zhí)行的精確時(shí)間。例如,在激光測(cè)距方面,由于光速快,需要很高測(cè)量精度才能保證較小的誤差。例如,在激光測(cè)距方面,激光的發(fā)送端和接收端的時(shí)間差很小,時(shí)間差在電路上可以變成脈沖信號(hào),通過(guò)多路不同相位時(shí)鐘采集得到時(shí)間后,乘以激光速度,即可以得到距離。
以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說(shuō)明書記載的范圍。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。