基于EMP 7128的数字式相位测量仪
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的数字式相位测量仪(第2页)》