摘要:本文中筆者對多功能計數器的原理及設計理念進行了具體的分析和介紹,同時為實際相關的操作提供了參考。
關鍵詞:FPGA DDS 頻率計 相位測量儀 周期測量
本設計由MSP430單片機控制各分離模塊間的通信與工作,其中測頻率、測周期、測相位差等主要功能由FPGA模塊實現。
1 方案論證與比較
1.1 頻率測量方案論證
方案一:分頻段測頻率、測周期。
采用傳統的測頻方法測定頻率為1~10MHz的正弦波信號。
方案二:采用高精度恒誤差測頻法。
高精度恒誤差原理方框圖如圖1所示。當單片機發出“開始測量相位”指令后,控制電路先輸出一個清零脈沖,將兩個計數器清零,再將控制信號設置成高電平。這時D觸發器的Q端為低電平,兩個計數器尚未開始計數。被測信號的上升沿到來時,D觸發器翻轉,其Q端變為高電平,同時啟動計數器1和計數器2,分別對標準頻率方波信號(頻率為f0)和被測信號(頻率為fx)計數。從門控制信號被置為高電平開始,經過Tg時間,控制電路將門控信號置為低電平。設在一定時間內,被測信計數值為N2,標準頻率信號值為N2,可以由公式fx =(N2÷N1)f0算出頻率值。
根據誤差傳遞公式可以得到:
由此可見,測量精度與待測信號的頻率無關。這樣可以使測量誤差低于10-6,所以我們選擇采用此方案。
1.2 自制移相網絡方案論證
方案一:模擬相移,由R、C組成相移網絡。此方案實現起來非常簡單,但是相移的角度變化范圍窄(只有-90°到90°),而且隨著輸入信號的頻率變化,不好控制。當頻率較低時,相移量很小。
方案二:采用DDS數字移相,通過單片機控制AD9851,使其產生任意預置的相移,而且使DDS的輸出頻率和函數發生器的頻率相同。該方案的優點是相移量可以由軟件控制,并且變化范圍很大(0°~360°都可)、精度高。
鑒于第二種方案有諸多優點,我們選擇了方案二。
1.3 相位測量方案論證
方案一:相位—電壓轉換法。
兩路頻率相同、相位差恒為φx的被測正弦信號,經限幅放大和脈沖整形后變成兩個方波,再經鑒相電路(如異或鑒相),輸出周期為T,寬度為Tx的方波,若方波幅度為Ug,則此方波的平均值即直流分量為U0=UgTx/T,因此,用低通濾波器對方波進行平滑濾波后,輸出電壓即直流電壓U0,A/D轉換結果即為φx的度數。
方案二:相位差—時間轉換法。
將兩路輸入的正弦信號A和B分別放大、整形成方波,然后二者經異或門鑒相,其輸出信號的占空比即正比于φx。在PFGA內使用數字計數方法計算出該占空比,并由此推算出兩輸入信號的相位差。方案一原理簡單,關鍵部分是硬件電路(包括整形、鑒相和A/D轉換電路),軟件部分相對簡單,但是低通濾波器的設計比較復雜,將方波整成直流也會引入誤差。方案二利用FPGA實現高速計數,測量精度高,大部分功能在FPGA內實現,外部電路少,因此我們選用方案二。
1.4 芯片選擇
TL3116是TI公司超快低功耗精密比較器,它的帶寬是100M,可以運行在5V單電源或者是正負3.3V雙電源的情況下,有一個快速的比較器接口,偏置電壓很小,非常適合我們題目的要求,而用一般的芯片做過零比較器(如LM339),帶寬達不到要求,所以我們選擇了TL3116來完成過零比較功能.
2 系統整體設計
2.1 總體設計 硬件電路主要分如下幾大模塊:MSP430控制模塊、FPGA(實現測頻和測相位差功能)、電源模塊、前置濾波、多檔放大模塊、整形模塊、DDS移相模塊。
2.2 硬件設計 下面主要介紹測頻測周模塊、測相位差模塊和DDS移相模塊。
2.2.1 測頻測周期模塊(FPGA內部實現) 該模塊是在FPGA里面用Verilog HDL硬件描述語言實現的。其運行原理為:將待測正弦信號經整形濾波以后送入FPGA。Reset信號用于復位此電路,然后置start為1,被測信號從f_in進入FPGA,在start為1的下一個f_in下降沿與門打開,延時一段時間后start置0結束計數。然后在r_date的下降沿取走數據。在MSP430里面計算即可得出頻率。
由于輸入信號的幅度不確定,波形的邊緣不夠陡峭,而FPGA測頻測相是相對TTL電平進行的,所以我們對輸入信號進行了放大整形。電路的運放采用AD811,它有140M帶寬,很好地滿足要求。
2.2.2 測相位差模塊(FPGA內部實現) 其中:將兩路有固定相差同頻率的正弦信號經過整形、濾波為兩路方波信號,這兩路方波信號通過F_1和F_2進入FPGA。當開始信號到來時,F_1和F_2異或后,得到一個具有一定占空比的方波信號(該占空比正比于相移)。通過對占空比的精確測量就可以算出相移。
2.2.3 DDS數字移相電路
其電路圖如圖1所示
圖中的DDS芯片為AD9851。它是AD9850的改進版,可以快速連續的輸出不同頻率、不同位移的正弦波信號。
2.3 軟件設計
2.3.1 軟件設計流程
本設計的軟件流程圖分兩部分:MSP430部分軟件流程圖和FPGA部分軟件流程圖。如圖2所示。
MSP430單片機主要完成以下功能:對FPGA工作模式、工作過程的控制;為外圍芯片提供正確的工作時序;控制DDS芯片產生所需頻率的波形;接受并響應用戶輸入;實時顯示頻率、周期、相位差信息。
FPGA主要完成對待測信號頻率、周期及相位差的測量。我們在里面設計了兩個功能模塊和一個模式選擇模塊。其中模式選擇模塊用來根據單片機指示選擇哪一個功能模塊工作。
3 性能測試
3.1 主要測量儀器:數字萬用表 數字示波器 80MHZ函數發生器
3.2 頻率、周期測量
由表1可以看出,設定頻率與頻率相差基本上在萬分之間零點幾之間跳動,有時誤差會相對大一些,我們分析主要是由于FPGA處理數據的速度很快,所以對于低頻信號容易把雜波也計算進去,考慮到這個問題,我們主要用投切電容器來解決這個問題,將頻率的誤差降到最小。
3.3 相位測試
表2中的數據誤差原因和改進方法和表1一樣。這里就不再累述。
3.4 結論
由于系統架構設計合理,功能電路實現較好,系統性能優良、穩定,較好地達到了題目要求的各項指標。
3.4.1 頻率,周期測量的范圍可以達到1Hz~12MHz,測量信號的峰峰值在0.1~5V范圍內變化任能精確測量,測量誤差均可以達到10-6。
3.4.2 在信號頻率范圍:10Hz~100k,而且信號幅度在0.5~5V時,相位測量測量準確度:1°,分辨率:0.1°。
3.4.3 AD9851移相網絡能實現-180°~180°移相。而且頻率可以從1Hz~20MHz連續可調。