《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 業(yè)界動態(tài) > 以周期滑動擴(kuò)展的測周法實(shí)現(xiàn)等精度的頻率測量

以周期滑動擴(kuò)展的測周法實(shí)現(xiàn)等精度的頻率測量

2009-04-20
作者:楊冠群

??? 摘? 要: 針對傳統(tǒng)的“高頻用測頻法,低頻用測周法”的頻率測量的精度差異過大的不足,提出了在高低頻實(shí)現(xiàn)等精度測量的周期滑動擴(kuò)展的測周法,并在單片機(jī)上予以實(shí)現(xiàn)。?

??? 關(guān)鍵詞: 頻率測量? 等精度測量? 周期滑動擴(kuò)展? 單片機(jī)

?

??? 長期以來,在頻率測量領(lǐng)域內(nèi)一直沿用著“高頻用測頻法,低頻用測周法”的方法,這種做法對提高測量精度無疑是十分有效的,但卻存在兩個問題:一是被測頻率越高或被測頻率越低則測量精度越高,但不同頻率下的測量精度差異甚大;二是在測頻法和測周法的頻率銜接點(diǎn)附近不可避免地存在著測量精度的跳變,使同一頻率的各次測量結(jié)果不同。這兩種測量的精度離散性問題大大降低了測量結(jié)果的置信度,尤其在很多以頻率為判據(jù)的診斷系統(tǒng)中更是如此。這時(shí)人們往往希望在整個頻率測量域中能獲得精度一致的測量結(jié)果,然而在經(jīng)典的測頻和測周法中,卻難以解決甚至無法解決。為此,本文摒棄了傳統(tǒng)的測頻與測周相結(jié)合的方法,采用單一測周法并輔以周期滑動擴(kuò)展算法,在單片機(jī)上實(shí)現(xiàn)了高頻到低頻范圍內(nèi)的等精度測量,從根本上解決了測頻與測周結(jié)合方法的不足。?

1 周期滑動擴(kuò)展的測周法?

??? 在周期測量法中,顧名思義是要測出被測信號兩相鄰脈沖間的間隔時(shí)間,如圖1所示。?

?

?

??? 由圖1可知:?

?????

??? (3)式中第二項(xiàng)實(shí)際上是系統(tǒng)的時(shí)基誤差,通常取決于系統(tǒng)的晶振頻率穩(wěn)定度,與被測頻率無關(guān),而且因其值在10-6~10-9/d之間,所以在所要求的相對誤差未接近該范圍時(shí)可認(rèn)為:?

?????

??? 又由于量化誤差ΔN=±1(在本系統(tǒng)中實(shí)際上ΔN≤1),所以有:?

?????

??? 由(5)式可見,計(jì)時(shí)次數(shù)N的大小基本決定了相對誤差的大小,顯然,N越大越好。?

??? 由(1)式可知:?

?????

??? (6)式中To由系統(tǒng)時(shí)鐘確定,無法改變;而Tx則隨被測Fx而變。顯然要增大N,就必須增大Tx,在Tx無法隨意改變的情況下可考慮采用周期擴(kuò)展法變通解決。?

??? 令:?

?????

??? 即多測M個Tx周期后,計(jì)時(shí)次數(shù)N′也隨之?dāng)U大M倍,必然使相對誤差縮小為原來的1/M。顯然對不同的Fx,只要選取合適的M,便能滿足所要求的相對誤差,進(jìn)而實(shí)現(xiàn)被測頻域內(nèi)的等精度測量。由于M是由被測頻率Fx而定,因而這種周期擴(kuò)展是可靈活滑動的。?

??? 值得說明的是,當(dāng)被測頻率很低時(shí)(例如Fx=0.01),即使選M=1,也可能使測得的N很大。此時(shí)已無法考慮Fx較高時(shí)的等精度問題,好在此時(shí)精度是上升而不是下降的。?

2 測量周期滑動擴(kuò)展的硬件配合?

??? 在同樣的精度下,周期滑動擴(kuò)展的測周法對時(shí)基頻率和硬件電路的要求比經(jīng)典的測頻與測周相結(jié)合的方法低得多,因而很適于在單片機(jī)上實(shí)現(xiàn)。但在具體實(shí)現(xiàn)時(shí)還應(yīng)考慮相應(yīng)的硬件配合,即周期擴(kuò)展因子M應(yīng)當(dāng)分為兩部分,其中一部分由單片機(jī)片內(nèi)解決,另一部分則應(yīng)由片外硬件解決。?

