一種高性價比等精度數字頻率計方案設計
以下是采用VerilogHDL硬件描述語言設計的CPLD內部電路源碼:


3.3程序設計
整個測量過程由MCU控制完成,然后計算并把結果送LCD顯示。測量開始,MCU首先發出清零CLR信號,對外部CPLD電路復位和計數器清零,還要將定時器軟計數器清零,之后發出啟動信號GATE=1,測量開始。MCU通過查詢軟計數器(定時中斷加1),控制閘門時間大致在1 s左右,時間到,MCU立即發出停止信號GATE=0,隨后查詢引腳INT0,確認計數停止。之后,分別讀回外部計數和內部計數器計數結果,MCU根據等精度原理算出信號頻率,將結果送LCD顯示。程序主流程和定時中斷流程如圖8所示。

4測試結果
筆者在實驗室使用RIGOL-DG1015DDS信號發生器校準。通過修正單片機時鐘偏差,22.118 4 MHz的12分頻為1.843 2 MHz,對1 843 200 Hz修正86.95 Hz后帶入程序計算,整數頻點測量結果可以達到和信號發生器完全一致,接近零誤差。特針對一些非整數頻點進行測量,結果如表1所列,誤差達到10-7數量級,與理論值一致。

由于系統采用的是單片機機器時鐘作為基準信號時鐘,基準信號頻率較低,使得測量精度不高;如果采用外部更高頻基準信號做時鐘信號,精度還可進一步提高。
結語
將等精度頻率測量原理巧妙地用MCU+CPLD實現,設計了一種低成本、高性價比的頻率計方案。MCU選擇STC89C52RC,CPLD選擇Atmel公司的ATF1504AS,實現了寬范圍高精度的頻率測量。該方案具有結構簡單,成本低等優點,具有廣闊的市場前景。









評論