1. 電子計數(shù)測頻原理框圖
??? 首先,被測信號通過放大整形,形成幅度一致,形狀一致是計數(shù)脈沖。然后,N將它加到閘門的一個輸入端,閘門由門控信號來控制其關(guān)閉時間。計得的脈沖送至譯碼,再送顯示器顯示出來。而由晶振產(chǎn)生的1MHz的振蕩信號經(jīng)放大整形,形成方波,經(jīng)多個10分頻10s,1s,0.1s,0.01s,1ms,那么有fx=N/T符合測頻定義。根據(jù)f=N/T。不難看出,采用計數(shù)器測頻的測量誤差,一方面決定于閘門時間T準(zhǔn)不準(zhǔn)確,即由晶振提供的標(biāo)準(zhǔn)頻率的準(zhǔn)確度△T/T=-(△fo/fo);另一方面決定于計數(shù)器計得的數(shù)準(zhǔn)不準(zhǔn),即"±1誤差",△N/N=±1/N=±(1/○XTfx)。所以,計數(shù)器直接測頻的誤差主要有兩項,即±1誤差和標(biāo)準(zhǔn)頻率誤差。測低頻時,由于±1誤差產(chǎn)生的測頻誤差大得驚人,所以不宜采用直接測頻方法。由于fX較低時,利用計數(shù)器直接測頻,由±1誤差所引起的測頻誤差將會大到不可允許的程度。所以,為了提高測量低頻時的準(zhǔn)確度,即減少±1誤差的影響,可改成先測周期Tx,然后計算fx=1/Tx。
2. 電子計數(shù)器測周期原理
??? Tx經(jīng)放大整形控制雙穩(wěn)態(tài)觸發(fā)器形成門控信號,控制閘門的開閉;然后晶搌產(chǎn)生的1MHz的振蕩信號,經(jīng)放大整形形成方波,產(chǎn)生幅度一致,形狀一致是計數(shù)脈沖。當(dāng)閘門打開時,對計數(shù)脈沖進行計數(shù);閘門關(guān)閉時,停止計數(shù)。計得的脈沖送譯碼,送顯示。
3. 單片機定時器工作原理
??? 8XX51單片機的定時器T1由TH1,TL1組成,定時器T0由TH0,TL0組成。它們均為八位寄存器,映射在特殊功能寄存器中,占地址8AH、8BH。它們用于存放定時或計數(shù)的初始值。此外,內(nèi)部還有一個八位的方式選擇寄存器TMOD和一個八位的控制寄存器TCON,占地址89H和88H,用于選擇定時器/計數(shù)器的工作方式,如計數(shù)還是定時(C/-T),啟動的方式(GATE)及發(fā)啟動控制信號TRx。
??? 定時和計數(shù)實質(zhì)都是對脈沖的計數(shù),只是被計的脈沖的來源不同,定時方式的計數(shù)初值和被計脈沖的周期有關(guān),而計數(shù)方式的計數(shù)初值只和被計脈沖的個數(shù)有關(guān)(計由高到低的邊沿數(shù))。
??? 8031單片機內(nèi)含有兩個16位可編程定時/計數(shù)器。均可編程對內(nèi)部機器周期計數(shù)(定時方式),或?qū)ν獠恳_輸入的脈沖進行計數(shù)(計數(shù)方式)。CPU工作于12MHz主頻時,外部最高計數(shù)頻率500kHz,內(nèi)部時鐘計數(shù)頻率達1MHz。定時器的基準(zhǔn)定時脈沖周期為1μs,當(dāng)采用測頻方式時,T/C0編程為計數(shù)方式,對被測信號頻率計數(shù),產(chǎn)生欲置的檢測時間。由于定時器最長的定時時間為65535s,欲產(chǎn)生更長的檢測時間需使用軟件計數(shù)器,中斷多次即可獲得所需檢測時間。被測頻率較低時,則選用測周方式;T/C1編程為定時方式,用來對m個輸入脈沖周期所經(jīng)歷的時間計時。
4. 等精度測量原理框圖
??? 微處理器的主要優(yōu)點之一是可以利用微處理器的數(shù)據(jù)處理能力,減少測量過程中產(chǎn)生的隨機誤差和系統(tǒng)誤差,從而提高測量精度,所以往往把單片機運用在電子測量過程中,來提高測量精度。
??? 實現(xiàn)等精度測量原理,關(guān)鍵是使Nx不產(chǎn)生誤差,而No不超過±1誤差。利用PC機總線技術(shù),設(shè)計了相應(yīng)的控制門電路,實現(xiàn)對被測頻率信號的計數(shù)及相應(yīng)的精確閘門時間,并使閘門的開啟與關(guān)閉和被測信號的有效跳變同步。
??? 預(yù)置門的打開和關(guān)閉由被測信號和預(yù)置的測量時間控制,計數(shù)器Nx在預(yù)置門的控制下對被測信號頻率計數(shù),控制門根據(jù)預(yù)置門產(chǎn)生一個與被測信號同步的同步門;計數(shù)器No在同步門的控制下對時標(biāo)計數(shù),得到精確的閘門時間Tg。設(shè)時標(biāo)周期為To,則被測頻率Fx=Nx/NoTo。
??? 單片機采用定時ls的測頻法先對信號進行預(yù)測,軟件根據(jù)頻率高低自動選擇檢測時間或周期擴展倍數(shù),以保證各檔都有較高測量精度。當(dāng)輸入信號頻率超過100kHz時,信號經(jīng)擴展計數(shù)器分頻后送入8031按測頻法測量,頻率檢測時間設(shè)有三檔,分別為0.01s、0.1s、1s。在轉(zhuǎn)入周期測量后,信號直接送入單片機,周期擴展倍數(shù)有104、103、102、10、1五檔。
??? 由于單片機的最高計數(shù)頻率為500kHz,限制了測頻范圍,必須對高頻進行分頻。擴展n分頻器后,將會產(chǎn)生分頻誤差。這個n分頻最大將導(dǎo)致(n-1)個待測頻率周期的分頻誤差。該誤差量級與"±l"誤差相當(dāng),甚至更大。為了提高測頻分辨率,我們采用了硬件同步分頻技術(shù),即在閘門開啟的有效上升沿時刻,對74LS591分頻器清零。在閘門關(guān)閉時刻,將分頻狀態(tài)打入總線緩沖器74LS244,8031通過緩沖器讀出其值,從而消除了"分頻誤差"。
??? 在本系統(tǒng)中,T/C1編程為定時方式時,在12MHz晶振下其最大定時時間只有65.536ms,需采用軟件來擴展計數(shù)器的容量。即計數(shù)器每溢出中斷一次,片內(nèi)RAM的內(nèi)容加一計數(shù),這樣大大擴了單片機的計數(shù)范圍。但同時也引入了中斷響應(yīng)的時間誤差,我們稱之為"軟件誤差"。頻率計的核心是時間基準(zhǔn)的正確性,因此在中斷后重置定時器時間常數(shù)時,不能簡單地采用重置辦法。從單片機的中斷響應(yīng)系統(tǒng)及其響應(yīng)過程可知:(1)定時器每次溢出中斷時,WAIT語句必須執(zhí)行完才能響應(yīng),該條指令的執(zhí)行時間為2μs,我們?nèi)∑淦骄舆t時間為1μs;(2)CPU響應(yīng)中斷到執(zhí)行中斷服務(wù)程序首條指令至少需3個完整的機器周期,即延時3μs;(3)中斷服務(wù)程序中實際的定時時間是在執(zhí)行完時間常數(shù)的裝載指令后才開始,兩條裝載指令占用4μs。根據(jù)以上分析。每次中斷后,將延遲約8μs后才開始定時。實際獲得的定時時間必須考慮到8μs的延遲,該頻率計采用軟件補償?shù)奶幚矸椒▉斫档推溆绊憽S捎谲浖拚喈?dāng)方便在儀器調(diào)試中可作進一步的調(diào)整,因此基本上可消除軟件誤差。
??? 頻率計根據(jù)被測信號頻率的大小,軟件控制自動切換頻率檢測時間,或自動轉(zhuǎn)換為周期測量,其軟件設(shè)計采用模塊化結(jié)構(gòu)設(shè)計,程序設(shè)計與調(diào)試都很方便,功能擴充也很靈活。單片機上電復(fù)位后,首先執(zhí)行主程序,完成有關(guān)芯片和定時器的初始化,設(shè)置數(shù)據(jù)緩沖區(qū)、顯示方式、數(shù)據(jù)計數(shù)器初值及頻率初測方式等。開中斷后,隨時檢測外部中斷和定時器所發(fā)出的中斷請求信號,一旦有則轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序,否則返回顯示程序,顯示所測的頻率值。
5. 結(jié)束語
??? 本文通過比較以往電子計數(shù)測頻原理、電子計數(shù)測周期原理的分析,結(jié)合單片機定時/計數(shù)器的工作原理,給出了等精度測量原理以及軟件誤差的消除方法。實現(xiàn)起來簡單可靠且性能穩(wěn)定、精度高、性價比低等優(yōu)點。