简易数字相位差计
一、方案设计
1.1方案概述
数字相位差计包括外部电路与ARM开发板两部分,外部电路主要利用电压比较器,将正弦波输入信号转化为方波;ARM开发板主要用到的模块为定时器模块、计数器模块、中断系统模块、CPU处理模块和数码管显示模块,系统框图如图1。

图1 系统框图
1.2技术指标
相位差测量范围:0 ~ 180°
数码显示:4位数码显示
相位差分辨率:0.1°
识别信号范围:电压3V,频率
工作方式:连续
二、工作原理
2.1系统概述
两个同频被测正弦信号分别经过相同型号的电压比较器与1.5V的固定电压比较后得到两个有相位差的方波,然后将两个方波输入到ARM开发板上,由中断系统实时监控电平变换,从而控制计数器对定时器晶振进行计数,经过算法运算后,在数码管上显示出相位差的数值。
2.2脉冲计数法相位差测量原理[1]













图2 相位差计原理图
设被测两信号的时间间隔为
(1)
式中,
—在
时间内晶振计数脉冲的个数;
—晶振信号周期。
数字式相位计波形图如图2所示,由图可知
(2)
式中,
—两被测信号的相位差;
—被测信号的周期。
将式(1)带入式(2)得
(3)
式中,
—被测信号频率;
—晶振信号频率。
若让计数器在1s内连续计数,即1s内有
个门控信号,则其累计计数为:
(4)
式中,
—1s中晶振累计脉冲数量。
将式(4)代入式(3)得
(5)
若取晶振频率
,则
(6)
三、器件选择
3.1 LM311P
LM311P电压比较器是单比较器可以将模拟信号转换成二值信号,即只有高电平和低电平两种状态的信号。该比较器有两个输入端和一个输出端。两个输入端一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“-”表示。用作比较两个电压时,任意一个输入端加一个固定电压做参考电压,另一端加一个待比较的信号电压。在二者幅度相等时,输出电压将产生跃变,即:
当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。
当“-”端电压高于“+”端时,输出管饱和,相当于输出端接低电位。
3.4 ARM开发板
ARM作为嵌入式系统的处理器,具有低电压,低功耗和高集成度等特点,并具有开放性和可扩充性,其能在电源电压为2.7V-3.6V的范围正常工作,其对外电路的供电电源为4V。开发板包括定时器(含晶振)、计数器、中断系统、CPU处理器、数码管显示器、A/D和D\A转换器等模块,该开发板可以应用到本设计中。
四、系统设计
4.1 外部电路


图3 外部电路图
本项目外部电路由两个如图3所示的电路组成,其中
为输入信号(正弦波),
为经过电压比较器处理过后的输出信号(方波)。
4.2 ARM开发板
4.2.1工作过程简述
当ARM开发板接收到两个输入信号时,定时器的晶振启动,同时中断系统实时监控两个输入信号(其作用相当于“异或门”),控制计数器读出两信号在(0,1)或(1,0)时晶振产生的脉冲次数,并通过CPU进行算法运算,实时输出到数码管显示器上(框图如图1 ARM开发板模块)。
4.2.2模块介绍
定时器:定时器的内部晶振频率为...,可以通过分频的方法设置所需频率的晶振。本设计采用的是163.28Kz频率的晶振,当检测到输入信号时晶振便开始产生脉冲,计数器(计数定时器)溢出周期为0.4s。由此估测所能测得最低频率为3Hz。(输入波形周期不能超过定时器溢出周期)。
中断系统:本设计设置两个中断,采用上升沿中断,分别捕获输入IO口的两路波形的上升沿。在每个上升沿中断处实现:
①定时器计数读出;
②计数器清零;
③对累计的脉冲数进行均值算法。
计数器:由中断系统控制,进行清零和计数这两个任务。鉴于计数器在于累计计数时有上限,故程序设置计数器每次累计到程序设定值时自动清零。
CPU处理器:用于接收计数器输出的数字,根据脉冲计数法相位差测量原理进行算法运算(包括平均值运算),并将结果输出到数码管。
数码管显示:本项目数码管采用八段数码管作为输出显示器件。显示方式为动态实时显示,并且把小数点一直显示到最后一位,此时,LED 数码管的第一、二、三位是用来对相位差进行显示的,最后一位是用来进行小数显示的。
五、系统测试
5.1测试仪器
信号发生器、数字式相位差计。
5.2测试方法
利用信号发生器产生两个同频信号,不断改变两个信号的相位差,并分别记录下信号发生器的相位差设设置数据与数字相位差即所测量出的数据,各7组。
5.3测试结果
5.3.1实验数据
频率: Hz 幅值:3V
频率: Hz 幅值:3V
频率: Hz 幅值:3V
频率: Hz 幅值:3V
5.3.2数据处理
算数平均值:
标准差估计值:
算数平均值的标准误差估计值:
算数平均值的置信限:
当P=,
时,查表得

测量结果:
5.3.3误差分析
系统误差:
(1)LM311P是高增益,宽频带器件,如果输出端到输入端有寄生电容而产生耦合,当比较器改变状态时,输出信号很容易产生振荡。这种现象出现在当比较器改变状态时,输出电压过渡的间隙,从而使得生成的方波产生误差。
改进方法:采用迟滞比较器代替单限比较器,即在单限比较器电路中引入正反馈,从而加快比较器的响应速度,免除由于电路寄生耦合而产生的自激振荡。但是反馈电阻阻值的选择也尤为重要,反馈电阻过大导致比较器的比较精度降低,反馈电阻过小导致比较器高低电平的变化速率降低,经过多次模拟仿真,我们选择43
作为我们电路中的反馈电阻。
(2)本设计是将输入信号与1.5V的电压比较,大于1.5V为高电平,小于1.5V的为低电平。如图4所示虚线为信号通过比较器后的理想输出波形,但实际情况为图4的实线,由于导线和电阻的影响导致固定电压大于(或小于)1.5V,从而使得输出方波的高电平脉宽偏小(或偏大),从而产生误差。
图4实际输出方波比较图
(3)计数器在对晶振脉冲进行计数时,脉冲频率过高时,计数器对一个相位差脉宽脉冲过多,计数器计数准确率会降低,会产生误差。
脉冲频率过低时,计数器对一个相位差脉宽内的晶振脉冲计数更准确,但是脉冲数量过少不能完整表示整个相位差的脉宽,会产生误差。
图5 晶振脉冲示意图
改进方法:本设计将晶振的频率设置为163.28Kz,从而减小了由于频率过高或过低而产生的误差。
随机误差:
5.3.3结果分析
5.4测试出现问题及解决方法
- 我们将输入信号频率分别设置为1kHz、100Hz、50Hz和10Hz四种情况,分别对其相位差从0°~180°,每隔30°进行测试,并记录下数据。由实验数据可以发现该设计的精度不高,每次测量均会偏大2°左右,产生误差。
解决方法:这种问题是由于硬件性能不够精准而产生的问题,我们对所测得的数组数据进行处理,即求测量数据的偏差均值,对软件算法进行修改来补偿硬件所造成的误差。
- 当输入信号频率较低为10Hz时,数码管显示相位差数据会出现抖动的情况,该问题属于硬件问题,难以解决。
附录:
主程序