低頻數(shù)字式相位測量儀設(shè)計_第1頁
低頻數(shù)字式相位測量儀設(shè)計_第2頁
低頻數(shù)字式相位測量儀設(shè)計_第3頁
低頻數(shù)字式相位測量儀設(shè)計_第4頁
低頻數(shù)字式相位測量儀設(shè)計_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、低頻數(shù)字式相位測量儀設(shè)計摘要:低頻數(shù)字式相位測量儀由相位測量儀、移相網(wǎng)絡(luò)兩部分構(gòu)成。本文簡要分析了低頻信號的相位差測量原理,并以數(shù)字式相位測量方法為例介紹了低頻相位測量儀的設(shè)計方法,該方法以單片機(jī)SPCE061A作為主控部件,以CPLD作為計數(shù)部件,構(gòu)成完備的測量系統(tǒng)??梢詫?00 Hz20 kHz頻率范圍的信號進(jìn)行頻率、相位等參數(shù)的精確測量,測相絕對誤差不大于1;采用液晶顯示器顯示被測信號的頻率、相位差。硬件結(jié)構(gòu)簡單,軟件采用C語言實現(xiàn),程序簡單可讀寫性強(qiáng),效率高。與傳統(tǒng)的電路系統(tǒng)相比,其有處理速度快、穩(wěn)定性高、性價比高的優(yōu)點(diǎn)。關(guān)鍵詞:低頻數(shù)字式相位測量儀、CPLD、絕對誤差 系統(tǒng)設(shè)計 1.

2、1 設(shè)計思路 本系統(tǒng)要求設(shè)計一個低頻數(shù)字式相位測量儀,由兩部分構(gòu)成:相位測量儀、移相網(wǎng)絡(luò)。從函數(shù)信號發(fā)生器輸出的信號經(jīng)移相網(wǎng)絡(luò)產(chǎn)生兩路有相位差的正弦信號,再經(jīng)放大整形后產(chǎn)生方波信號,進(jìn)入FPGA進(jìn)行測頻、測相。同時FPGA的控制信號由單片機(jī)進(jìn)行控制。最后通過顯示器顯示結(jié)果。其原理框圖見圖1。顯示器單片機(jī)FPGA測相、測頻放大整形電路移相網(wǎng)絡(luò) 輸入 圖1 總體思路原理框圖 1.2 方案論證與選擇 1. 測頻方案論證與選擇 方案一:采用分頻段測頻、測周法 對于頻率為的正弦波信號,可采用傳統(tǒng)的測頻方法。先找出中界頻率,若,采用測頻法;若,采用測周法,然后根據(jù)關(guān)系求得。 方案二:采用等精度恒誤差測頻法

3、 高精度恒誤差原理方框圖如圖2所示,計數(shù)器1和計數(shù)器2均有使能端和清零端??刂齐娐樊a(chǎn)生的門控信號接到D觸發(fā)器的數(shù)據(jù)端D,觸發(fā)器的Q端接兩個計數(shù)器的使能端,控制兩計數(shù)器計數(shù)。輸入信號通過放大整形電路轉(zhuǎn)換成同頻率的方波,即為被測信號。設(shè)門控信號的時間寬度為,基準(zhǔn)信號的頻率為,被測信號的頻率為。測頻原理是:測頻開始前,首先發(fā)出一個清零信號,使兩計數(shù)器和觸發(fā)器置0,同時通過D觸發(fā)器Q端輸出的信號,禁止兩計數(shù)器計數(shù)。然后令門控信號CL為高電平,當(dāng)被測信號的上升沿到來時,D觸發(fā)器Q端置1,啟動兩計數(shù)器計數(shù)。在這期間兩計數(shù)器對基準(zhǔn)信號和被測信號同時進(jìn)行計數(shù)。當(dāng)秒后,門控信號被置為低電平,直到隨后而至的被測信

4、號的上升沿到來時,將兩計數(shù)器同時關(guān)閉。 設(shè)在一次門控時間中對被測信號的計數(shù)值為,對基準(zhǔn)信號的計數(shù)值為,由和可得: 這種方法稱為等精度測頻法,精度與被測信號頻率無關(guān),無論低頻和高頻信號,其相對精度均為。因此增加可提高測量精度。 方案選擇:采用方案一的測量精度會隨被測信號頻率的下降而降低,即測量精度隨被測信號頻率的變化而變化,在實用中有較大的局限性。而方案二的測量精度與被測信號的頻率無關(guān),且有較高的測量精度。因此本設(shè)計選擇方案二。 圖2 高精度恒誤差原理圖 2. 測相方案論證與選擇 方案一:單周期計數(shù)法 將有相位差的兩路方波信號“異或”后作為閘門信號,在高電平時,利用外部基準(zhǔn)信號進(jìn)行計數(shù),在下降沿

