新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 單片機測頻率信號的參數分析

        單片機測頻率信號的參數分析

        ——
        作者: 時間:2006-07-01 來源: 收藏
          
         摘  要:  針對MCS---51、98系列定時/計數器的工作特點,本文通過對信號的分析,對不同參數的信號提出了不同的方法,通過分析闡明了方法的模塊性規律,系統地解決了用這一類問題。  

           1.引言

            無論何種類型的信號,連續的或離散的,有規律的或無規律的,對計算機控制系統而言,首先得通過前向通道的調理,使信號能夠被機器所檢測:高低電平的范圍,時序的配合、是否需要鎖存、是否需要分頻等等。

            測速、測V/I、測相位等一般都要用到信號,特別是在工業控制中。很多變送器如電壓、電量變速器,功率、行程變速器等都有頻率信號或者說脈沖信號的輸出。 頻率信號抗干擾性能好,適于遠距離傳送,并且頻率信號所需的接口簡單,占用資源少,一般它只占用一路計數器接口直接進行計數或一個中斷源輸入接口,在中斷服務程序中對脈沖進行計數,當然也可利用外部計數裝置輸入若干路通用I/O接口中。

            總之頻率信號的具有靈活的輸入方式,對頻率信號的各種參數的有重要的意義。頻率參數主要包括周期、高低電平的持續時間以及占空比。

            2. 周期的

            因為  周期=脈沖數/時間 ,為了計算出單位時間的脈沖數,首先要有一個時間基準。如果用的定時器進行定時則直接接入單片機內的信號的最高頻率取決于晶振頻率,由于所測信號的每一個脈沖的高低電平要持續至少一個機器周期,即它的周期不得高于2倍的機器周期;另一方面,一個機器周期等于6個狀態周期,一個狀態周期等于2個晶振周期。            故有: T待測<=24*T晶振。

            2.1低頻信號周期的測量   接線示意圖如圖1,前端屬于信號調理電路,工作原理是:用一個計數器,一個定時器,在設定的時間內對脈沖數進行累加;另一方法是一個定時器一個中斷口,中斷為下降沿觸發,在中斷程序中計數。

            很明顯,上述方法所得計數值會受到定時誤差的影響;在精度要求高的場合可以用外接精密脈沖源的方法來規避此誤差。即:使用外部脈沖進行比較計數時沒有定時原因造成的誤差。如圖2。此時會有如下的關系式:    F待測*COUNT標準=F標準 *CONNT待測 

         

        2.2   高頻信號周期的測量,圖3是一個典型的電路



            這個電路中各部分的功能說明如下:

            AD9686:將非TTL電平信號轉變為TTL電平,屬于前向調理電路。

            累加器是二進制計數器,目的是對信號進行分頻,MR為清零端。此處用了兩種不同性能的計數器,即74LS197和74LS93。其中LS197是四位二進制計數器,最高計數頻率100MHz,它可以進行16分頻,如果根據單片機的主頻計算分頻后的頻率仍然高于可測頻則需繼續分頻,當然對后面的分頻芯片的最高工作頻率的要求可以降低。各管腳的輸出為:

                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分頻

            本電路采用硬件控制方式,門控位置”1”時,74LS00打開,待測脈沖與基準脈沖同時進入外部硬件計數器計數,延時一定時間后,門控位置0,停止計數,根據此時的計數值我們有如下關系式:      COUNT待測/F待測=COUNT基準/F基準根據需要可只將相應的分頻管腳接入單片機內計數,也可采用I/O口全部讀入各位分頻腳的方法,由電路的結構,我們知道此電路有模塊化的優點。

            3 脈沖高電平持續時間的測量

            3.1當脈沖頻率較高,每周期高電平時間較短,為了保證精度,需對N次高電平的時間值進行平均。接線和流程示意圖如下:



            3.2當脈沖頻率較低時,意味著高電平持續時間較長,此時可用T0或T1的門控方式直接計數,為了防止從圖5中的B點開始計數,此時有兩種方法來減少誤差:利用軟件的方法:將待測信號經過一個非門接入中斷口,在中斷程序中同時打開門控方式的定時,從而保證了從脈沖的上升沿開始計數;也可用硬件方法確保從A點開始,這種方法說明如下,采用圖6的JK觸發器電路,當Fin的下降沿到來時,C點電位為高,送入INT0的為低電位。

            上述方法如果高電平時間超過了65535個計數值,則應對TF0標識進行判別來擴大計數量程。



        很顯然,只要脈沖信號取反輸入,我們就能得到其低電平持續時間的測量方法,此不多述。

            4 8098系列單片機的應用

            利用定時器計數,測脈沖的寬度。這種方法和上面的相似:通過檢測引腳的上跳變開中斷,同時記錄該時刻值T1,通過檢測引腳的下跳變關中斷,記錄該時刻的時刻值T2,T2 減 T1加上中斷記錄的中斷次數對應的時間就等于一個周期內高電平的持續時間。

            有特色的是使用8098中的HSI部件(高速輸入通道)。通過引腳輸入脈沖信號,同時可以以四種工作方式:正跳變、負跳變、正負均跳變、每8個正跳變觸發一次的方法記錄事件發生的時刻,而不占用CPU的時間。由于事件發生的時間以定時器T1作為時間基準,T1又是每8個狀態計數一次,每個狀態周期是晶振周期的3分頻,所以正負電平持續的時間均應大于12倍的晶振周期。當頻率過高時可以8分頻測頻,頻率可以直接測量時可用兩個HIS引腳輸入同一信號,分別記錄正跳變、負跳變時刻以及周期個數從而算出脈沖周期、正電平時間、負電平時間,進一步算出占空比。

            5 結論

            用單片機測頻,關鍵在于分頻、同步、計數量程這幾點;前述的方法,計數口和外部中斷口可互換使用,只是計數的實現不同,這要求輸入的方式做響應的變化;測出了脈沖信號的高低電位時間就可以利用單片機的運算功能測占空比。 
          
         


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阳曲县| 陆河县| 勐海县| 桓仁| 侯马市| 文山县| 新津县| 怀远县| 景洪市| 武邑县| 洪泽县| 兴国县| 上杭县| 汕头市| 丹东市| 青阳县| 庐江县| 农安县| 老河口市| 若尔盖县| 衡阳市| 浏阳市| 瓦房店市| 昌邑市| 抚松县| 普兰县| 全州县| 洞头县| 集安市| 冕宁县| 扎兰屯市| 托克逊县| 崇仁县| 大庆市| 璧山县| 皋兰县| 屯门区| 灵璧县| 株洲市| 深圳市| 通山县|