??? M由單片機(jī)片內(nèi)解決很好理解,只要根據(jù)預(yù)測所得的N和精度所要求的N′求出相應(yīng)的M,由軟件控制測量M個Tx周期即可。M之所以還要由片外硬件解決一部分,是考慮到當(dāng)Fx很高時(shí),其受單片機(jī)內(nèi)置計(jì)數(shù)器硬件的計(jì)數(shù)頻率所限而無法對片外脈沖進(jìn)行計(jì)數(shù)。具體說來,當(dāng)89C51采用12MHz晶振時(shí),由于其T0引腳識別外部一個脈沖需要兩個機(jī)器周期,所以其片內(nèi)計(jì)數(shù)器的上限計(jì)數(shù)頻率僅為500kHz。若被測Fx大于此值則無法直接測量其Tx。解決的辦法是將擴(kuò)展因子M的一部分由外部硬件分頻器承擔(dān),分頻器級數(shù)的切換由單片機(jī)控制,這樣便可由單片機(jī)外部實(shí)現(xiàn)部分的周期擴(kuò)展。筆者實(shí)現(xiàn)此功能時(shí)分頻器采用8級,如圖2所示。這樣當(dāng)Fxmax=100MHz時(shí),外部分頻器由單片機(jī)切換為8級,則Fxmax經(jīng)8級分頻后送到單片機(jī)計(jì)數(shù)端的Fx′僅為100MHz÷28=390.625kHz,完全滿足計(jì)數(shù)器硬件的要求。顯然若想進(jìn)一步提高測量頻率的上限,只要相應(yīng)增加片外分頻器的級數(shù)即可(當(dāng)然還得考慮印制版排版、測量電路前級以及測量探頭的高頻設(shè)計(jì)問題)。?

?

?

??? 此外在具體實(shí)現(xiàn)時(shí)還得注意合理選擇片外分頻器電路的速度。顯然第一級要求最高,宜選傳輸速度在6.5ns的SN74F74(雙D)。這樣在Fxmax=100MHz時(shí),兩級下來頻率便降為25MHz,后級便可選常規(guī)電路了。?

??? 由圖2還可看到,Fx′送到單片機(jī)的計(jì)數(shù)端T0。按理說,測周期只要能測到信號的跳變即可,那么單片機(jī)的大部分引腳均可實(shí)現(xiàn)這一點(diǎn)。這里之所以選T0,是基于其具有21~2n的計(jì)數(shù)功能。當(dāng)測一個周期時(shí),利用其裝入2n-1后計(jì)入一個脈沖便能溢出的特點(diǎn)連做兩次即可;當(dāng)測k個周期時(shí),裝入2n-k后一次計(jì)數(shù)溢出便可完成,不僅十分方便,而且省去了k次溢出中斷服務(wù)中應(yīng)做的軟件工作和由此帶來的時(shí)間延誤和測量誤差。從這個意義上說,T0引腳對應(yīng)的片內(nèi)計(jì)數(shù)器TC0以硬件方式承擔(dān)了擬由單片機(jī)軟件實(shí)現(xiàn)的周期擴(kuò)展任務(wù)。由此可以進(jìn)一步認(rèn)為,此處的周期滑動擴(kuò)展實(shí)質(zhì)上是由單片機(jī)片內(nèi)外兩部分硬件分頻器在軟件的控制下協(xié)調(diào)完成的。?

3 周期擴(kuò)展因子的配置與調(diào)整?

??? 由于周期擴(kuò)展因子M系由片外M1與片內(nèi)M2兩部分組成,且兩者作用不盡相同,因此配置與調(diào)整時(shí)要有所區(qū)別。其中M1控制的分頻器承擔(dān)著單片機(jī)計(jì)數(shù)端T0能否正確識別高頻時(shí)Fx′的重任。因此配置與調(diào)整時(shí)應(yīng)當(dāng)優(yōu)先考慮M1。同時(shí)考慮到在測量開始時(shí)無法預(yù)計(jì)被測頻率的高低,因此M1的初始值應(yīng)設(shè)置為其配置的最大值28。至于M2,由于其處于周期擴(kuò)展的第二級,因此在第一級級數(shù)確定的前提下,M2的最大值決定了測頻范圍的上限?,F(xiàn)因本系統(tǒng)設(shè)定的最高測量頻率為100MHz,所要求的相對誤差為10-4,系統(tǒng)的晶振頻率為12MHz,因此由(9)式可知計(jì)時(shí)值N′必須不小于104,所以在Fxmax=100MHz的情況下,由(8)式可得:?

?????

??? 因220=1024·1024>106,所以取Mmax=220,前已確定M1max=28,由此得:M2max=212。為了在實(shí)際處理時(shí)方便起見,分別取其指數(shù)為實(shí)際調(diào)整值:m1=0~8,m2=0~12。?

4 周期滑動擴(kuò)展等精度測頻的軟件實(shí)現(xiàn)?

??? 如前所述,要實(shí)現(xiàn)周期滑動擴(kuò)展的等精度測頻,只要根據(jù)測量的中間結(jié)果動態(tài)地調(diào)整周期擴(kuò)展因子m1或m2即可。具體說來就是當(dāng)測量所得的計(jì)時(shí)值小時(shí)增大m1或m2,反之則減小,但在軟件實(shí)現(xiàn)時(shí)還得處理量程換檔和超量程判斷等問題。?

