基于单片机的相位差在线检测

更新时间:2024-01-12 09:34:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

引言:

在实际工作中,常常会遇到两列频率相同信号之间存在的相位差,那么就需要测量它们之间的相位差。电力系统中的电网并网合闸时,需要两电网的电信号的相位相同,这时需要精确测量两列工频信号之间的相位差,相位差测量在工业自动化,智能控制、通讯及电子技术等许多领域有着广泛的应用。随着计算机软硬件的日益发展。在测试系统中,以数字信号处理为核心的软件法测量技术越来越多的得到广泛的用。在电工仪表、同步检测的数据处理以及电工实验中,常常需要测量两列同频信号的相位差。相位测量的方法很多,典型的传统方法是通过显示器观测,这种方法误差较大,读数不方便。为此,我们设计一种数字式工频电压相位差测量仪。

1

一. 系统功能的确定及概念

1.1基本要求:

⑴ 能够快速准确的测量出相位差; ⑵ 精度较高;

⑶ 抗干扰能力强,不受被测信号幅值,频率的影响;

⑷ 稳定性较高。 1.2 相位和相位差的概念

相位和相位差是正相交流电的重要概念和技术参数。但是相位也不只是正弦信号的“专利”,非正弦周期信号同样具有相位,因为任何一个非正弦周期信号均可以被分解为一系列频率与初相不同的正弦信号。

相位说明谐波振荡在某一瞬时的状态。在数学上定义为正弦或余弦函数的幅角,其数学表达式为:v(t)?Asin(?t??)

式中, ?是初始角,?t??就是相位角,通常称为相位。

?(t)??t??

从式中可以看出相位是时间t的线性函数。令?1(t)、?2(t)表示角频率为?1?2 的两个简谐振荡的相位,则有:

?(t)??1(t)??2(t)?(?1??2)t?(?1??2)??t?(?1??2)

从式中可以看出相位角是时间t的函数。若ω1=ω2,即两个同频率的信号,则有:

?(t)??1??2

显而易见,两个同频率的相位差为常数,由初始相位角之差确定。相位差反映了若干个正弦量之间的相位关系。同频正弦量的相位关系是:超前、滞后、同相、反相、正交。

当A、B两个频率相同的正弦信号电压波形同时增大,同时减小,同时为正半周,同时为负半周,同时达到正峰点,同时达到负峰点,这样的两种信号其相位相同,信号的相位差0 o,称为同相信号。

当一个信号达到最大值时(正峰点),另一个达到最小值(负峰点),一个为正半周,一个为负半周,一个在增大时,另一个在减小,这样的两种信号其相位反相,信号的相位差180 o,称为反相信号。

当信号A达到最大值时,信号B才为零,当信号A为零时,信号B为最大值,两个信

2

号之间的相位相差四分之一周期,即相差90 o,称为正交信号。

当两个同频正弦量的计时起点(t=0)改变时,它们的相位和初相也随之改变,但它们的相位差不变,也就是说相位差与计时起点无关。这样,我们在比较几个同频正弦量的相位时,为方便起见,可以任意指定其中之一的初相为零,而把初相为零的正弦量叫做参考正弦量。

二. 方案论证 2.1 方案

方案一

基于异或门的测量方法

两路同频信号经过零比较后,得到两路同周期的方波。该两方波经异或后得到的脉冲宽度与信号周期的比值(占空比)即对应为两信号的相位差,这里的异或门相当于鉴相器。对脉宽信号的处理有以下两种方法。<1> 电压测量法;<2>数字计数法。 方案二

基于函数计算的测量方法 我们先从数学理论上计算相位差,假设信号A为SA?Acos(?t??1),信号B为

SB?Bcos(?t??2)。),其中A,B分别为信号A和信号B 的幅度, ?为角频率,?1,?2为信号A

和信号B 的初相位,两信号相乘可得

SASB?ABcos(?t??1)cos(?t??2)? AB?cos(2?t??1??2)?cos(?1??2)?2式中???1??2为所求相位差。把乘法运算结果中的二次谐波滤除,只剩下直流分量,设结果为M,可得到

2M) AB此式是从理论上分析求出的相位差,而实际上输入的信号A和信号B都是带有各种谐波干扰的。这些干扰信号经过乘法运算之后会部分叠加到所求的直流分量上,因此在信号进行乘法运算之前和之后都要对两路信号进行数字滤波。由于滤波器参数可以根据用户对滤波器性能的要求任意设计,参数精度可得到严格保证,也没有因元件老化而影响精度的问题,因此可以使滤波环节给相位测量精度造成的影响减到最小。 方案三