5、將數(shù)據(jù)讀出;在低電平時對計數(shù)器清0。設(shè)基準(zhǔn)信號頻率為,被測信號頻率為,計數(shù)值為N,則相位差pha為:Pha=360(Fx/Fs)N 方案二:定計數(shù)時間。將高頻時鐘與兩路信號“異或”后的信號進(jìn)行相與,在設(shè)定時間s內(nèi)利用跳變沿進(jìn)行計數(shù)。設(shè)高頻時鐘頻率為fc,計數(shù)值為N,則 Pha=180(N/sfc) 方案三:相位差-時間轉(zhuǎn)換法 設(shè)同頻不同初相的兩路信號A和B,UA=UAmsin(wt+1),UB=UBmsin(wt+2)。則UA與UB間的相位差x為x = 1- 2 將兩路輸入的正弦信號分別經(jīng)過放大整形形成方波,然后經(jīng)異或門鑒相,設(shè)整形后的兩路信號分別為IN1和IN2,鑒相器輸出的脈沖信號的占空比

6、與兩路輸入信號的相位差x成正比。即x=N1/(N1+N2)360。其中N1是高電平脈寬時間內(nèi)的計數(shù)值,N2是低電平脈寬時間內(nèi)的計數(shù)值。 3. 移相網(wǎng)絡(luò)方案論證與選擇 相位可以有數(shù)字移相和模擬移相兩種方案。 方案一:數(shù)字移相 單片機(jī)或FPGA控制高速ADC,對一個周期內(nèi)的信號進(jìn)行多次采樣,將數(shù)據(jù)保存在高速RAM中。然后根據(jù)需要移相的大小,對量化數(shù)據(jù)的地址加上一個相位偏移量后輸出。該方案的優(yōu)點(diǎn)是相移量可以很大(0360都可),并且精度高,數(shù)字控制方便。但是一個周期內(nèi)需要采樣較多點(diǎn),對ADC速度、RAM速度要求很高。 方案二:模擬移相 由R、C組成移相網(wǎng)絡(luò)進(jìn)行移相。移相網(wǎng)絡(luò)的基本單元電路如圖3、4所

7、示。圖3為超前移相網(wǎng)絡(luò),圖4為滯后移相網(wǎng)絡(luò),通過運(yùn)放隔離后用電位器合成,可以得到-90+90任意相移角度。 圖3 超前移相網(wǎng)絡(luò) 圖4 滯后移相網(wǎng)絡(luò) 方案選擇:由于題目僅要求-45+45的相移,方案一在一個周期內(nèi)需要采樣較多點(diǎn),對ADC速度、RAM速度要求很高,考慮到成本和實現(xiàn)難易程度,我們采用方案二。2. 各模塊硬件設(shè)計 2.1 數(shù)字式相位測量儀 2.1.1 小信號處理部分 由于輸入的兩路信號幅度不確定、波形不穩(wěn)定、邊沿不夠陡峭,而FPGA測頻測相是相對數(shù)字信號進(jìn)行的,因此必須對輸入信號進(jìn)行放大整形。電路圖及參數(shù)如圖5所示。圖5 整形放大電路圖 題目要求輸入阻抗100K,我們采用同相放大器,在

8、輸入端并一個100K的電阻,這樣滿足輸入阻抗要求。 2.1.2 測頻部分 傳統(tǒng)的測量方法中,測量精度受被測頻率的影響。由于待測信號的頻率范圍很大,所以我們設(shè)計了一種測量精度與頻率無關(guān)的硬件等精度測量方法。 預(yù)置門控信號CL、清零信號CLR、數(shù)據(jù)輸出通道選擇DSEL,2選1多路選擇器的通道選擇控制信號SPUL由單片機(jī)產(chǎn)生。預(yù)置門控信號的脈寬為Tpr的脈沖,計數(shù)器BZQ和計數(shù)器TSQ都是可控計數(shù)器,標(biāo)準(zhǔn)頻率信號從計數(shù)器BZQ的時鐘輸入端輸入,其頻率為Fs,經(jīng)整形后的信號從計數(shù)器TSQ的時鐘輸入端輸入,其頻率為Fx。當(dāng)預(yù)置門控信號為高電平時,經(jīng)整形后的被測信號的上升沿通過D觸發(fā)器的Q端同時啟動計數(shù)器

