1、关键词:移相 单片机 D/A 转换 计数器两个同频信号之间的移相与实现方式 所谓移相是指两种同频的信号,以其中的一路为参考,另一路相对于该参考作超前或滞后的移动,即称为是相位的移动。两路信号的相位不同,便存在相位差,简称相差。若我们将一个信号周期看作是36 0 0,则相差的范围就在0 36 0。要实现移相,通常有两个途径:一是直接对模拟信号进行移相,如阻容移相,变压器移相等,早期的移相通常采用这种方式。采用这种方式制造的移相器有许多不足之处,如:输出波形受输入波形的影响,移相操作不方便,移相角度随所接负载和时间等因素的影响而产生漂移等在此不予讨论另一个是随电子技术的发展,特别是单片机技术的发展
2、而兴起的数字移相技术,是目前移相技术的潮流。数字移相技术的核心是:先将模拟信号或移相角数字化,经移相后再还原成模拟信号。数字移相主要有两种形式:h t t p:/w w w.2 1i c.c o m/i n f o/i m a g e s/e d w/2 0 0 10 7 a/3.h t m(第 13 页)2 0 0 5-8-2 1 2 2:0 0:56技术与应用文章-2 1i c.c o m 为全体电子工程师全力奉献!一种是先将正弦波信号数字化成,并形一张数据表存入RO M 芯片中,此后可通过两片D A 转换芯片在单片机的控制下连续地循环输出该数据表,就可获得两路正弦波信号,当两片D A 转
3、换芯片所获得的数据序列完全相同时,则转换所得到的两路正弦波信号无相位差,称为同相。当两片D A 转换芯片所获得的数据序列不同时,则转换所得到的两路正弦波信号就存在着相位差。相位差的值与数据表中数据的总个数及数据地址的偏移量有关。这种处理方式的实质是将数据地址的偏移量映射为信号间的相位值。另一种是先将参考信号整形为方波信号,并以此信号为基准,延时产生另一个同频的方波信号,再通过波形变换电路将方波信号还原成正弦波信号。以延时的长短来决定两信号间的相位值。这种处理方式的实质是将延时的时间映射为信号间的相位值。利用D/A 转换实现移相 图1给出了一个设计实例。单片机为8 0 31,D A 转换芯片采用
4、两片8 位字长的D A C0 8 32,由于D A C0 8 32 的输出信号为电流型,故需加运算放大器将电流型信号转换成电压型信号。该设计中运算放大器采用双极型双运放4558。转换所用的数据为2 56 个8 位字长的数据,随程序一起存入RO M 存储器中,即一个信号周期有2 56 个转换值。在进行D/A 转换的程序中,数据表中数据共有2 56 个,每两个相邻数据之间的相位差为36 0 o 2 56=1.4o。我们只需改变R1中的值就可改变两路正弦波的相位差。程序中R18,故第一路正弦波滞后第二路正弦波1.4o 8 11.2 o。利用单片机进行方波信号的移相 利用单片机进行方波信号的移相则是数
5、字移相的另一个途经,已有多种成功之作,有些偏重硬件,有些偏重软件。总体说来,偏重硬件的精度较高,但制造及调试较复杂;偏重软件,的结构简单,成本较低,但往往精度受影响。本文介绍一种己获得较为理想效果的设计。设计的原理框图如图2 所示。工作原理:作为参考信号的A,经整形后得到方波信号a,再利用锁相技术对a 作36 0 0 倍频,并将此倍频信号作为单片机中CT C的计数脉冲,以此来产生相移和测量移相的实际值。由于计数脉冲是通过锁相环产生的,在锁相环允许的频率范围内,计数脉冲始终是a 信号的36 0 0 倍,因此,可以看成是将a 信号的一个信号周期分为了36 0 0 份,且允许a 的频率可在一个小的范
6、围内波动。若一个信号周期为36 0 o,那么在一个信号周期内每个计数脉冲即代表0.1o。我们只需以a 信号为参考,延时若干个计数脉冲的时间来产生c 信号即可做到移相,改变延时计数脉冲的个数即可改变移相值,亦可记录两个信号的上沿(或下沿)间的脉冲个数来获得两信号的相位差。正是由于锁相环的存在,才使得移相信号B与参考信号A 的频率完全相同。比起由软件测得A 信号的周期后再来产生B信号的方式来,其精度要高得多。锁相环倍频的频率愈高则移相的最小单位愈小,若作7 2 0 0 倍频,那么在一个信号周期内每个计数脉冲即代表0.0 5o。图3是以上述方式进行移相的时序图,设计数脉冲的频率是a 信号的36 0
7、o 倍,那么从a 信号的上沿开始经N个计数脉冲后产生c 信号的上沿,则有a 信号超前c 信号 N0.1o。但我们需要的是A 信号与B信号之间的移相。A 信号与a 信号的相位是相同的,但c 信号与B信号的相位,由于波形转换电路的存在而不相同,其相位差视波形转换电路的参数而定。故A 信号与B信号之间的实际移相值无法由N0.1o 来计算。要获得A 信号与B信号之间的实际移相值,可将B信号整形成b 信号(两信号相位相同)后反馈给单片机,由单片机测量出a 信号与b 信号之间的计数脉冲个数n 即可,实际移相值为n 0.10。改变N的值即可改变移相值。要实现上述设计,除需要用锁相环产生计数脉冲外,还需要三个
8、16 位的计数器,分别用来计N,n 及18 0 o 的值。笔者将8 0 32 中的计数器作如下分配:T 0计N的值、T 1计n 的值、T 2 计18 0 o 的值。T 0、T 1及T 2 的启停全部由中断服务程序控制。接线如图2 所示。具体是:/w w w.2 1i c.c o m/i n f o/i m a g e s/e d w/2 0 0 10 7 a/3.h t m(第 2 3 页)2 0 0 5-8-2 1 2 2:a 信号的上沿产生INT 0 中断,其中断服务程序分别将-N及0 赋给T H 0 T L0 和T H 1T L1;然后使T 0、T 1开始计数。T 0 归零,其中断服务程
9、序关闭T 0;置P3.0;-18 0 0 赋T H 2 T L2;使T 2 开始计数。T 2 归零,其中断服务程序清P3.0;关闭T 2。b 信号的上沿产生INT 0 中断,其中断服务程序关闭T 1;读取T H 1T L1的计数值n。两种移相方式的性能比较 通过以上介绍,我们可以看出:以D A 转换方式实现的移相,虽然所用元件少,但输出信号的频率难以细调,特别是移相的最小单位太大(1.4o 步)。在50 H z 频率下,要达到0.1o 步移相细度难以办到。因此,该方式只适合于对频率要求不高,且移相角度固定的场合。以延时输出方波的方式实现的移相,其硬件电路比较复杂(锁相及波形变换电路)。输出信号
10、的频率以参考信号的频率为准,而参考信号的频率则可以精确给定。移相的最小单位可小于0.1o 步,这就为无级移相提供了基础。因此,该方式可用于对频率要求高,且需36 0 o 无级移相的场合。欢迎和其他工程师讨论 2 1IC电子技术书店 找本您需要的书 Co p y r i g h t (C)2 0 0 0 2 1I C.c o m,A l l Ri g h t s Re s e r v e d 本文文章著作权归作者和相关媒体所有2 1I C经授权准许制作发布 任何单位和个人未经许可,严禁链接,镜像,复制,拷贝或转载 北京欣星网科技有限公司 网页版权所有*w e b m a s t e r 2 1i c.c o mh t t p:/w w w.2 1i c.c o m/i n f o/i m a g e s/e d w/2 0 0 10 7 a/3.h t m(第 33 页)2 0 0 5-8-2 1 2 2:56关闭窗口
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1