找回密码
 注册
关于网站域名变更的通知
查看: 454|回复: 1
打印 上一主题 下一主题

基于MCU+CPLD的相位差和频率的测量方法研究及实现

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-12-9 10:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
基于mcu+cpld的相位差和频率的测量方法研究及实现

; z5 S' ~+ V7 @) ]9 `
7 {. h  e4 o) h/ q& Z" q( `8 w1 引言
' Q. `" j7 a5 Y  [
( b& s" x5 }7 n; h( ^7 w相位检测是电力系统自动控制和谐波分析与控制的关键技术。传统的相位测量是利用过零电路把输入的两路信号(电压或电流)转换为方波信号,再利用逻辑电路和单片机技术对信号某一特殊区段计数和数学变换,求得相位差。随着可编程器件(FPGA,CPLD)的快速发展,目前采用以MCU+FPGA/CPLD为核心的设计理念。这种混合设汁方案利用CPLD在线修改的特点,实现各种复杂数字逻辑设计,结合单片机的控制功能。简化数字电路系统设计,大大缩短系统研制开发周期。本文采用MCU+CPLD设计方法,测量两路信号的相对宽度,充分利用CPLD速度快,单片机控制和数据处理能力强的优势,完成频率和相位差的测量和显示,大大简化了硬件电路,并提高了测量精度和抗干扰能力。9 n$ z, e! g5 ~7 A

2 W( Z$ g1 _9 [! {. K1 t2频率和相位测量原理' A1 A( N2 b5 n9 E

, L5 ]: V7 @' _8 z频率测量可先测周期T,然后根据公式f=1/T算出频率,这种方法为间接测量。根据测频的误差分析,在f较低场合,f越低T越大。计数器得数N也越大,±1误差对测量结果的影响减小。具体实现方法是被测信号(正弦)经整形电路后成为方波,用于控制主门的通断,在此期间(一个周期T)外部时标信号TS通过主门,用计数器累计时标脉冲个数。被测信号周期T=NTS,其中TS为时标脉冲周期,N为被测信号一个周期之内累计时的标脉冲个数。相位差△φ对应的时间=N1TS,则△φ=(△T/T)×360°。图1给出f、△φ测量系统框图。
" V' [6 t' K  F8 {$ z( M6 o  ?1 f! P& a

- ?$ {0 Z. j. P) B# Y1 J) ~) h0 v
" z2 q1 n1 M( y7 ]* r

) y4 m  X& |1 _4 |9 C6 M两个频率相同而相位不同的正弦信号u1=Asinwt和u2=Asinw (t+△T)分别送人比较器整形后得到两个方波信号X1、X2。其中X2送入双D触发器的1CLK端,得到图2中的QB波形;同理,利用X1可得到QA波形。最后将QB和QA送人与门74LS11,QB×QA相与得到时间差脉冲△T,△T与相位差对应(△φ=w△T)。
/ d% J8 f7 A" h* A0 i$ K
4 a1 g4 V( J  P  x3 ]! t& [3硬件电路设计8 Q( z- A0 d3 H  @- `
( W& s2 U1 s% m8 c% P* u. H( k: ]! o
MCU与CPLD控制模块连接如图3所示,MCU采用8位单片机AT89C51,CPLD选用ALTEra公司MAX7000S系列中的EPM7128SLC84-15,该器件一共有84个引脚,68个I/O端口,采用EEProm技术,内含2500个逻辑门,128个宏单元。图3中CPLD模块的×1、×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位计数器数据,另外还用于向显示器写显示数据。
! P  r( O8 V) {
" n7 q- @, {' Z! V! J4软件设计7 x/ o3 ?9 n, E% U8 @5 Z
8 ?  |) Y* [. C3 b8 \1 Z: C( a( T
4.1 CPLD控制模块设计8 {4 S3 e, I" S3 f% l: u3 ~+ Q

2 ?4 k: M- Y6 N2 _CPLD控制模块的底层没计如图4所示,CPLD控制程序中的变量P2.4、p1.5、×1、×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完成的相位测量部分程序以下给出相关程序代码。: ?$ j0 [! t+ S- p1 v1 r

' f5 I6 T: O! Y7 I  P% j2 y
5 R$ E- h+ J/ a2 L6 }2 \: V3 G4 ]' l& e& }
4 V: i" L  o5 z& u
1 n8 s3 y  h( C8 s1 \# x( M; z
&nBSP;
# u4 ^+ L4 Y6 Q5 B! C8 Q* z& I4 b
$ f& q6 S( m, B% f* e
4.2 MCU程序设计! E# U) H( C" j# X

* ], x. z" X, L: P( [: z+ \9 r系统控制软件采用C语言和汇编语言混合编写,采用模块化设计,各个功能子模块独立。整个软件分为主程序、频率测量子程序、相位差测量子程序。图5为相位差测量子程序流程图。, k4 I, F; ?6 t& x

( d: Z# M$ E0 h7 P2 |% ]4 |% a5 `: Z3 s; {
  `0 S, O# A, z& d
/ v* N3 X# g6 ]. u# F, _9 v* p

/ y' e3 J' Y% `. J  _! @/ _
2 ~; h0 p: q+ ~/ a, m  b+ U- _5 CPLD仿真 ' w. s2 X3 U# F8 M8 f

& [6 l6 t; p$ k系统CPLD仿真波形如图6所示,在×1、×2端输入周期T=40μs、相位差△φ=135°的两路被测信号,osc端为5 MHz的输入时标信号。本系统设计实现f、△φ测量,首先要是准确判断出被测信号的一个周期的起始与结束,因此采用单片机P16、P24来完成周期判断。
9 s, P7 r1 R4 ?- c6 ?
- y7 \5 z. L: d) L8 @6 A4 C# R9 ?结合图4的CPLD设计的底层图和图6的CPLD仿真波形分析如下:首先P24=0。使下面的双D触发器清零,即1Q=2Q=0,而且P15=1对两个计数器74393清零,等待计数。P24由0→1后,当被测信号×2上升沿到来时1Q翻转,1Q=1,打开与门7411和7408,允许时标脉冲计数,此时2Q仍为0;当被测信号×2第二次上升沿到来时1Q再次翻转,1Q=0,同时2Q也翻转,2Q=1。此时单片机查询到P16=1,完成一个周期的检测。然后使P24=0,关闭与门7411和7408,停止计数。+ V& R; t8 ?: v8 c! _
! X3 t4 G' z" u
计数完毕后,当P25为低电平且RD下降沿到来时,单片机读取第一个锁存器74373的数据为[q28…q211]=01001011;当P26为低电平且RD下降沿到来时,单片机读取第二个锁存器74373的数据为[q28…q21]=11000111,则△φ=(01001011/11000111)x360°=(75/199)×360°=135°。可见波形仿真验证了系统设计的正确性。
* q2 \: G1 o. s4 ^  o# X2 T& A# I6 j2 W7 t8 k

1 A4 P1 b* v, d% C  J. d' v4 {
3 \9 G0 k2 A; Q& d" x, J7 f' Z* `" A; _- z* Q1 F' o& F, Q, w7 c

' b' z. u( C, D, t6结语
  f$ E5 G5 J$ R; J5 I/ n/ M2 ?/ B! D! G0 M5 ^" i$ g
本文给出了一种采用CPLD器件EPM7128SLC84215实现相位差智能化测量仪的方案。整个系统充分利用单片机CPLD可编程逻辑器件各自的优势,只需少量的外围电路,即可有效测量正弦波、方波、三角波信号的相位差,硬件电路简单,精度高,抗干扰能力强,性能指标良好.$ w& f5 E8 t7 j' \
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-24 22:17 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表