9、BZQ、TSQ。計數(shù)器BZQ、TSQ分別對標(biāo)準(zhǔn)頻率信號和整形后的待測信號進(jìn)行計數(shù);當(dāng)預(yù)置門控信號為低電平時,經(jīng)整形后的被測信號的一個上升沿將這兩個計數(shù)器同時關(guān)閉。設(shè)一次預(yù)置門控時間Tpr內(nèi),被測信號的計數(shù)值為Nx、對標(biāo)準(zhǔn)頻率信號的計數(shù)值為Ns,則得到下面的公式:Fx/Nx=Fs/Ns即 Fx=(Nx/Ns)Fs相對誤差公式為 =(2/Ns+Fs/Fs) 從上述公式可以看到,其測量精度與Ns和標(biāo)準(zhǔn)頻率精度有關(guān),而與被測信號無關(guān),這就保證了在低頻和高頻部分,頻率計的等精度。2.1.3 測相部分 對于兩路輸入信號,通過整形得到方波信號后,在FPGA內(nèi)先對其進(jìn)行“異或”操作,再在CPLD內(nèi)對異或后信號

10、的正、負(fù)脈沖寬度進(jìn)行計數(shù)。測相框圖如圖6所示。 其中BCLK為計數(shù)器的標(biāo)準(zhǔn)頻率,PA、PB為被測信號,CLR為清零信號,CL為門控信號,SPUL為數(shù)據(jù)選擇器通道選擇端。SEL為將64個數(shù)據(jù)分8次送入單片機(jī)的多路通道的數(shù)據(jù)選擇通道。START為單片機(jī)測頻控制信號,EENDA為單片機(jī)測相控制信號,DATA為64個數(shù)據(jù)分8組,每組8個送入單片機(jī)的數(shù)據(jù)。兩路同頻率不同相位的時鐘信號PA和PB通過鑒相后,輸出一路具有不同占空比的脈沖波形。其頻率與輸入頻率相同,而占空比與PA和PB的上升沿有關(guān)。顯然鑒相的脈寬等于PA和PB信號上升沿的時間差,這個時間差即為PA、PB間的相位差,它正好等于鑒相后脈沖的占空比

11、乘以360。 圖6 測相框圖2.2 移相網(wǎng)絡(luò) 移相網(wǎng)絡(luò)的電路圖見圖7,從圖中可以看到,當(dāng)w=w0時,超前和滯后網(wǎng)絡(luò)分別移相了45,如果將兩信號疊加,設(shè)A=Asin(wt+45),B=Bsin(wt-45),疊加后的信號C=Asin(wt+45)+ Bsin(wt-45) =(A2+B2)1/2sin(wt+) VAout = VINR10(R10為電位器R10的下部分) VBOUT = 2VR9R11(R11為電位器R11的下部分)其中,tan=(A-B)/(A+B),改變A和B的值就可以改變疊加后信號的相位,即調(diào)節(jié)電位器R9。通過調(diào)節(jié)電位器R10、R11改變輸出信號幅度。 圖7 移相網(wǎng)絡(luò)電路

12、圖 只有輸入信號的頻率與RC網(wǎng)絡(luò)的諧振頻率相同時,才有45相移,所以當(dāng)輸入信號頻率改變時,RC網(wǎng)絡(luò)也應(yīng)當(dāng)有不同的頻率。根據(jù)公式f=1/2RC可得: R=1/2Cf取電容為0.1uf,根據(jù)上面的公式,當(dāng)輸入信號頻率f=100Hz時,R=16K;當(dāng)f=1KHz時,R=1.6K;當(dāng)f=10KHz時,R=160。因為輸出信號C的幅度有所下降,所以在輸出后采用同相放大器,放大倍數(shù)為2。因為題目要求最后的輸出信號峰峰值在0.35V內(nèi)變換,因此最后接電位器進(jìn)行幅度調(diào)節(jié)。3. 軟件設(shè)計 單片機(jī)程序采用C語言,在unSP IDE環(huán)境下編譯。FPGA在Quartus 6.0下調(diào)試,采用原理圖編輯法輸入。3.1 E

