??? 關(guān)鍵詞:計數(shù)器,脈沖發(fā)生器,頻率準(zhǔn)確度
1 引 言
以單片機(jī)內(nèi)置或?qū)S每删幊潭〞r/計數(shù)器作脈沖發(fā)生器時,一般輸入脈沖由晶振產(chǎn)生經(jīng)過整形或分頻后形成,有很高的頻率準(zhǔn)確度和穩(wěn)定度。設(shè)輸入脈沖頻率為fin,期望輸出脈沖頻率為f,應(yīng)置入脈沖發(fā)生器的計數(shù)值N=fin/f,當(dāng)f為fin的約數(shù),則N為整數(shù),f與fin的準(zhǔn)確度相同;f不是fin的約數(shù),則N也不為整數(shù),N=n+δ,其中,n為N的整數(shù)部分,δ為N的純小數(shù)部分,由于計數(shù)值只能為整數(shù),實際計數(shù)值Np只能取N的近似數(shù)n或n+1,實際輸出脈沖頻率fp=fin/Np,因Np取近似值,fp與f間必然存在誤差,且此誤差分量較之因fin準(zhǔn)確度和穩(wěn)定度有限引起的誤差分量可能大得多。f的準(zhǔn)確度主要受Np的近似度的影響。本文在不計由fin準(zhǔn)確和穩(wěn)定度影響f準(zhǔn)確度的條件下,分析由Np引起f誤差的特點,探討消除或減小因Np引起f誤差的方法,從而提高f的準(zhǔn)確度。
2 單時鐘源時,Np取近似值影響輸出頻率準(zhǔn)確度的分析
?? 當(dāng)脈沖發(fā)生器輸入脈沖為fin時,若最大計數(shù)值為nmax,則Np取值可能為1,2,…,nmax有nmax種可能,相應(yīng)地,fp被離散為fin,fin/2,…,fin/nmax,也有nmax種取值可能,令fin/(nmax+1)=0,這些離散頻率將0~fin頻段分成nmax個子頻段,對于任一f∈(0,fin),總對應(yīng)一n,使f∈(fin/(n+1),fin/n),Np取n或n+1近似N,實際上是用fin/n或fin/(n+1)來近似f。當(dāng)f為fin的約數(shù)時,Np=N,fp=f,絕對誤差Δf=fp-f=0,相對誤差γ=Δf/f=0;當(dāng)f不為fin的約數(shù)時,Δf≠0,γ≠0,Δf和γ的值與Np的取值方案有關(guān),有以下三種情況:
(1)Np=n方案。fp=fin/n>f,Δf>0,γ>0,Δf隨f的增大而減小,f趨近于fin/(n+1)時,Δf和γ趨于極大值,Δf趨近于fin/n-fin/(n+1)=fin/(n(n+1)),γ趨于1/n。采用此方案時,f越接近于fin/(n+1),f的準(zhǔn)確性越差(見圖1,Δf(f)曲線)。
(2)Np=n+1方案。fp=fin/(n+1)<f,f<0,γ<0,Δf隨f的增大而增大,f趨近于fin/n時,|Δf|和|γ|趨于極大值,Δf趨近于fin/(n+1)-fin/n=-fin/(n(n+1)),γ趨近于-1/n。采用此方案時,f越接近于fin/n,f的準(zhǔn)確性越差。(見圖2,-Δf(f)曲線)。
?? (3)以|Δf|為最小原則,f∈(fin/(n+1),fin/
綜合以上三種方案的誤差情況,因Np取近似值而引起的輸出頻率誤差有以下特點:
(1)三種方案下的Δf(f)曲線都由一組斜率為-1的平行線段組成,子頻段越寬,斜線段越長。說明各子頻率的最大絕對誤差值MAX(|Δf|)及MAX(|γ|)與子頻段寬度成正比。而子頻段的寬度與n成反比。
(2)第三方案各子頻段的MAX(|Δf|)和MAX(|γ|)為前面方案的一半,說明方案三較前兩方案更合理,以后討論Np取值時都按方案三。
(3)評價發(fā)生器的準(zhǔn)確度,是用給定頻段最大相對誤差大小,最大誤差大小取值越小,則發(fā)生器的準(zhǔn)確度越高,在子頻段(fin/(n+1),fin/n),其極大值為1/(2n+1),由此可以看出,fin一定時,f越大,n越小,子頻段的|γ|極大值越大,準(zhǔn)確度越低,對于給定的輸出頻段的準(zhǔn)確度,可以用該頻段頻率上限對應(yīng)的子頻段|γ|的極大值來評價。換言之,提高了輸出高頻段的準(zhǔn)確度,也就提高了整個輸出頻段的準(zhǔn)確度。
表1是設(shè)fin=107Hz,f在不同數(shù)量級Hz頻段,N取近似值影響f準(zhǔn)確度的指標(biāo)。
從表1可以看出,f每增加一個數(shù)量級,MAX(|γ|)增加一個數(shù)量級,MAX(|Δf|)增加兩個數(shù)量級。
3 提高輸出頻率準(zhǔn)確度的方法
在給定可編程定時/計時器條件下,針對Np引起輸出頻率誤差的特點,可以采取不同方法消除或減小輸出頻率誤差,從而提高輸出頻率的準(zhǔn)確度。
(1)脈沖發(fā)生器僅需有限個確定頻點輸出時,以下兩種方法可以消除因計數(shù)值近似引起的輸出頻率誤差。
??? ·單時鐘源公倍數(shù)法
若取fin為這些頻點的公倍數(shù),則其中每個頻點f對應(yīng)的N都為整數(shù),從而消除了因計數(shù)值近似引起的輸出頻率誤差。采用此法須注意,一是fin不得超出脈沖發(fā)生器允許輸出頻率上限,二是確定已知頻點的有效位數(shù)時要考慮到晶振準(zhǔn)確度和穩(wěn)定度。
??? ·多時鐘源公倍數(shù)法
采用單時鐘公倍數(shù)法確定的fin超出脈沖發(fā)生器輸入頻率上限時,可以采用二時鐘源或多時鐘源公倍數(shù)法,二時鐘源公倍數(shù)法的具體做法是,將各輸出頻點分成兩組,分別求出各組對應(yīng)的公倍數(shù)fin1及fin2,若此fin1或fin2有一個大于脈沖發(fā)生器輸入頻率上限時,則重新分組,直到兩組的公倍數(shù)fin1及fin2都達(dá)到輸入頻率上限要求,電路上設(shè)置相應(yīng)的兩振蕩電路及二選一開關(guān),根據(jù)輸出頻率而將對應(yīng)的fin1或fin2切換到脈沖發(fā)生的輸入端。若分成兩組后,無論怎樣調(diào)整分組都不能使fin1及fin2同時滿足輸入頻率上限要求,則可采用多時鐘源公倍數(shù)法。考慮到增加時鐘源數(shù)后,給軟硬件帶來的復(fù)雜性,在滿足輸入頻率上限要求的前提下,時鐘源數(shù)應(yīng)盡量少。
(2)已知輸出頻率上限,不能確定具體期望輸出頻率時,盡量提高fin或增加時鐘源數(shù),縮小近似子頻段寬度,減小子頻段內(nèi)可能出現(xiàn)的MAX(|γ|)及MAX(|Δf|)。
·提高時鐘源fin法若要求輸出頻率上限為fmax,則對應(yīng)Nmin=fin/fmax=nmin+δ,輸出頻段可能出現(xiàn)的MAX(|γ|)=1/(2nmin+1)若能使fin增大,則nmin增大,MAX(|γ|)相應(yīng)減小,從而提高了輸出頻率的準(zhǔn)確度。
??? ·多時鐘源等分子頻段法
提高時鐘源fin,受脈沖發(fā)生器允許輸入上限頻率的制約,若還需要提高輸出頻率準(zhǔn)確度,可以增加時鐘源數(shù),將(fin/(nmin+1),fin/nmin)子頻段作M等分,則可將MAX(|γ|)縮小M倍。
設(shè)有M個時鐘源,其頻率分別為fin,fin1,…,finM-1,可通過M選一開關(guān),接入其一到脈沖發(fā)生器的輸入端,經(jīng)過nmin分頻后,正好將(fin/nmin+1,fin/nmin)M等分,即
也即只要finj=fin(1-j/(M(nmin+1)))(j=1,2,…,M-1),就可以將子頻段(fin/(nmin+1),fin/nmin)等分為M個子區(qū)間。用最小|Δf|原則通過切換進(jìn)相應(yīng)的時鐘源,f可以用fin/(nmin+1),finM-1/nmin,…,fin1/nmin,fin/nmin來近似。各子區(qū)間MAX(|γ|M)=(|γ|)/M。一般地,當(dāng)n>nmin時,M-1個增加的時鐘源finj(j=1,2,…,M-1),經(jīng)n分頻后不一定能將(fin/(n+1),fin/n)作M等分,但能使此子頻段分割,且各子區(qū)間寬度都小于fin/(M·nmin(nmin+1)),各子區(qū)間內(nèi)的MAX(|γ|)小于MAX(|γ|M)。
4 實驗結(jié)果
我們對多時鐘源等分子頻段法進(jìn)行了實驗,可編程定時/計數(shù)器用Intel8254-2,取fin=10MHz,fmax=10kHz,M=5,則nmin=1000,用頻率計將各振蕩器輸出頻率標(biāo)定為:fin=10MHz,fin1=9998002.0Hz,fin2=9996004.0Hz,fin3=9994006.0Hz,fin4=9992008.0Hz。再將Intel8254-2置入不同計數(shù)值,分別用各時鐘源輸入時,測出Intel8254-2輸出頻率,結(jié)果見表2。
從表2可以看出,在單一時鐘源時,計數(shù)器兩相鄰實際輸出頻率之差最大為10.0Hz,輸出頻率準(zhǔn)確度為±5.0Hz,而在5時鐘源時,計數(shù)器兩相鄰實際輸出頻率之差最大值為2.0Hz,輸出頻率準(zhǔn)確度為±1.0Hz,輸出頻率準(zhǔn)確度得到提高,為單一時鐘源時的5倍。
參考文獻(xiàn)
2 孫志剛,馬文光,劉磊.基于8253的脈沖發(fā)生器帶小數(shù)分頻數(shù)的處理.上海:電氣自動化,2000,3
評論