1、1简易信号分析仪设计摘要: 本次设计以 32 位单片机 STM32 为控制核心,由电压跟随器、程控放大电路、过零比较电路、衰减电路、波形显示等部分电路组成。用等效采样方式对波形幅值进行检测,用过零检测方式对信号频率采样,用直流叠加电路,将双极性的信号,变为单极性信号。并通过有效值与峰值的关系,实现对正弦波,三角波,方波等波形的判断。采样的波形,用 TFT 真彩屏进行显示。本设计可以实现对输入 20Hz-200KHZ、0.05Vpp-10Vpp 波形的判断,并可实现幅值、频率、有效值、失真度的检测。关键词: 信号分析仪 STM32 等效采样 A/D一、系统方案1、方案比较与选择方案一:用单片机
2、STC12C5A60S2 作为核心控制器件。即由 5A60S2、A/D转换器、D/A 转换器及 RAM 存储器等组成系统。若采用该方案,则单片机不仅要对数据进行处理,还要完成复杂的时序控制,且单片机对数据的处理速度较低,而题目要求的被测信号频率最高达到 200KHz,难以达到设计要求。方案二:用 STM32 作为核心控制器件。STM32 片内有 12 位的高精度A/D,单路 A/D 采样速率最大可达 1MHZ。且 STM32 可以两路 A/D 交叉采样,采样速率最大可达 2Mhz。理论上满足设计的要求,且该芯片相比其它 32 位芯片功耗低,价格更便宜。方案三:用 LPC2138 作为核心控制器
3、件。LPC2138 片内有 16 位的高精度A/D,CPU 速率高达 60MHZ,且 LPC2138 可以两路 A/D 交叉采样,采样速率最大可达 2Mhz,程序存储器容量 /512kb。理论上满足设计的要求,且该芯片相比其它 32 位芯片功耗更低,价格便宜。故本设计选用方案三。2、系统方案描述本简易信号分析仪用 LPC2138 作为数据处理及控制的核心,该核心又分为四大模块:程控放大,频率采样、幅值采样及显示控制部分。程控放大电路是将输入小信号进行放大;频率采样模块是通过过零检测电路输出的方波,采集信号的频率,LPC2138 根据该频率的范围,改变幅值采样的速率;幅值采样模块通过 LPC21
4、38 的 A/D 接口采集信号的幅值,幅值采样频率由信号的频率决定,根据幅值采样的结果,控制信号的放大倍数,算出信号峰峰值、有效值、及信号的类型。电路中设计的直流叠加电路,将双极性的信号提高到 0-3.3v 以内,以便 LPC2138 采样。本信号分析仪显示则利用普通模拟示波器的 X-Y 方式。A/D 转换后的模拟量经 LPC2138 处理好后,输出到屏幕上面显示。在设计中,为了隔离前后级的影响,我们使用了电压跟随电路。系统框图如图 1.1 所示。2衰减电路 直流叠加M C UL P C 2 1 3 8过零检测A / D 采样信号输入程控放大器图 1.1 系统框图需要注意的是,本系统要处理的信
5、号频率高达 200kHZ。并且要显示波形。用两路 A/D 交叉采样最高 2MHZ,仍然不能够将信号完整的显示出来,并且幅值也会检测不准。所以 A/D 采样时,用到等效分析算法,解决这个问题。在选择运放时,我们发现许多宽带集成运放都很容易产生自激,带宽不能满足要求,经过反复测试,最终选择了高速宽频带运放 CA3140。二、理论分析与计算1、A/D 采样分析 LPC2138 的单路 A/D 采样速率最大为 1MHZ,而输入信号的频率最高为200KHZ,如果仅仅用单路 A/D 采样,是不能完成对高频信号不失真的采样,所以在本设计中,我们创造性的用了等效采样的方法,达到用低速 A/D 对高频信号的采集
6、的目的。等效采样的原理如图 2.1 所示,由于周期信号在各周期内的波形完全相同,可以在各周期内的不同时刻分别采集数据,然后将采集的数据合成完整的采样波形。第一次的采样时刻为周期原点,第二个周期到来后延时t后再进行第二次采样,第三次采样则是在第三个周期到来后再延时 2t 的时刻,以此类推。将采集到的数据以间隔t 顺序排列,即可恢复信号波形。等效采样速率 fs=1/t,而实际的采样频率 fs=1/(T+t),由于 tfs。因此,利用等效采样技术可以用较低速的 A/D 实现对高频周期信号的采样。 3图 2.1 等效采样原理图 LPC2138 片内 A/D 有 12 位,3.3.V 供电,A/D 的转
7、化精度 Vref/(212)约为0.8mv,完全满足设计要求的 3%的幅值误差。三、电路与程序设计1、电路设计(1)放大器设计方案本设计用程控放大器 PGA202。PGA202 的增益为 1、10、100、1000(十进制),带宽满足该设计范围。程控放大器通过 LPC2138 控制放大倍数,当50mv1v,信号不进行放大。电路通过 PGA202 与衰减电路的控制,可将信号Vpp 维持在 250mv 至 2.5v 之间。该电路主要元件还包含一个电压跟随器,电压跟随器主要进行阻抗变换,隔离前级电路与后级电路之间的影响。从而增加对后级电路的驱动能力,增大输入阻抗,减小输出电阻。放大电路如图 3.1
8、所示。图 3.1 放大电路(2)频率测量方案频率的测量主要通过过零比较器实现,过零比较器采用 LM393。LM393 是高增益,宽频带器件。 当信号大于零时输出高电平,当信号小于零时输出低电平。信号输入时,MCU 检测到电平跳变沿,定时器开始计时,当检测到第二个跳变沿时,停止计时,定时器的定时时间就是该信号的周期。通过多次测量取平均值来提高频率的准确率。频率测量电路如图 3.2 所示。 4图 3.2 频率测量电路 (3)有效值、失真度测量,波形检测方案有效值即为均方根,主要通过 A/D 采样的幅值进行计算。均方根计算公式:P=(2/N), 为根号。对于均方根和峰值的比,方波约等于 1,正弦约等
9、于 0.5 倍根号 2,三角波约等于三分之一倍,可以据此判定波形。(4)衰减电路方案衰减电路将信号固定衰减 1/4,该电路用精密电阻进行衰减,但由于高频时,电阻会有分布电容的存在,阻值选取不正确,会让波形失真,通过实际测量,选取 2.2k 左右的阻值的电阻,可以满足对信号的衰减要求。并用可调电容151 电容对其进行高频补偿。衰减电路如图 3.3 所示。图 3.3 衰减电路(5)信号取样电路设计方案由于 LPC2138 的 A/D 采样接口,内部有采样电路。所以本次设计,未考虑外部采样电路,经实验,A/D 采样效果能够达到设计的要求。(6)直流叠加电路直流叠加电路的输入是经程控放大器放大,衰减电
10、路衰减过后的信号。该信号 Vpp 在 250mv 至 2.v 之间,该电路是用加法器的原理,将直流叠加到交流上,实现交流的电位提升。让电路的输出信号 Vpp 在 0v 至 3v 之间。直流叠加电路如图 3.4 所示。5图 3.4 直流叠加电路2、软件设计(1)主流程图开始频率检测计算采样周期幅值 V 1 采样V p p 是否小于1 0 0 m vV p p 是否大于1 0 0 m v , 小于 1 v程控放大 1 0 0 倍程控放大 1 0 倍幅值 V 2 采样计算有效值 , 峰峰值 , 判断波形等设置程控增益为1 : 1显示数据设置程控增益 1 : 1是否是否(2)源程序(见附页)四、系统调
11、试与测试结果61、调试(1)测试仪器:UTG9020D 全数字任意波形发生器、UTD2052CEC 示波器、DT9205A 数字万用表。(2)测试方法硬件模块测试:系统硬件由四个模块构成,所以分四部分进行调试。首先对程控放大模块进行测试,在两个极限频率,两个极限幅值下测量,改变放大倍数,观察波形的质量,对电路参数进行调整。其它模块测试过程一样,最后将所有模块连接在一起,进行测量。软件模块测试:采用自下而上的调试方式,先对模块测试程序的调试,待全部通过之后将所有的软件程序串接起来并结合硬件电路进行整体调试。2、测试结果100HZ-400KHZ,0.5Vpp10Vpp 的信号述如下,频率能够测准准
12、,幅值能够测准,满足设计要求的 3%,1%的误差,正弦波波形判断不准。畸变信号失真度算不准。能够正常显示波形。4、结果分析从测试数据可以看出,简易信号分析仪系统运行正常,能按照题目要求进行测试,并自动选择量程。在周期信号频率范围为 200Hz20KHz,幅度变化范围为 0.5Vpp5Vpp 的情况下,能完成以下参数测量:(1) 对正弦波、三角波、方波(无直流偏置,下同)三种输入信号,系统具备测量和数字显示信号的频率、电压峰峰值的功能;(2) 正弦波、三角波、方波频率的测量,测量误差小于 1%;(3) 正弦波、三角波、方波电压峰峰值的测量,测量误差小于 3%;(4) 对正弦波、三角波、方波三种输
13、入信号,系统能自动识别波形并用符号指示。扩大信号频率范围为 20Hz200KHz,输入电压范围为 0.05Vpp10Vpp 的情况下,系统能完成以下测量:(1) 能够用 LCD 屏(点阵数不少于纵 64*横 128)显示信号波形,显示的波形大小适中,纵向应超过半屏,横向应有 1 至 3 个周期的波形,波形没有明显失真,同时指示出纵横向满屏的标度;(2) 完成信号频率和幅度(峰峰值)测量,误差分别小于 1%和 3%;5、总结经过这四天三夜的努力,我们实现了题目的基本要求,创造性的用了等效采样的方法,发挥部分也大部分实现了功能。通过不断的硬件试验和程序调试,简易信号分析仪系统能较好的按照题目的要求
14、运行。但是好的结果总是经7历不平凡的坎坷,期间我们曾不断调试电阻、电容,让其达到比较精确地目的。由于时间紧,工作量大,加之我们经验不足,水平有限,系统还存在很多需要改进的地方。经过改进,相信系统会更加具有说服力,并且更加美观大方。本次竞赛极大地锻炼了我们各方面的能力,我们懂得了合作的重要性与思维的无限性。虽然我们遇到了很多困难与障碍,但是总体上成功与挫折交织,困难与希望并存,今后我们将继续努力,争取更大进步。参考文献1 童诗白,华成英.模拟电子技术基础.第三版.北京:高等教育出版社,20012 刘军.例说 STM32.第一版.北京航空航天大学出版社,20113 Jopseph Yiu,宋岩(译
15、).Cortex-M3 权威指南M.北京:清华大学出版社,2009附页:一、原理图二、部分源程序/*/*自启动定时器匹配两路 AD(P0.25-AD0.4,P0.13-AD1.4)采样电压并显示波形,频率,峰峰值,有效值,失真度(涉及低频和高频采样的优化算法)*/*/#include “config.h“#include “math.h“#define uchar unsigned char;#define uint unsigned int;8const uint32 ck0 = 1 0; dly-)for (i=0; i(paixuj+1)k=paixuj;paixuj=paixuj+1;
16、paixuj+1= k;da=(paixu124+paixu125+paixu126)/3;xiao= (paixu1+paixu2+paixu3)/3;vpp=da-xiao;/求出 vpp/求电压的有效值和判断是什么波形/void youxiaoboxing()uint8 i;uint32 k,zhzhi,temp;zhzhi=(da+xiao)/2;k=0;for(i=0;izhzhi)temp=(s_f4i-zhzhi);elsetemp=(zhzhi-s_f4i);k=k+temp*temp;/求出所有点的平方和k=k/128;vr=sqrt(k);/ 求出有效值temp=(vpp*
17、vpp)/4;if(k7*temp/10)boxing=1;/表示为方波 14else if(k1000/有效计数值自加 1a=T1CR2; /a 等于上(下)升沿时刻值if(flag=100)TALL=a-a0;T=TALL/50*101/100; /周期F=Fpclk/T; /频率,100/101 是误差补偿/T=Fpclk/100000;c+;flag=0;FEND=1;/频率扫描结束标志位置 1 供 AD 采样开始提供信息T1CCR =0;/禁止捕获21T64=T;/放大了 64 倍sample_cnt0=Fpclk/(10000000/30)*64/T64+1;Tc=sample_c
18、nt0*T64;/放大了 64 倍i=0;b=T1TC-a;cy_qsh =(b/T+1)*T;while(cy_qsh6);sample_cnt=sample_cnt%128;sampleflagsample_cnt=1;sample_wi=sample_cnt;/*s_f30= s_f50-T1TC;for(i=1;i=127)T1MR0 = T1MR0-1; /输出频率周期控制T1EMR =0;/(2 6) if(sampleendflag=2)/zhuanhuan_ADout();qiuvpp();youxiaoboxing();handle_AD();xianshi();for(i=
19、0;iFpclk)/time0=T1TC;for(i=0;i128;i+)sampleflagi=0;adzhii=0;flag=0;T1PR = 0; / 分频系数T1CCR =(1 6)|(1 7)| (1 8); / 设置 CAP1.2 下降沿和上升沿同时捕获/ 允许产生中断/T1TC = 0;/ 启动定时器T1MCR=0x00; / 0x01; /设置 T1MR0 匹配后将 T1TC 中断T1EMR = 0 4; /T1MR0 匹配后 MAT0.1 输出翻转T1MR0 = Fpclk; /输出频率周期控制/T1TCR = 0x03; /启动并复位 T1TC/ T1TCR = 0x01; / 启动定时器 /启动并复位 T1TCT1IR = (1 6)|(1 0)|(1 1); / 清除CAP1.2 中断标志return 0;