峰值检测指导教师:参赛学生参赛学校及院系:峰值检测电路设计摘要在生产、科研等各个领域都会用到峰值检测设备。本设计介绍了峰值检测系统的设计原理、软硬件设计方法,系统性能指标调试方法以及multisim的仿真模拟。以STC89C52单片机为核心处理器,主要控制电压的输出,最后在数码管上显示。在峰值检测系统中,通过NE5532P型运算放大器和开关二极管1N60组成采样保持电路。其输出电压经由A/D转换器送至单片机,经过单片机的控制和处理最终输出相应的数字电压,最后采用multisim仿真,与实际测量效果进行对比分析得出结论,实现了峰值的连续检测和保持。关键词:峰值检测;采样/保持电路;A/D转换器;STC89C52;multisim目录一、系统方案......................................41.1总体方案论证与选择..........................41.2总体设计思路................................4二、电路与理论分析................................52.1峰值检测基本原理............................52.2峰值检测理论分析与计算.....................6三、软件设计与流程图..............................6四、系统调试与误差分析............................74.1系统调试....................................74.2误差分析...................................10五、总结.........................................10六、参考文献.....................................11附录1总电路图.................................12附录2源程序...................................12附录3元器件清单................................15一、系统方案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所示:图1.1电路设计框图二、电路与理论分析2.1峰值检测基本原理峰值检测电路(PKD,PeakDetector)的作用就是对输入信号的峰值进行提取,产生输出Vo=Vpeak,为了实现这样的目标,电路输出值需一直保持,直到一个新的更大的峰值出现或电路复位,其效果原理如图2.1所示:图2.1峰值检测基本效果原理峰值检测的基本原理很简单,通过一个电压跟随器,正相输入信号,输出直接接反相,这样输出值与输入值相等。若在输出与波形检测部分并接一电容,当波形值增加时,显示部分能指示出这一增加过程,同时电容也在充电,电容的电压不断增加。当波形的峰值下降时,由于电容已充电,这是波形显示部分显示的是电容记录的最大值。为了防止电容电压下降,在电容与电压跟随器之间加一二极管。由于二极管的的单向导通性,二极管的电压不会“流失”,这样就能保证显示部分记录的就是输入波形的最大值。即“遇增增,遇减不变”信号源采样保持电路A/D转换电路数码管输出显示STC89C52单片机图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转换器初始化模拟信号输入图2.3流程框图四、系统调试与误差分析4.1系统调试在实验过程中,根据电路原理图,将系统分为模拟峰值存储器、单相电流开关、输入输出缓冲隔离三个部分进行测试。测试使用的工具主要有:万用表,函数信号发生器,示波器等。如下图所示,首先按照电路原理图接通电路,再将函数信号发生器和示波器接入电路,然后将输出端与STC89C52单片机相应端口连接,通过改变输入信号的频率和幅值,(频率范围为50kHz-500kHz,幅值范围为0-5V)在数码管上面观察并记录输出信号的幅值,即实现了对输入信号的峰值进行采样和保持,从而来获取输入电压与输出电压的线性关系。向A/D转换器写入数据A/D转换器读取数据STC89C52控制处理数码管显示输出电压数字电压输出译码显示图2.3峰值检测实物图表1.1实际峰值检测结果图2.4输出Uo与Ui的线性关系图2.4Multisim仿真效果表1.2仿真峰值检测结果y=0.9751x-0.030101234567890246810系列1系列2系列3系列4系列5系列6系列7线性(系列6)图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的线性关系,两者之间y=0.9681x+0.0488024681012024681012100HZ500HZ1K10K50K100K500K线性(10K)误差较小,结果较为准确。(3)对于微小信号,由于电源的纹波电压较大,对测量结果的精度影响较大,误差也比较明显。通过这次电子设计,我们掌握了峰值测量系统的原理及电路设计,同时也明白了峰值检测系统性能指标测试方法。并且,还熟练地掌握了multisim仿真软件和keil编程软件。在实际实验的过程中,我们遇到了很多难题,面对没有学过的知识点和比较模糊混淆的概念和原理大家都想尽办法自行学习掌握。我们还发现很多理论知识在实践中可能会有很多偏差,只有自己动手实践才能得出正确的答案。同时,在这几天的学习过程中,我们培养了良好的团队协作能力和默契,大家齐心协力,分工合作,高速有效的完成自己的任务。作为测控专业的学生我们深刻地感受到了电子设计的魅力,为以后更加深入的学习培养了浓厚的兴趣并且打下了坚实的基础。在这次电子设计中,我们收获良多,也将更加努力学习知识,丰富自我。六、参考文献[1]刘定良单片机技术与应用中南大学出版社2005年8月[2]谭浩强C程序设计(第二版)清华大学出版社2005年1月[3]路勇电子电路实验及仿真北京:清华大学出版社2004年[4]刘润华现代电子系统设计.[M]大庆:石油大学出版社,1998年[5]魏海明、杨兴瑶实用电子电路500例[M]北京:化学工业出版社1996年附录1总电路图采样保持电路附录2源程序#includereg51.h#includeXPT2046.h//--定义使用的IO--//#defineGPIO_DIGP0sbitLSA=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);}cou