???1??2?arccos(基于单片机的相位差在线测量

使用单片机组建相位差检测系统, 利用单片机内部时钟及定时/ 计数器, 、快速的测定, 可广泛应用于各种实时系统之中。 2.2方案选定:

对于方案一:相位差测量方法的测量误差主要来自于对模拟信号的处理过程中,如模拟滤

3

波器在滤除干扰的同时由于元件参数的离散性,测量元件受环境的影响以及元件老化带来的影响都会引入测量误差;又如信号经过比较器时由于比较器门限电压的存在而造成测量误差,这些误差都很难准确估量,也很难消除。传统的相位差测量方法无法应用于要求精度高。

对于方案二:这种方法测量相位差的关键在于如何实现信号的乘法。传统的模拟乘法器存在非线性和不尽如人意的带宽限制。采用数字乘法器在把模拟信号转换成数字信号之后,仍然进行时域上的操作,显得有些舍本逐末。

对于方案三:。随着集成电路技术的发展、单片机的普及, 用单片机组成的相位差测量电路具有精度高、速度快、成本低的优点, 日益受到人们的重视。本相位差测量方法充分利用了MCS-51 系列单片机内部精确的时钟源及校正电路, 能进行在线检测、显示,大大提高了相位差的测试精度和速度。

所以综上所述,我们选用方案三。

三.AT89S51单片机概述

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

单片机经过几代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压低功耗。

对交通灯控制系统的设计,首先应对交通灯的核心控制芯片的基本结构和特征以及主要引脚有比较详细的了解。AT89S51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS 8 位单片机,片内含 4k bytes 的可系统编程的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用 8 位微处理器于单片芯片中,ATMEL公司的功能强大,低价位 AT89S51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

下图是MCS-51系列单片机的内部结构示意图。

4

图2.1 MCS-51系列单片机的内部结构示意图

3.1 AT89S51单片机的主要性能参数

·与MCS-51产品指令系统完全兼容

·4k字节在系统编程(ISP)Flash闪速存储器 ·1000次擦写周期

·4.0-5.5V的工作电压范围 ·全静态工作模式:0Hz-33MHz ·三级程序加密锁 ·128×8字节内部RAM ·32个可编程I/O口线 ·2个16位定时/计数器 ·6个中断源

·全双工串行UART通道 ·低功耗空闲和掉电模式

5

·看门狗(WDT)及双数据指针 ·掉电标识和快速编程特性

·灵活的在系统编程(ISP字节或页写模式)

3.2 AT89S51单片机的主要引脚

下图是AT89S51 单片机的引脚图。

U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL29RST293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 图2.2 AT89S51 单片机的引脚图 ·VCC:电源电压 ·GND:地 ·P0口:P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

·P1口:Pl 是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash编程和程序校验期间,Pl接收低8位地址。

6

表2.1 具有第二功能的P1口引脚

端口引脚 P1.5 P1.6 P1.7

第二功能

MOSI(用于ISP编程) MOSI(用于ISP编程) MOSI(用于ISP编程)

·P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX@Ri 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。

·P3 口:P3 口是一组带有内部上拉电阻的8 位双向I/0 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表所示:

表2.2 具有第二功能的P3口引脚

端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

第二功能

RXD(串行输入口) TXD(串行输出口) /INT0(外中断0) / INT1(外中断1)

T0(定时/计数器0外部输入) T1(定时/计数器1外部输入) / WR(外部数据存储器写选通) / RD(外部数据存储器读选通)

P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT 溢出将使该引脚输出高电平,设置SFR AUXR的DISRT0 位(地址8EH)可

7

打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。

·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的1/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。

·PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。

·EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。

·XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 ·XTAL2:振荡器反相放大器的输出端。

——

————

————

————

————

————

四.基于单片机的相位差在线监测

测量原理

基于单片机系统的相位差测量电路如图1 所示。待测信号V1, V2 经过前置处理和整形后, 经过相位差检测电路, 输出结果直接送入单片机进行处理, 标准正弦信号由ICL8038 产生, 用于对待测信号V1, V2 的相位差进行校正, 提高精度。

8

4.1 前置处理模块

前置处理模块主要是对信号进行滤波, 滤除干扰并进行适当的放大, 它与整形模块一同构成信号预处理电路, 输出TTL 电平, 为相位差的检测作好准备。 4.2 信号整形

信号经过带通滤波器滤掉高频干扰和低频漂移信号并进行线性放大后, 变为一波形正规、幅值适当的正弦信号, 然后经过滞回比较器及晶体三极管整形成TTL 电平。采用滞回比较器, 能够提高电路的抗干扰能力, 本系统将滞回比较器的阈值电压设为0. 4 V, 能够有效滤除放大后幅值小于0. 4 V 的干扰信号, 并得到与输入信号同频率、占空比为50% 的方波。电路如图2 所示。

4.3 相位差检测电路

由两个J-K 触发器组成的边沿触发型相位差检测电路如图3 所示。F1 的输出Q1 和Q1 分别接F2的J2和K2,所以F2在CLK2 端受下跳沿触发后, 建立的状态与F1 相同; F2的输出Q2和

Q2分别接F1的K1和J1 所以F1在CLK1端受下跳沿触发后,建立的状态与F2相反。根据上述特

??点, 并考虑到F1和F2是下跳沿触发的J-K触发器, 可画出Q1和Q的输出波形以及经过与非门后的输出脉冲波形,如图4 所示。

9

图4(c) 中实线波形对应??0?,虚线波形对应??0?。由图4 可见, 输出电压平均值相位差?成线性关系

V??与

10

4.4 校正电路

标准正弦信号由ICL8038 产生, 经反相后分成两路信号, 即标准相位差为180?, 用于对待测信号V1, V2的相位差进行校正, 提高精度。 4.5 信号的采集、处理及显示

信号从P3.3和P3.5输入,从P3.5输入的信号用于测量方波的频率时作用,而P3.3信号时用于测量正脉冲信号宽度时作用。

设计思路

对于测量频率:采用定时闸门计数方法测量脉冲频率。设定时器/计数器0为定时方式,提供100MS的基准闸门时间TR。在10TR期间,定时器/计数器1对外部脉冲进行计数,所获得的计数值M即为被测脉冲信号的频率。

设定时器/计数器参数设定

定时器/计数器0用来提供100MS的基准闸门时间,单片机时钟振荡器频率fosc为6MHZ,定时器/计数器1对外部脉冲进行计数。

定时器/计数器0采用方式1,定时器状态由内部TR0控制启停;定时器/计数器1采用方式1,计数器状态由内部TR1控制启停。因此TMOD=01010001B=51H.

T0的计数初值为

foscm?2?x12

式中,x?100ms,fosc?6MHz'16则

?36100?10?6?10m'?216?x?15536?3CB0H

12程序见附录1

对于测量脉冲宽度:由外部引脚INT1控制计数器定时计数的启动,停止,高电平时启动计数,低电平时停止计数。当INT1为高电平时,计数器中的计数值N为12分频的时钟频率fosc的周期数,则脉冲宽度

____________________12TW??n fosc定时器/计数器的控制字

本程序中选用T1,方式1,外部INT1控制启/停(GATE=1),及定时器方式(C___?0)

T故TMOD=1001 ????B.令TMOD=90H

11

__________程序见附录1 计算公式

f?m

12TW??n fosc

12??4??M?N?fosc

12

结束语

设计的顺利完成是在设计者本人的多方努力和周围老师、同学的提点下实现的,在设计周期内,本人为搞好设计工作,在校期间内认真学习参考各方面资料,做好笔记,总结精要,使其融汇于自己的思想概念。

设计过程中由于本人的知识面单薄、认识肤浅,刚开始时遇到了很大的困难例如:原理模糊、思路混乱,不知从何下笔,从何着手。因此,在前期花了不少的时间来整理头脑中的一些基本原理。在自己理清思路,初步形成意识后,对课题便有了更深一层次的理解和体会,从而抓住了方向和要点,进行多方面的选材和总结。从而进一步的巩固了自己以前所学的知识,而且还学到了一些新的知识,最后在指导老师的帮助和审批下,给设计划上了圆满的句号。

通过这次设计,在获得知识之余,还加强了个人的单独工作能力,得到了不少的收获和心得。在思想方面上更加成熟,对个人能力和工作有着不可预计的帮助。最后还要感谢在设计过程中曾帮助过本人的老师、同学。

13

参考文献

1 2 3 4 5 6 7 8

胡汉才.单片机原理及其接口技术.清华大学出版社.1996。

沙占友,王彦朋,孟志永.单片机外围电路设计.电子工业出版社.2003。 童诗白,华成英.第三版.模拟电子技术基础.北京高等教育出社.2001。 康华光,陈大钦. 第四版.电子技术基础.北京高等教育出版.2001。 黄继昌,张海贵,郭继忠.实用单元电路及其应用.人民邮电出版社.2002。 谢宜仁.单片机实用技术问答. 人民邮电出版社.2003。

武雅莉,王鹊.利用8031单片机在线检测相位差.现代电子技术.1995。 廖常初,唐昆明.微机相位差测量方法与提高测量精度的措施. 自动化与表仪器仪.2005。 9

张西芹,康书英.采用微机测量同频交变信号间相位差的新方法.电力情报.1996。

10 谭小平,肖运红.用单片机组成相位差计及在物理试验中的应用.江汉学报.1996。 10 李索文.相位差测量的一种简明方法.淮北煤师院学报.2002。 11 李兆钧,王红理.测量小相位差的一种方法.大学物理试验.1999。 12 张毅刚,付平,王丽.采用数字相关法测量相位差.计量学报.2000。 14 邓新浦,卢启中,孙仲康.数字式相位差测量方法及精度分析.国防科技大报

14

单片机课程设计

附录一

MAIN: SJMP MSFC ;跳转到MSFC

MOV R4, #64H

SSS: MOV TMOD,#01H ;设定T0状态字

MOV TL0,#0CH ;计数器TH,TL0装入初值 MOV TH0, #0FEH

SETB TR0 ;开始计时 SSS1: JBC TF0, SSS2

SJMP SSS1 SSS2: DJNZ R4, SSS CLR TR0

SJMP STW SJMP MAIN

MSFC: MOV TMOD,#51H MOV R0,#0AH MOV TL1,#00H MOV TH1,#00H

MOV TL0,#0B0H MOV TH0,#3CH

SETB P3.5 JB P3.5 $ SETB TR0 SETB TR1 WAIT: JBC TF0, SECC SJMP WAIT SECC: MOV TL0,#0B0H MOV TH0, #3CH

DJNZ R0,WITH CLR TR1 CLR TR0 MOV 31H, TH1 MOV 30H, TL1

MOV R3, 0AH MOV A, 31H MOV B, R3

DIV AB MOV 50H, A MOV 51H, B MOV A, 30H MOV B, R3

DIV AB MOV 52H, A

;跳转到STW

;设T0,T1控制字

;100MS定时的10倍扩展 ;T1计数器清零

;T0计数器装入计数初值 ;置T1引脚为输入方式 ;等待为低电平 ;动T0计数 ;启动T1计数

;查询100MS定时时间,定时时间到,转SECC

;100MS定时未到,等待 ;重装计数初值

;查询1S定时到,为转到WAIT ;1S定时到,停止T1计数 ;停止T0计数

;将T1计数值M送入31H,30H ;给R3赋初值 ;AB中两无符号相除,结果商在A,余数在B ;把A中的数送入50H单元 ;AB中两无符号相除,结果商在A,余数在B 1

单片机课程设计

MOV 53H, B

IOLED4:MOV R1, #50H ;给R1赋初值

MOV R2,#0FEH ;给R2赋初值 DISC: MOV A,R2 ;基址赋值

MOV P2,A

MOV A,@R1

MOV DPTR, #TAB ;段码表首址入DPTR MOVC A,@A+DPTR ;查找相应的段选码 MOV P0, A

LCALL DELAY INC R1 MOV A, R2

JNB P2.3, DEND RL A

MOV R2, A AJMP DISC DEND: RET

DELAY: MOV R7, #64H EE: MOV R6, #0AH SS: DJNZ R6, SS DJNZ R7, EE

RET STW: MOV TMOD, #90H MOV TL1, #00H MOV TH1, #00H

MOV 31H, #00H MOV 30H, #00H

SETB P3.3 STLPO: MOV C, P3.3 JC STLP0 SETB TR1 STLP1: MOV C, P3.3 JNC STLP1 STLP2: MOV C,P3.3 JC STLP2 CLR TR1 MOV 31H, TH1 MOV 30H, TL1

MOV R3, 0AH MOV A, 31H

;调用延时程序 ;子程序返回

;设T1控制字

;计数器清零 ;31H,30H清零 ;置P3.3输入方式 __________;读INT1引脚入CY

;等待外部引脚变成低电平 __________;置INT1启停允许

__________;查询INT1状态是否变成高电平;未变高电平则等待

__________;查询INT1状态是否变成低电平;未变低电平则等待

;变为低电平测量结束,关闭TR1 ;计数值N放入内存31H,30H单元 ;给R3赋初值 2

单片机课程设计

MOV B, R3

DIV AB ;AB中两无符号相除,结果商在A,余数在B MOV 50H, A ;把A中的数送入50H单元 MOV 51H, B MOV A, 30H MOV B, R3

DIV AB ;AB中两无符号相除,结果商在A,余数在B MOV 52H, A MOV 53H, B

IOLED5:MOV R1, #50H ;给R1赋初值

MOV R2,#0FEH ;给R2赋初值 DISC1: MOV A,R2 ;基址赋值

MOV P2,A

MOV A,@R1

MOV DPTR, #TAB ;段码表首址入DPTR MOVC A,@A+DPTR ;查找相应的段选码 MOV P0, A

LCALL DELAY1 ;调用延时程序 INC R1 MOV A, R2

JNB P2.3, DEND1 RL A

MOV R2, A AJMP DISC1 DEND1: RET

DELAY1: MOV R7, #64H EE1: MOV R6, #0AH SS1: DJNZ R6, SS1 DJNZ R7, EE1

RET

TAB: 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H

3

单片机课程设计

附录二

程序开始 是否跳转 N 延时程序 Y N Y 是否跳转 N T0,T1初始化 定时时间到? Y N T1初始化 计数 N P3.3是否变为低电Y 显示 子程序返回

4

本文来源:https://www.bwwdw.com/article/kflo.html

Top