吳 軍, 沈珊瑚, 蘆浩宇
(杭州師范大學(xué)杭州國(guó)際服務(wù)工程學(xué)院,浙江 杭州 311121)
?
基于NIOS II軟核的數(shù)字頻率計(jì)實(shí)現(xiàn)
吳軍, 沈珊瑚, 蘆浩宇
(杭州師范大學(xué)杭州國(guó)際服務(wù)工程學(xué)院,浙江 杭州 311121)
本文利用Cyclone IV E 系列FPGA芯片內(nèi)部資源及NIOS II軟核設(shè)計(jì)完成一款等精度數(shù)字頻率計(jì),其測(cè)頻功能利用Verilog語言實(shí)現(xiàn),對(duì)測(cè)頻模塊得到的各項(xiàng)數(shù)據(jù)利用C語言編程實(shí)現(xiàn),并通過實(shí)時(shí)運(yùn)算將數(shù)據(jù)傳送給液晶模塊.本設(shè)計(jì)具有測(cè)量帶寬大、實(shí)現(xiàn)面積小、數(shù)據(jù)傳輸可靠穩(wěn)定等特點(diǎn),并且由于各部分相互獨(dú)立,兩兩之間不相互依賴,系統(tǒng)靈活高效.
NIOS II軟核,FPGA,SOPC,數(shù)字頻率計(jì)
數(shù)字頻率計(jì)是一種將被測(cè)信號(hào)的頻率用十進(jìn)制數(shù)字顯示的數(shù)字測(cè)量?jī)x器,數(shù)字頻率計(jì)主要用于測(cè)量正弦信號(hào)、方波信號(hào)、脈沖信號(hào)以及其它在單位時(shí)間內(nèi)變化的物理量等的頻率或周期,也可以用于對(duì)這些被測(cè)信號(hào)的占空比進(jìn)行測(cè)量,或者對(duì)其進(jìn)行計(jì)數(shù),以達(dá)到計(jì)時(shí)的目的[1-2].
早期的頻率計(jì)采用的是分立式元件,其設(shè)計(jì)的周期時(shí)間長(zhǎng),而且出來的成品功耗高、體積大、穩(wěn)定性也差,在精度上也得不到保證.中期的頻率計(jì)功耗開始降低,體積也大大減小,穩(wěn)定性也得到了提高,最重要的是在精度上有了較大的改善,但是由于數(shù)字頻率計(jì)在電路設(shè)計(jì)上仍是復(fù)雜困難的,所以同樣導(dǎo)致設(shè)計(jì)周期時(shí)間長(zhǎng)、測(cè)量頻率的范圍有限和靈活性差等問題.在2004年,Altera公司推出了基于FPGA器件之上的NIOS處理器,它是一款由用戶自定義的32位RISC嵌入式處理器,能夠自由分配RAM和ROM的大小,用戶通過SOPC Builder[3-5]工具選擇最合適的CPU、外設(shè)接口和存儲(chǔ)接口而不必改動(dòng)電路板的設(shè)計(jì),可以針對(duì)某一特定的功能而進(jìn)行優(yōu)化改造,在真正意思上實(shí)現(xiàn)了集成電路硬件的軟設(shè)計(jì),大大節(jié)省了設(shè)計(jì)的成本和周期,同時(shí)也提高了電路設(shè)計(jì)的靈活性和可移植性,為現(xiàn)代工業(yè)的生產(chǎn)帶來了極大的方便[6-8].
本設(shè)計(jì)是一款基于NIOS II處理器的數(shù)字頻率計(jì).其測(cè)量要求是對(duì)于2.5~5V的脈沖信號(hào):所測(cè)量的頻率范圍在1~400MHz,其誤差不超過10-4;所測(cè)量的占空比范圍在10%~90%(2MHz之內(nèi)),其誤差不超過10-1.
本設(shè)計(jì)的創(chuàng)新特點(diǎn)如下:1) 采用32位的計(jì)數(shù)器,大大增加了測(cè)量范圍,其理論測(cè)量范圍可達(dá)4GHz;2) 采用NIOS II軟核計(jì)算和處理計(jì)數(shù)器的各項(xiàng)數(shù)據(jù),在很大程度上節(jié)省了芯片內(nèi)部資源;3) 采用NIOS II軟核控制液晶,增加了數(shù)據(jù)傳輸?shù)目煽啃耘c穩(wěn)定性.
1.1頻率計(jì)整體方案原理
圖1 計(jì)數(shù)法測(cè)頻原理Fig. 1 Frequency measurement by counting method
本設(shè)計(jì)選擇采用計(jì)數(shù)法來實(shí)現(xiàn)頻率計(jì)的設(shè)計(jì).計(jì)數(shù)法測(cè)頻就是在閘門單位時(shí)間內(nèi)對(duì)頻率信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù).其原理可用圖1來說明:
假設(shè)a為脈沖信號(hào),其周期為TA;b為閘門信號(hào),其閘門時(shí)間為T;c表示計(jì)數(shù)的結(jié)果,當(dāng)閘門信號(hào)由低電平翻轉(zhuǎn)為高電平時(shí)開始對(duì)a進(jìn)行計(jì)數(shù),若計(jì)數(shù)的結(jié)果為N;那么理論上它們?nèi)咧g存在著如下關(guān)系:
N=T/TA
(1)
但實(shí)際上由于閘門時(shí)間T和脈沖信號(hào)的周期時(shí)間TA并不存在關(guān)系,也即無法確定閘門時(shí)間T就是脈沖信號(hào)周期TA的整數(shù)倍,所以理論上算出來的計(jì)數(shù)結(jié)果N和實(shí)際中的計(jì)數(shù)結(jié)果有計(jì)數(shù)出入.
假設(shè)△t1是閘門信號(hào)開啟時(shí)間到首個(gè)計(jì)數(shù)脈沖上升沿的時(shí)間間隔,△t2是閘門信號(hào)關(guān)閉時(shí)間到最后一個(gè)脈沖信號(hào)上升沿的時(shí)間間隔,那么在閘門信號(hào)的有效計(jì)數(shù)時(shí)間內(nèi),存在如下關(guān)系:
T=N*TA+ △t1-△t2=(N+△N)*TA
(2)
其中
△N=(△t1-△t2)/TA
(3)
從式(2)可以看出,在閘門有效時(shí)間內(nèi)得到的計(jì)數(shù)結(jié)果理論值和實(shí)際值存在著偏差,偏差值△N的存在是由于系統(tǒng)的工作時(shí)間、閘門信號(hào)的開啟時(shí)間與被測(cè)信號(hào)的上升沿之間并不一定同步而導(dǎo)致的,被測(cè)信號(hào)上升沿出現(xiàn)在閘門時(shí)間內(nèi)的不確定性決定了△N出現(xiàn)的必然性.當(dāng)閘門時(shí)間T接近或等于脈沖周期TA的整數(shù)倍時(shí),△N的絕對(duì)值取到最大值,即△N的取值只能在±1之間.所以脈沖計(jì)數(shù)的最大量化誤差(絕對(duì)誤差)為:
△N=±1
(4)
最大相對(duì)誤差為:
△N/N=±1/N
(5)
以上就是對(duì)脈沖計(jì)數(shù)法測(cè)頻的原理分析和誤差分析,但在實(shí)際的項(xiàng)目實(shí)踐中,往往是根據(jù)被測(cè)信號(hào)頻率的大小,直接劃分成為直接測(cè)頻法和間接測(cè)頻法(周期測(cè)頻法),以及定制閘門時(shí)間的大小,以減小量化誤差,使誤差在允許的范圍之內(nèi).
在實(shí)際的應(yīng)用中,當(dāng)被測(cè)信號(hào)的頻率較高時(shí),采用直接測(cè)頻法,當(dāng)被測(cè)信號(hào)的頻率較低時(shí),采用間接測(cè)頻法,由于它的精度僅取決于基準(zhǔn)時(shí)鐘的精確度和計(jì)數(shù)的誤差(通常計(jì)數(shù)的誤差只在正負(fù)1之內(nèi),對(duì)于計(jì)數(shù)個(gè)數(shù)為10萬以上的頻率來說,在誤差允許的范圍之內(nèi)),所以用計(jì)數(shù)法測(cè)頻無論在高頻段還是在低頻段都可以達(dá)到較高的精確度.
如圖2所示,先把待測(cè)信號(hào)接入放大整形電路中處理,將其轉(zhuǎn)換成固定幅度的方波信號(hào),但保持頻率和占空比不變;然后由FPGA芯片進(jìn)行采集,在FPGA內(nèi)部的計(jì)數(shù)器模塊將對(duì)其進(jìn)行判斷并執(zhí)行相應(yīng)的處理,最后將數(shù)據(jù)傳輸給NIOS II嵌入式處理器,由該處理器對(duì)這些數(shù)據(jù)進(jìn)行運(yùn)算和處理,并控制液晶顯示最后得出的頻率測(cè)量結(jié)果.
1.2頻率測(cè)量模塊的原理
頻率測(cè)量模塊的主要組成部分是計(jì)數(shù)器,首先對(duì)經(jīng)前端處理后的信號(hào)進(jìn)行預(yù)判,若判斷的結(jié)果為高頻段,則進(jìn)入直接測(cè)頻法模塊進(jìn)行測(cè)頻;若判斷的結(jié)果為低頻段,則進(jìn)入間接測(cè)頻法模塊進(jìn)行測(cè)頻.其中直接測(cè)頻模塊中需要用到的閘門信號(hào)由基準(zhǔn)時(shí)鐘經(jīng)分頻模塊后產(chǎn)生,對(duì)測(cè)頻輸出的數(shù)據(jù)不做處理,全部傳輸給NIOS II軟核進(jìn)行計(jì)算和處理.該模塊原理可以用圖3來說明.
圖2 基于FPGA方案頻率計(jì)的系統(tǒng)框圖Fig. 2 System framework for cymometer based on FPGA
圖3 頻率測(cè)量模塊的原理圖Fig. 3 Illustration for frequency measurement module
1.3液晶顯示模塊的原理
圖4 液晶顯示模塊的原理圖Fig. 4 Illustration for LCD display module
液晶顯示模塊用于顯示測(cè)量的頻率結(jié)果,它的控制將由NIOS II處理器來完成,對(duì)于頻率測(cè)量模塊的各項(xiàng)數(shù)據(jù)能夠在經(jīng)過計(jì)算后正確地顯示在液晶上.液晶顯示模塊的原理可以用圖4來說明.
2.1頻率測(cè)量模塊的實(shí)現(xiàn)
頻率測(cè)量模塊主要采用32位的計(jì)數(shù)器來實(shí)現(xiàn),系統(tǒng)基準(zhǔn)時(shí)鐘設(shè)為200MHz.依據(jù)高低頻段不同的方式處理,其理論可測(cè)量的頻率范圍為1~4GHz,且其精度在10-4之內(nèi),滿足頻率測(cè)量的要求;其理論可測(cè)量占空比的頻率范圍在1~2MHz,理論可測(cè)量的占空比大小在10%~90%,且其精度在10-2之內(nèi),滿足占空比的測(cè)量要求.利用Verilog HDL語言編寫了以下幾個(gè)模塊來共同實(shí)現(xiàn)頻率的測(cè)量功能:分頻計(jì)數(shù)模塊、周期計(jì)數(shù)模塊、占空比計(jì)數(shù)模塊和頻段判斷和處理模塊.下面對(duì)這4個(gè)子模塊進(jìn)行詳細(xì)的介紹.
2.1.1分頻計(jì)數(shù)模塊
分頻計(jì)數(shù)模塊的核心原理是由一個(gè)17位的計(jì)數(shù)器構(gòu)成,主要用于對(duì)系統(tǒng)時(shí)鐘信號(hào)進(jìn)行分頻,進(jìn)而產(chǎn)生需要的閘門信號(hào),本設(shè)計(jì)中要用到的閘門時(shí)間為1s,故可對(duì)200MHz的系統(tǒng)時(shí)鐘進(jìn)行200M分頻(分頻系數(shù)越大,分頻后的信號(hào)誤差越小),分頻后的周期正好為1s,符合要求.
該分頻計(jì)數(shù)模塊的主要特點(diǎn)在于不是在最后一個(gè)計(jì)數(shù)結(jié)果抬高電平,而是在中間就開始抬高電平,這樣分頻后的信號(hào),其占空比可以仍為50%;而且分頻的系數(shù)是由用戶自己定義,極大的方便了對(duì)該模塊的調(diào)用,下面對(duì)該模塊進(jìn)行仿真說明.
圖5 分頻模塊仿真圖Fig. 5 Simulation for frequency division module
設(shè)置的系統(tǒng)頻率信號(hào)周期為5ns(也是下面幾個(gè)模塊工作的系統(tǒng)時(shí)鐘信號(hào));由圖5可知,分頻系數(shù)為10,根據(jù)理論計(jì)算,分頻后的頻率信號(hào)周期為:5ns*10=50ns;
由圖5紅色方框內(nèi)的信息可知,仿真得到的信號(hào)周期為:340ns-290ns=50ns;與前面的計(jì)算結(jié)果一致,所以仿真結(jié)果正確;同時(shí)可以發(fā)現(xiàn),分頻后的信號(hào)在高電平和低電平計(jì)數(shù)個(gè)數(shù)是一樣的,即占空比為50%,符合設(shè)計(jì)初衷.由于高頻模塊能夠正常工作,而低頻模塊的誤差只會(huì)更小,所以驗(yàn)證了高頻,也就相當(dāng)于驗(yàn)證了低頻.
2.1.2周期計(jì)數(shù)模塊
周期計(jì)數(shù)模塊的核心原理是一個(gè)32位的計(jì)數(shù)器,該模塊的主要功能是對(duì)待測(cè)頻率信號(hào)進(jìn)行一個(gè)周期內(nèi)的計(jì)數(shù),并輸出計(jì)數(shù)結(jié)果;該模塊的主要特點(diǎn)在于不是對(duì)信號(hào)的半個(gè)周期進(jìn)行計(jì)數(shù),而是對(duì)整個(gè)周期進(jìn)行計(jì)數(shù),到下一個(gè)周期時(shí)又清空計(jì)數(shù)結(jié)果,重新計(jì)數(shù),這樣計(jì)數(shù)的好處在于當(dāng)被測(cè)頻率信號(hào)占空比不為50%時(shí)仍能給出正確的頻率計(jì)數(shù)結(jié)果.下面將結(jié)合時(shí)序圖對(duì)該模塊進(jìn)行仿真說明.
圖6 周期計(jì)數(shù)模塊仿真圖Fig. 6 Simulation for cycle count module
設(shè)置待測(cè)信號(hào)的周期為55ns;根據(jù)理論計(jì)算,計(jì)數(shù)結(jié)果應(yīng)該為:55ns/5ns=11;由圖6紅色方框內(nèi)的信息可知,仿真結(jié)果為:(687.49ns-632.49ns)/5ns=11;仿真得到的結(jié)果為11,與理論計(jì)算值一致,說明該模塊正常工作.因?yàn)楸粶y(cè)信號(hào)周期越長(zhǎng),測(cè)量的結(jié)果就會(huì)越準(zhǔn)確.因此只要在高頻的信號(hào)下測(cè)量,計(jì)數(shù)結(jié)果是不是正常,就能知道整個(gè)模塊能不能正常工作.
2.1.3占空比計(jì)數(shù)模塊
占空比計(jì)數(shù)模塊的核心也是一個(gè)32位的計(jì)數(shù)器,與前一個(gè)模塊不同的是,該模塊只在被測(cè)信號(hào)翻轉(zhuǎn)為高電平時(shí)開始計(jì)數(shù),這樣做的目的在于可以基于前一個(gè)模塊的計(jì)數(shù)結(jié)果計(jì)算出該信號(hào)的占空比.假設(shè)在周期計(jì)數(shù)模塊對(duì)被測(cè)信號(hào)的計(jì)數(shù)結(jié)果為full,在占空比模塊對(duì)被測(cè)信號(hào)的計(jì)數(shù)結(jié)果為dH,則占空比的計(jì)算公式為:
duty=(t(dH)/t(full))*100%
(6)
該模塊的主要特點(diǎn)是只針對(duì)被測(cè)信號(hào)的高電平持續(xù)時(shí)間內(nèi)進(jìn)行計(jì)數(shù),并對(duì)下一個(gè)高電平到來之前情況計(jì)數(shù)結(jié)果,下面將根據(jù)圖來對(duì)占空比模塊進(jìn)行仿真說明.
圖7 占空比計(jì)數(shù)模塊仿真圖Fig. 7 Simulation for duty cycle count module
被測(cè)信號(hào)的周期設(shè)為500ns,其占空比為27%;根據(jù)理論計(jì)算,計(jì)數(shù)結(jié)果為:(500ns*27%)/5ns=27;
由圖7可知,計(jì)數(shù)結(jié)果為:((2.37us-1.87us) *27%/5ns)=27;即仿真結(jié)果為27,與理論計(jì)算結(jié)果相同,說明該模塊工作正常.由于在實(shí)際過程中,占空比計(jì)數(shù)模塊所測(cè)量的頻率越高,誤差越大,所以只要驗(yàn)證誤差較小的高頻信號(hào),若正常,說明此頻率下的其它信號(hào)也能正常工作.
2.1.4頻段判斷和處理模塊
頻率判斷和處理模塊為頻率測(cè)量模塊的核心重點(diǎn),相當(dāng)于一個(gè)小型的頂層文件,它綜合了前面的分頻、周期和占空比計(jì)數(shù)3個(gè)模塊,通過例化這3個(gè)模塊,使其在這一個(gè)模塊中同時(shí)工作;該模塊的主要工作是判斷出被測(cè)信號(hào)的頻率段,并根據(jù)判斷的結(jié)果將待測(cè)信號(hào)送入不同的模塊中進(jìn)行計(jì)數(shù)測(cè)量;當(dāng)判斷結(jié)果為高頻時(shí),在閘門時(shí)間內(nèi)采用直接測(cè)頻法對(duì)該被測(cè)信號(hào)進(jìn)行計(jì)數(shù),若計(jì)數(shù)結(jié)果為cH,則該被測(cè)信號(hào)的頻率計(jì)算公式為:
f=cH/(1Hz)=cH
(7)
若判斷該信號(hào)為低頻信號(hào),則把該被測(cè)信號(hào)當(dāng)作閘門信號(hào),采用間接測(cè)頻法對(duì)其計(jì)數(shù),如果計(jì)數(shù)結(jié)果為cL,則該被測(cè)信號(hào)的頻率計(jì)算公式為:
f=(1/5ns)/cL=200000000/cL
(8)
因?yàn)楸驹O(shè)計(jì)要求的精度為10-4,所以判斷一個(gè)信號(hào)為高頻還是低頻的中間頻率為:
1Hz/10-4=10KHz;
圖8 頻段判斷和處理仿真圖Fig. 8 Simulation for frequency range judgement
被測(cè)信號(hào)的周期設(shè)為1us,占空比設(shè)為14%,依據(jù)理論計(jì)算,計(jì)數(shù)結(jié)果為:
icnt=1us/5ns=200;
即100 高頻段計(jì)數(shù)結(jié)果: cH=1s/1us=1000000; 占空比計(jì)數(shù)結(jié)果: dH=1us*14%/5ns=28; 由圖8可知,flag=1,dflag=0,cH=1000000,dH=28;這與理論計(jì)算的結(jié)果相同,所以頻段判斷和處理模塊工作正常.經(jīng)過該模塊后的數(shù)據(jù),其頻率的具體計(jì)算都將傳輸給NIOS II處理器,通過在頂層文件用原理圖的方式相連接,可以省去大量的引腳. 2.2液晶顯示模塊的實(shí)現(xiàn) 圖9 液晶的初始化程序圖Fig. 9 Initialization program for LCD 液晶顯示模塊主要在NIOS IDE中用C語言編寫程序?qū)ζ淇刂?根據(jù)液晶的時(shí)序來編寫程序,發(fā)送指令控制顯示. 在給液晶傳達(dá)指令時(shí),需要注意液晶執(zhí)行各個(gè)命令的時(shí)間,在本設(shè)計(jì)中所用的液晶清屏指令和地址歸為指令執(zhí)行時(shí)間為1.6 ms,其它指令均為72us.所以在程序設(shè)計(jì)中對(duì)液晶初始化的步驟如圖9所示,等待時(shí)間大于指令執(zhí)行時(shí)間. 在本設(shè)計(jì)中要求頻率顯示要根據(jù)結(jié)果自動(dòng)切換單位,如當(dāng)被測(cè)頻率信號(hào)的頻率測(cè)量結(jié)果大于1000Hz時(shí),則后面的單位自動(dòng)切換成KHz,同理大于1000KHz時(shí),切換為MHz,這部分比較容易實(shí)現(xiàn),在NIOS IDE中用C語言對(duì)測(cè)量結(jié)果進(jìn)行判斷并控制液晶顯示即可. 3.1NIOS II 處理器結(jié)構(gòu)圖 圖10 NIOS II軟核原理圖Fig. 10 Illustration for NIOS II soft-core 本設(shè)計(jì)中用到的NIOS II軟核是由SOPC Builder工具構(gòu)建而成,CPU選擇性能最高的NIOS II/f型,系統(tǒng)時(shí)鐘定義為50MHz,RAM選擇片內(nèi)存儲(chǔ)器,設(shè)置其大小為32KB,此外還設(shè)置了EPCS存儲(chǔ)控制模塊,并鎖定其地址為0x00000000,主要用于程序的調(diào)試和下載;JTAG接口選擇默認(rèn)的標(biāo)準(zhǔn)型,其它數(shù)據(jù)和控制口全部由PIO來定義. 圖10是最后生成的NIOS II軟核原理圖.從圖中可以看到生成了眾多的IO口,都是前面自己定義好的,左邊的端口為輸入口,右邊的端口一般為輸出,但也可以是雙向口,如負(fù)責(zé)傳輸數(shù)據(jù)給液晶的8位數(shù)據(jù)口就是雙向口.其中端口名以EPCS結(jié)尾的接口是由EPCS存儲(chǔ)控制器自動(dòng)生成的,需要根據(jù)芯片型號(hào)自行分配引腳.該原理圖需要放在頂層文件中與前面生成的模塊相連接,實(shí)現(xiàn)數(shù)據(jù)的傳遞. 在頂層文件編譯通過后,就可以使用NIOS IDE對(duì)NIOS II軟核進(jìn)行編程控制,主要對(duì)傳遞進(jìn)來的數(shù)據(jù)進(jìn)行處理和計(jì)算,然后將處理后的數(shù)據(jù)傳遞給液晶顯示,從而完成整個(gè)系統(tǒng)的流程. 3.2頂層文件原理圖分析 整個(gè)系統(tǒng)方案實(shí)現(xiàn)的原理圖如下: 圖11 整體方案實(shí)現(xiàn)原理圖Fig. 11 Illustration for the whole system implementation 由圖11可知,整個(gè)系統(tǒng)用到了兩個(gè)鎖相環(huán),其中一個(gè)用于生成各種系統(tǒng)時(shí)鐘信號(hào),另一個(gè)用于生成各種測(cè)試用的信號(hào),分頻模塊、周期計(jì)數(shù)模塊和占空比計(jì)數(shù)模塊都被整合到了頻段判斷和處理模塊里,不在頂層文件里顯現(xiàn)出來;經(jīng)過頻段判斷和處理模塊后的數(shù)據(jù)全部交給了NIOS II處理器處理,這樣可盡量減少調(diào)用資源,使整個(gè)系統(tǒng)運(yùn)行得更加流暢. 3.3系統(tǒng)占用資源分析 圖12 整個(gè)系統(tǒng)占用資源分布圖Fig. 12 Resource distribution map for whole system 由于數(shù)據(jù)的計(jì)算和處理都是在NIOS嵌入式處理器中完成,這大大減少了系統(tǒng)資源的占有率,整個(gè)系統(tǒng)占用的資源情況分布如圖12所示. 由圖12可知,即使使用了32位的計(jì)數(shù)器,整個(gè)系統(tǒng)所占用的LES也只在31%左右,寄存器資源更是只占20%,由于該芯片內(nèi)存儲(chǔ)總量為42KB,而在NIOS II軟核中就分頻了32KB,所以在存儲(chǔ)方面共占用了75%的資源,PLL鎖相環(huán)使用了2個(gè),芯片也支持2個(gè),所以占用100%,雖然本設(shè)計(jì)用了32的計(jì)數(shù)器,但由于32位的數(shù)據(jù)口并沒有引出,而是在芯片內(nèi)部的電路直接通過頂層文件連接起來,所以引腳占用也很少,這也是FPGA器件的一大優(yōu)點(diǎn). 3.4系統(tǒng)硬件測(cè)試分析 圖13 液晶顯示測(cè)量數(shù)據(jù)圖Fig. 13 LCD display for the measured data 本設(shè)計(jì)是基于NIOS II軟核的頻率計(jì)設(shè)計(jì),其主要功能是測(cè)量脈沖信號(hào)的頻率和占空比,并將結(jié)果顯示在液晶屏上.所測(cè)量的頻率范圍在1~400MHz,誤差不超過10-4;占空比測(cè)量范圍在10%~90%(頻率小于2MHz時(shí)),其誤差不超過10-1;在此附上液晶成功顯示測(cè)量結(jié)果的圖,并以此作簡(jiǎn)單的說明. 如圖13所示,該信號(hào)是由FPGA芯片內(nèi)部鎖相環(huán)分頻后發(fā)出的,然后將其接到待測(cè)信號(hào)的輸入口上,通過設(shè)計(jì)好計(jì)數(shù)器和頻段判斷將計(jì)數(shù)結(jié)果傳送給NIOS II處理器,NIOS II處理器對(duì)計(jì)數(shù)結(jié)果進(jìn)行運(yùn)算后轉(zhuǎn)換成頻率和占空比,最終通過液晶顯示在液晶屏上,由于是由同一塊芯片產(chǎn)生的信號(hào),所以誤差極小,在精度要求范圍內(nèi). 本設(shè)計(jì)基于Altera的NIOS II軟核,實(shí)現(xiàn)了一款高精度、高帶寬、緊湊靈活的數(shù)字頻率計(jì).對(duì)脈沖信號(hào)進(jìn)行頻率測(cè)量時(shí),其理論最高測(cè)量頻率可達(dá)4GHz,但在實(shí)際中有很多頻率信號(hào)不一定是方波的形式,像正弦波、三角波和鋸齒波等必須要將其轉(zhuǎn)換成方波形式才可以進(jìn)行測(cè)量,這時(shí)需要在前端加一個(gè)放大整形電路.其次是在本設(shè)計(jì)中對(duì)液晶的控制是并行模式的,如果能將其改為串行模式,其接線將大大減少,雖然顯示速度會(huì)因此而下降,但就目前的運(yùn)行速度而言,降低后也在接受范圍內(nèi).最后是在后續(xù)的研究中可以使用更低版本的芯片來實(shí)現(xiàn),因?yàn)檫@個(gè)版本中芯片資源還大有剩余,只占30%左右. [1] ZHOU W. Systematic Research on High-Accuracy Frequency Measurements and Control[J].靜岡大學(xué)大學(xué)院電子科學(xué)研究科研究報(bào)告,2001,22:189-191. [2] ASHOUR M A, SALEH H J. An FPGA implementation guide for some different types of serial-parallel multiplier structures[J]. Microelectronics Journal,2000,31(3):161-168. [3] 潘松,黃繼業(yè),潘明.EDA技術(shù)實(shí)用教程:VerilogHDL版[M].4版.北京:科學(xué)出版社,2010. [4] 吳軍,沈珊瑚,何忠.基于SOPC的U盤加解密系統(tǒng)實(shí)現(xiàn)[J].杭州師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,15(1):95-101. [5] 王誠(chéng).Altera FPGA/CPLD設(shè)計(jì)[M].2版.北京:人民郵電出版社,2011. [6] 包本剛.基于FPGA的全同步數(shù)字頻率計(jì)的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)試技術(shù)學(xué)報(bào),2008,22(2):99-102. [7] 張謹(jǐn),宗發(fā)保,鄒鵬毅,等.基于FPGA的銫光泵磁力儀頻率計(jì)設(shè)計(jì)[J].海洋測(cè)繪,2015,35(2):80-82. [8] 孫虹,何宏,張大建,等.基于VHDL和FPGA的自適應(yīng)數(shù)字頻率計(jì)的研究與設(shè)計(jì)[J].天津理工大學(xué)學(xué)報(bào),2008,24(1):24-27. Implementation of Digital Frequency Meter Based on Nios II Soft-core WU Jun, SHEN Shanhu, Lu Haoyu (Hangzhou Institute of Service Engineering, Hangzhou Normal University, Hangzhou 311121, China) In this paper, a precise digital frequency meter was implemented using Cyclone IV E series FPGA chip resources and NIOS II soft-core. Verilog Language was used for the frequency measurement function, while C language was used for the data manipulation. Then the data was transferred to the LCD module based on real-time operations. This design owned the features of large measuring bandwidth, small area and stable data transformation. Also each module in the whole system was independent to each other, and the whole system was flexible and highly effective. NIOS II soft-core; FPGA; SOPC; digital frequency meter 2016-04-19 浙江省信息安全聯(lián)盟課題-安全芯片預(yù)研項(xiàng)目(kz13013003);浙江省科技創(chuàng)新計(jì)劃項(xiàng)目(2013TD03);杭州師范大學(xué)科研啟動(dòng)基金項(xiàng)目(PF14002004005). 沈珊瑚(1981-),女,講師,博士,主要從事嵌入式系統(tǒng)及安全芯片實(shí)現(xiàn)相關(guān)研究.E-mail:shshen88@163.com 10.3969/j.issn.1674-232X.2016.05.017 TP368 A 1674-232X(2016)05-0549-073 整體方案分析
4 總結(jié)和展望