填充計(jì)數(shù)式相位測(cè)量的分析與實(shí)現(xiàn)
要獲得兩個(gè)同頻信號(hào)間的相位值有多種實(shí)現(xiàn)方法。較為常用的一種是采用過零鑒相法,這種方法的基本要點(diǎn)是:將兩個(gè)同頻被測(cè)信號(hào)整形為兩個(gè)方波信號(hào),其前后沿分別對(duì)應(yīng)于被測(cè)信號(hào)的正向過零點(diǎn)和負(fù)向過零點(diǎn),然后測(cè)量出這兩個(gè)同頻方波的前沿(或后沿)之間的時(shí)間差比例,即為這兩個(gè)被測(cè)信號(hào)之間的相位差,簡(jiǎn)稱相差。
而要獲得這個(gè)時(shí)間差比例,通常采用填充計(jì)數(shù)法,其基本原理見圖1,設(shè)A,B為兩路同頻待測(cè)的正弦波信號(hào),兩信號(hào)經(jīng)整形后形成A'和B'兩路方波,若A'的兩個(gè)前沿之間(一個(gè)信號(hào)周期)的計(jì)數(shù)脈沖的個(gè)數(shù)為N個(gè),A'與B'的兩個(gè)相鄰前沿之間的計(jì)數(shù)脈沖的個(gè)數(shù)為n個(gè),則A,B兩路之間的相位差為:
n/N * 360° (1) 二.計(jì)數(shù)脈沖頻率與相位計(jì)算精度的關(guān)系
從上述方法測(cè)量相位的原理來看,要獲得兩個(gè)同頻信號(hào)間的相位差,只要獲得兩個(gè)計(jì)數(shù)值N和n,通過(1)式計(jì)算即可。那么相位計(jì)算的分辯率就為3600/N ,也就是表示相差的最小單位。當(dāng)被測(cè)信號(hào)的頻率一定時(shí),計(jì)數(shù)脈沖的頻率就決定了相位測(cè)量的精度。如在一個(gè)信號(hào)周期內(nèi)所獲得的計(jì)數(shù)脈沖的個(gè)數(shù)為360個(gè),則獲得相差的最小單位是3600/360=10(可看作是每個(gè)脈沖代表10)。若在一個(gè)信號(hào)周期內(nèi)所獲得的計(jì)數(shù)脈沖的個(gè)數(shù)為3600個(gè),則獲得相差的最小單位就為3600/3600=0.10(可看作是每個(gè)脈沖代表0.10)。由此可見在一個(gè)信號(hào)周期內(nèi)所獲得的計(jì)數(shù)脈沖的個(gè)數(shù)越多,則獲得相位差的最小單位也就越小,精度也就越高。要達(dá)到0.10以上的精度,則計(jì)數(shù)脈沖的頻率必須是被測(cè)信號(hào)頻率的3600倍以上。設(shè)被測(cè)信號(hào)頻率為fx,計(jì)數(shù)脈沖頻率為fa ,則設(shè)計(jì)時(shí)應(yīng)滿足:
fa>3600×fx (2)
三.利用MCS-51系列單片機(jī)片內(nèi)資源實(shí)現(xiàn)相位測(cè)量的分析
由于需要進(jìn)行計(jì)算,目前市場(chǎng)上流行的相位表,多數(shù)為單純利用MSC─51系列機(jī)片內(nèi)資源實(shí)現(xiàn)計(jì)數(shù)與計(jì)算。在典型的MSC-51系列單機(jī)片內(nèi),有2個(gè)16位的定時(shí)/計(jì)數(shù)器(CTC0,CTC1),5個(gè)中斷源,時(shí)鐘頻率為3.8-12MHz ,這些都為實(shí)現(xiàn)相位差的測(cè)量與計(jì)算提供了一定的硬件基礎(chǔ)??衫闷瑑?nèi)2個(gè)定時(shí)/計(jì)數(shù)器,(CTC0,CTC1)分別記錄前面所述的N和n的計(jì)數(shù)值。將CTC0,CTC1設(shè)置為定時(shí)方式(計(jì)片內(nèi)機(jī)器周期數(shù))。兩個(gè)外部中斷INT0,INT1,設(shè)置成下沿觸發(fā)方式,并將上述A',B'兩個(gè)方波信號(hào)接至INT0,INT1的輸入端。利用INT0和INT1的中斷服務(wù)程序來控制CTC0,CTC1的啟動(dòng)與停止,以此來獲取N和n的計(jì)數(shù)值。
由于MCS-51系列單片機(jī)的最高工作頻率為12MHZ,故CTC0,CTC1的最高計(jì)數(shù)頻率為1MHz。16位字長(zhǎng)的CTC0和CTC1計(jì)數(shù)范圍是0ー65535。對(duì)于1MHz的計(jì)數(shù)頻率而言,輸入信號(hào)的頻率響應(yīng)范圍的下限是:在一個(gè)信號(hào)周期內(nèi)CTC的計(jì)數(shù)從零計(jì)到最大65535,而每一計(jì)數(shù)脈沖的周期是1μS(1MHz的計(jì)數(shù)脈沖)。故CTC從零計(jì)到最大值所需時(shí)間是:65535 * 1μS=65535μS,因而,輸入信號(hào)的最低頻率約為1/0.065535=15.26Hz。頻率響應(yīng)的上限是:雖然在一個(gè)信號(hào)周期內(nèi)CTC的計(jì)數(shù)值大于零即可計(jì)算,但為了使計(jì)算結(jié)果具有足夠的精度(至少0.10),故記錄N值的CTC在一個(gè)信號(hào)周期內(nèi)的計(jì)數(shù)值必須大于3600(因3600/3600=0.10)而CTC從零計(jì)數(shù)到3600所需時(shí)間為3600*1μS=3600μS。由此可得輸入信號(hào)的最高頻率約為1/0.0036=277.78Hz。
在最高的輸入信號(hào)頻率下,每一個(gè)計(jì)數(shù)脈沖即代表0.10機(jī)器每多計(jì)或少計(jì)一個(gè)脈沖就意味著帶來一個(gè)0.10的誤差。另外由于CTC的啟停是由中斷服務(wù)程序來控制的,那么CTC啟停時(shí)刻不能絕對(duì)代表信號(hào)的下沿時(shí)刻,故誤差是不可避免。當(dāng)信號(hào)頻率較低時(shí),其誤差尚可忽略。當(dāng)信號(hào)頻率越接近最高響應(yīng)頻率,其單片機(jī)所帶來的誤差就越不可忽略。以這樣的方式構(gòu)成的相位計(jì),實(shí)際上的最高響應(yīng)頻率僅在100Hz左右。
四.高頻計(jì)數(shù)的實(shí)現(xiàn)
從以上分析得知,若僅利用單片機(jī)的資源來實(shí)現(xiàn)相差的測(cè)量,是無法以高精度測(cè)得較高頻率信號(hào)的相位差的。其關(guān)鍵所在是計(jì)數(shù)頻率已無法再提高。鑒于這點(diǎn)筆者考慮到不用單片機(jī)內(nèi)部的CTC計(jì)數(shù),而是采用廉價(jià)的74系列芯片搭成高速計(jì)數(shù),鎖存電路。當(dāng)計(jì)數(shù)值鎖定這后,再讀入單片機(jī)進(jìn)行計(jì)算和顯示。
具體實(shí)現(xiàn)的電路圖如圖2所示。高速計(jì)數(shù)器由4片74LS191串聯(lián)組成16位計(jì)數(shù)器。計(jì)數(shù)脈沖的輸入由一個(gè)觸發(fā)器控制,觸發(fā)器設(shè)計(jì)成自鎖式,即由被測(cè)的周期信號(hào)A'鎖定一個(gè)完整的信號(hào)周期后,封鎖計(jì)數(shù)脈沖的輸入 ,不再響應(yīng)后一個(gè)周期,待單片機(jī)處理完該周期內(nèi)的數(shù)據(jù)后,由單片機(jī)先對(duì)計(jì)數(shù)器清零,然后解除觸發(fā)器的封鎖,系統(tǒng)才繼續(xù)采集下一個(gè)信號(hào)周期的數(shù)據(jù)。周期計(jì)數(shù)鎖存器(記N值)由74LS373(U8),(U7)組成,相差計(jì)數(shù)鎖存器(記n值)由74LS373(U6),(U5)組成,其中(U5),(U7)鎖存低8位數(shù)據(jù),(U6) ,(U8)鎖存高8位數(shù)據(jù),當(dāng)A'信號(hào)的上沿來臨時(shí),由觸發(fā)器打開U10門,開始計(jì)數(shù)。當(dāng)B' 信號(hào)的上沿來臨時(shí),鎖存U6,U5(獲得n值)。當(dāng)A'信號(hào)的上沿再次來臨時(shí),鎖存U8,U7(獲得N值)。并封鎖觸發(fā)器。通知單片機(jī)依次讀入U(xiǎn)5,U6,U7,U8的鎖存值進(jìn)行計(jì)算。高頻振蕩源采用高精度晶體振蕩器,以提供高精度的計(jì)數(shù)脈沖。
評(píng)論