微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 基于FPGA的发电机组频率测量计的实现

基于FPGA的发电机组频率测量计的实现

时间:07-22 来源:互联网 点击:
1 引言  

在现代社会中,电资源成为人们生活当中不可缺少的一部分,而发电机和电动机在电力系统中扮演着非常重要的角色。在很多场合,需要对电机组和电网的频率进行测量。目前,频率测量的电路系统很多,这里介绍一种数字电路测频:基于FPGA的发电机组的频率测量计。  

随着电子技术的不断发展和进步,以EDA为代表的数字电路设计发生很大变化。在设计方法上,已经从“电路设计—硬件搭试—焊接”的传统设计方式到“功能设计—软件模拟—下载调试”的电子自动化设计模式。在这种状况下,以硬件描述语言(Hardware Description Language)和逻辑综合为基础的自顶向下的电子设计方法得到迅速发展。Verilog HDL语言是目前应用最广泛的硬件描述语言,它是在C语言的基础上发展起来的,语法较为自由灵活、拥有广泛的学习群体、资源比较丰富,且容易学简单易懂。本文发电机组频率测量计的设计是在Verilog hdl语言的基础上展开的,源程序经过Altera 公司的QuartusⅡ5.0软件完成了综合、仿真(功能仿真和时序仿真),FPGA(Field Programmable Gate Array,现场可编程门阵列) 选用的是Cyclone系列的EP1C3T144C6器件。  

2 频率测量电路  

2.1频率测量的总体电路  

采用电压互感器取来自于发电机组端电压或电网电压的测频输入信号,经削波、滤波处理后,变成幅度基本不变的稳定波形,经放大电路将信号放大整形,再用电压比较电路将具有正负幅值的方波变成只有正幅值的方波信号。然后,通过光电耦合器使FPGA的数字系统与输入信号隔离。FPGA数字系统利用标准的1HZ信号对隔离后的方波信号的脉冲个数进行计数,得到信号的频率数,该频率数经数码管显示。由于发电机组的频率与发电机组端电压有关系,可以从频率的变化得到发电机组端电压的变化。从系统总体框图如图1所示,从中可以看出,该FPGA数字系统与输入通道隔离,因而大大提高了系统硬件的抗干扰能力。   


  
图1 系统总体框图  

2.2频率测量的原理  

频率测量的原理是计算每秒钟待测信号的脉冲个数,也就是利用标准的1HZ (周期为1s) 脉宽信号对输入的待测信号的脉冲进行计数,1秒计数结束后对采集到脉冲个数送到数码管显示。  

测频控制器有3个输入信号:Samplefreq为标准的脉冲信号,Reset是复位控制信号,Start是开始测量信号;3个输出信号:Endmeasure是结束测量信号(计数复位和转换复位),Gate是允许计数信号(即门控信号),Enableconvert是开始转换信号。控制流程是先对频率计复位,再开始测量,在Samplefreq信号的上升沿,Gate信号使能使计数器开始工作,到Samplefreq的下一个上升沿,Gate反转成低电平使计数器停止计数,同时Enableconvert使转换器开始转换二进制数(转换时间低于1s)。转换结束后,十进制数经过7段显示译码器译码,然后在数码管中显示所测信号的频率。由于Enableconvert信号的使用使数码管数据显示稳定,不会出现闪烁。进行下次测量之前要对频率计进行复位,使数码管的数字显示清零,为下次显示做准备。  

本文设计的数字频率计有六个模块组成:测频控制模块(Control)、十分频模块(divfreq)、二进制计数器模块(Counter)、锁存器模块(Latch)、二进制到十进制的转换器模块(Bit2Bcd)、7段显示译码器模块(Led_encoder)。  

3 频率测量计的设计  

本次设计采用Verilog HDL语言,运用自顶向下的设计理念。将系统按功能按层次化分,首先定义顶层功能模块,并在顶层功能模块内部的连接关系和对外的接口关系进行了描述, 而功能块的逻辑功能和具体实现形式则由下一层模块来描述。整个设计分两步:第一步利用Quartus Ⅱ5.0图形块输入方式设计顶层模块,顶层图形块如图2所示;第二步在顶层模块中为每个图形块生成硬件描述语言(Verilog HDL),然后在生成的Verilog HDL设计文件中,对低层功能模块的功能进行描述设计。   


图2 顶层图形块  

3.1 测频控制模块设计  

这是三输入三输出模块,测频控制模块波形仿真如图3所示,如用Verilog HDL描述为:  

module Control (clk,reset,start,enableconvert,gate,endmeasure);  
input reset,start,clk;  
output enableconvert,gate,endmeasure;  
reg enableconvert,gate,endmeasure;  
always @ (posedge clk or posedge reset)  
begin  
if (reset)  
begin  
endmeasure enableconvert gate end  
else   
begin  
endmeasure if (start)   
begin  
gate enableconvert end  
end  
end  
endmodule   


图3 测频控制器波形仿真时序图  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top