單片機(jī)測(cè)頻率信號(hào)的參數(shù)分析
摘 要: 針對(duì)MCS---51、98系列單片機(jī)定時(shí)/計(jì)數(shù)器的工作特點(diǎn),本文通過(guò)對(duì)頻率信號(hào)的分析,對(duì)不同參數(shù)的信號(hào)提出了不同的方法,通過(guò)分析闡明了方法的模塊性規(guī)律,系統(tǒng)地解決了用單片機(jī)測(cè)頻率這一類(lèi)問(wèn)題。
關(guān)鍵詞: 單片機(jī) 頻率 頻率的特征參數(shù)
1.引言
無(wú)論何種類(lèi)型的信號(hào),連續(xù)的或離散的,有規(guī)律的或無(wú)規(guī)律的,對(duì)計(jì)算機(jī)控制系統(tǒng)而言,首先得通過(guò)前向通道的調(diào)理,使信號(hào)能夠被機(jī)器所檢測(cè):高低電平的范圍,時(shí)序的配合、是否需要鎖存、是否需要分頻等等。
測(cè)速、測(cè)V/I、測(cè)相位等一般都要用到頻率信號(hào),特別是在工業(yè)控制中。很多變送器如電壓、電量變速器,功率、行程變速器等都有頻率信號(hào)或者說(shuō)脈沖信號(hào)的輸出。 頻率信號(hào)抗干擾性能好,適于遠(yuǎn)距離傳送,并且頻率信號(hào)所需的接口簡(jiǎn)單,占用資源少,一般它只占用一路計(jì)數(shù)器接口直接進(jìn)行計(jì)數(shù)或一個(gè)中斷源輸入接口,在中斷服務(wù)程序中對(duì)脈沖進(jìn)行計(jì)數(shù),當(dāng)然也可利用外部計(jì)數(shù)裝置輸入若干路通用I/O接口中。
總之頻率信號(hào)的測(cè)量具有靈活的輸入方式,對(duì)頻率信號(hào)的各種參數(shù)的測(cè)量有重要的意義。頻率參數(shù)主要包括周期、高低電平的持續(xù)時(shí)間以及占空比。
2. 周期的測(cè)量
因?yàn)?nbsp; 周期=脈沖數(shù)/時(shí)間 ,為了計(jì)算出單位時(shí)間的脈沖數(shù),首先要有一個(gè)時(shí)間基準(zhǔn)。如果用單片機(jī)的定時(shí)器進(jìn)行定時(shí)則直接接入單片機(jī)內(nèi)的信號(hào)的最高頻率取決于晶振頻率,由于所測(cè)信號(hào)的每一個(gè)脈沖的高低電平要持續(xù)至少一個(gè)機(jī)器周期,即它的周期不得高于2倍的機(jī)器周期;另一方面,一個(gè)機(jī)器周期等于6個(gè)狀態(tài)周期,一個(gè)狀態(tài)周期等于2個(gè)晶振周期。 故有: T待測(cè)<=24*T晶振。
2.1低頻信號(hào)周期的測(cè)量
接線示意圖如圖1,前端屬于信號(hào)調(diào)理電路,工作原理是:用一個(gè)計(jì)數(shù)器,一個(gè)定時(shí)器,在設(shè)定的時(shí)間內(nèi)對(duì)脈沖數(shù)進(jìn)行累加;另一方法是一個(gè)定時(shí)器一個(gè)中斷口,中斷為下降沿觸發(fā),在中斷程序中計(jì)數(shù)。
很明顯,上述方法所得計(jì)數(shù)值會(huì)受到定時(shí)誤差的影響;在精度要求高的場(chǎng)合可以用外接精密脈沖源的方法來(lái)規(guī)避此誤差。即:使用外部脈沖進(jìn)行比較計(jì)數(shù)時(shí)沒(méi)有定時(shí)原因造成的誤差。如圖2。此時(shí)會(huì)有如下的關(guān)系式: F待測(cè)*COUNT標(biāo)準(zhǔn)=F標(biāo)準(zhǔn) *CONNT待測(cè)
2.2 高頻信號(hào)周期的測(cè)量,圖3是一個(gè)典型的電路
這個(gè)電路中各部分的功能說(shuō)明如下:
AD9686:將非TTL電平信號(hào)轉(zhuǎn)變?yōu)門(mén)TL電平,屬于前向調(diào)理電路。
累加器是二進(jìn)制計(jì)數(shù)器,目的是對(duì)信號(hào)進(jìn)行分頻,MR為清零端。此處用了兩種不同性能的計(jì)數(shù)器,即74LS197和74LS93。其中LS197是四位二進(jìn)制計(jì)數(shù)器,最高計(jì)數(shù)頻率100MHz,它可以進(jìn)行16分頻,如果根據(jù)單片機(jī)的主頻計(jì)算分頻后的頻率仍然高于可測(cè)頻則需繼續(xù)分頻,當(dāng)然對(duì)后面的分頻芯片的最高工作頻率的要求可以降低。各管腳的輸出為:
74LS197的輸出: 74LS93的輸出:
Q1:Fin的2分頻 Q2:Fin的4分頻 Q1:Fin的32分頻 Q2:Fin的64分頻
Q3:Fin的8分頻 Q1:Fin的16分頻 Q3:Fin的128分頻 Q1:Fin的256分頻
本電路采用硬件控制方式,門(mén)控位置”1”時(shí),74LS00打開(kāi),待測(cè)脈沖與基準(zhǔn)脈沖同時(shí)進(jìn)入外部硬件計(jì)數(shù)器計(jì)數(shù),延時(shí)一定時(shí)間后,門(mén)控位置0,停止計(jì)數(shù),根據(jù)此時(shí)的計(jì)數(shù)值我們有如下關(guān)系式: COUNT待測(cè)/F待測(cè)=COUNT基準(zhǔn)/F基準(zhǔn)根據(jù)需要可只將相應(yīng)的分頻管腳接入單片機(jī)內(nèi)計(jì)數(shù),也可采用I/O口全部讀入各位分頻腳的方法,由電路的結(jié)構(gòu),我們知道此電路有模塊化的優(yōu)點(diǎn)。
3 脈沖高電平持續(xù)時(shí)間的測(cè)量
3.1當(dāng)脈沖頻率較高,每周期高電平時(shí)間較短,為了保證精度,需對(duì)N次高電平的時(shí)間值進(jìn)行平均。接線和流程示意圖如下:
3.2當(dāng)脈沖頻率較低時(shí),意味著高電平持續(xù)時(shí)間較長(zhǎng),此時(shí)可用T0或T1的門(mén)控方式直接計(jì)數(shù),為了防止從圖5中的B點(diǎn)開(kāi)始計(jì)數(shù),此時(shí)有兩種方法來(lái)減少誤差:利用軟件的方法:將待測(cè)信號(hào)經(jīng)過(guò)一個(gè)非門(mén)接入中斷口,在中斷程序中同時(shí)打開(kāi)門(mén)控方式的定時(shí),從而保證了從脈沖的上升沿開(kāi)始計(jì)數(shù);也可用硬件方法確保從A點(diǎn)開(kāi)始,這種方法說(shuō)明如下,采用圖6的JK觸發(fā)器電路,當(dāng)Fin的下降沿到來(lái)時(shí),C點(diǎn)電位為高,送入INT0的為低電位。
上述方法如果高電平時(shí)間超過(guò)了65535個(gè)計(jì)數(shù)值,則應(yīng)對(duì)TF0標(biāo)識(shí)進(jìn)行判別來(lái)擴(kuò)大計(jì)數(shù)量程。
很顯然,只要脈沖信號(hào)取反輸入,我們就能得到其低電平持續(xù)時(shí)間的測(cè)量方法,此不多述。
4 8098系列單片機(jī)的應(yīng)用
利用定時(shí)器計(jì)數(shù),測(cè)脈沖的寬度。這種方法和上面的相似:通過(guò)檢測(cè)引腳的上跳變開(kāi)中斷,同時(shí)記錄該時(shí)刻值T1,通過(guò)檢測(cè)引腳的下跳變關(guān)中斷,記錄該時(shí)刻的時(shí)刻值T2,T2 減 T1加上中斷記錄的中斷次數(shù)對(duì)應(yīng)的時(shí)間就等于一個(gè)周期內(nèi)高電平的持續(xù)時(shí)間。
有特色的是使用8098中的HSI部件(高速輸入通道)。通過(guò)引腳輸入脈沖信號(hào),同時(shí)可以以四種工作方式:正跳變、負(fù)跳變、正負(fù)均跳變、每8個(gè)正跳變觸發(fā)一次的方法記錄事件發(fā)生的時(shí)刻,而不占用CPU的時(shí)間。由于事件發(fā)生的時(shí)間以定時(shí)器T1作為時(shí)間基準(zhǔn),T1又是每8個(gè)狀態(tài)計(jì)數(shù)一次,每個(gè)狀態(tài)周期是晶振周期的3分頻,所以正負(fù)電平持續(xù)的時(shí)間均應(yīng)大于12倍的晶振周期。當(dāng)頻率過(guò)高時(shí)可以8分頻測(cè)頻,頻率可以直接測(cè)量時(shí)可用兩個(gè)HIS引腳輸入同一信號(hào),分別記錄正跳變、負(fù)跳變時(shí)刻以及周期個(gè)數(shù)從而算出脈沖周期、正電平時(shí)間、負(fù)電平時(shí)間,進(jìn)一步算出占空比。
5 結(jié)論
用單片機(jī)測(cè)頻,關(guān)鍵在于分頻、同步、計(jì)數(shù)量程這幾點(diǎn);前述的方法,計(jì)數(shù)口和外部中斷口可互換使用,只是計(jì)數(shù)的實(shí)現(xiàn)不同,這要求輸入的方式做響應(yīng)的變化;測(cè)出了脈沖信號(hào)的高低電位時(shí)間就可以利用單片機(jī)的運(yùn)算功能測(cè)占空比。
評(píng)論