東北大學計算機科學與工程學院 張楠楠 陳 龍 郭恒哲 李大宇
基于FPGA的多功能數(shù)字頻率計的設計與實現(xiàn)
東北大學計算機科學與工程學院張楠楠陳龍郭恒哲李大宇
針對于普通頻率計不能測量小信號的不足,本文介紹了一種基于FPGA與單片機的多功能數(shù)字頻率計的設計與實現(xiàn)。該頻率計采用多周期同步測頻法,以FPGA與單片機為核心處理器,通過前端信號調(diào)理,實現(xiàn)了對頻率為1Hz~100MHz、電壓為4mV~1V的周期信號進行周期、頻率、占空比、時間間隔等功能的測量。
頻率計;FPGA;多周期同步測頻;占空比;Tiva C Launchpad
數(shù)字頻率計是計算機、通信設備、電子測量等科研生產(chǎn)領域不可缺少的測量儀器。傳統(tǒng)的頻率計多采用集成芯片,可測試的最大頻率不高,靈敏度不高,而且其單一測頻的特點也已無法滿足現(xiàn)在的發(fā)展要求。本文提出了一種基于FPGA和單片機的頻率計設計,可實現(xiàn)低至4mv小信號的1Hz~100MHz頻率測量,具有高速、精確、可靠、抗干擾性強、可根據(jù)需要進一步提高其測量精度而不需要更改硬件連接的特點。

圖1 系統(tǒng)框圖
整個系統(tǒng)采用模塊化的思想,分割為三個模塊,(1)前級信號調(diào)理模塊:對外部輸入信號進行波形整形,將輸入周期信號整形成邏輯電平;(2)功能實現(xiàn)FPGA模塊:對各個功能進行相應的邏輯控制和數(shù)據(jù)測量,并將測得的數(shù)據(jù)發(fā)送至單片機;(3)單片機模塊:能根據(jù)不同的外部輸入鍵值發(fā)給FPGA相應的控制指令,對從FPGA接收到的數(shù)據(jù)進行處理,將結果在液晶屏上準確顯示。三個模塊分別實現(xiàn)后聯(lián)調(diào),實現(xiàn)了頻率、占空比、脈寬、時間間隔等多功能的測量。系統(tǒng)框圖如圖1所示。
2.1頻率/周期測量原理
頻率測量采用多周期同步測頻法。其計數(shù)的閘門時間不是固定的值,而是被測信號周期的整數(shù)倍,即利用D觸發(fā)器將閘門信號與被測信號同步,因此,避免了對被測信號計數(shù)所產(chǎn)生±1個字誤差,并且達到了在整個測試頻段的等精度測量。示意圖如圖2所示:

圖2 多周期同步測頻法波形圖
由圖2可以看出,實際閘門時間t與預置閘門時間t1并不嚴格相等,但差值不超過被測信號的一個周期。為了得到實際的閘門時間t,可引入另一個計數(shù)器和標準時鐘,在測量被測信號頻率的同時,對標準時鐘進行計數(shù),通過計算即可得到實際閘門時間。若在實際時間t內(nèi)測得標準時鐘計數(shù)Nc,待測時鐘計數(shù)Nx,則:

可計算得到待測信號的頻率。
上式中Nc值仍存在±1字誤差的影響,但由于標準時鐘頻率很高,±1字誤差的影響很小。取時鐘頻率fc=200MHz,則由±1字引起的相對誤差為5×10-9。該誤差是對標準時鐘計數(shù)時產(chǎn)生的,與被測信號的頻率無關,故在全頻段的測量精度是均衡的。
2.2占空比/脈寬測量原理
占空比/脈寬的測量方法是,在方波信號高電平時對標準頻率fc計數(shù)得N1,在其低電平時對標準頻率計數(shù)得N2,則占空比

2.3時間間隔測量原理
將兩路同頻周期信號進行邏輯異或操作,也即是將其中一路取反后與另一信號進行邏輯或操作,可實現(xiàn)將時間間隔測量轉化為方波信號的高電平持續(xù)時間測量,用此高電平信號作為使能信號對標準時鐘fc進行計數(shù)N,則高電平持續(xù)時間為,即這兩路同頻信號的時間間隔。

