基于EMP 7128的数字式相位测量仪
发布时间:2008/6/2 0:00:00 访问次数:583
摘要:分析了基于altera公司cpld芯片emp7128slc84-15进行相位测量的基本原理,给出了用emp7128slc8415进行相位测量的硬件实现电路及vhdl源程序。
关键词:emp 7128slc84-15;cpld;相位;频率
1 器件简介
emp 7128slc84-15是altera公司的max7000s系列cpld,它采用cmos工艺,并以第二代矩阵结构为基础,实际上也是一种基于e2prom的器件。emp 7128slc84-15有84个引脚,其中5根用于isp(in system programmable)下载,可方便地对其进行在系统编程。此器件内集成了6000门,其中典型可用门为2500个,有128个逻辑单元,60个可用i/o口,可单独配置为输入、输出及双向工作方式,2个全局时钟及一个全局使能端和一个全局清除端。emp 7128slc84-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)频率计
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fcounter is
port(sig:in std_logic; --输入信号
clk:in std_logic; --0.5hz的闸门信号,可由晶振分频得到
counter:out std_logic_vector(19 downto 0));
--计数输出
end;
architecture data of fcounter is
signal temp:std_logic_vector(19 downto 0);
begin
p1:process(sig)
begin
if sig'event and sig=‘1’then
if clk=‘1’ then
temp<=temp+1; --在闸门的高电平时段计数
else
temp<=“00000000000000000000”
--在闸门的低电平时段清零
end if;
end if;
end process p1;
p2process(clk)
begin
if clk′event and clk=′0′ then
counte
摘要:分析了基于altera公司cpld芯片emp7128slc84-15进行相位测量的基本原理,给出了用emp7128slc8415进行相位测量的硬件实现电路及vhdl源程序。
关键词:emp 7128slc84-15;cpld;相位;频率
1 器件简介
emp 7128slc84-15是altera公司的max7000s系列cpld,它采用cmos工艺,并以第二代矩阵结构为基础,实际上也是一种基于e2prom的器件。emp 7128slc84-15有84个引脚,其中5根用于isp(in system programmable)下载,可方便地对其进行在系统编程。此器件内集成了6000门,其中典型可用门为2500个,有128个逻辑单元,60个可用i/o口,可单独配置为输入、输出及双向工作方式,2个全局时钟及一个全局使能端和一个全局清除端。emp 7128slc84-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)频率计
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fcounter is
port(sig:in std_logic; --输入信号
clk:in std_logic; --0.5hz的闸门信号,可由晶振分频得到
counter:out std_logic_vector(19 downto 0));
--计数输出
end;
architecture data of fcounter is
signal temp:std_logic_vector(19 downto 0);
begin
p1:process(sig)
begin
if sig'event and sig=‘1’then
if clk=‘1’ then
temp<=temp+1; --在闸门的高电平时段计数
else
temp<=“00000000000000000000”
--在闸门的低电平时段清零
end if;
end if;
end process p1;
p2process(clk)
begin
if clk′event and clk=′0′ then
counte