用单片机低频数字式相位测量仪430Word格式文档下载.docx
《用单片机低频数字式相位测量仪430Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《用单片机低频数字式相位测量仪430Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
直接频率合成方法具有频率转换时间短、近载频相位噪声性能好、精度高,产生的信号频率范围宽等优点,但由于需要采用地址,相位计算,访问存储器操作等环节,导致直接频率合成器结构复杂、体积庞大、成本高,功耗大。
而且即使使用大规模的PLD,也需要单片机来实现键盘、显示的控制等工作。
采用软件DDFS方法产生数字信号。
该方案硬件实现简单,产生的信号精度高,频率范围宽。
采用高速的AVR单片机,使用16.384MHz的晶体振荡器可实现软件DDFS算法,可以以655.36K的速度刷新双D/A,可实现20Hz的频率步进和从20Hz到40.96KHz的可移相的0~360度的信号输出。
完全可以满足题目的要求。
此方案由于使用了较高性能的单片机和充分优化的软件结构,在不降低系统性能的条件下,硬件简单、成本低、功耗低、可靠性高,具有较高的实用性。
3、模拟移相部分
采用常见的模拟器件电阻,电位器,电容和运放的组合电路实现移相。
直接对模拟信号进行移相,如阻容移相,变压器移相等,早期的移相通常采用这种方式。
采用这种方式制造的移相器有许多不足之处,如:
输出波形受输入波形的影响,移相操作不方便,移相角度随所接负载和时间等因素的影响而产生漂移等。
该方案由于使用模拟器件,因此精度不是很高,硬件系统比较复杂。
此类方案形式较多,但都难以消除作为模拟系统的弱点,在此不作详细讨论。
题目的基本要求部分既是采用此方案,我们按要求完成了这部分电路。
二、系统设计与计算
1、数字式相位测量仪的设计
总体设计:
数字式相位测量仪的设计框图如图2-1所示。
使用高性能单片机MSP430F149为核心,前端的两路信号分别通过跟随器,直流耦合电路,提高了系统输入阻抗。
然后使用LM339比较器进行整形,输入到单片机的捕获端。
再令引一路信号,送给单片机的内部AD转换器。
通过单片机判断两通道的输入信号的上升沿和下降沿,对来自AD的数据进行处理,从而计算出两信号的相位差。
软件实现流程图:
数字式相位测量仪的软件流程图如图2-2所示:
图2-2数字式相位测量仪的软件流程图
器件的选择与计算:
要使LM339比较器输出稳定,则要求其输入阻抗小于20K,而本题目要求系统输入阻抗大于100K,因此,在输入端我们选择使用一片LM324作为信号的输入缓冲,从而提高了系统的输入阻抗。
为了减少噪声的影响,在输入端我们使用200K的电阻接地。
如图2-3所示:
图2-3缓冲电路图
LM339比较器比较容易受干扰,因此,在电源部分使用鉭电容,将未用输入端接固定电平,以保证LM339的稳定性。
LM339的输出为OC结构,使用时要接上拉电阻和分压电阻,使输出电平符合单片机要求。
如图2-4所示:
如果使用施密特触发器可以是比较信号更稳定。
但这样影响相位的测量,因此本方案采用直接比较法,在软件中消除零点及噪声的干扰。
通过捕获处理后的两通道的方波,就可计算出频率和相位。
原理如图2-5所示:
图2-5相位计算示意图
计算公式为:
根据题目要求在20KHz时,应保证2度的精度。
可计算出单片机的计时分辨精度为:
Hz
当单片机的计时分辨精度优于3.6MHz时,才能保证题目要求的精度。
我们使用的430F149使用8MHz的晶振,足可以保证精度的要求。
以上是本方案的基本原理,实际使用中采用噪声消除和零点平移修正来减少系统误差。
本方案采用24位计时器,可以保证在被测信号周期为2秒时不会溢出。
可以满足对被测信号的最低频率要求。
误差分析:
此方案中采用计时和鉴相处理。
其中计时部分使用单片机系统时钟。
此时钟来自于晶振,其误差很小可以忽略。
鉴相部分精度取决于从信号输入端到单片机捕获端通过的跟随器、电压比较器所产生的相位差和时间滞后。
本方案使用了直流耦合,使得由跟随器产生的相移误差几乎为零。
而两通道的电压比较器的时间滞后相同,为130ns。
此外,本设计中使用单片集成的运放和比较器,一致性好,不会对测量结果产生影响。
由于输入信号和运放、比较器固有特性都可能产生零点偏移,使比较器的输出不平衡。
如果单边沿检测,显然影响精度。
本方案使用上下边沿都检测,然后通过计算来修正由零点漂移引起的误差。
2、数字式移相信号发生器的设计
实现的基本原理:
DDFS原理:
DDFS的基本原理框图如图2-6所示。
图2-6DDFS的基本原理图
DDFS包括信号幅值计算单元、存储正弦数据表的ROM存储器、DAC和输出滤波器组成。
正弦波的信号幅值以数据表的形式存储在ROM存储器中,由信号幅值计算单元以恒定的速度进行相位累加计算,计算出当前时刻的输出正弦信号的相位,然后用此相位在ROM种查得应送往DAC的数值。
通常使用的相位累加器由N位加法器与N位累加寄存器级联构成。
每来1个时钟脉冲,加法器将频率控制数据与累加寄存器输出的累积相位数据相加,把相加后的结果送至累加寄存器的数据输入端。
累加寄存器将加法器在上1个时钟作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下1个时钟的作用下继续与频率控制数据相加。
这样,相位累加器在参考时钟的作用下,进行线性相位累加,当相位累加器累积满量时就会产生1次溢出,完成1个周期性的动作,这个周期就是DDS合成信号的1个频率周期,累加器的溢出频率就是DDS输出的信号频率。
用相位累加器输出的数据作为取样地址,对正弦波波形存储器进行相位-幅值转换,即可在给定的时间上确定输出的波形幅值。
数模转换及低通滤波器:
DAC将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号,低通滤波器用于滤除不需要的取样分量,以便输出特定频率段及平滑的正弦波信号。
按照Nyquist准则,最高输出频率可达0.5fc。
但考虑到实际低通滤波器性能的限制,实际最高输出频率一般取为40%fc。
通过对DDFS原理的分析,我们发现DDFS核心的是相位累加器、相位计算和ROM查表算发,通过CPU和软件完全可以完成同样的工作,本题需要输出移相信号,需要使用两路同频DDFS。
经过理论计算和软件测试,我们选用了AVRmega8515单片机,使用优化算法实现了图2-6的算法,实现了高达每秒655.36K次的双路相位计算。
软件DDFS与硬件DDFS的基本原理是相同的,同样输出频率下效果完全相同。
但软件DDFS用高性能的单片机来代替过去用PLD、ROM和单片机才能实现的功能。
从而使得操作更灵活、硬件电路更简单。
总体设计:
数字式移相信号发生器的总体设计框图如图2-8所示:
图2-8数字式移相信号发生器的设计框图
器件选择及相关的计算:
题目要求频率范围在20Hz-20KHz,步进20Hz可得:
频控字K从最低输出频率到最高输出频率变化至少20KHz/20Hz=1000,因此至少使用10位计数器。
从单片机的存储能力和计算能力考虑,使用16位无符号整形表示K,使用范围1-2048,即实际使用11位。
根据要求,为了在最高频率20KHz时输出平滑波形,使用32点输出,因此选择了具有665.36KHz的DA输出速度的DA0800器件。
在此频率下,在输出20.48KHz信号时保持32点输出,波形相当平滑。
最高可以输出40.96KHz信号。
在软件DDFS计算过程中,移位和计算ROM表的地址比较耗时,为了提高计算速度,使用了空间换时间的方法,在ROM表中连续构造每周波2048点的正弦表3个。
通过这种方法,减少了计算地址移位的时间和避免了B相相位叠加后溢出的问题。
通过优化,AVRCPU可以在25机器周期内完成两通道DDFS计算并送DA输出。
因此我们选用了16.384MHz四脚晶振作为CPU时钟,实现了16.384MHz/25=665.36Khz的输出频率。
软件DDFS算法如上图,程序如下:
Loop:
LPM
OUTPORTA,R0
ADDR30,R18
ADCR31,R19
OUTPORTC,R0
NOP
ADDR28,R16
ADCR29,R17
MOVWR30,R28
LSRR31
RORR30
ADDR31,R27
RJMPLoop
DA输出后经放大器,即可得到平滑的波形。
即,用放大器实现了平滑滤波的作用。
经实验发现其效果很好。
按键操作:
本键盘由设置键、确定键、上下键和左右键六个键组成。
可以实现频率和相位的参数设置。
软件流程图:
数字式移相信号发生器的软件实现流程图如图2-9所示:
图2-9数字式移相信号发生器软件流程图
此部分我们按照题目要求设计、安装并测试了移相网络
电路图设计:
移相网络的实现电路如图3-1所示(频率在100Hz时的电路图):
图3-1移相网络硬件实现电路
当频率在100Hz和10KHz时,只需将电路中的R1和R2分别同时换成16Koh和160oh的电阻。
其理论仿真结果(在1KHz时)如图所示:
正相移时:
负相移时:
理论分析与计算
移相网络中各元件参数的选择:
设电源的电压为
,则由电路图3-1可得:
(1)
(2)
(k为变阻器得分阻系数,满足
)(3)
(4)
由式
(1),
(2),(3),(4)可得:
(5)
由(5)式可知:
U4与U的相位差为:
(6)
由题目要求相移范围在
~+
可得:
=
即:
(7)
由此可知,当频率f一定时,Rc的乘积为定值。
例如:
f=100Hz时,Rc=1/(2*3.1416*100)=
只要确定一个参数的值,则另一个参数也可确定。
题目要求有三个频率点,考虑在每个频率点上,系统都有应有较大的电阻,再综合考虑实际器件的数值,我们可选择的参数如下:
在频率f=100Hz时,取R1=R2=16koh,c=0.1uF;
在频率f=1KHz时,取R1=R2=1.6koh,c=0.1uF;
在频率f=10KHz时,取R1=R2=160h,c=0.1uF;
变阻器R9是用来调相位的,阻值取1Koh即可。
由于A端的输出为电源电压的同相分压,所以其最大幅值为电源电压的幅值。
题目要求A端的输出峰峰值最大为5v,因此,电源电压的幅值为2.5v。
由式(5)可得U4与U的幅值关系:
(8)
由上述结论可知
,所以当k=0或k=1时,根式里的值最大(为0.5),由于题目要求电压的最大峰峰值为+5v,因此要求R6与R3之间必须满足一定的关系,即:
(9)
由此得:
R6=0.414*R3我们取R3=6.7koh,则R6=2.8koh
由题目对最小峰峰值(0.3v)的要求,我们可知电阻R4、R5,以及变阻器R7,R8应满足:
0.3=R4/(R4+R7)*5=R5/(R5+R8)*5(10)
由式(10),我们可选电阻R4=R5=620oh,R7=R8=9.7koh(我们取标称值10koh)。
由公式(9)可得,网络的最大输出峰峰值为:
由公式(10)可得,网络的最小输出峰峰值为:
R5/(R5+R8)*5=
完全满足题目的要求。
三、测试
a)测试仪器
HEWLETTPACKARO5460B示波器
SAMPOCN3165频率测量仪
GWINSTEKGFG-8215A函数信号发生器
UNITUT70B万用表
b)测试数据
1、移相网络输出电压及相位测试数据
频率
电压
相位差最大值
相位差最小值
100Hz
0.2V
44
-46
1.0V
46
-44
2.5V
5.0V
1000Hz
45
-45
10000Hz
幅度测量
输出锻压值
题目要求
测试结果
最大电压
5.0v
5.1v
最小电压
0.3v
0.27v
由表可见,在不同频率下电压和相位均十分稳定,超出题目要求。
2、数字式移相信号发生器测量(测试条件VP-P=3.0V)
1.输出频率的测量
预值频率
实测频率
误差(%)
20Hz
20.00031Hz
0.002
100.0015Hz
500Hz
500.0079Hz
1000.015Hz
5000Hz
5000.079Hz
10000.15Hz
20000Hz
20000.31Hz
30000Hz
30000.45Hz
40000Hz
40000.63Hz
由表可见,频率稳定,实现和超出题目要求。
2.相位差的测量(测试条件VP-P=3.0V,F=1000Hz)
预值相位
实测相位差
相对误差(%)
绝对误差
1°
1.0°
20°
20.1°
0.5
0.1°
90°
90.1°
0.22
100°
100.1°
0.20
150°
150.1°
180°
180.2°
0.11
0.2°
270°
270.2°
300°
300.2°
0.10
359°
359.2°
由表可见,相位差稳定,绝对误差在题目要求范围之内。
3、数字相位仪数据测量数据
相位测量
频率测量
测量相位值
实测数据
测量频率值
0°
20Hz
20.005Hz
0.5°
100Hz
100.03Hz
90.2°
0.22°
1000Hz
1000.3Hz
150.3°
0.20°
0.3°
5000Hz
5000.1Hz
0.11°
0.2
10000Hz
10003Hz
300.3°
0.10°
15000Hz
15005Hz
359.4°
0.4°
20000Hz
20007Hz
4、用数字移相信号发生器检验相位测量仪(相位测试条件为频率在1000Hz时)
电压幅度
(VP-P)
相位
预设频率
0.3V
1.1°
10.0
19.997Hz
0.015
75°
76.0°
1..3
99.998Hz
0.02
181.1°
0.60
9999.8Hz
299.8°
0.07
99999Hz
0.01
358.3°
1..90
19998Hz
20.000Hz
75.7°
0.90
100.02Hz
180.6°
0.33
1000.2Hz
10002Hz
358.5°
1..30
20004Hz
0.04
2.0V
19.998Hz
75.4°
0.53
180.8°
0.44
0.03
358.6°
20006Hz
0.9°
20.004Hz
75.5°
0.70
180.4°
299.6°
0.13
10004Hz
358.1°
20008Hz
7.0V
20.006Hz
0.67
180.3°
0.16
299.5°
358.0°
四、总结
我们设计的系统不仅完成了题目的基本要求和发挥要求,而且某些指标远远超出发挥部分的要求。
用MSP430实现基本要求中测量和显示功能;
用AVRmega8515实现扩展要求中的数字式移相信号发生器。
本设计充分利用了MSP430的高速硬件捕获功能来实现频率和相位的测量,并利用AD对数据进一步处理,在高低频段分别采用多次测量、滤波算法、矢量分解、偏移修正等算法消除干扰提高精度,采用了大屏幕液晶显示测量的详细信息。
利用AVRmega8515采用软件DDFS实现双路数字式移相信号发生器,由于使用优化算法,实现了高达每秒655.36K次的双路相位计算,输出频率为20Hz-40.48KHz,可实现20Hz的步进,系统硬件结构简单,频率、相位稳定度高;