基于MCU+CPLD的相位差和频率的测量方法研究及实现
1 引言
相位检测是电力系统自动控制和谐波分析与控制的关键技术。传统的相位测量是利用过零电路把输入的两路信号(电压或电流)转换为方波信号,再利用逻辑电路和单片机技术对信号某一特殊区段计数和数学变换,求得相位差。随着可编程器件(FPGA,CPLD)的快速发展,目前采用以MCU+FPGA/CPLD为核心的设计理念。这种混合设汁方案利用CPLD在线修改的特点,实现各种复杂数字逻辑设计,结合单片机的控制功能。简化数字电路系统设计,大大缩短系统研制开发周期。本文采用MCU+CPLD设计方法,测量两路信号的相对宽度,充分利用CPLD速度快,单片机控制和数据处理能力强的优势,完成频率和相位差的测量和显示,大大简化了硬件电路,并提高了测量精度和抗干扰能力。
2频率和相位测量原理
频率测量可先测周期T,然后根据公式f=1/T算出频率,这种方法为间接测量。根据测频的误差分析,在f较低场合,f越低T越大。计数器得数N也越大,%26#177;1误差对测量结果的影响减小。具体实现方法是被测信号(正弦)经整形电路后成为方波,用于控制主门的通断,在此期间(一个周期T)外部时标信号TS通过主门,用计数器累计时标脉冲个数。被测信号周期T=NTS,其中TS为时标脉冲周期,N为被测信号一个周期之内累计时的标脉冲个数。相位差△φ对应的时间=N1TS,则△φ=(△T/T)%26#215;360%26#176.
两个频率相同而相位不同的正弦信号u1=Asinwt和u2=Asinw (t+△T)分别送人比较器整形后得到两个方波信号X1、X2。其中X2送入双D触发器的1CLK端,得到图2中的QB波形;同理,利用X1可得到QA波形。最后将QB和QA送人与门74LS11,QB%26#215;QA相与得到时间差脉冲△T,△T与相位差对应(△φ=w△T)。
3硬件电路设计
MCU与CPLD控制模块连接如图3所示,MCU采用8位单片机AT89C51,CPLD选用Altera公司MAX7000S系列中的EPM7128SLC84-15,该器件一共有84个引脚,68个I/O端口,采用EEPROM技术,内含2500个逻辑门,128个宏单元。图3中CPLD模块的%26#215;1、%26#215;2为整形后的被测信号输入端,inclk为外部时标信号输入端,t0、t1端分别与单片机的定时/计数器T0,T1相连,采用单片机内部16位定时/计数器,加上CPLD模块内的8位计数器,可使计数器位数达到24位,以此提高分辨率。P25与读信号RD、P26与RD分别控制两个锁存器74373的数据读取,此外P24、P15、P16分别控制相位和周期的测量。P27与写信号WR控制写显示器,P10、P11、P12、P13、P14用于键盘和显示的控制。单片机P0端口用于从CPLD读取8位计数器数据,另外还用于向显示器写显示数据。
4软件设计
4.1 CPLD控制模块设计
CPLD控制模块的底层没计如图4所示,CPLD控制程序中的变量P2.4、p1.5、%26#215;1、%26#215;2、p2_6、rd、p2_7、wr的数据类型为IN STD_LOGIC;变量p1_6、t0、t1、o1、pout的数据类型为OUT STD_LOGIC;中间变量有f2、f1、j1、j2、q1,q2,其中f2、f1分别与图2中的波形QA、QB表示的端口一致;j1、j2的数据类型std_logic_vector,分别代表图4中两个8位计数器74393的输出;q1,q2分别表示与门7403、7411的输出。根据频率、相位测量原理,测量部分将由CPLD完成,测量结果经单片机运算后存LED上显示。由CPLD完成的相位测量部分程序以下给出相关程序代码。
|