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