圖3 時間間隔測量原理
前端信號調(diào)理模塊主要分為前置放大、偏置電位調(diào)節(jié)、觸發(fā)整形等幾個功能模塊,實現(xiàn)將輸入信號調(diào)理整形至FPGA輸入邏輯電平的功能。

圖4 單通道模擬部分功能框圖
3.1寬帶放大器
前置寬帶放大電路設計的難點主要在于高靈敏度和高帶寬,合理的運算放大器選型就顯得尤為重要。
根據(jù)計算公式,在保證系統(tǒng)帶寬要求的前提下:

由前后級的相關參數(shù)推算,最終選擇TI公司的寬帶運算放大器opa695,其增益帶寬積為1400MHz,較高的壓擺率能夠適應較快的信號變化,能夠滿足設計需求。
3.2整形電路
考慮到多種信號的頻率測量功能,在前置放大后要級聯(lián)信號整形模塊,將其他類型的周期波形整形成方波。整形電路采用高速施密特觸發(fā)器,以處理頻率高達100MHz的信號,同時利用施密特觸發(fā)器的滯回特性來增強系統(tǒng)的抗噪能力。最終選擇TI公司的SN74LVC1G14芯片,其傳輸延遲時間<4.6ns,邊沿的上升/下降<2.5ns,能夠?qū)崿F(xiàn)設計需求。
信號整形處理模塊單元電路示意圖如圖5所示:

圖5 調(diào)理整形模塊電路示意圖
FPGA根據(jù)單片機送來的不同指令分別執(zhí)行相應的測量操作,并把測得數(shù)據(jù)在同步時鐘的作用下送給單片機進行數(shù)據(jù)處理及顯示。
4.1 頻率/周期測量功能的實現(xiàn)
根據(jù)前述多周期同步測頻法的原理,實現(xiàn)頻率測量的結構框圖如圖6所示:

圖6 頻率測量框圖
圖6中的D觸發(fā)器利用待測信號來同步預置閘門得到實際閘門時間;CNT0模塊是對標準時鐘進行計數(shù)的計數(shù)器;CNT1模塊是待測時鐘信號的計數(shù)器;LOCK模塊對計數(shù)結果進行鎖存,以避免在計數(shù)完成之前向后傳送數(shù)據(jù);MUX模塊在數(shù)據(jù)選擇信號SEL的作用下將64位數(shù)據(jù)分8次并行傳送給其后的單片機模塊,每次傳送8位,以“少量多次傳輸”的方式減少并行傳輸數(shù)據(jù)的路數(shù)。
4.2占空比/脈寬測量功能的實現(xiàn)
根據(jù)前述占空比與脈寬的測量原理,可實現(xiàn)其結構框圖如圖7所示:

圖7 占空比測量框圖
外部信號經(jīng)模擬信道整形后一路直接使能一個計數(shù)器,另一路經(jīng)反相器取反后使能另一個計數(shù)器,兩個計數(shù)器在相應使能信號的作用下分別對標準時鐘計數(shù),得到所需的N1,N2,從而得到占空比和脈寬。
4.3時間間隔測量功能的實現(xiàn)
在FPGA中將接收到的兩路同頻信號如圖8進行處理,然后將結果作為使能信號對標準時鐘fc進行計數(shù)N,得到時間間隔。

圖8 時間間隔測量邏輯處理框圖
4.4FPGA頂層原理圖
FPGA模塊共有三根功能控制線與單片機之間通信,它們的邏輯組合與實現(xiàn)的功能如表1所示:

