新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 填充計數式相位測量的分析與實現

        填充計數式相位測量的分析與實現

        作者: 時間:2012-11-09 來源:網絡 收藏
        一. 填充計數測量相位的原理

        要獲得兩個同頻信號間的相位值有多種實現方法。較為常用的一種是采用過零鑒相法,這種方法的基本要點是:將兩個同頻被測信號整形為兩個方波信號,其前后沿分別對應于被測信號的正向過零點和負向過零點,然后測量出這兩個同頻方波的前沿(或后沿)之間的時間差比例,即為這兩個被測信號之間的相位差,簡稱相差。

        而要獲得這個時間差比例,通常采用填充計數法,其基本原理見圖1,設A,B為兩路同頻待測的正弦波信號,兩信號經整形后形成A'和B'兩路方波,若A'的兩個前沿之間(一個信號周期)的的個數為N個,A'與B'的兩個相鄰前沿之間的的個數為n個,則A,B兩路之間的相位差為:

        n/N * 360° (1)

        二.頻率與相位計算精度的關系

        從上述方法測量相位的原理來看,要獲得兩個同頻信號間的相位差,只要獲得兩個計數值N和n,通過(1)式計算即可。那么相位計算的分辯率就為3600/N ,也就是表示相差的最小單位。當被測信號的頻率一定時,計數脈沖的頻率就決定了的精度。如在一個信號周期內所獲得的計數脈沖的個數為360個,則獲得相差的最小單位是3600/360=10(可看作是每個脈沖代表10)。若在一個信號周期內所獲得的計數脈沖的個數為3600個,則獲得相差的最小單位就為3600/3600=0.10(可看作是每個脈沖代表0.10)。由此可見在一個信號周期內所獲得的計數脈沖的個數越多,則獲得相位差的最小單位也就越小,精度也就越高。要達到0.10以上的精度,則計數脈沖的頻率必須是被測信號頻率的3600倍以上。設被測信號頻率為fx,計數脈沖頻率為fa ,則設計時應滿足:

        fa>3600×fx (2)

        三.利用MCS-51系列單片機片內資源實現的分析

        由于需要進行計算,目前市場上流行的相位表,多數為單純利用MSC─51系列機片內資源實現計數與計算。在典型的MSC-51系列單機片內,有2個16位的定時/計數器(CTC0,CTC1),5個中斷源,時鐘頻率為3.8-12MHz ,這些都為實現相位差的測量與計算提供了一定的硬件基礎。可利用片內2個定時/計數器,(CTC0,CTC1)分別記錄前面所述的N和n的計數值。將CTC0,CTC1設置為定時方式(計片內機器周期數)。兩個外部中斷INT0,INT1,設置成下沿觸發方式,并將上述A',B'兩個方波信號接至INT0,INT1的輸入端。利用INT0和INT1的中斷服務程序來控制CTC0,CTC1的啟動與停止,以此來獲取N和n的計數值。

        由于MCS-51系列單片機的最高工作頻率為12MHZ,故CTC0,CTC1的最高計數頻率為1MHz。16位字長的CTC0和CTC1計數范圍是0ー65535。對于1MHz的計數頻率而言,輸入信號的頻率響應范圍的下限是:在一個信號周期內CTC的計數從零計到最大65535,而每一計數脈沖的周期是1μS(1MHz的計數脈沖)。故CTC從零計到最大值所需時間是:65535 * 1μS=65535μS,因而,輸入信號的最低頻率約為1/0.065535=15.26Hz。頻率響應的上限是:雖然在一個信號周期內CTC的計數值大于零即可計算,但為了使計算結果具有足夠的精度(至少0.10),故記錄N值的CTC在一個信號周期內的計數值必須大于3600(因3600/3600=0.10)而CTC從零計數到3600所需時間為3600*1μS=3600μS。由此可得輸入信號的最高頻率約為1/0.0036=277.78Hz。

        在最高的輸入信號頻率下,每一個計數脈沖即代表0.10機器每多計或少計一個脈沖就意味著帶來一個0.10的誤差。另外由于CTC的啟停是由中斷服務程序來控制的,那么CTC啟停時刻不能絕對代表信號的下沿時刻,故誤差是不可避免。當信號頻率較低時,其誤差尚可忽略。當信號頻率越接近最高響應頻率,其單片機所帶來的誤差就越不可忽略。以這樣的方式構成的相位計,實際上的最高響應頻率僅在100Hz左右。

        四.高頻計數的實現

        從以上分析得知,若僅利用單片機的資源來實現相差的測量,是無法以高精度測得較高頻率信號的相位差的。其關鍵所在是計數頻率已無法再提高。鑒于這點筆者考慮到不用單片機內部的CTC計數,而是采用廉價的74系列芯片搭成高速計數,鎖存電路。當計數值鎖定這后,再讀入單片機進行計算和顯示。

        具體實現的電路圖如圖2所示。高速計數器由4片74LS191串聯組成16位計數器。計數脈沖的輸入由一個觸發器控制,觸發器設計成自鎖式,即由被測的周期信號A'鎖定一個完整的信號周期后,封鎖計數脈沖的輸入 ,不再響應后一個周期,待單片機處理完該周期內的數據后,由單片機先對計數器清零,然后解除觸發器的封鎖,系統才繼續采集下一個信號周期的數據。周期計數鎖存器(記N值)由74LS373(U8),(U7)組成,相差計數鎖存器(記n值)由74LS373(U6),(U5)組成,其中(U5),(U7)鎖存低8位數據,(U6) ,(U8)鎖存高8位數據,當A'信號的上沿來臨時,由觸發器打開U10門,開始計數。當B' 信號的上沿來臨時,鎖存U6,U5(獲得n值)。當A'信號的上沿再次來臨時,鎖存U8,U7(獲得N值)。并封鎖觸發器。通知單片機依次讀入U5,U6,U7,U8的鎖存值進行計算。高頻振蕩源采用高精度晶體振蕩器,以提供高精度的計數脈沖。

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 会泽县| 文水县| 栖霞市| 文昌市| 东乌珠穆沁旗| 德兴市| 江门市| 朝阳市| 土默特左旗| 县级市| 肇东市| 汕头市| 南宫市| 宜黄县| 渑池县| 时尚| 梨树县| 双桥区| 深圳市| 龙山县| 荣昌县| 绿春县| 老河口市| 宜兰市| 广河县| 阿图什市| 苗栗县| 冕宁县| 云南省| 威海市| 东港市| 从江县| 丰顺县| 龙井市| 永德县| 徐州市| 敦煌市| 郯城县| 翁源县| 南木林县| 鄱阳县|