文/朱偉
頻率計(jì)是獲取未知信號頻率的精密測量裝置,頻率測量電路不斷更新發(fā)展,先后出現(xiàn)了TTL數(shù)字集成電路,專用大型IC,如ICM7216頻率計(jì)芯片,單片機(jī)數(shù)字頻率測量,F(xiàn)PGA高速處理器頻率測量等,前兩種方案現(xiàn)在已經(jīng)基本淘汰,F(xiàn)PGA高速處理器適合高頻率高精度信號測量,但該方法實(shí)現(xiàn)成本高且編程復(fù)雜,在一些小型設(shè)備中并不實(shí)用。本文提出基于低成本高性能STC8A8K16S4A12 單片機(jī)的頻率計(jì)的設(shè)計(jì)方法,高速比較器 TLV3501用于對前級輸入信號進(jìn)行整形,該器件延遲時(shí)間為4.5ns,輸入失調(diào)電壓小于6.5mV,小信號比較效果好,能將微弱的交流電壓信號轉(zhuǎn)換為 TTL電平,可以被單片機(jī)端口直接識別。
系統(tǒng)總體框圖如圖1所示。采用TLV3501 軌對軌高速比較器對輸入信號進(jìn)行比較整形,當(dāng)被測信號幅值為100 mV~2 V 的正弦波信號時(shí),通過直通開關(guān)輸入TLV3501進(jìn)行比較,信號幅值大于2V時(shí),直通開關(guān)斷開,信號經(jīng)過一個(gè)電阻Π型衰減器,衰減20dB后輸入。如幅值2V的輸入信號經(jīng)過衰減得到200mV 信號,送比較器作比較,輸出效果良好,通過衰減最大可以滿足幅值為20V的輸入信號測量,且不需要再設(shè)計(jì)其他硬件電路,調(diào)試也比較簡單。
系統(tǒng)以STC8A8K16S4A12單片機(jī)為控制核心,被測信號變成方波信號后,利用單片機(jī)的定時(shí)/計(jì)數(shù)器功能對其進(jìn)行計(jì)數(shù)。編寫相應(yīng)的程序可以使單片機(jī)完成計(jì)數(shù)、運(yùn)算和測量參數(shù)顯示等功能。系統(tǒng)使用直流5V供電,使用高精度溫補(bǔ)晶振作時(shí)鐘源,以及16位定時(shí)器重載工作方式來進(jìn)一步提高測量精度。
圖1:頻率計(jì)方案設(shè)計(jì)框圖
圖2:TLV3501比較整形電路原理圖
考慮被測信號頻率和幅值的隨機(jī)性,當(dāng)輸入信號幅值為毫伏量級的微弱信號時(shí),單片機(jī)輸入引腳不能直接識別,必須通用整形電路處理,通常由寬帶放大器放大再經(jīng)高速比較器比較才可以得到脈沖信號,但是引入放大器件在高頻輸入時(shí)容易自激,抗干擾能力也差,普通高速比較器也不能直接輸出TTL信號,單片機(jī)讀取錯(cuò)誤率高,故嘗試采用德州儀器公司的高速軌至軌比較器TLV3501 將正弦波轉(zhuǎn)換為方波,該器件是推挽輸出的比較器,其輸出邏輯電平取決于比較器的電源電壓,并且屬于軌至軌I/O,能輸出標(biāo)準(zhǔn)TTL信號,同時(shí)具有低延遲時(shí)間4.5 ns,輸入失調(diào)電壓小于6.5mV,非常適合低電壓高速信號的比較。如圖2所示。
圖3:Π型衰減電路原理圖
衰減器的主要功能是衰減大幅度輸入信號,與TLV3501的輸入電壓范圍一致。這里采用一簡單Π型衰減器(圖3)將其衰減20dB。經(jīng)過衰減器輔助設(shè)計(jì)工具軟件計(jì)算,得R3=R5=61.11Ω,R4=247.5Ω,設(shè)計(jì)時(shí)選用E24系列電阻,取值R3=R5=62Ω,R4=240Ω,則實(shí)際衰減值為19.68dB。
頻率計(jì)的控制核心選用宏晶科技有限公司生產(chǎn)的STC8A8K16S4A12單片機(jī),該單片機(jī)是超高速8051內(nèi)核,比傳統(tǒng)8051快12倍以上,指令代碼兼容傳統(tǒng)8051,具有豐富的外設(shè)和片上資源,成本低,應(yīng)用較為方便。頻率計(jì)MCU最小系統(tǒng)原理如圖4所示,MCU的時(shí)鐘可以在內(nèi)部IRC和外部時(shí)鐘之間配置,最高工作頻率為33Mhz,這里為了提高頻率測量精度和測量上限,選用32Mhz溫補(bǔ)有源晶振作為外部時(shí)鐘源,精度+-1.5ppm,晶振輸出振蕩信號經(jīng)第9引腳送入單片機(jī)。
頻率計(jì)的軟件設(shè)計(jì)采用Keil C語言設(shè)計(jì),整體采用功能模塊化設(shè)計(jì)方法,程序有初始化模塊、定時(shí)計(jì)數(shù)器功能模塊、計(jì)算和顯示等模塊組成。系統(tǒng)軟件流程如圖5 所示。上電后,首先初始化MCU,然后將T0設(shè)置為計(jì)數(shù)器模式,并將T1設(shè)置為2ms自動(dòng)重載定時(shí)器工作模式。在每次進(jìn)入定時(shí)器中斷處理過程中,取T0的計(jì)數(shù)值并進(jìn)行累加,直到計(jì)滿160次后,用平均值濾波法求取被測頻率值以減小誤差,最后數(shù)據(jù)經(jīng)過調(diào)整送LCD顯示。
表1:測量結(jié)果及誤差
經(jīng)過整形處理后的被測頻率信號由單片機(jī)的P3.4 腳輸入計(jì)數(shù),在定時(shí)器中斷處理程序中,對計(jì)數(shù)器溢出標(biāo)志TF0進(jìn)行判斷并進(jìn)行分支程序處理,可在單個(gè)定時(shí)周期內(nèi)實(shí)現(xiàn)最大131070個(gè)脈沖計(jì)數(shù),當(dāng)T1連續(xù)中斷160次后,進(jìn)行平均值濾波求出被測頻率,這里采用移位算法求平均值來提高單片機(jī)運(yùn)行效率,最后數(shù)據(jù)經(jīng)過調(diào)整送LCD顯示。
計(jì)數(shù)并求出被測頻率的主要程序:
實(shí)驗(yàn)測試中采用32 M有源溫補(bǔ)晶振作為系統(tǒng)時(shí)鐘,在室溫條件下對信號發(fā)生器輸出幅值1V的正弦波信號進(jìn)行測量,結(jié)果如表1。
從實(shí)驗(yàn)結(jié)果可以看出,在低頻段1KHz測量時(shí)誤差高達(dá)60%,這實(shí)際上是因測量信號頻率和二倍采樣頻率接近,造成輸入信號脈沖無法正常識別造成的測量錯(cuò)誤所致,應(yīng)當(dāng)舍棄,輸入大于 10Khz進(jìn)入頻率正常測量范圍。高頻段根據(jù)系統(tǒng)時(shí)鐘可計(jì)算出理論輸入頻率最大值為16M,但因單片機(jī)端口的工作速率等限制,在15Mhz輸入信號時(shí),已經(jīng)出現(xiàn)4.25%的誤差,所以可靠頻率測量上限是14MHz。通過實(shí)測,在0.1Mhz-14Mhz范圍內(nèi)相對誤差小于0.3‰,可見采用本設(shè)計(jì)方法能達(dá)到較高的精度要求。
圖4:STC8A8K16S4A12單片機(jī)最小系統(tǒng)原理圖
以STC8A8K16S4A12單片機(jī)為核心設(shè)計(jì)一款數(shù)字頻率計(jì),軌至軌高速比較器的使用,降低了信號前端處理電路的設(shè)計(jì)難度,擴(kuò)大了輸入信號幅度的范圍,可以測量正弦波信號輸入電壓RMS值的范圍為100mV至20V,頻率范圍為10Khz至14Mhz。測量范圍內(nèi)的相對誤差小于0.5‰,實(shí)際系統(tǒng)相對簡單,成本低,實(shí)用。系統(tǒng)中低頻測量精度不高且測量下限偏高,在后續(xù)完善的時(shí)候可以考慮低頻段將計(jì)數(shù)器測頻轉(zhuǎn)變?yōu)闇y周期,利用頻率與周期互為倒數(shù)關(guān)系換算其頻率值,用于增加低頻信號的測量精度和測量范圍。
圖5:軟件流程設(shè)計(jì)