表1 邏輯控制表格
頂層FPGA結構圖如圖9。其中,鎖相環(huán)pll0模塊用來產(chǎn)生所需的200M標準時鐘信號和10M自校準信號等;Delay模塊是時間間隔測量時的邏輯處理模塊;前一個DQ模塊是用來同步的D觸發(fā)器,后兩個DQ模塊用來產(chǎn)生計數(shù)器的清零信號;COUNTER與LOCK分別為計數(shù)器與鎖存模塊。adjust與CONTROL模塊是FPGA對輸入的邏輯控制。OUTMCU模塊實現(xiàn)FPGA計數(shù)結果向單片機傳輸時由64位寬轉換成8位寬的數(shù)據(jù)選擇功能。

圖9 FPGA頂層原理圖
單片機根據(jù)外設鍵盤的輸入給FPGA傳送不同的控制命令,然后通過數(shù)據(jù)選擇線sel分別讀取FPGA測得的數(shù)據(jù)N1或N2,通過計算將結果送到液晶屏顯示。其中鍵盤實現(xiàn)功能的切換選擇;液晶屏顯示頻率、周期、占空比、脈寬、時間間隔等測量結果。
程序流程圖如圖10所示:

圖10 單片機程序流程圖
本系統(tǒng)選用的FPGA芯片為Altera公司CylconeII系列中的EP2C20Q240C8N,板上50M系統(tǒng)晶振經(jīng)鎖相環(huán)倍頻到200M作為標準時鐘,單片機小系統(tǒng)選用TI公司的Tiva C LaunchPad,聯(lián)合鍵盤和液晶屏等外設調(diào)試測試后證實性能穩(wěn)定。頻率/周期測量范圍為1Hz-100MHz,誤差在10-5之內(nèi),測試波形可為方波、正弦波、三角波等,幅值最低可到4mv;占空比測量范圍為10%-90%,頻率范圍為1Hz~5MHz,測量誤差的絕對值小于10-2;對同頻方波時間間隔測量的頻率范圍為100Hz~1MHz。
實際測量結果如圖11,實物圖展示如圖12所示:

圖11 實際測量結果圖
本文所設計的多功能頻率計作為2015年全國大學生電子設計大賽的參賽作品,獲得了國家二等獎以及遼寧省賽區(qū)一等獎的成績。系統(tǒng)采用模塊化的思想,將模擬、FPGA、單片機三部分單獨設計完成,最后聯(lián)合調(diào)試,在電子設計競賽期間可使隊友之間合理分配利用時間。由于系統(tǒng)采用FPGA和單片機為核心進行設計,保證了系統(tǒng)的靈活性,可以對系統(tǒng)功能進一步進行優(yōu)化和擴展,比如進一步提高標準時鐘頻率、在計數(shù)顯示不溢出的條件下擴大閘門時間以及將固定閘門改為自適應閘門等。
[1]曾永西.基于Quartus II的兩種數(shù)字頻率計的設計與比較[J].福建電腦,2008(6):168-169.
[2]許發(fā)翔,顏錦,陳孟臻,劉春群.基于FPGA的數(shù)字頻率計的設計[J].電子科技,2014(23):10-11.
[3]曾光,馮銳.基于FPGA的數(shù)字頻率計VHDL軟件實現(xiàn)方法[J].軟件導刊,2009,8(2):28-29.
[4]梁穎,佟川.基于FPGA的等精度頻率計單片系統(tǒng)設計[J].軟件,2012,33(1):74-76.
[5]包本剛,何怡剛,譚永宏.基于FPGA的全同步數(shù)字頻率計的設計與實現(xiàn)[J].測試技術學報,2008,22(2):99-102.
[6]王永良,宋政湘.基于FPGA的同步測周期高精度數(shù)字頻率計的設計[J].IC設計,2004(12):74-76
[7]林建英,高苗苗,楊素英.基于SOPC的等精度數(shù)字頻率計設計[J].研究與開發(fā),2012,29(12):51-55.
[8]謝海鴻,李萍,林德彬.基于FPGA芯片的數(shù)字頻率計設計[J].現(xiàn)代電子技術,2005(18):13-16.
[9]毛智德,呂善偉.基于FPGA的等精度頻率計設計[J].電子測量技術,2006,29(4):85-86.
李大宇(1981—),遼寧遼陽人,講師,研究方向:實時信號處理。