13、DA部分 相位測量儀部分采用GWDD6C型CPLD編程下載。內(nèi)部的原理圖見圖7測相框圖所示。3.2 單片機(jī)部分 相位測量儀既要測頻又要測相,所以決定先測頻,后測相。單片機(jī)主要進(jìn)行頻率和相位差的計算、控制FPGA64位數(shù)據(jù)的輸出、相位差正負(fù)的判斷和液晶的顯示。根據(jù)計算相位差公式計算出兩路輸入信號的相位差,再由“超前/滯后”信號確定顯示的內(nèi)容。當(dāng)相位超前時,顯示相位差為x,若相位滯后,顯示相位差為360 x。為了提高測量精度而設(shè)計任務(wù)中對測量的時間并無時間要求,我們采用浮點(diǎn)數(shù)進(jìn)行運(yùn)算。4. 系統(tǒng)調(diào)試與結(jié)果分析 4.1 測試儀器 DF1071函數(shù)信號發(fā)生器 +5V直流穩(wěn)壓源 DS 5062M示波器

14、CPLD及其開發(fā)板 凌陽SPCE061A單片機(jī)及其開發(fā)系統(tǒng) 4.2 測試方法 將移相網(wǎng)絡(luò)的兩路輸出信號接到整形放大電路的兩路輸入端,整形后的電路經(jīng)過異或門后與EDA小系統(tǒng)的TCLK相連,將單片機(jī)上的控制信號CLR、CL、SPUL、SEL2.0端分別與EDA小系統(tǒng)的CLR、CL、SPUL、SEL2.0端相連,EDA小系統(tǒng)輸出的START、EEND、DATA7.0與單片機(jī)相連。同時單片機(jī)接液晶顯示器,用來顯示被測信號的頻率、相位差。 4.3 測試結(jié)果及分析 測試結(jié)果見表1。表移相網(wǎng)絡(luò)測試結(jié)果頻率移相范圍()峰峰值(V)100Hz-50.4-50.41.30V1KHz-43.2-50.41.28V1

15、0KHz-46.45-49.351.04V 移相網(wǎng)絡(luò)輸出的兩路移相信號的角度與題目要求的有一定的差距,尤其是B滯后的相位,但超前相位能夠滿足要求,并且比要求的更好,此外,兩路移相信號的峰峰值的范圍為3555.2mV7.48V,完全滿足題目所要求的0 .3V5V范圍。出現(xiàn)上述差距的原因有輸出波形受輸入波形的影響,而輸入信號為函數(shù)信號發(fā)生器,輸出的頻率和幅度都會有跳變;此外,移相角度隨所接負(fù)載和時間等因素的影響而產(chǎn)生漂移。5. 總結(jié) 本設(shè)計以單片機(jī)SPCE061A作為主控部件,以CPLD作為計數(shù)部件,構(gòu)成完備的測量系統(tǒng),并且介紹了測頻、測相的原理和方法,顯示部分采用液晶顯示器,有良好的人機(jī)界面友好

16、。硬件結(jié)構(gòu)簡單,軟件采用C語言實現(xiàn),程序簡單可讀寫性強(qiáng),效率高。測試結(jié)果基本上達(dá)到了指標(biāo)要求。 不過在設(shè)計過程中遇到了很多困難,特別是單片機(jī)部分,控制信號不易產(chǎn)生,且延時不易控制。通過一步一步的調(diào)試、試驗,達(dá)到了要求。參考文獻(xiàn)1 潘松黃繼業(yè)編著EDA技術(shù)實用教程(第二版)科學(xué)出版社2007年月2 凌陽科技大學(xué)計劃編著凌陽單片機(jī)在大學(xué)生電子設(shè)計大賽中的應(yīng)用北京航空航天大學(xué)出版社2005年6月3 高吉祥主編全國大學(xué)生電子設(shè)計競賽培訓(xùn)系列教程電子儀器儀表設(shè)計電子工業(yè)出版社 附錄:.元器件清單:元器件名稱數(shù)量(個)元器件名稱數(shù)量(個)LF3532LM3931LM3584HD74LS04P2撥碼開關(guān)(路

17、)SN74LS00N1滑動變阻器(20K)3SPLC501液晶摸組IN41484GWDVPB開發(fā)板1. 程序:#include spce061a.h#include SPLC501User.h/包含SPLC501液晶模組驅(qū)動程序的用戶接口API函數(shù)聲明的頭文件#include data.h #include spce061a.h#define sel0 0x0001 /定義AD9851與SPCE061A的接口#define sel1 0x0002#define sel2 0x0004 #define SPUL 0x0008 #define CLR 0x0010 /A口的05#define CL

