高精度频率测量模块开发与设计

2015-05-29 10:56梁景棠
电气开关 2015年5期
关键词:数码管计数器端口

梁景棠

(惠州供电局,广东 惠州 516001)

1 测量原理

频率测量所能达到的精度,主要取决于作为标准器使用的频率源的精度以及所使用的测量设备和测量方法。目前,国内外使用测频的方法有很多,有直接测频法、内插法、游标法、时间—电压变化法、多周期同步法、频率倍增法、频差倍增法以及相位比较法等等。

无论使用哪种测量方法,频率测量都是基于以下两种基本方法的。

一种是测频法,即将被测信号加到计数器的计数输入端上,计数器在标准时间Ts1内进行计数,所得的计数值N1与被测信号的频率fx1有如下关系:

fx1=N1/Ts1=N1fs1

另一种方法是测周法,该方法是将标准频率信号fx2送到计数器的计数输入端,而让被测频率信号控制计数器的计数时间,所得的计数值N2与fx2有如下关系:

fx2=fs2/N2

无论用哪种方法进行频率测量,主要误差源都是由于计数器只能进行整数计数而引起的±1误差ε=ΔN/N

对于测频法有:

ε1=ΔN1/N1= ±1/N1= ±1/(Ns1fx1)= ±fs1/fx1

对于测周法有:

ε=ΔN2/N2= ±1/N2= ±fx2/fs2= ±Ts2fx2

可见在同样的Ts下,测频法在fx1的低频端误差远大于高频端,而测周法在fx2的高频率的误差远大于低频端,理论研究表明,如进行n次重复测量取平均,则±1误差会减小n倍。如给定±1误差ε0,则要求ε≤ε0,对测频法要求 fx1≥fs2/nε0,测周法要求 fx2≤nε0fs2。因此,如对一给定频率信号fx进行测量,用测频法测量时fs1越低越好,用测周法fs2越高越好。

电力系统的正常频率为工频50Hz,应选用周期法或利用周期法改进的方法如多周期法来测量。

2 硬件设计

硬件设计应该包括以下三部分:(1)电源与信号输入部分电路,如模拟比较电路、信号接入口等,用于接收测量信号;(2)处理部分,即单片机,计算信号频率做出相应的处理和输出;(3)输出电路,应包括一个四位八段数码管,用于频率的显示,此外还应该有紧急操作信号输入。

2.1 电源与信号输入电路

要使整个电路能正常工作,首先应一个稳定的电源。由于设计主要用于测量市电频率,首先考虑通常从市电电压中获取工作电源。电源电路如图1所示。

图1 电源电路图

获取工作电源的原理是:首先通过变压器将220V的交流电压降压,再经整流电路将其变成直流,最后用7805稳压管将电压稳定,这样就获得了稳定的直流工作电源了VCC。

本次设计测量的信号主要为市电,电压为220V,对于单片机而言一个很高的电压,如果隔离不好容易烧坏单片机。且电压为变化的交流电压,影响地极电压的稳定,带来电磁干扰,使得模拟比较不准确,同时也会单片机运行不稳定,因此,信号输入电路应能有效地隔离输入信号的电磁干扰。

由上述分析,此部分电路设计如图2所示。

图2 测量信号处理图

电路工作原理如下:

测量电压信号接入最左边UIN和UN两个端口,当UIN>UN时,TLP521的3和4端口导通,运算放大器LM311的端口2接入电压为VCC,大于其反相端口3,LM311输出端口7输出电压为正。当UIN<UN时,情况则相反,TLP521的3和4端口不导通,运算放大器LM311的端口2接入电压为接地电压0,小于其反相端口3,LM311输出端口7输出电压为0。输出电压信号将ICP接入单片机的输入捕获端,做进一步运算处理。至此,测量电压信号得到了很好的隔离。

2.1 单片机及其周围电路

这部分电路主要为输入输出端口设置、工作电源接口、复位接口等,如图3所示。

图3 单片机端口连接图

说明如下:

(1)PD6为方波信号ICP接入端。电源、晶振和复位信号接法参照单片机端口说明。

(2)输出部分端口有:①SPI(PB7、PB5和 PB4口),用于数码管的显示;②PD3、PD4用于频率出错时的紧急操作信号输出;③PD0、PD1和PD2用于跟上位机的异步串行通讯,可以将测得频率的实时数据上传给电脑;④PC0、PC1、PC6和PC7用于数码管的选位,实现动态显示。

2.3 信号输出部分电路

虽然单片机的I/O端口具有一定的驱动能力,但过多地直接使用单片机I/O端口驱动会给单片机行动的稳定性带来不利的影响,故输出电路应有转换器件,使I/O端口工作于开关状态。电路图如图4所示。

(1)数码管驱动电路(转换器件:74HC595);

图4 四位八段数码管连接图

此部分电路是使用SPI通讯方式实现显示代码的串行输出。

(2)操作信号输出(转换器件:三极管9013);

图5 操作信号转换图

(3)串行接口 USART(转换器件:TLP521-4、MAX485ESA或SN75LBC184),如图6所示。

(4)数码管选位(转换器件ULN2803A)如图7所示。

3 软件的编写和优化

软件编程应该实现以下几个功能:(1)通过输入方波控制计数器中断以获取一个信号周期时间;(2)计算频率;(3)将算得的频率送到上位机和将其显示代码送至四位八段数码管显示。(4)判断频率是否超出规定范围,若超出则发送紧急操作信号。

程序流程图如下:

(1)主程序如图8所示。

(2)计数器中断程序流程图如图9所示。

4 结论

图6 串行通信信号转换图

图7 数码管选位电路图

图8

图9

本论文目的是设计一个对电力系统频率进行测量,提供实时的频率变化数据,为监控者提供操作的数据依据,必要时可以替监控者做出操作动作的频率测量装置。利用单片机运行速度快、计数准确等特点设计出的频率测量器具有准确、精度高和实时有效等特点,同时可以设计输入信号控制操作。

本设计还可以用于10~400Hz左右的频率测量(波形可以是非正弦波),并在数码管中正确显示。也能正确将频率数据上传到上位机中,但会发出越限报警信号。可以通过修改程序将报警功能去掉或在电路中增加输入口进行设置。

猜你喜欢
数码管计数器端口
采用虚拟计数器的电子式膜式燃气表
一种端口故障的解决方案
微课教学设计之“数码管动态显示”
关于74LS90计数器的Multisim仿真分析
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
端口阻塞与优先级
系统网络端口安全防护
算盘是个“小气鬼”