用FPGA实现发电机组频率测量计
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 <= 1'b1 ;
enableconvert <=1'b0 ;
gate <= 1'b0 ;
end
else
begin
endmeasure <= 1'b0 ;
if (start)
begin
gate <= ~gate ;
enableconvert <= gate ;
end
end
end
endmodule
图3 测频控制器波形仿真时序图
3.2 二进制到十进制的转换器模块设计
本设计,需要转换时钟Convertfreq信号对转换模块进行时序控制,由于要在1s内完成转换,则转换时钟Convertfreq的频率应该选用高频频信号,即转换时钟Convertfreq的频率是标准时钟Samplefreq信号10分频得到的。
为了对本设计进行波形仿真,取输入的10位二进制数bin[9..0]为10’b0000011001(十进制为25)。图4为二进制到十进制的转换器的仿真时序图:
图4 二进制到十进制的转换器的仿真时序图
4 仿真和调试
通过上述的描述,从各个模块独立的角度对其进行了仿真,结果表明设计符合要求。为了保证系统的整体可靠性,对整个系统做了仿真,仿真时序图如图5所示:
图5 系统仿真时序图
其中,LEDD,LEDC,LEDB,LEDA是译码的结果要在7段数码管上显示,0010010(显示为2)、0100100(显示为5)。将设计的频率测量计下载到目标芯片EP1C3T144C6中,并在GW48实验箱上进行的模拟仿真,当输入频率为1 Hz~1023 Hz的信号时,频率测量计所测的频率完全准确,当频率高于1023Hz时,系统报警,同时频率显示为0。
5 结束语
基于FPGA设计的发电机组频率测量计,系统在整体上采用光电耦合器的隔离方式,提高系统的抗干扰能力和稳定性。该系统具有线路简单可靠、通用性强、稳定度高等优点,可广泛应用于频率电压变换器、转速继电器。该设计的FPGA数字系统部分使用Verilog HDL语言,给出核心程序,并可以通过Verilog HDL语言的综合工具进行相应硬件电路的生成,具有传统逻辑设计方法所无法比拟的优越性。经过仿真后,验证设计是成功的, 达到预期结果。同时这种方法设计的数字电子系统可移植性强、可更改性好。如果需要的频率测量范围需要扩大,不需要硬件变化只需改变软件就可以,相对非常方便。