??? 量程換檔可分為自動和手動兩種方式。手動換檔是在測量時(shí)由人工按鍵告訴系統(tǒng)Fx處在什么范圍,自動方式則完全不需人工干預(yù)。本系統(tǒng)沒有必要完全采用手動方法,這是因?yàn)橹芷诨瑒訑U(kuò)展的算法本身便具有一定的自動換檔作用。然而也難以完全采用自動方式,因每次測量時(shí)由于無法預(yù)計(jì)Fx是處在高端還是低端,因而難以確定兩個擴(kuò)展因子的初值。例如,Fx大于500kHz時(shí),不接入片外8級分頻器T0端便無法識別Fx的輸入脈沖;但當(dāng)Fx很低例如為1Hz時(shí),片外8級分頻器的接入將使原本只需1秒的測量過程竟然長達(dá)256秒。為此在片外增加一個選擇開關(guān)K1,由其讀入的電平?jīng)Q定片外8級分頻器是否接入。顯然K1的狀態(tài)取決于Fx是否大于等于500kHz。?

??? 超量程的判斷只能通過測量的結(jié)果來下結(jié)論。本系統(tǒng)的測量范圍為100MHz~0.001Hz。由前面所述的系統(tǒng)參數(shù)不難得出,在高端當(dāng)Fx>104.8576MHz時(shí),系統(tǒng)的計(jì)時(shí)次數(shù)將小于104,由此便可下“Fx超上限”的結(jié)論,當(dāng)然這里給Fxmax留了約4%的余量。在低端當(dāng)Fx<0.0009313Hz時(shí),系統(tǒng)的計(jì)時(shí)次數(shù)將大于109(超過30位二進(jìn)制),由此同樣可下“Fx超下限”的結(jié)論,當(dāng)然這里也給Fxmin留了約6.9%的余量。?

??? 解決以上幾個主要問題后,便可在軟硬件的適當(dāng)配合下以周期滑動擴(kuò)展的測周法實(shí)現(xiàn)高低頻的等精度測量。圖3給出了相應(yīng)的測量主流程圖。?

?

?

??? 由圖3可見,周期測量的計(jì)時(shí)始于T0端測得的第一個脈沖的下跳沿,它利用了TC0在裝入2n-1后計(jì)入一個脈沖便會溢出,以及相鄰兩個機(jī)器周期測得一高一低便會計(jì)數(shù)的特點(diǎn)。這種以硬件進(jìn)行的檢測要比軟件指令做得可靠和干脆得多,因?yàn)?9C51的檢測指令最快也要2個機(jī)器周期(12MHz晶振時(shí)需2μs),而T0端輸入500kHz時(shí)稍有延誤便會造成檢測失誤(例如其它指令或中斷服務(wù))。并且這種硬件檢測法不會影響緊隨的后續(xù)脈沖的正常識別,因?yàn)樵诟哳l時(shí),后續(xù)的測量會自動增加片外分頻器的級數(shù)m1,在低頻時(shí)則后續(xù)脈沖相隔甚遠(yuǎn)。周期測量計(jì)時(shí)的停止則是由m2給TC0賦值后計(jì)得2m2個脈沖周期時(shí)的溢出來實(shí)現(xiàn)的。?

??? 由圖3的算法和上述系統(tǒng)參數(shù)還不難得出,在Fx=100MHz~100Hz的頻率范圍內(nèi),測量的響應(yīng)時(shí)間為21ms~33ms。Fx=10Hz時(shí),響應(yīng)時(shí)間為100ms。以后便隨Fx的下降,其響應(yīng)時(shí)間也相應(yīng)增加。顯然這是受被測頻率自身的限制,與算法無關(guān)。由此不難看到,這種算法的另一優(yōu)點(diǎn)是在大部分測量頻率范圍內(nèi)其測量響應(yīng)時(shí)間十分接近。當(dāng)然若想進(jìn)一步加快的話,只要將上述流程中m1與m2的遞增遞減循環(huán)改為查表即可。此外,測量響應(yīng)時(shí)間還與系統(tǒng)要求的測量精度有關(guān)。精度要求越高,則測量所需時(shí)間越長。?

??? 最后在軟件中還得注意主程序與各中斷服務(wù)程序的時(shí)間配合。以及運(yùn)算程序的字長與精度等問題,限于篇幅此處不再贅述。?

??? 本文介紹的周期滑動擴(kuò)展的測周法以測量精度為準(zhǔn)繩,靈活調(diào)整被測信號的周期數(shù),使其能在大部分測量頻域內(nèi)實(shí)現(xiàn)等精度測量,同時(shí)也使測量時(shí)間的差異大為減少。由于這種方法是用增加測量周期來提高測量精度,因而比經(jīng)典方法中提高計(jì)時(shí)晶振的頻率來提高精度要方便得多,特別適合在單片機(jī)上實(shí)現(xiàn)。?

參考文獻(xiàn)?

1 華南盾,朱 杰,張林欣.電子測量原理與模擬電路試驗(yàn).上海:上海交通大學(xué)出版社,1993?

2 王永生.電子測量學(xué).西安:西北工業(yè)大學(xué)出版社,1995?

3 楊吉祥,詹宏英,梅杓春.電子測量技術(shù)基礎(chǔ).南京:東南大學(xué)出版社,1999

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。