资源描述
峰值检测
指导教师:
参赛学生
参赛学校及院系:
峰值检测电路设计
摘要在生产、科研等各个领域都会用到峰值检测设备。本设计介绍了峰值检测系统的设计原理、软硬件设计方法,系统性能指标调试方法以及multisim的仿真模拟。以STC89C52单片机为核心处理器,主要控制电压的输出,最后在数码管上显示。在峰值检测系统中,通过NE5532P型运算放大器和开关二极管1N60组成采样保持电路。其输出电压经由A/D转换器送至单片机,经过单片机的控制和处理最终输出相应的数字电压,最后采用multisim仿真,与实际测量效果进行对比分析得出结论,实现了峰值的连续检测和保持。
关键词: 峰值检测;采样/保持电路;A/D转换器;STC89C52;multisim
目录
一、系统方案 1
1.1总体方案论证与选择 1
1.2总体设计思路 2
二、电路与理论分析 2
2.1峰值检测基本原理 2
2.2峰值检测理论分析与计算 3
三、软件设计与流程图 4
四、系统调试与误差分析 4
4.1系统调试 4
4.2误差分析 7
五、总结 7
六、参考文献 8
附录1 总电路图 9
附录2 源程序 9
附录3 元器件清单 12
一、系统方案
1.1总体方案论证与选择
方案一:基于ICL-7135双积分A/D转换芯片的数字电路设计。用采样/保持峰值电路,通过数据锁存控制电路锁存峰值的数字量。设计的原理图较为复杂,它由被测信号、采样/保持、采样/保持控制电路、A/D(模数转换)、译码显示、数字锁存控制电路组成。需要用到的主要芯片有LF398采样/保持芯片,555定时器,ICL-7135型A/D转换器,74LS47译码器,8段数码管等。
方案二:运用一个运算放大器的模拟电路设计。将运算放大器的正极与信号源连接,运算放大器的输出直接与负极相连,组成一个简单的电压跟随器,在输出端即既能检测信号源的峰值电压。
方案三:运用两个运算放大器的模拟电路设计。运用信号源正向上升电压对电容进行充电,当信号源达到峰值的时候充电结束,此时电容两端的电压也就等于信号源的峰值,由于电容电压不能突变,此时可以直接测量电容电压也就检测出信号源的峰值。该电路主要包括模拟峰值存储器,单向电流开关,输入输出缓冲隔离,电容放电复位开关(这部分非必须,如:如果电容值选取合适,两次采样时间间隔较大)
对比三个方案可以看出,方案一采用了大量的芯片,电路较为复杂,相比之下,各芯片成本较高,而且LF398芯片在proteus和multisim等常用电路模拟软件中均无模拟模型,为电路的模拟造成困难。而方案二与方案三,需用用到的都是常见的器件,更容易获得,而且便于模拟,有利于对电路整体性能的把握,便于实现。但是相比方案三,方案二采用电容器储能,并且有输出缓冲,能有效呢抑制电容器放电,运用电容器电压不能发生突变的原理便与测量,因此选择方案三更为合理。
1.2总体设计思路
根据电路要求,模拟峰值存储器,可以选择合适范围的电容器存储电压;单向电流开关(即开关二极管)则选用具有开关快速恢复能力的二极管;输入输出缓冲隔离,即运算放大器;AD转换器则用来实现模拟电压1到数字电压的转换;最后,再利用单片机和数码管控制处理输出相应的数字电压。
当信号源正向电压通过运放时,二极管导通,电容器不断充电,输出电压即为电容器上存储的模拟峰值电压,当信号源电压下降时,由于单向电流的开关作用,抑制了电容器放电,可以短时间维持电容器电压,峰值保持不变,此时检测电容器两端的电压即信号源峰值。
电路设计框图如图1.1所示:
A/D转换电路
采样保持电路
信号源
STC89C52单片机
数码管输出显示
图1.1 电路设计框图
二、电路与理论分析
2.1峰值检测基本原理
峰值检测电路(PKD,PeakDetector)的作用就是对输入信号的峰值进行提取,产生输出Vo=Vpeak,为了实现这样的目标,电路输出值需一直保持,直到一个新的更大的峰值出现或电路复位,
其效果原理如图2.1所示:
图2.1峰值检测基本效果原理
峰值检测的基本原理很简单,通过一个电压跟随器,正相输入信号,输出直接接反相,这样输出值与输入值相等。若在输出与波形检测部分并接一电容,当波形值增加时,显示部分能指示出这一增加过程,同时电容也在充电,电容的电压不断增加。当波形的峰值下降时,由于电容已充电,这是波形显示部分显示的是电容记录的最大值。为了防止电容电压下降,在电容与电压跟随器之间加一二极管。由于二极管的的单向导通性,二极管的电压不会“流失”,这样就能保证显示部分记录的就是输入波形的最大值。即“遇增增,遇减不变”
图2.2峰值检测电路原理图
2.2峰值检测理论分析与计算
如电路图所示,由于二极管的单向导电性,应该选择具有更快开源速度的二极管,本系统选用了1N6000B;对运放的频带宽度为了满足要求,选用了高性能低噪声的NE5532P;对时间常数τ(τ=R3.C1)τ越小,在低频阶段下降明显,τ 增大,输出相应时间变慢,而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控制处理
数字电压输出
数码管显示输出电压
图2.3 流程框图
四、系统调试与误差分析
4.1系统调试
在实验过程中,根据电路原理图,将系统分为模拟峰值存储器、单相电流开关、输入输出缓冲隔离三个部分进行测试。测试使用的工具主要有:万用表,函数信号发生器,示波器等。
如下图所示,首先按照电路原理图接通电路,再将函数信号发生器和示波器接入电路,然后将输出端与STC89C52单片机相应端口连接,通过改变输入信号的频率和幅值,(频率范围为50kHz-500kHz,幅值范围为0-5V)在数码管上面观察并记录输出信号的幅值,即实现了对输入信号的峰值进行采样和保持,从而来获取输入电压与输出电压的线性关系。
图2.3峰值检测实物图
表1.1实际峰值检测结果
图2.4输出Uo与Ui的线性关系
图2.4Multisim仿真效果
表1.2仿真峰值检测结果
图2.5输出Uo与Ui的线性关系
4.2误差分析
用函数信号发生器产生的输入信号,用示波器在输出端检测到的波形中并不完全是一条直线,里面存在一些杂波,对测量结果造成了一定的影响。
若选择RC时间常数大一些,输出信号的波形会好一些,但输出信号的幅值和输入信号的幅值有明显的差别;若选择RC时间常数小一些,输出信号之中的快变分量会变好,但波形会变差;若选择求取检波信号的平均值,又会因为平均值而掩盖被检测信号的突然脉冲,从而引起系统的失灵和不稳定。
这些现象主要与运算放大器的和开关二极管的性能参数和电容的选择有关。最后,通过查阅资料,我们最后换用了输出驱动能力优良、小信号带宽高以及电源电压范围较大的NE5532运算放大器,然后我们换用了反向恢复时间极短的1N6095开关二极管和3.3.uf的电容。同时,我们还对运放的电源端并联了电容,用来避免输出波形受到噪声的影响,提高其抗干扰能力,从而提高输出波形的稳定性。
五、总结
通过分析实验结果,我们得出了以下一些结论:
(1) 本系统实现了对输入信号的峰值采样和保持,能够允许测量的检波的频率范围为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]刘定良单片机技术与应用中南大学出版社2005年8月
[2]谭浩强 C程序设计(第二版)清华大学出版社2005年1月
[3]路勇 电子电路实验及仿真 北京:清华大学出版社 2004年
[4]刘润华 现代电子系统设计.[M]大庆:石油大学出版社,1998年
[5]魏海明、杨兴瑶 实用电子电路500例[M]北京:化学工业出版社 1996年
附录1 总电路图
采样保持电路
附录2 源程序
#include"reg51.h"
#include"XPT2046.h"
//--定义使用的IO--//
#define GPIO_DIG P0
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
//--定义全局变量--//
unsigned char codeDIG_CODE[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3e}; //0、1、2、3、4、5、6、7、8、9、V的显示码
unsigned char code DIG[6]={0xbf,0x86,0xdb,0xcf,0xe6,0xed}; //0.、1.、2.、3.、4.、5.的显示码
unsigned char DisplayData[8]; //用来存放要显示的8位数的值
void DigDisplay(void);
void main(void)
{
uint temp,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();
}
}
void DigDisplay(void)
{
unsigned char i;
unsigned int j;
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
电阻
9.1K
2
3
R3
电阻
100K
1
4
Function Generator
示波器
1
5
Oscilloscope
信号源
1
6
XT2048
A/D转换器
1
7
STC89C52
单片机
1
8
C1、C2、C3、C5
电容
3.3.uf
4
9
D1、D2
二极管
1N6000B
1
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
相关搜索