數(shù)字邏輯器件可分為通用邏輯器件和ASIC兩種類型。從理論上講,應(yīng)用通用邏輯器件(如4000系列和74HC系列)、微處理器和存儲(chǔ)器可以構(gòu)建任何數(shù)字系統(tǒng)。但是,通用邏輯器件的規(guī)模一般都比較小,而且功能固定,在設(shè)計(jì)復(fù)雜數(shù)字系統(tǒng)時(shí)需要使用大量芯片,這會(huì)導(dǎo)致系統(tǒng)的體積難以縮小、功耗難以降低,同時(shí)受到器件傳輸延遲和芯片之間布線延遲的影響,使得系統(tǒng)的工作速度難以有效提高。
以2015年電子設(shè)計(jì)競(jìng)賽題-數(shù)字頻率計(jì)的設(shè)計(jì)進(jìn)行分析。競(jìng)賽題目的要求設(shè)計(jì)并制作一臺(tái)閘門時(shí)間為1s的數(shù)字頻率計(jì),能夠測(cè)量1Hz~100MHz矩形波信號(hào)的頻率。要求頻率測(cè)量的相對(duì)誤差不大于0.01%(10^-4)。
頻率是指周期信號(hào)在單位時(shí)間內(nèi)的變化次數(shù)。頻率計(jì)用于測(cè)量周期信號(hào)的頻率,有直接法、周期法和等精度3種測(cè)頻方法。
直接測(cè)頻法的原理電路如圖1(a)所示,其中與門的兩個(gè)輸入端分別接被測(cè)信號(hào)Fx和閘門信號(hào)G(Gate signal),與門的輸出作為計(jì)數(shù)器的時(shí)鐘。由閘門信號(hào)G控制計(jì)數(shù)器在固定的時(shí)間范圍內(nèi)統(tǒng)計(jì)被測(cè)信號(hào)的脈沖數(shù),如圖1(b)所示,脈沖數(shù)與時(shí)間之比即為被測(cè)信號(hào)的頻率。取閘門信號(hào)G的作用時(shí)間為1s時(shí),計(jì)數(shù)器的計(jì)數(shù)值即為被測(cè)信號(hào)的頻率值。
圖1 直接測(cè)頻法原理
直接測(cè)頻法能夠測(cè)量信號(hào)頻率的范圍與閘門信號(hào)G的作用時(shí)間和計(jì)數(shù)器的容量有關(guān)。當(dāng)閘門信號(hào)的作用時(shí)間為1s時(shí),如果需要測(cè)量頻率為10kHz的信號(hào)時(shí),那么要求計(jì)數(shù)器的容量為10^4,基于中、小規(guī)模通用邏輯器件實(shí)現(xiàn)時(shí)可以應(yīng)用4片十進(jìn)制計(jì)數(shù)器74HC160級(jí)聯(lián)實(shí)現(xiàn)。如果需要將測(cè)頻范圍擴(kuò)展為100MHz,在閘門信號(hào)的作用時(shí)間同樣為1s的情況下,則要求計(jì)數(shù)器的容量為10^8,這就需要用8片74HC160級(jí)聯(lián)實(shí)現(xiàn)。一般地,在閘門信號(hào)作用時(shí)間固定的情況下,測(cè)量信號(hào)頻率的范圍越大,則計(jì)數(shù)所用的芯片越多,因而電路就越復(fù)雜。
當(dāng)計(jì)數(shù)器的容量固定時(shí),雖然可以通過縮短閘門信號(hào)的作用時(shí)間來擴(kuò)展頻率測(cè)量范圍,但是會(huì)降低頻率測(cè)量的精度。這是因?yàn)?,在直接測(cè)頻法中,閘門信號(hào)G的作用時(shí)間是隨機(jī)的,在計(jì)數(shù)過程中可能會(huì)存在1個(gè)脈沖的計(jì)數(shù)誤差。
直接測(cè)頻法中計(jì)數(shù)誤差的成因分析如圖2所示,其中被測(cè)信號(hào)Fx1、Fx2和Fx3的頻率完全相同。設(shè)閘門信號(hào)G與被測(cè)信號(hào)Fx1同步,計(jì)數(shù)器在時(shí)鐘脈沖的上升沿工作。
圖2 直接測(cè)頻法誤差成因分析
在閘門信號(hào)G的作用下,如果對(duì)信號(hào)Fx1的計(jì)數(shù)值為N,則對(duì)信號(hào)Fx2的計(jì)數(shù)值為N-1,對(duì)信號(hào)Fx3的計(jì)數(shù)值為N+1。所以,取閘門信號(hào)的作用時(shí)間為1s時(shí),直接測(cè)頻率法的計(jì)數(shù)誤差為±1Hz;取閘門信號(hào)的作用時(shí)間為0.1s時(shí),則計(jì)數(shù)誤差為±10Hz。
另外,基于中、小規(guī)模通用邏輯器件設(shè)計(jì)時(shí)還存在一個(gè)問題:頻率計(jì)的測(cè)頻范圍受計(jì)數(shù)器芯片性能的限制。查閱NI公司的器件資料可知,74HC160從時(shí)鐘到輸出(clock to Q)的傳輸延遲時(shí)間為18ns,典型工作頻率為40MHz,如圖3所示,極限工作頻率為43MHz。同時(shí),應(yīng)用多片74HC160級(jí)聯(lián)擴(kuò)展計(jì)數(shù)容量時(shí),還需要考慮芯片與芯片之間布線傳輸延遲的影響。因此,雖然用8片74HC160級(jí)聯(lián)理論上能夠擴(kuò)展出108進(jìn)制計(jì)數(shù)器,但實(shí)際上卻無法測(cè)量40MHz以上信號(hào)的頻率。
圖3 74HC160 器件資料片段
直接測(cè)頻法的原理簡(jiǎn)單,但是由于理論上存在一個(gè)脈沖的計(jì)數(shù)誤差,所以被測(cè)信號(hào)的頻率越低,直接測(cè)頻法的相對(duì)誤差越大,存在著測(cè)量實(shí)時(shí)性和測(cè)量精度之間的矛盾。例如,取閘門信號(hào)的作用時(shí)間為1s,當(dāng)被測(cè)信號(hào)的頻率為1000Hz時(shí),理論上頻率測(cè)量的相對(duì)誤差為0.1%,而當(dāng)被測(cè)信號(hào)的頻率為10Hz時(shí),則頻率測(cè)量的相對(duì)誤差高達(dá)10%。
應(yīng)用直接測(cè)頻法雖然可以通過增加閘門信號(hào)的作用時(shí)間來減小測(cè)頻誤差,但是,對(duì)于頻率為10Hz的信號(hào),若要求頻率測(cè)量的相對(duì)誤差不大于0.01%,則閘門信號(hào)的作用時(shí)間最短為1000s。顯然,這么長(zhǎng)的測(cè)量時(shí)間是無法接受的,所以直接測(cè)頻法不適合測(cè)量低頻信號(hào)的頻率。
從圖2可以看出,如果能夠控制閘門信號(hào)G與被測(cè)信號(hào)FX同步,那么就能夠消除計(jì)數(shù)誤差,因而從理論上講,頻率測(cè)量的相對(duì)誤差為0。
等精度測(cè)頻法就是通過控制閘門信號(hào)與被測(cè)信號(hào)同步從而消除了計(jì)數(shù)誤差,其原理電路如圖4所示,將閘門信號(hào)G作為邊沿D觸發(fā)器的輸入,被測(cè)信號(hào)Fx作為D觸發(fā)器的時(shí)鐘脈沖時(shí),D觸發(fā)器輸出的新閘門信號(hào)SG(Synchronous Gate signal)與Fx同步。
圖4 等精度測(cè)頻法原理電路
等精度測(cè)頻法的工作原理是:當(dāng)閘門信號(hào)G跳變?yōu)楦唠娖綍r(shí),只有當(dāng)被測(cè)信號(hào)FX的上升沿到來時(shí)D觸發(fā)器輸出的新閘門信號(hào)SG才能跳變?yōu)楦唠娖?當(dāng)閘門信號(hào)G跳變?yōu)榈碗娖綍r(shí),同樣只有當(dāng)被測(cè)信號(hào)Fx的上升沿到來時(shí)D觸發(fā)器輸出的新閘門信號(hào)SG才能跳變?yōu)榈碗娖健R虼?,D觸發(fā)器輸出的新閘門信號(hào)SG與被測(cè)信號(hào)Fx嚴(yán)格同步,所以用新閘門信號(hào)控制計(jì)數(shù)器時(shí),就能夠消除計(jì)數(shù)誤差。但是,由于新閘門信號(hào)SG的作用時(shí)間受被測(cè)信號(hào)Fx的控制,雖然取原閘門信號(hào)G的作用時(shí)間為1s,但新閘門信號(hào)的作用時(shí)間不一定為1s,因而計(jì)數(shù)器N中的計(jì)數(shù)值并不能代表被測(cè)信號(hào)的頻率值。改進(jìn)的方法是,再添加一個(gè)與門和計(jì)數(shù)器M,在新閘門信號(hào)SG的作用時(shí)間內(nèi)同時(shí)對(duì)被測(cè)信號(hào)Fx和一個(gè)標(biāo)準(zhǔn)頻率信號(hào)Fs進(jìn)行計(jì)數(shù),應(yīng)用兩個(gè)計(jì)數(shù)器的計(jì)數(shù)時(shí)間完全相同的關(guān)系推算出被測(cè)信號(hào)的頻率值。
等精度測(cè)頻法被測(cè)信號(hào)頻率的計(jì)算原理如圖5所示。若將新閘門信號(hào)SG的作用時(shí)間記為TD,標(biāo)準(zhǔn)頻率信號(hào)Fs的周期記為Ts,被測(cè)信號(hào)Fx的周期記為Tx,在TD時(shí)間內(nèi)對(duì)標(biāo)準(zhǔn)頻率信號(hào)和被測(cè)信號(hào)的計(jì)數(shù)值分別記為Ns和Nx,則閘門信號(hào)SG的作用時(shí)間TD可以精確地表示為
TD=Nx×Tx
圖5 等精度測(cè)頻法工作波形
雖然D觸發(fā)器輸出的新閘門信號(hào)SG與被測(cè)信號(hào)Fx嚴(yán)格同步,但并不一定與標(biāo)準(zhǔn)頻率信號(hào)Fs同步,所以從理論上講,在TD時(shí)間內(nèi)對(duì)標(biāo)準(zhǔn)信號(hào)進(jìn)行計(jì)數(shù),仍然可能存在一個(gè)脈沖的計(jì)數(shù)誤差。因此,若用Ns×Ts表示TD時(shí),則
TD≈Ns×Ts
如果取標(biāo)準(zhǔn)信號(hào)的頻率很高,使得Ts<
Ns×Ts≈Nx×Tx
若將標(biāo)準(zhǔn)頻率信號(hào)和被測(cè)信號(hào)的頻率分別用fs和fx表示,并將Ts=1/fs和Tx=1/fx代入上式整理可得
fx≈(Nx/Ns)×fs
其中,Ns和Nx分別為兩個(gè)計(jì)數(shù)器的計(jì)數(shù)值。根據(jù)上式即可計(jì)算出被測(cè)信號(hào)的頻率值。下面對(duì)等精度測(cè)頻的相對(duì)誤差進(jìn)行分析。
設(shè)用Ns×Ts表示TD的誤差記為△t,則
△t=TD-Ns×Ts
設(shè)被測(cè)信號(hào)頻率的精確值記為fx0。由于TD=Nx×Tx0,所以fx0=Nx/TD,因此頻率測(cè)量的相對(duì)誤差δ可以表示為
δ =(fx-fx0)/fx0=fx/fx0-1
≈(fs×Nx/Ns) /(Nx/TD) -1
=TD/(Ts×Ns)-1
=(TD-Ts×Ns)/(Ts×Ns)
=△t/(Ts×Ns)
=△t/(TD-△t)
由于△t最大為一個(gè)標(biāo)準(zhǔn)頻率信號(hào)的周期,所以標(biāo)準(zhǔn)頻率信號(hào)的周期Ts<
δ≈Ts/TD
由上式可以看出,等精度測(cè)頻法頻率測(cè)量的相對(duì)誤差與被測(cè)信號(hào)的頻率無關(guān),只取決于標(biāo)準(zhǔn)信號(hào)周期Ts與新閘門信號(hào)SG作用時(shí)間TD的比值。因此,取標(biāo)準(zhǔn)信號(hào)的頻率越高,或者閘門信號(hào)的作用時(shí)間越長(zhǎng),則頻率測(cè)量的相對(duì)誤差就越小。
采用100MHz標(biāo)準(zhǔn)信號(hào)時(shí),閘門信號(hào)的作用時(shí)間TD與測(cè)頻的相對(duì)誤差δ之間的關(guān)系如表1所示。可以看出,當(dāng)閘門信號(hào)SG的作用時(shí)間為1s時(shí),頻率測(cè)量的相對(duì)誤差約為0.000001%(10^-8),完全滿足競(jìng)賽題目的精度要求。
表1 閘門信號(hào)作用時(shí)間與頻率測(cè)量誤差關(guān)系表
等精度測(cè)頻法頻率測(cè)量的精度很高,但是需要應(yīng)用乘法和除法運(yùn)算來計(jì)算被測(cè)信號(hào)的頻率值。取閘門信號(hào)G的作用時(shí)間為1s、標(biāo)準(zhǔn)信號(hào)的頻率為100MHz時(shí),如果要求能夠測(cè)量100MHz信號(hào)的頻率時(shí),不但需要應(yīng)用27位二進(jìn)制計(jì)數(shù)器(因?yàn)?26<108<227)分別對(duì)被測(cè)信號(hào)Fx和標(biāo)準(zhǔn)頻率信號(hào)Fs進(jìn)行計(jì)數(shù),還需要應(yīng)用27位二進(jìn)制乘法器和54位二進(jìn)制除法器來計(jì)算被測(cè)信號(hào)的頻率值。若應(yīng)用74系列中、小規(guī)模通用邏輯器件來搭建27位乘法器和54位除法器,其電路的復(fù)雜程度是難以想象的。
那么,如何實(shí)現(xiàn)等精度頻率測(cè)量呢?提供以下3種方案:
(1)基于微控制器和PLD實(shí)現(xiàn)。
應(yīng)用MCS-51、MSP430或者STM32等系列微控制器雖然計(jì)算乘除法很方便,但是對(duì)高頻信號(hào)進(jìn)行計(jì)數(shù)則相對(duì)困難。若應(yīng)用微控制器內(nèi)部的計(jì)數(shù)/定時(shí)器來統(tǒng)計(jì)被測(cè)信號(hào)和標(biāo)準(zhǔn)信號(hào)的計(jì)數(shù)值,則會(huì)受到內(nèi)部計(jì)數(shù)/定時(shí)器性能的限制,很難有效測(cè)量MHz級(jí)及以上信號(hào)的頻率。
如果在微控制器外圍擴(kuò)展中規(guī)模集成計(jì)數(shù)器(如74HC161)進(jìn)行計(jì)數(shù),然后通過I/O口讀取被測(cè)信號(hào)和標(biāo)準(zhǔn)信號(hào)的計(jì)數(shù)值,通過編程計(jì)算被測(cè)信號(hào)的頻率值,不但外圍電路復(fù)雜,而且同樣會(huì)受集成計(jì)數(shù)器芯片性能的限制,測(cè)頻范圍難以有效擴(kuò)展。因此,推薦應(yīng)用可編程邏輯器件CPLD或者FPGA進(jìn)行計(jì)數(shù),基于微處理器計(jì)算乘除法。
(2)應(yīng)用EDA技術(shù),基于IP核實(shí)現(xiàn)。
應(yīng)用EDA技術(shù)實(shí)現(xiàn)等精度頻率計(jì)時(shí),可以直接用硬件描述語言描述所需要的計(jì)數(shù)器,然后在可編程邏輯器件中實(shí)現(xiàn),不但不會(huì)受到具體器件功能的限制,而且計(jì)數(shù)器能夠正常工作的最高頻率遠(yuǎn)遠(yuǎn)超過100MHz。另外,還可以定制EDA軟件中的乘法IP和除法IP來實(shí)現(xiàn)乘除法運(yùn)算,只需要將計(jì)算得到的二進(jìn)制頻率值轉(zhuǎn)換為BCD碼顯示即可。
(3)應(yīng)用EDA技術(shù),基于片上系統(tǒng)實(shí)現(xiàn)。
在FPGA中搭建軟核處理器系統(tǒng)或者直接應(yīng)用片內(nèi)硬核處理器,用硬件描述語言描述所需要的計(jì)數(shù)器,應(yīng)用片上處理器控制測(cè)頻過程,計(jì)算乘除法以及頻率轉(zhuǎn)換值與顯示。
綜上分析,要解決電子競(jìng)賽中數(shù)字頻率計(jì)的設(shè)計(jì)問題,無論采用以上哪種方案設(shè)計(jì)等精度頻率計(jì),都必須應(yīng)用EDA技術(shù)。
另外,等精度頻率計(jì)雖然測(cè)頻范圍寬,而且精度高,但測(cè)試表明,在閘門作用時(shí)間為1s的情況下,還不能滿足1Hz信號(hào)頻率測(cè)量的精度要求。為此,還需要設(shè)計(jì)周期法頻率計(jì),與直接法頻率計(jì)或者等精度頻率計(jì)相配合,才能實(shí)現(xiàn)滿足競(jìng)賽精度要求的1Hz~100MHz頻率計(jì),而設(shè)計(jì)周期法頻率計(jì)需要應(yīng)用圖6所示的狀態(tài)機(jī)來統(tǒng)計(jì)被測(cè)信號(hào)兩個(gè)相鄰脈沖之間的脈沖數(shù),然后通過脈沖數(shù)計(jì)算出被測(cè)信號(hào)的周期,再根據(jù)頻率與周期之間的倒數(shù)關(guān)系應(yīng)用除法計(jì)算出頻率值,同樣需要學(xué)習(xí)EDA技術(shù)。
圖6 周期測(cè)量狀態(tài)機(jī)
-
FPGA
+關(guān)注
關(guān)注
1630文章
21774瀏覽量
604671 -
asic
+關(guān)注
關(guān)注
34文章
1205瀏覽量
120600 -
微處理器
+關(guān)注
關(guān)注
11文章
2272瀏覽量
82609 -
邏輯器件
+關(guān)注
關(guān)注
0文章
88瀏覽量
20122 -
數(shù)字頻率計(jì)
+關(guān)注
關(guān)注
17文章
104瀏覽量
35787
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論