- 相關推薦
基于EMP 7128的數字式相位測量儀
摘要:分析了基于Altera公司CPLD芯片EMP7128SLC84-15進行相位測量的基本原理,給出了用EMP7128SLC8415進行相位測量的硬件實現電路及VHDL源程序。關鍵詞:EMP7128SLC84-15;CPLD;相位;頻率
1器件簡介
EMP7128SLC84-15是Altera公司的MAX7000S系列CPLD,它采用CMOS工藝,并以第二代矩陣結構為基礎,實際上也是一種基于E2PROM的器件。EMP7128SLC84-15有84個引腳,其中5根用于ISP(InSystemProgrammable)下載,可方便地對其進行在系統編程。此器件內集成了6000門,其中典型可用門為2500個,有128個邏輯單元,60個可用I/O口,可單獨配置為輸入、輸出及雙向工作方式,2個全局時鐘及一個全局使能端和一個全局清除端。EMP7128SLC84-15支持多電壓工作,其傳輸延時為7.5ns,最高工作頻率高達125MHz,并支持多種編程方式,同時可利用Altera公司的第三代開發軟件Max+PlusII方便地進行仿真、綜合和下載。
2系統工作原理
圖1所示是一個數字式相位測量儀的系統工作示意圖。圖中,輸入的比較信號b與參照信號a,經參數相同的整形電路變換為正方波后,將兩個方波進行異或(在CPLD中完成),同時與測得信號的頻率f(由CPLD設計一頻率計完成)再異或,然后將得到的信號經2f倍頻,再將此信號作為閘門,并在其高電平時段利用高頻時鐘fc進行計數,最后在下降沿時將計數值讀出并設為N,則相位為:
Phase=180°N/fc
該相位測量儀表系統除整形電路外,其余均可由CPLD完成。計數所使用的晶振頻率為4MHz時?此系統的分辨率為180°/(4×106)=(4.5×10-5)°。
3基于CPLD的程序設計
設計系統軟件時?運用VHDL語言,可將系統分為頻率計、分頻器、相位計數器3個子模塊,現對其分別進行描述:
(1)頻率計
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityfcounteris
port(sig:instd_logic;--輸入信號
clk:instd_logic;--0.5Hz的閘門信號,可由晶振分頻得到
counter:outstd_logic_vector(19downto0));?
--計數輸出
end;
architecturedataoffcounteris
signaltemp:std_logic_vector(19downto0);
begin
P1:process(sig)
begin
ifsig'eventandsig=‘1’then
ifclk=‘1’then
temp<=temp+1;--在閘門的高電平時段計數
else
temp<=“00000000000000000000”?
--在閘門的低電平時段清零
endif;
endif;
endprocessP1;
P2?process(clk)
begin
ifclk′eventandclk=′0′then
counter<=te
mp;在閘門的下降沿將數據讀出
endif;
endprocessP2;
end;
由于閘門采用的是0.5Hz的方波,因此?輸出數值即為頻率值。
(2)分頻模塊
通過此模塊可對頻率計得到的頻率進行分頻,也可在異或后再分頻得到頻率為0.5Hz的矩形波。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityfenis
port(qin:instd_logicvector(19downto0);--連接頻率計輸出的頻率值
qout:outstd_logic);
end;
architecturedataoffenis
signaltemp:std_logic_vector(19downto0);
signala:std_logic;
begin
process(temp)
begin
iftemp<qinthen
temp<=temp+1;
else
temp<=“00000000000000000000”;
a<=nota;
endif;
qout<=a;--進行2f倍分頻
endprocess;
end;
3?相位測量
該模塊將分頻模塊得到的信號作為閘門,然后利用外部晶振進行計數,其設計原理與頻率計相同。由于相異或的一個周期對應輸入的兩路方波信號的半個周期(180°),而且只能測量到最大180°的相位差,因此?還須判斷超前或滯后,才能測量出大于180°的相位差,具體程序如下:
libraryieee;
useieee.std_logic_1164.all;
entitypre_lagis
port(s1,s2:instd_ogic;--兩輸入信號
pre:outstd_logic);--判斷結果輸出
end;
architecturedataofpre_lagis
begin
lag:process(s1)
begin
ifs1′eventands1=′1′then
ifs2=′0′then
pre<=′1′;--若s1超前s2,輸出為
′1′,否則輸出′0′;
else
pre<=′0′;
endif;
endif;
endprocesslag;
end;
(4)模塊的組合
圖3
在Max+PlusII中,采用原理圖輸入方式可將上述各模塊組合成一個軟件系統,然后將其綜合下載到CPLD即可完成相位測量儀的設計,其具體設計圖見圖3所示。
圖3中,A、B為輸入信號a、b經過整形得到的方波信號。Fcounter為頻率計模塊,Fen為分頻器,Phasecounter為相位測量計數器,Pre-lag為超前滯后判斷模塊。
4結束語
基于CPLD邏輯器件EMP7128SLC84-15構成的相位測量系統具有測量頻帶寬、分辨率高、誤差小、成本低、簡單易行等優點,完全能夠滿足實際測量的要求。而且,由于完全采用的是CPLD設計,因此,該系統十分易于升級。
【基于EMP 7128的數字式相位測量儀】相關文章:
數字式智能電機控制模塊08-06
基于CSSCI的200108-18
相位差可調的雙通道信號發生器的設計08-06
為了學校 基于學校08-17
基于高效的課堂展示08-25
基于Internet的學習模式08-07