用現(xiàn)場(chǎng)可編程門陣列實(shí)現(xiàn)的頻率計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
數(shù)字頻率計(jì)是通信設(shè)備、音、視頻等科研生產(chǎn)領(lǐng)域不可缺少的測(cè)量?jī)x器。采用Verilog HDL編程設(shè)計(jì)實(shí)現(xiàn)的數(shù)字頻率計(jì),除被測(cè)信號(hào)的整形部分、鍵輸入部分和數(shù)碼顯示部分外,其余全部在一片F(xiàn)PGA芯片上實(shí)現(xiàn)。整個(gè)系統(tǒng)非常精簡(jiǎn),且具有靈活的現(xiàn)場(chǎng)可更改性。
相比傳統(tǒng)的電路系統(tǒng)設(shè)計(jì)方法,EDA技術(shù)采用VHDL語(yǔ)言描述電路系統(tǒng),包括電路的結(jié)構(gòu)、行為方式、邏輯功能及接口。Verilog HDL具有多層次描述系統(tǒng)硬件功能的能力,支持自頂向下的設(shè)計(jì)特點(diǎn)。設(shè)計(jì)者可不必了解硬件結(jié)構(gòu)。從系統(tǒng)設(shè)計(jì)入手,在頂層進(jìn)行系統(tǒng)方框圖的劃分和結(jié)構(gòu)設(shè)計(jì),在方框圖一級(jí)用Ver-ilog HDL對(duì)電路的行為進(jìn)行描述,并進(jìn)行仿真和糾錯(cuò),然后在系統(tǒng)一級(jí)進(jìn)行驗(yàn)證,最后再用邏輯綜合優(yōu)化工具生成具體的門級(jí)邏輯電路的網(wǎng)表,下載到具體的FPGA器件中去,從而實(shí)現(xiàn)FPGA的設(shè)計(jì)。
2 測(cè)量原理及總體結(jié)構(gòu)框圖
頻率測(cè)量方法有2種。一種是測(cè)頻法,在一定時(shí)間間隔TM內(nèi)測(cè)出待測(cè)信號(hào)重復(fù)變化次數(shù)N,則被測(cè)信號(hào)的頻率為fx=N/TM。另一種方法是測(cè)周法,在被測(cè)信號(hào)的一個(gè)周期內(nèi)測(cè)出標(biāo)準(zhǔn)高頻信號(hào)fs的個(gè)數(shù)N,則被測(cè)頻率為fx=fs/N。可見測(cè)頻法對(duì)高頻信號(hào)有較高的測(cè)量精度,而測(cè)周法對(duì)低頻信號(hào)的測(cè)量精度較高。本頻率測(cè)量系統(tǒng)采用測(cè)頻法和測(cè)周法相結(jié)合的方法,使兩者的測(cè)量帶寬得到了互補(bǔ),而且采用了延時(shí)為納秒級(jí)的FPCA來(lái)實(shí)現(xiàn),從而極大地提高了系統(tǒng)工作帶寬和系統(tǒng)測(cè)量精度。此外,具有自動(dòng)測(cè)頻和測(cè)周轉(zhuǎn)換量程功能,每個(gè)數(shù)量級(jí)為一個(gè)量程,每個(gè)量程保留3位有效數(shù)字,用“xxxEx"表示“x.xx×10x”。
本頻率計(jì)由控制模塊、測(cè)頻模塊、測(cè)周期算頻模塊、鎖存顯示模塊4個(gè)模塊組成。總體框圖如圖1所示。
系統(tǒng)結(jié)構(gòu)框圖中信號(hào)說明。singal:被測(cè)信號(hào)。Stateshift:測(cè)頻或測(cè)周期得出的量程不夠或溢出信號(hào)。reset:復(fù)位信號(hào)。iclk:輸入標(biāo)準(zhǔn)時(shí)鐘12MHz。en_precent:顯示占空比的按鍵信號(hào)。oclk:控制模塊輸出基本時(shí)鐘,根據(jù)不同狀態(tài)對(duì)iclk進(jìn)行分頻而得。en:使能信號(hào)。state_jmp:狀態(tài)跳變信號(hào)。oen_precent:由控制模塊輸出的占空比顯示信號(hào)。condition:狀態(tài)輸出信號(hào)。lOAd:允許輸出顯示信號(hào)。data[11:0]:計(jì)算所得數(shù)據(jù),3位有效數(shù)字。out[19:0]:最終的輸出顯示數(shù)據(jù),為“xxxEx”。
3 相應(yīng)模塊分析及設(shè)計(jì)
3.1 控制模塊
該控制模塊有11種狀態(tài)。在1 Hz~100MHz范圍內(nèi)每個(gè)數(shù)量級(jí)為一種狀態(tài),共8種,小于1 Hz大于100MHz為兩種量程溢出狀態(tài),還有一種為顯示占空比狀態(tài)。當(dāng)進(jìn)入兩種量程溢出狀態(tài)后,若被測(cè)信號(hào)又進(jìn)入量程,控制器又能回到8種正常顯示狀態(tài)中去。8種數(shù)量級(jí)的狀態(tài)中,每種狀態(tài)對(duì)應(yīng)一個(gè)基本時(shí)鐘,每個(gè)基本時(shí)鐘都由iclk(12 MHz)分頻而來(lái),為了保證誤差在2%以內(nèi),本控制模塊選擇保留3位有效數(shù)字。
3.2 測(cè)頻模塊
測(cè)頻模塊在數(shù)字頻率計(jì)中是一個(gè)比較重要的模塊,要想使頻率計(jì)能自動(dòng)測(cè)頻,還需要一個(gè)測(cè)頻控制電路,要求它能產(chǎn)生3個(gè)控制信號(hào):CN,LOAD和reset,以便使頻率計(jì)能順利完成測(cè)頻3步:計(jì)數(shù)、鎖存和清0。
測(cè)頻模塊的基本思路是:在1個(gè)clk周期內(nèi)對(duì)進(jìn)來(lái)的signal進(jìn)行計(jì)數(shù),clk的第1個(gè)上升沿用來(lái)清零,之后的1個(gè)下降沿到下個(gè)周期的下降沿,這段時(shí)間用來(lái)計(jì)數(shù),在之后的半個(gè)周期用以輸出使能,所以整個(gè)計(jì)算過程需要2個(gè)clk周期。測(cè)頻模塊測(cè)頻得出的數(shù)據(jù)為100~999,若小于100,則cntlow=1,量程太大;若大于999,則cntover=1,量程溢出。
3.3 測(cè)周期算頻模塊
該模塊由3個(gè)小模塊構(gòu)成,即測(cè)量信號(hào)高電平時(shí)間的模塊(scale_fre_high)、測(cè)量信號(hào)周期的模塊(scale_fre)和除法器模塊(div)。其中的測(cè)量信號(hào)周期的模塊就是測(cè)頻模塊的一種變形,把被測(cè)信號(hào)和基本時(shí)鐘的輸入對(duì)調(diào)一下,所以在命名上還是一致的。而測(cè)量信號(hào)高電平時(shí)間的模塊也是在測(cè)頻模塊的基礎(chǔ)上修改而來(lái)的。該模塊框架圖如圖2所示。
3.4 鎖存顯示模塊
鎖存顯示模塊包括鎖存和顯示兩部分。鎖存模塊是在信號(hào)LOAD的上升沿鎖存到寄存器里面,并由REG的輸出端輸出,然后由開發(fā)系統(tǒng)板顯示輸出對(duì)應(yīng)的數(shù)值。顯示模塊的主要工作是產(chǎn)生數(shù)碼管顯示所需的控制信號(hào)和數(shù)據(jù)信號(hào)。模塊內(nèi)用于循環(huán)顯示的基準(zhǔn)時(shí)鐘經(jīng)分頻處理后得到。顯示模塊將二進(jìn)制的結(jié)果信號(hào)轉(zhuǎn)換成BCD碼的形式輸入給數(shù)碼管,同時(shí)對(duì)數(shù)碼管以較高的頻率不斷重復(fù)進(jìn)行刷新。
鎖存顯示模塊,輸入3位有效數(shù)字,輸出5位數(shù)“xxxEx”,前3位為需要顯示的3位有效數(shù)字,后2位據(jù)輸入的當(dāng)前狀態(tài),顯示被測(cè)信號(hào)頻率所處的數(shù)量級(jí)。
下面是鎖存顯示模塊的源程序:
4 系統(tǒng)仿真
該頻率計(jì)設(shè)計(jì)利用EDA工具M(jìn)AX_PLUS2進(jìn)行了仿真,整個(gè)系統(tǒng)仿真波形如圖3所示。
程序一開始未進(jìn)入量程,于是慢慢調(diào)整,當(dāng)進(jìn)入到狀態(tài)2時(shí),在測(cè)量范圍內(nèi),測(cè)出其周期為175,用除法器求其倒數(shù),結(jié)果為571,完全正確。隨著被測(cè)信號(hào)頻率變大,跳入直接測(cè)頻范圍,則直接測(cè)出頻率結(jié)果,也同樣正確。仿真結(jié)果說明程序無(wú)誤。
5 結(jié)束語(yǔ)
根據(jù)頻率測(cè)量原理,把測(cè)頻法和測(cè)周法結(jié)合起來(lái),確定了低頻段采用測(cè)周法,高頻段采用測(cè)頻法,實(shí)現(xiàn)了在其可測(cè)量程內(nèi)的測(cè)量結(jié)果優(yōu)于普通測(cè)量方法,且系統(tǒng)硬件電路結(jié)構(gòu)簡(jiǎn)單,軟件設(shè)計(jì)容易,已得到較好的實(shí)際應(yīng)用。