18、 0x0020 #define Set_IOA_Bit(x) (*P_IOA_Data = *P_IOA_Buffer | x) /置高#define Clear_IOA_Bit(x) (*P_IOA_Data = *P_IOA_Buffer & x) /置低#define Set_IOB_Bit(x) (*P_IOB_Data = *P_IOB_Buffer | x) /置高#define Clear_IOB_Bit(x) (*P_IOB_Data = *P_IOB_Buffer & x) /置低int delay();void danpian();void main() unsigned

19、long int r1,r2,r3,r4,r5,f2,f4,f=,i=0; unsigned int a,b,c,d,e; unsigned long int k; float n1,n2,n3; LCD501_Init(0x00); /液晶顯示初始化 *P_Watchdog_Clear=1; /清看門狗操作 dsp1(0x1d,0x1d,0x1d,0x1d,0x0); /開始顯示零 dsp2(0x1d,0x1d,0x1d,0x1d,0x0); *P_IOA_Dir=0xffff; / IOA158作為輸出給液 A口的05位輸出控制信號 *P_IOA_Attrib=0xffff; *P_IOA

20、_Data=0x0007;*P_IOA_Data|=0x0007; *P_IOB_Dir=0x0070; /158由FPGA輸入數(shù)據(jù),64位輸出ep,rw,a0給液 3輸入Q 0,1位輸入START ,END *P_IOB_Attrib=0x0070; *P_IOB_Data|=0x0000; while(1) Set_IOA_Bit(SPUL); Set_IOA_Bit(CLR);for(i=0;i10;i+)*P_Watchdog_Clear=0x0001; Clear_IOA_Bit(CLR); Set_IOA_Bit(CL); for(i=0;i200;i+)/000 *P_Watch

21、dog_Clear=0x0001; Clear_IOA_Bit(CL); if(*P_IOB_Data &0x0001)=0) /START 1 BIANWEI 0 r2=*P_IOB_Data; r2=*P_IOB_Data &0xff00; r2=r216;/當(dāng)SEL 為111把最高8位給R1的最高8位 Clear_IOA_Bit(sel0); r4=*P_IOB_Data & 0xff00; r4=r48; r3=r2 | r1; n2=r3; /被測頻率 Clear_IOA_Bit(sel2); Set_IOA_Bit(sel0); Set_IOA_Bit(sel1); r1=*P_I

22、OB_Data &0xff00;r1=r116; Clear_IOA_Bit(sel0); r2=*P_IOB_Data &0xff00;r2=r28; r4=r2 | r1; n1=r4; /標(biāo)準(zhǔn)頻率; f2= f* (n2 /n1); k=f2; if(k!=0) a=k%10; k=k/10; if(k!=0) b=k%10; k=k/10; if(k!=0) c=k%10; k=k/10; if(k!=0) d=k%10; k=k/10; if(k!=0) e=k%10; k=k/10; dsp1(e,d,c,b,a); else dsp1(0x1d,d,c,b,a); else ds

23、p1(0x1d,0x1d,c,b,a); else dsp1(0x1d,0x1d,0x1d,b,a); else dsp1(0x1d,0x1d,0x1d,0x1d,a); *P_Watchdog_Clear=1; for(i=0;i50;i+) *P_Watchdog_Clear=0x0001; Set_IOA_Bit(CLR); for(i=0;i50;i+) *P_Watchdog_Clear=0x0001; Clear_IOA_Bit(CLR); Clear_IOA_Bit(SPUL); Set_IOA_Bit(CL); if (*P_IOB_Data & 0x0002) /end 0B

24、IANWEI 1 Set_IOA_Bit(sel0); Set_IOA_Bit(sel1); Set_IOA_Bit(sel2); r2=*P_IOB_Data &0xff00;r2=r216;/當(dāng)SEL 為111把最高8位給R1的最高8位 Clear_IOA_Bit(sel0); r1=*P_IOB_Data &0xff00;r1=r18; r3=r2 | r4; n3=r3; /t=n3/f; /T被測信號的正脈寬,T一個周期的脈寬 f4=360*(n2*n3)/n1); /if(*P_IOB_Data &0x0008) /f4=f4; /else f4=360-f4; k=f4; if(k!=0) a=k%10;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論