基于8051單片機的頻率測量技術
隨著無線電技術的發(fā)展與普及,"頻率"已經成為廣大群眾所熟悉的物理量。而單片機的出現(xiàn),更是對包括測頻在內的各種測量技術帶來了許多重大的飛躍,然而,小體積、價廉、功能強等優(yōu)勢也在電子領域占有非常重要的地位。為此.本文給出了一種以單片機為核心的頻率測量系統(tǒng)的設計方法。
1 測頻系統(tǒng)的硬件結構
測量頻率的方法一般分為無源測頻法、有源測頻法及電子計數法三種。無源測頻法(又可分為諧振法和電橋法),常用于頻率粗測,精度在1%左右。有源比較法可分為拍頻法和差頻法,前者是利用兩個信號線性疊加以產生拍頻現(xiàn)象,再通過檢測零拍現(xiàn)象進行測頻,常用于低頻測量,誤差在零點幾Hz;后者則利用兩個非線性信號疊加來產生差頻現(xiàn)象,然后通過檢測零差現(xiàn)象進行測頻,常用于高頻測量,誤差在20 Hz左右。以上方法在測量范圍和精度上都有一定的不足,而電子計數法主要通過單片機進行控制。由于單片機的較強控制與運算功能,電子計數法的測量頻率范圍寬,精度高,易于實現(xiàn)。本設計就是采用單片機電子計數法來測量頻率,其系統(tǒng)硬件原理框圖如圖1所示。
為了提高測量的精度,拓展單片機的測頻范圍,本設計采取了對信號進行分頻的方法。設計中采用兩片同步十進制加法計數器74LS160來組成一個100分頻器。該100分頻器由兩個同步十進制加法計數器74LS160和一個與非門74LS00共同設計而成。由于一個74LS160可以分頻十的一次方,而當第一片74LS160工作時,如果有進位,輸出端TC便有進位信號送進第二片的CEP端,同時CET也為高電平,這樣兩個工作狀態(tài)控制端CET、CEP將同時為高電平,此時第二片74LS160將開始工作。
2 頻率測量模塊的電路設計
用單片機電子計數法測量頻率有測頻率法和測周期法兩種方法。測量頻率主要是在單位定時時間里對被測信號脈沖進行計數;測量周期則是在被測信號一個周期時間里對某一基準時鐘脈沖進行計數。
2.1 8051測頻法的誤差分析
電子計數器測頻法主要是將被測頻率信號加到計數器的計數輸入端,然后讓計數器在標準時間Ts1內進行計數,所得的計數值N1。與被測信號的頻率fx1的關系如下:
而電子計數器測周法則是將標準頻率信號fs2送到計數器的計數輸入端,而讓被測頻率信號fx2控制計數器的計數時間,所得的計數值N2與fx2的關系如下:
事實上,無論用哪種方法進行頻率測量,其主要誤差源都是由于計數器只能進行整數計數而引起的1誤差:
可見,在同樣的Ts下,測頻法fx1的低頻端,誤差遠大于高頻端,而測周法在fx2的高頻端,其誤差遠大于低頻端。理論研究表明,如進行n次重復測量然后取平均,則1誤差會減小n倍。如給定1誤差ε0,則要求ε≤ε0ο對測頻法要fx1≥ 對測周法則要求fx2≤ε0fs2ο因此,對一給定頻率信號fs進行測量時,用測頻法fs1越低越好,用測周法則fs2越高越好。
2.2 8051單片機的測頻范圍和測頻時間
8051單片機的定時器/計數器接口,在特定晶振頻率fc=12 MHz時,可輸人信號的頻率上限是fx≤fc/24=500 kHz。如用測頻法,則頻率的上限取決于8051,故測頻法的測量范圍是:
即:fx1≤500 kHz。
用測頻法測頻時,定時器/計數器的計數時間間隔可由8051的另外一個定時器/計數器完成,外接100分頻器的情況下,fx1的頻率范圍可擴展到50MHz
用測周法設計時,其頻率的下限取決8051計數器的極限。考慮到8051內部為16位,加上TF標志位,計數范圍為217,因此其最大計數時間為秒。而如果采用半周期測量,則測頻范圍是:
在測周法中,標準頻率信號fs2由8051的內部定時結構產生,f s2恒為fc/12,因此,在給定ε0為0.0 1時,fx2既有一定的上限頻率,也有一定的下限頻率。即:
并由此可見得出:4Hz≤fx1≤10 kHz理論上可以達到無窮大,即fs1可以達到無窮低,因此,fx1可達到無窮小,因此,可以認為測頻法的測頻范圍只有上限頻率,沒有下限頻率。而再 這樣,兩個頻率范圍相疊加即可得到該頻率計的測頻范圍:4 Hz≤fx1≤50 MHz。精度可以達到1Hz。從以上分析可以看出,測頻法測量的頻率覆蓋范圍較寬,且在高頻端的測量精度較高,而在低頻段的測量精度較低,同時測量時間較長。測周法測量的頻率覆蓋范圍較窄,在高頻段的測量精度較低,在低頻段的測量精度較高,測量時間短。因此,測頻法適于高頻信號的測量,測周法適于較低頻信號測量。
8051可用軟件來控制定時器/計數器的工作方式,以實現(xiàn)測頻法與測周法的動態(tài)切換。對寬頻帶、高速度的頻率測量,可采用軟件切換測量方法來提高測量精度與測量速度。其測頻電路如圖2所示。
3 軟件設計
由圖2所示的測頻電路可知,波形經過施密特觸發(fā)器74LS132后,再經整形放大后即可變成方波,然后利用8051的定時器/計數器T0給定定時時間為10 ms,再利用8051的定時器/計數器T1作計數器,累計10 ms時間里所經過施密特觸發(fā)器74LS132的方波信號。當T0定時滿10 ms時,T0向CPU發(fā)出中斷信號以申請中斷,并進行頻率測量。假設所設定的中介頻率為l00/10 ms=l00100=10000 Hz=10 kHz,岡為fx=N/T,所以,可以將假定給定數值100與Tl進行比較,再將Tl計數器里所計的數值與給定的數值進行比較。由于在用測頻法測量頻率時,較小頻率的誤差較大(l誤差)。所以,這里用l0 kHz作為中間頻率,其1誤差為9.9 kHz和1 0.1 kHz,誤差率為1%,可見該誤差不是很大,還可以接受。
事實上,當頻率比較小于1 0kHz時,若程序選擇用測量周期法。則測周法流程圖及其程序如如圖3所示。
4 結束語
通過本文所介紹的設計過程即可實現(xiàn)頻率測量要求,并能夠很好的完成測量結果的存儲,完全能夠達到預期的效果。
評論