李紅麗,馬耀鋒
(1.中州大學(xué)實(shí)驗(yàn)管理中心,鄭州 450044;2.中州大學(xué)信息工程學(xué)院,鄭州 450044)
基于傳統(tǒng)測頻原理[1]的頻率計(jì)將隨被測信號(hào)頻率的下降而降低,在實(shí)用中有較大的局限性,而等精度頻率計(jì)不但具有較高的測頻精度,不隨所測信號(hào)的變化而變化,而且在整個(gè)測頻區(qū)域能保持恒定的測頻精度。本課題利用 EDA技術(shù),基于 KHF-5型 CPLD/FPGA實(shí)驗(yàn)開發(fā)系統(tǒng)上的 Altera公司的 EP1K100QC208-3芯片來進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)等精度頻率計(jì)的研究。這使得設(shè)計(jì)過程大大簡化,縮短了開發(fā)周期,減小了電路系統(tǒng)的體積,同時(shí)也有利于保證頻率計(jì)具有較高的精度和較好的可靠性。
等精度測頻[2]的實(shí)現(xiàn)方法可以用圖 1來簡化說明。
圖 1 等精度測頻原理框圖
圖 1的門控信號(hào)是可預(yù)置的寬度為 Tpr的一個(gè)脈沖。COUNT1和 COUNT2是兩個(gè)可控計(jì)數(shù)器。標(biāo)準(zhǔn)頻率信號(hào)從COUNT1的時(shí)鐘輸入端 CLK輸入,其頻率為 Fo,待測信號(hào)從COUNT2的時(shí)鐘輸入端 CLK輸入,設(shè)其實(shí)際頻率為 Fxe,測量頻率為 Fx。
當(dāng)門控信號(hào)為高電平時(shí),被測信號(hào)的上沿通過D觸發(fā)器的Q端同時(shí)啟動(dòng)計(jì)數(shù)器 COUNT1和COUNT2。對(duì)被測信號(hào) Fx和標(biāo)準(zhǔn)頻率信號(hào) Fo同時(shí)計(jì)數(shù)。當(dāng)門控信號(hào)為低電平時(shí),隨后而至的被測信號(hào)的上沿將使這兩個(gè)計(jì)數(shù)器同時(shí)關(guān)閉。
為了獲得 1s的預(yù)置門時(shí)間寬度,需要對(duì) 50MHz標(biāo)準(zhǔn)進(jìn)行 100M分頻,即分得頻率為 0.5Hz,脈寬為 1s的脈沖。而這可由 4個(gè) 100分頻器級(jí)聯(lián)獲得。所以需要設(shè)計(jì)一個(gè) 100分頻器 FreDiv100。為了便于自測與自校,在上面所設(shè)計(jì)的100分頻模塊的基礎(chǔ)上設(shè)計(jì)了占空比可調(diào)的 100分頻模塊FreDiv1_99,實(shí)現(xiàn) 100分頻,并根據(jù) ABCDEFG等 7個(gè)按鍵的二進(jìn)制組合來產(chǎn)生占空比為 1%到 99%的脈沖。為實(shí)現(xiàn)等精度原理中的D觸發(fā)器,其在本設(shè)計(jì)中單獨(dú)設(shè)計(jì)成一個(gè) D觸發(fā)器模塊D_Drigger。因該觸發(fā)器是由觸發(fā)時(shí)鐘輸入信號(hào)S觸發(fā)的,故其輸出信號(hào) Q的脈寬為觸發(fā)時(shí)鐘輸入信號(hào) S的周期的整數(shù)倍。
因?yàn)闇y量頻率與測量周期的原理和所需要計(jì)數(shù)的對(duì)象是一樣的,在至少 1s里分別對(duì)被測信號(hào)和標(biāo)準(zhǔn)信號(hào)進(jìn)行計(jì)數(shù),所以在本設(shè)計(jì)中,頻率與周期的測量共用一個(gè)計(jì)數(shù)模塊Counter。而脈寬和占空比的測量都是在被測信號(hào)的 100個(gè)連續(xù)周期里對(duì)標(biāo)準(zhǔn)信號(hào)進(jìn)行計(jì)數(shù)的,只是它們計(jì)數(shù)的時(shí)間段不一樣,即對(duì)應(yīng)脈寬的計(jì)數(shù)值僅僅需在該 100個(gè)周期里的正脈寬里對(duì)標(biāo)準(zhǔn)信號(hào)進(jìn)行計(jì)數(shù),而對(duì)占空比則不僅僅需要在那100個(gè)正脈寬里對(duì)標(biāo)準(zhǔn)信號(hào)進(jìn)行,還需要在該完整的 100個(gè)周期里對(duì)標(biāo)準(zhǔn)信號(hào)進(jìn)行計(jì)數(shù),也就是說,對(duì)脈寬的測量和占空比的測量都需要在該 100個(gè)周期里的正脈寬里對(duì)標(biāo)準(zhǔn)信號(hào)進(jìn)行計(jì)數(shù),基于這一點(diǎn),我們應(yīng)該把脈寬和占空比的測量集成到一個(gè)脈寬和占空比同步累加計(jì)數(shù)模塊 CounADD。
控制部分在本設(shè)計(jì)里,只是進(jìn)行測量功能的切換,這并不包括對(duì)自校功能的控制。因?yàn)樽孕9δ艿目刂婆c切換并不需要單獨(dú)的模塊,那只需一個(gè)按鍵與一些邏輯門就可以的了,所以控制部分就只設(shè)計(jì)了一個(gè)功能切換控制模塊 Swap,實(shí)現(xiàn)頻率測量、周期測量、脈寬測量和占空比測量的切換。
圖 2 等精度頻率、周期、脈寬測量儀的頂層原理圖
由于需要對(duì)前面測量模塊計(jì)得的數(shù)值進(jìn)行運(yùn)算并加以碼制轉(zhuǎn)換和譯碼才能得到最終的測量結(jié)果,在本設(shè)計(jì)中,我們設(shè)計(jì)了數(shù)據(jù)處理需要用到的 32位二進(jìn)制乘法器Multiplier和 32位二進(jìn)制除法器 Divider32。
由于最終結(jié)果是由數(shù)碼管以十進(jìn)制數(shù)顯示的,而在之前的測量部分和數(shù)據(jù)處理部分里所用的數(shù)制都是二進(jìn)制數(shù),因此我們設(shè)計(jì)了二進(jìn)制碼轉(zhuǎn)換成 BCD碼模塊 B2BCD,把二進(jìn)制數(shù)碼轉(zhuǎn)換成十進(jìn)制數(shù)碼。另外,在本設(shè)計(jì)中,設(shè)計(jì)了 8個(gè)7段數(shù)碼管的位選擇器 Position Select,數(shù)碼管段碼選通模塊Decode,數(shù)碼管 (共陰極)譯碼顯示模塊 Display來實(shí)現(xiàn) 8個(gè)動(dòng)態(tài)數(shù)碼管的“掃描式”顯示。
根據(jù)前面所述各模塊組成等精度頻率、周期、脈寬測量儀的頂層原理圖如圖 2所示。
在圖 2的輸入和輸出引腳說明如下:
LY為自校功能的切換開關(guān),當(dāng)其為 0時(shí),用頻率為 0.5MHz的標(biāo)準(zhǔn)脈沖進(jìn)行自校;當(dāng)其為 1時(shí),用頻率為 5KHz的標(biāo)準(zhǔn)脈沖進(jìn)行自校。
CLK為標(biāo)準(zhǔn)時(shí)鐘 50MHz的輸入端,SIG為被測信號(hào)的測量輸入端,START為測量開始控制開關(guān),當(dāng)其為 1時(shí),真正的測量開始。
1、2、3 、4、5、6和 7是配合 LY開關(guān)使用的 ,即用它們對(duì)不同脈寬范圍和占空比范圍在實(shí)際上的測試與自校,主要是通過它們來改變自校信號(hào)的占空比以檢測本設(shè)計(jì)能否完成指標(biāo)中 1%到 99%的占空比的測試功能。
ALARM為計(jì)數(shù)溢出警報(bào),計(jì)數(shù)超過或等于 4 294 967 295時(shí),即計(jì)數(shù)的開放時(shí)間大于或等于 85 899 345 900ns警報(bào)響起表示所測量的頻率超出量程,以此來計(jì)算,本設(shè)計(jì)的頻率測量范圍應(yīng)為 0.0012Hz-85 899 345 900Hz(85GHz),可實(shí)際上,由于數(shù)碼管的顯示位數(shù)不夠,所以那是看不到的。
H、W則是測量功能的切換控制開關(guān),當(dāng) H、W都沒有按下時(shí)進(jìn)行的是頻率測量;當(dāng) H按下、W沒有按下時(shí)進(jìn)行的是周期測量;當(dāng) H沒有按下、W按下時(shí)進(jìn)行的是脈寬測量;當(dāng)H、W都按下時(shí)進(jìn)行的則是占空比測量。
SEL[2..0]是輸出到芯片上 38譯碼器的,Q1[6..0]是輸出到靜態(tài)數(shù)碼管 1的,Q2[6..0]是輸出到靜態(tài)數(shù)碼管 2的,Q3[6..0]則是輸出到動(dòng)態(tài)數(shù)碼管的。
這里給出兩個(gè)主要測量模塊頻率和周期同步計(jì)數(shù)模塊Counter及脈寬和占空比同步累加計(jì)數(shù)模塊 CounADD在 QUARTUSII6.0上時(shí)序仿真波形圖分別如圖 3、圖 4所示。
圖 3 頻率和周期同步計(jì)數(shù)模塊 Counter時(shí)序波形
圖 3中 CLK的周期為 6ns,SIG的周期為 10ns。從上面的波形仿真圖可以看出,對(duì)標(biāo)準(zhǔn)信號(hào) CLK進(jìn)行計(jì)數(shù)的計(jì)數(shù)值QA和對(duì)待測信號(hào) SIG進(jìn)行計(jì)數(shù)的計(jì)數(shù)值 QB的起始和終止都受 EN的控制,且呈現(xiàn)出一致性。
圖 4 脈寬和占空比同步累加計(jì)數(shù)模塊 CounADD時(shí)序波形
在圖 4中,SIG的周期為 72ns(脈寬為 36ns),CLK的周期為 14ns(脈寬為 7ns),QA、QB分別為在 100個(gè) SIG的正脈寬和周期里對(duì) CLK的計(jì)數(shù)值。從圖 4中可得出,36×100÷14=257≈256,511×14+49=7203,其中 49為開始對(duì) CLK進(jìn)行計(jì)數(shù)前的時(shí)間,即第 4個(gè) CLK上升沿前的時(shí)間,3×14+7=7×7=49。另外,值得注意的是,QA、QB的計(jì)數(shù)起始和終止在本模塊中是同步的,這保證了測量的一致性和精度。
最后,在最終的硬件測試中記錄的幾組數(shù)據(jù):
在 LY=0,START=0時(shí),測得頻率為 0.5MHz(顯示 5 000 000),周期為 2us(顯示 200),脈寬為 0.99us(顯示 99),占空比為 50%(顯示 50)。另外,在 1234567的組合改變時(shí),測得脈寬和占空比都隨之變化,但脈寬總比理論值少 1,占空比測量正確。
在 LY=1,START=0時(shí),測得頻率為 5KHz(顯示 50 000),周期為 200us(顯示 20000),脈寬為 99.99us(顯示9999),占空比為 50%(顯示 50)。另外,在 1234567的組合改變時(shí),測得脈寬和占空比都隨之變化,但脈寬總比理論值少 1;占空比則能正確測量,1%和 99%也可以測量得出。
針對(duì)上述兩種情況,可分析得出,就以上兩組數(shù)據(jù)而言,本設(shè)計(jì)的誤差是穩(wěn)定的,脈寬的測量只有 0.01us的誤差,而頻率和周期則實(shí)現(xiàn) 0誤差。
在 START=1時(shí),測得的幾組數(shù)據(jù)如表 1所示。
表 1 硬件測試結(jié)果
本設(shè)計(jì)根據(jù)等精度測頻原理(高精度恒誤差測頻原理),以浙江天煌科技實(shí)業(yè)有限公司的“KHF-5型 CPLD/FPGA實(shí)驗(yàn)開發(fā)系統(tǒng)”為硬件基礎(chǔ),采用 VHDL語言進(jìn)行設(shè)計(jì),所選用的設(shè)計(jì)器件為 Altera公司的 EP1K100QC208-3。從仿真和實(shí)測結(jié)果可以看出該系統(tǒng)不但具有較高的測量精度,而且在整個(gè)頻率區(qū)域保持恒定的測量精度。
[1]謝自美.電子線路設(shè)計(jì)·實(shí)驗(yàn)·測試 [M].武漢:華中科技大學(xué)出版社,2003.
[2]潘松.EDA技術(shù)與 VHDL[M].2版.北京:清華大學(xué)出版社,2007.