引言 頻率的概念就是1 s時(shí)間內被測信號的周期個(gè)數,最直接的測量方法就是單位時(shí)間內計數法,這種方法比較適合高頻測量。低頻通常用測周期法。這兩種方法的測量精度不固定,與被測信號的范圍相關(guān)。 等精度頻率測量法融合以上兩種方法的優(yōu)點(diǎn),可兼顧低頻與高頻信號;但較以上兩種方法而言,等精度頻率測量有較高的測量精度,且誤差不會(huì )隨著(zhù)被測信號頻率的改變而改變。 1 等精度頻率測量原理 等精度頻率測量原理框圖如圖1所示。圖中計數器是帶使能控制的32位計數器,EN是計數允許使能信號,高電平允許計數。計數器1對基準時(shí)鐘信號fb計數,計數器2對被測信號fx計數。D觸發(fā)器實(shí)現對被測信號fx上升沿檢測,實(shí)現門(mén)控信號與fx上升沿同步,從而保證計數器2對被測信號計數剛好為整數個(gè)周期,零誤差。 ![]() 測量過(guò)程控制時(shí)序波形如圖2所示。測量開(kāi)始,t0時(shí)刻MCU發(fā)出一個(gè)清零信號 Clr,使計數器和D觸發(fā)器置0;t1時(shí)刻MCU發(fā)出測量啟動(dòng)信號Gate,使D觸發(fā)器輸人D為高電平;在被測信號fb上升沿到來(lái)t2時(shí)刻,D觸發(fā)器Q端才被置1,使計數器1和計數器2的EN同時(shí)為1,計數器開(kāi)始計數,系統進(jìn)入計數允許周期。這時(shí),計數器1和2分別對基準時(shí)鐘信號和被測信號同時(shí)計數。一段時(shí)間過(guò)后,t3時(shí)刻MCU發(fā)出停止信號,即D觸發(fā)器輸入D為低電平,但此時(shí)計數器仍然沒(méi)有停止計數,直到下一個(gè)被測信號的上升沿t4時(shí)刻到來(lái)時(shí),D觸發(fā)器 Q輸出0將這2個(gè)計數器同時(shí)關(guān)閉。 ![]() 由圖2可見(jiàn),Gate的寬度Tc和發(fā)生的時(shí)間都不會(huì )直接影響計數使能信號EN,EN 總是在被測信號fx上升沿改變,從而保證了被測信號被計數的周期總是整數個(gè)周期nTx,而與被測信號的頻率無(wú)關(guān)。正確理解這點(diǎn),是理解等精度頻率測量的關(guān)鍵。由于測量過(guò)程中不能保證基準時(shí)鐘周期的完整性,還會(huì )引入測量誤差。這種隨機誤差dt最多只有基準時(shí)鐘fb信號的一個(gè)時(shí)鐘周期。由于fb的信號通常由高穩定度的高頻晶體振蕩器發(fā)出,任何時(shí)刻的絕對測量誤差只有1/N1。例如,對于門(mén)控信號接近1 s的測量過(guò)程,fb取100 MHz的晶振,最大誤差可以達到10-8。 2 方案設計 2.1系統方案 單片機定時(shí)器/計數器電路如圖3所示。當C/T=0,TR=1,GATE=1時(shí),單片機內部計數器時(shí)鐘開(kāi)關(guān)可受外部引腳INTn控制,這樣就可以實(shí)現單片機內部計數器與外部計數器同步開(kāi)關(guān)。 ![]() 正是基于單片機這種電路結構,根據等精度原理,提出圖4所示的系統框圖。單片機加 CPLD結構,利用單片機內部定時(shí)器定時(shí),外部CPLD實(shí)現等精度測量邏輯電路和計數功能;鶞蕰r(shí)鐘fb由單片機晶振提供,頻率為單片機時(shí)鐘晶振12分頻后所得機器時(shí)鐘。預置閘門(mén)由單片機引腳P1.0輸出控制,計數器清零和復位由單片機引腳P1.1輸出控制,單片機引腳P3.2是內部定時(shí)器使能開(kāi)關(guān)控制引腳。 ![]() 2.2單片機與CPLD接口設計 圖5所示為一種基于總線(xiàn)的接口方案,采用三總線(xiàn)(數據、控制、地址)結構,用于實(shí)現單片機與CPLD之間的數據傳輸。 ![]() 單片機P0口為雙向數據總線(xiàn),與CPLD的通用IO口連接,完成數據和低8位地址傳送?刂瓶偩(xiàn)包括單片機讀寫(xiě)控制總線(xiàn)RD和WR,以及地址鎖存信號ALE(Address Lock Enable)。地址總線(xiàn)A15(P2.7)通過(guò)CPLD的全局輸入信號引腳輸入。 2.3 CPLD電路 CPLD內部電路原理框圖如圖6所示。當預置閘門(mén)GATE輸入高電平時(shí),由于DFF觸發(fā)器為邊沿觸發(fā)器,在上升沿時(shí)才將數據輸出,所以Q輸出端并不立即置1,只有當外部信號上升沿到來(lái)時(shí),Q才為1,使能計數器和定時(shí)器。這樣保證了計數器和定時(shí)器在被測信號的上升沿到來(lái)時(shí)同時(shí)有效。當預置閘門(mén)GATE=0關(guān)閉時(shí),兩計數器的允許信號同樣在被測信號的上升沿到來(lái)時(shí)同時(shí)關(guān)閉。由于基準信號的定時(shí)器與被測信號嚴格同步,所以理論上最大誤差只有基頻的一個(gè)周期。CPLD內計數器為 32位,在預置時(shí)間內,只要計數器不溢出,即可準確測量被測信號個(gè)數。 ![]() 3 方案實(shí)現 3.1電路原理 電路原理如圖7所示。圖中給出了單片機(STC89C52RC)與CPLD(ATF1504AS)的具體接口電路,LCD1602接口電路,帶ISP下載接口的CPLD電路,被測信號從J1直接輸入給CPLD I/O引腳。這里沒(méi)有給出信號前置調理與波形整形電路。 ![]() 3.2 CPLD電路設計 CPLD開(kāi)發(fā)選擇Altera公司的 EDA軟件QuartusII和目標器件EPM7064SLC44=10,需要完成電路設計輸入、編譯、仿真、引腳綁定(引腳分配請參考電路圖),并編譯得到最終配置文件*.pof。然后再使用Atmel公司提供的轉換工具POF2JED軟件將前面得到的*.pof文件轉換成*.jed文件,再用 AtmelISP軟件將*.jed文件下載到CPLD器件ATF1504即可。 以下是采用VerilogHDL硬件描述語(yǔ)言設計的 CPLD內部電路源碼: ![]() 3.3程序設計 整個(gè)測量過(guò)程由MCU控制完成,然后計算并把結果送 LCD顯示。測量開(kāi)始,MCU首先發(fā)出清零CLR信號,對外部CPLD電路復位和計數器清零,還要將定時(shí)器軟計數器清零,之后發(fā)出啟動(dòng)信號GATE=1,測量開(kāi)始。MCU通過(guò)查詢(xún)軟計數器(定時(shí)中斷加1),控制閘門(mén)時(shí)間大致在1 s左右,時(shí)間到,MCU立即發(fā)出停止信號GATE=0,隨后查詢(xún)引腳INT0,確認計數停止。之后,分別讀回外部計數和內部計數器計數結果,MCU根據等精度原理算出信號頻率,將結果送LCD顯示。程序主流程和定時(shí)中斷流程如圖8所示。 ![]() 4 測試結果 筆者在實(shí)驗室使用RIGOL-DG1015DDS信號發(fā)生器校準。通過(guò)修正單片機時(shí)鐘偏差,22.118 4 MHz的12分頻為1.843 2 MHz,對1 843 200 Hz修正86.95 Hz后帶入程序計算,整數頻點(diǎn)測量結果可以達到和信號發(fā)生器完全一致,接近零誤差。特針對一些非整數頻點(diǎn)進(jìn)行測量,結果如表1所列,誤差達到10-7數量級,與理論值一致。 ![]() 由于系統采用的是單片機機器時(shí)鐘作為基準信號時(shí)鐘,基準信號頻率較低,使得測量精度不高;如果采用外部更高頻基準信號做時(shí)鐘信號,精度還可進(jìn)一步提高。 結語(yǔ) 將等精度頻率測量原理巧妙地用MCU+CPLD 實(shí)現,設計了一種低成本、高性?xún)r(jià)比的頻率計方案。MCU選擇STC89C52RC,CPLD選擇Atmel公司的ATF1504AS,實(shí)現了寬范圍高精度的頻率測量。該方案具有結構簡(jiǎn)單,成本低等優(yōu)點(diǎn),具有廣闊的市場(chǎng)前景。 作者:田開(kāi)坤,劉穎 (湖北師范學(xué)院 電工電子實(shí)驗中心,黃石 435002) 來(lái)源:?jiǎn)纹瑱C與嵌入式系統應用 2010年01期 |