峰值检测电路设计论文设计.docx
《峰值检测电路设计论文设计.docx》由会员分享,可在线阅读,更多相关《峰值检测电路设计论文设计.docx(11页珍藏版)》请在冰豆网上搜索。
峰值检测电路设计论文设计
峰值检测
指导教师:
参赛学生
参赛学校与院系:
峰值检测电路设计
摘要在生产、科研等各个领域都会用到峰值检测设备。
本设计介绍了峰值检测系统的设计原理、软硬件设计方法,系统性能指标调试方法以与multisim的仿真模拟。
以STC89C52单片机为核心处理器,主要控制电压的输出,最后在数码管上显示。
在峰值检测系统中,通过NE5532P型运算放大器和开关二极管1N60组成采样保持电路。
其输出电压经由A/D转换器送至单片机,经过单片机的控制和处理最终输出相应的数字电压,最后采用multisim仿真,与实际测量效果进展比照分析得出结论,实现了峰值的连续检测和保持。
关键词:
峰值检测;采样/保持电路;A/D转换器;STC89C52;multisim
一、系统方案
方案一:
基于ICL-7135双积分A/D转换芯片的数字电路设计。
用采样/保持峰值电路,通过数据锁存控制电 路锁存峰值的数字量。
设计的原理图较为复杂,它由被测信号、采样/保持、采样/保持控制电路、A/D〔模数转换〕、译码显示、数字锁存控制电路组成。
需要用到的主要芯片有LF398采样/保持芯片,555定时器,ICL-7135型A/D转换器,74LS47译码器,8段数码管等。
方案二:
运用一个运算放大器的模拟电路设计。
将运算放大器的正极与信号源连接,运算放大器的输出直接与负极相连,组成一个简单的电压跟随器,在输出端即既能检测信号源的峰值电压。
方案三:
运用两个运算放大器的模拟电路设计。
运用信号源正向上升电压对电容进展充电,当信号源达到峰值的时候充电完毕,此时电容两端的电压也就等于信号源的峰值,由于电容电压不能突变,此时可以直接测量电容电压也就检测出信号源的峰值。
该电路主要包括模拟峰值存储器,单向电流开关,输入输出缓冲隔离,电容放电复位开关〔这局部非必须,如:
如果电容值选取适宜,两次采样时间间隔较大〕
比照三个方案可以看出,方案一采用了大量的芯片,电路较为复杂,相比之下,各芯片本钱较高,而且LF398芯片在proteus和multisim等常用电路模拟软件中均无模拟模型,为电路的模拟造成困难。
而方案二与方案三,需用用到的都是常见的器件,更容易获得,而且便于模拟,有利于对电路整体性能的把握,便于实现。
但是相比方案三,方案二采用电容器储能,并且有输出缓冲,能有效呢抑制电容器放电,运用电容器电压不能发生突变的原理便与测量,因此选择方案三更为合理。
根据电路要求,模拟峰值存储器,可以选择适宜X围的电容器存储电压;单向电流开关〔即开关二极管〕如此选用具有开关快速恢复能力的二极管;输入输出缓冲隔离,即运算放大器;AD转换器如此用来实现模拟电压1到数字电压的转换;最后,再利用单片机和数码管控制处理输出相应的数字电压。
当信号源正向电压通过运放时,二极管导通,电容器不断充电,输出电压即为电容器上存储的模拟峰值电压,当信号源电压下降时,由于单向电流的开关作用,抑制了电容器放电,可以短时间维持电容器电压,峰值保持不变,此时检测电容器两端的电压即信号源峰值。
电路设计框图如图1.1所示:
A/D转换电路
采样保持电路
信号源
STC89C52单片机
数码管输出显示
电路设计框图
二、电路与理论分析
峰值检测电路〔PKD,Peak Detector〕的作用就是对输入信号的峰值进展提取,产生输出Vo = Vpeak,为了实现这样的目标,电路输出值需一直保持,直到一个新的更大的峰值出现或电路复位,
其效果原理如图2.1所示:
峰值检测根本效果原理
峰值检测的根本原理很简单,通过一个电压跟随器,正相输入信号,输出直接接反相,这样输出值与输入值相等。
假如在输出与波形检测局部并接一电容,当波形值增加时,显示局部能指示出这一增加过程,同时电容也在充电,电容的电压不断增加。
当波形的峰值下降时,由于电容已充电,这是波形显示局部显示的是电容记录的最大值。
为了防止电容电压下降,在电容与电压跟随器之间加一二极管。
由于二极管的的单向导通性,二极管的电压不会“流失〞,这样就能保证显示局部记录的就是输入波形的最大值。
即“遇增增,遇减不变〞
峰值检测电路原理图
2.2峰值检测理论分析与计算
如电路图所示,由于二极管的单向导电性,应该选择具有更快开源速度的二极管,本系统选用了1N6000B;对运放的频带宽度为了满足要求,选用了高性能低噪声的NE5532P;对时间常数τ〔τ〕τ越小,在低频阶段下降明显,τ增大,输出相应时间变慢,而C1越大,下降速率越慢,C1越大,下降速率越快,为了满足要求,本系统选用了3.3.uf电容和100k的电容。
三、软件设计与流程图
软件局部采用模块化程序设计的方法,由主控制程序、A/D转换程序、数码管显示局部子程序等组成。
我们选用了带8k字节闪烁可编程可擦除只读存储器STC89C52微处理器,内部自带XT2046型A/D转换器〔工作电压在-0.3+Vcc—+0.3+Vcc〕拥有灵巧的8位CPU和在系统可编程以与512字节RAM,32位I/O口线。
程序流程图如如下图所示:
开始
模拟信号输入
A/D转换器初始化
向A/D转换器写入数据
A/D转换器读取数据
译码显示
STC89C52控制处理
数字电压输出
数码管显示输出电压
流程框图
四、系统调试与误差分析
在实验过程中,根据电路原理图,将系统分为模拟峰值存储器、单相电流开关、输入输出缓冲隔离三个局部进展测试。
测试使用的工具主要有:
万用表,函数信号发生器,示波器等。
如如下图所示,首先按照电路原理图接通电路,再将函数信号发生器和示波器接入电路,然后将输出端与STC89C52单片机相应端口连接,通过改变输入信号的频率和幅值,〔频率X围为50kHz-500kHz,幅值X围为0-5V〕在数码管上面观察并记录输出信号的幅值,即实现了对输入信号的峰值进展采样和保持,从而来获取输入电压与输出电压的线性关系。
Uo与Ui的线性关系
Multisim仿真效果
Uo与Ui的线性关系
用函数信号发生器产生的输入信号,用示波器在输出端检测到的波形中并不完全是一条直线,里面存在一些杂波,对测量结果造成了一定的影响。
假如选择RC时间常数大一些,输出信号的波形会好一些,但输出信号的幅值和输入信号的幅值有明显的差异;假如选择RC时间常数小一些,输出信号之中的快变分量会变好,但波形会变差;假如选择求取检波信号的平均值,又会因为平均值而掩盖被检测信号的突然脉冲,从而引起系统的失灵和不稳定。
这些现象主要与运算放大器的和开关二极管的性能参数和电容的选择有关。
最后,通过查阅资料,我们最后换用了输出驱动能力优良、小信号带宽高以与电源电压X围较大的NE5532运算放大器,然后我们换用了反向恢复时间极短的1N6095开关二极管和3.3.uf的电容。
同时,我们还对运放的电源端并联了电容,用来防止输出波形受到噪声的影响,提高其抗干扰能力,从而提高输出波形的稳定性。
五、总结
通过分析实验结果,我们得出了以下一些结论:
(1)本系统实现了对输入信号的峰值采样和保持,能够允许测量的检波的频率X围为50Hz到500Hz,峰值为100mv到5v。
(2)理想仿真效果输入Ui与输出Uo满足Uo=0.968*Ui+0.048的线性关系,实物测量输入Ui与输出Uo满足Uo=0.975*Ui-0.03的线性关系,两者之间误差较小,结果较为准确。
(3)对于微小信号,由于电源的纹波电压较大,对测量结果的精度影响较大,误差也比拟明显。
通过这次电子设计,我们掌握了峰值测量系统的原理与电路设计,同时也明白了峰值检测系统性能指标测试方法。
并且,还熟练地掌握了multisim仿真软件和keil编程软件。
在实际实验的过程中,我们遇到了很多难题,面对没有学过的知识点和比拟模糊混淆的概念和原理大家都想尽方法自行学习掌握。
我们还发现很多理论知识在实践中可能会有很多偏差,只有自己动手实践才能得出正确的答案。
同时,在这几天的学习过程中,我们培养了良好的团队协作能力和默契,大家齐心协力,分工合作,高速有效的完成自己的任务。
作为测控专业的学生我们深刻地感受到了电子设计的魅力,为以后更加深入的学习培养了浓厚的兴趣并且打下了坚实的根底。
在这次电子设计中,我们收获良多,也将更加努力学习知识,丰富自我。
六、参考文献
[1]X定良 单片机技术与应用 中南大学 2005年8月
[2]谭浩强C程序设计〔第二版〕清华大学 2005年1月
[3]路勇电子电路实验与仿真:
清华大学2004年
[4]X润华现代电子系统设计.[M]某某:
石油大学,1998年
[5]魏海明、杨兴瑶实用电子电路500例[M]:
化学工业1996年
附录1总电路图
采样保持电路
附录2源程序
#include"reg51.h"
#include"XPT2046.h"
//--定义使用的IO--//
#defineGPIO_DIGP0
sbitLSA=P2^2;
sbitLSB=P2^3;
sbitLSC=P2^4;
//--定义全局变量--//
unsignedcharcodeDIG_CODE[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3e};//0、1、2、3、4、5、6、7、8、9、V的显示码
unsignedcharcodeDIG[6]={0xbf,0x86,0xdb,0xcf,0xe6,0xed};//0.、1.、2.、3.、4.、5.的显示码
unsignedcharDisplayData[8];//用来存放要显示的8位数的值
voidDigDisplay(void);
voidmain(void)
{
uinttemp,count;
while
(1)
{
if(count==50)
{
count=0;
//temp=Read_AD_Data(0x94);//AIN0电位器
//temp=Read_AD_Data(0xD4);//AIN1热敏电阻
//temp=Read_AD_Data(0xA4);//AIN2光敏电阻
temp=Read_AD_Data(0xE4);//AIN3外部输入
temp=temp/(3.5*1000/4096);
}
count++;
DisplayData[7]=DIG_CODE[0];
DisplayData[6]=DIG_CODE[0];
DisplayData[5]=DIG_CODE[0];
DisplayData[0]=DIG_CODE[10];
DisplayData[4]=DIG[temp%10000/1000];
DisplayData[3]=DIG_CODE[temp%1000/100];
DisplayData[2]=DIG_CODE[temp%100/10];
DisplayData[1]=DIG_CODE[temp%10/1];
DigDisplay();
}
}
voidDigDisplay(void)
{
unsignedchari;
unsignedintj;
for(i=0;i<5;i++)
{
switch(i)//位选,选择点亮的数码管,
{
case(0):
LSA=0;LSB=0;LSC=0;break;//显示第0位
case
(1):
LSA=1;LSB=0;LSC=0;break;//显示第1位
case
(2):
LSA=0;LSB=1;LSC=0;break;//显示第2位
case(3):
LSA=1;LSB=1;LSC=0;break;//显示第3位
case(4):
LSA=0;LSB=0;LSC=1;break;//显示第4位
}
GPIO_DIG=DisplayData[i];//发送段码
j=50;//扫描间隔时间设定
while(j--);
GPIO_DIG=0x00;//消隐
}
}
附录3元器件清单
序号
编号
名称
型号
数量
1
U1A、U2A
运算放大器
NE5532P
2
2
R1、R2
电阻
2
3
R3
电阻
100K
1
4
FunctionGenerator
示波器
1
5
Oscilloscope
信号源
1
6
XT2048
A/D转换器
1
7
STC89C52
单片机
1
8
C1、C2、C3、C5
电容
4
9
D1、D2
二极管
1N6000B
1