• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP2812設計的簡易數字頻率計

    基于DSP2812設計的簡易數字頻率計

    作者: 時間:2012-06-27 來源:網絡 收藏

    基于DSP2812設計的簡易數字頻率計

    圖3 本等精度頻率測量原理

      通用定時器T1時鐘輸入選擇外部定時器時鐘,此處用調理后的被測信號作為定時器T1的時鐘輸入,定時器T2時鐘輸入選擇內部CPU時鐘,用來產生高頻標準填充脈沖。F2812片上EVA中通用定時器T1在發生比較匹配事件時,其比較輸出引腳T1CMP輸出信號會自動改變電平狀態,產生PWM波。捕獲單元CAP1設置為上升沿捕獲,T1PWM輸出的PWM波上升沿被CAP1捕獲到,讀取此時定時器T2的計數值,同理在下一次比較匹配時再次讀取定時器T2的計數值。通過兩次T2CNT值的相減,即可獲得該門閘時間內標準填充脈沖的個數,然后求出被測信號頻率。

      基于比較匹配時T1PWM引腳輸出電平的跳變作為門閘信號的開啟和關閉,由于比較匹配發生在被測信號的上升沿,從而實現了門閘時間與被測信號的同步。兩個相鄰的比較匹配產生的PWM波的上升沿分別作為門閘信號的開啟和關閉信號,其中被測信號的個數為整數,并且是由我們自己任意設定的。定時器T2時鐘輸入選擇內部CPU時鐘,用來產生標準填充脈沖。設定捕獲單元CAP1為上升沿捕獲,當其捕獲到上升沿時讀取堆棧CAPFIFO內的值,在下一次捕獲到時再讀堆棧內的值,計算出標準填充脈沖的個數Ny,保證Ny的個數不小于一定的值,即可保證門閘時間大于一定的值。假設現在希望一個門閘時間內高頻填充脈沖的總數不小于n,當Ny>n時,就增大定時器T1的定時周期,即增大定時器T1周期寄存器TIPR的值。存在公式T1PR+1=n/Ny,由于n/Ny不一定為整數,假an/Nya+1(a為整數),則取n/Ny=a+1,表現在被測信號上,則與傳統的用硬件控制一樣,用下一個被測信號的上升沿作為門閘信號的關閉信號,只不過該上升沿發生在下一次的比較匹配時。然后,再在該門閘時間內讀取高頻填充脈沖的個數,有Ny≥n,從而得出高精度的被測信號頻率。在本設計中,定時器T1并不關閉,前一門閘時間的關閉信號同時作為下一門閘信號的開啟信號。

      周期測量與頻率測量的基本原理完全相同,測出信號頻率,根據公T=1/f即可得出被測信號的周期。

      誤差分析

      定時器T1計數的啟停時間都是由該信號的上升沿觸發的,在一次測量時間內對被測信號的計數無誤差;在此時間內標準頻率脈沖的計數個數Ny,最多相差一個脈沖,故理論誤差為:

      |d|≤1/Ny

      顯然,測量精度僅僅與Ny有關,只要Ny值足夠大,就能保證精度。

      硬件設計

      如圖4所示,將被測信號經過高速運放OPA2690進行放大,在經過高速比較器TL3016進行整形[3],由于比較器在對低頻正弦波信號進行整形時,輸出波形的邊沿有比較嚴重的抖動,影響測量。解決辦法是對比較器加入正反饋,加速信號邊沿,同時形成滯環,可有效消除抖動。整形后的信號經過高速施密特觸發SN74LVC1G14進行限幅和進一步整形。測量部分主要使用2812芯片上定時器T1的時鐘輸入引腳TCLKINA、定時器T1的比較輸出引腳T1PWM和捕獲單元CAP1的輸入引腳CAP1,即可完成頻率測量。通訊部分選擇MAX3221作為RS-232電平轉換器件,通過9芯標準RS-232口與上位機進行串行通信。主要使用了的串行通信發送引腳SCIRXD和串行通信接收引腳SCITXD。

    基于DSP2812設計的簡易數字頻率計

    圖4 硬件電路連接圖

      軟件設計

      軟件設計部分主要包括以下四部分:

    ·初始化:對變量參數、系統時鐘、PIE、EV、Flash、GPIO等進行配置。
    ·中斷模塊:SCI中斷和定時器T2、T3上溢中斷。
    ·數據處理模塊:分段+取算術平均值。
    ·輸出操作模塊:數據經RS-232傳給上位機。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 民权县| 东莞市| 贵阳市| 台南县| 饶阳县| 肇州县| 永定县| 同江市| 武宁县| 五常市| 河间市| 外汇| 九龙城区| 南宁市| 太湖县| 博湖县| 贺州市| 木兰县| 山东| 石楼县| 卢湾区| 崇义县| 遵义县| 江川县| 蕉岭县| 镇平县| 邹平县| 仪陇县| 新乐市| 安新县| 平南县| 安乡县| 行唐县| 绥阳县| 天长市| 昌黎县| 日土县| 绥化市| 海晏县| 峨边| 手游|