ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:255.37KB ,
资源ID:7727658      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7727658.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易信号分析仪设计报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简易信号分析仪设计报告.docx

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作为核心控制器件。LPC2138片内有16位的高精度A/

3、D,CPU速率高达60MHZ,且LPC2138可以两路A/D交叉采样,采样速率最大可达2Mhz,程序存储器容量 /512kb。理论上满足设计的要求,且该芯片相比其它32位芯片功耗更低,价格便宜。 故本设计选用方案三。2、系统方案描述本简易信号分析仪用LPC2138作为数据处理及控制的核心,该核心又分为四大模块:程控放大,频率采样、幅值采样及显示控制部分。程控放大电路是将输入小信号进行放大;频率采样模块是通过过零检测电路输出的方波,采集信号的频率,LPC2138根据该频率的范围,改变幅值采样的速率;幅值采样模块通过LPC2138的A/D接口采集信号的幅值,幅值采样频率由信号的频率决定,根据幅值采

4、样的结果,控制信号的放大倍数,算出信号峰峰值、有效值、及信号的类型。电路中设计的直流叠加电路,将双极性的信号提高到0-3.3v以内,以便LPC2138采样。本信号分析仪显示则利用普通模拟示波器的X-Y方式。A/D转换后的模拟量经LPC2138处理好后,输出到屏幕上面显示。在设计中,为了隔离前后级的影响,我们使用了电压跟随电路。系统框图如图1.1所示。 图1.1 系统框图需要注意的是,本系统要处理的信号频率高达200kHZ。并且要显示波形。用两路A/D交叉采样最高2MHZ,仍然不能够将信号完整的显示出来,并且幅值也会检测不准。所以A/D采样时,用到等效分析算法,解决这个问题。在选择运放时,我们发

5、现许多宽带集成运放都很容易产生自激,带宽不能满足要求,经过反复测试,最终选择了高速宽频带运放CA3140。二、理论分析与计算1、A/D采样分析 LPC2138的单路A/D采样速率最大为1MHZ,而输入信号的频率最高为200KHZ,如果仅仅用单路A/D采样,是不能完成对高频信号不失真的采样,所以在本设计中,我们创造性的用了等效采样的方法,达到用低速A/D对高频信号的采集的目的。等效采样的原理如图2.1所示,由于周期信号在各周期内的波形完全相同,可以在各周期内的不同时刻分别采集数据,然后将采集的数据合成完整的采样波形。第一次的采样时刻为周期原点,第二个周期到来后延时t后再进行第二次采样,第三次采样

6、则是在第三个周期到来后再延时2t的时刻,以此类推。将采集到的数据以间隔t顺序排列,即可恢复信号波形。等效采样速率fs=1/t,而实际的采样频率fs=1/(T+t),由于tfs。因此,利用等效采样技术可以用较低速的A/D实现对高频周期信号的采样。 图2.1 等效采样原理图 LPC2138片内A/D有12位,3.3.V供电,A/D的转化精度Vref/(212)约为0.8mv,完全满足设计要求的3%的幅值误差。三、电路与程序设计1、电路设计 (1)放大器设计方案 本设计用程控放大器PGA202。PGA202的增益为1、10、100、1000(十进制),带宽满足该设计范围。程控放大器通过LPC2138

7、控制放大倍数,当50mvVpp=100mv时,信号放大100倍;当100mvVpp1v,信号不进行放大。电路通过PGA202与衰减电路的控制,可将信号Vpp维持在250mv至2.5v之间。该电路主要元件还包含一个电压跟随器,电压跟随器主要进行阻抗变换,隔离前级电路与后级电路之间的影响。从而增加对后级电路的驱动能力,增大输入阻抗,减小输出电阻。放大电路如图3.1所示。 图3.1 放大电路(2)频率测量方案 频率的测量主要通过过零比较器实现,过零比较器采用LM393。LM393是高增益,宽频带器件。 当信号大于零时输出高电平,当信号小于零时输出低电平。信号输入时,MCU检测到电平跳变沿,定时器开始

8、计时,当检测到第二个跳变沿时,停止计时,定时器的定时时间就是该信号的周期。通过多次测量取平均值来提高频率的准确率。频率测量电路如图3.2所示。 图3.2 频率测量电路 (3)有效值、失真度测量,波形检测方案 有效值即为均方根,主要通过A/D采样的幅值进行计算。 均方根计算公式:P=(2/N), 为根号。 对于均方根和峰值的比,方波约等于1,正弦约等于0.5倍根号2,三角波约等于三分之一倍,可以据此判定波形。(4)衰减电路方案 衰减电路将信号固定衰减1/4,该电路用精密电阻进行衰减,但由于高频时,电阻会有分布电容的存在,阻值选取不正确,会让波形失真,通过实际测量,选取2.2k左右的阻值的电阻,可

9、以满足对信号的衰减要求。并用可调电容151电容对其进行高频补偿。衰减电路如图3.3所示。 图3.3 衰减电路(5)信号取样电路设计方案 由于LPC2138的A/D采样接口,内部有采样电路。所以本次设计,未考虑外部采样电路,经实验,A/D采样效果能够达到设计的要求。(6)直流叠加电路 直流叠加电路的输入是经程控放大器放大,衰减电路衰减过后的信号。该信号Vpp在250mv至2.v之间,该电路是用加法器的原理,将直流叠加到交流上,实现交流的电位提升。让电路的输出信号Vpp在0v至3v之间。直流叠加电路如图3.4所示。 图3.4 直流叠加电路2、软件设计(1)主流程图(2)源程序(见附页)四、系统调试

10、与测试结果1、调试(1)测试仪器:UTG9020D全数字任意波形发生器、UTD2052CEC示波器、DT9205A数字万用表。(2)测试方法 硬件模块测试:系统硬件由四个模块构成,所以分四部分进行调试。首先对程控放大模块进行测试,在两个极限频率,两个极限幅值下测量,改变放大倍数,观察波形的质量,对电路参数进行调整。其它模块测试过程一样,最后将所有模块连接在一起,进行测量。软件模块测试:采用自下而上的调试方式,先对模块测试程序的调试,待全部通过之后将所有的软件程序串接起来并结合硬件电路进行整体调试。 2、测试结果 100HZ-400KHZ,0.5Vpp10Vpp的信号述如下,频率能够测准准,幅值

11、能够测准,满足设计要求的3%,1%的误差,正弦波波形判断不准。畸变信号失真度算不准。能够正常显示波形。 4、结果分析 从测试数据可以看出,简易信号分析仪系统运行正常,能按照题目要求进行测试,并自动选择量程。在周期信号频率范围为200Hz20KHz,幅度变化范围为0.5Vpp5Vpp的情况下,能完成以下参数测量:(1) 对正弦波、三角波、方波(无直流偏置,下同)三种输入信号,系统具备测量和数字显示信号的频率、电压峰峰值的功能;(2) 正弦波、三角波、方波频率的测量,测量误差小于1%;(3) 正弦波、三角波、方波电压峰峰值的测量,测量误差小于3%;(4) 对正弦波、三角波、方波三种输入信号,系统能

12、自动识别波形并用符号指示。扩大信号频率范围为20Hz200KHz,输入电压范围为0.05Vpp10Vpp的情况下,系统能完成以下测量:(1) 能够用LCD屏(点阵数不少于纵64*横128)显示信号波形,显示的波形大小适中,纵向应超过半屏,横向应有1至3个周期的波形,波形没有明显失真,同时指示出纵横向满屏的标度;(2) 完成信号频率和幅度(峰峰值)测量,误差分别小于1%和3%;5、总结 经过这四天三夜的努力,我们实现了题目的基本要求,创造性的用了等效采样的方法,发挥部分也大部分实现了功能。通过不断的硬件试验和程序调试,简易信号分析仪系统能较好的按照题目的要求运行。但是好的结果总是经历不平凡的坎坷

13、,期间我们曾不断调试电阻、电容,让其达到比较精确地目的。由于时间紧,工作量大,加之我们经验不足,水平有限,系统还存在很多需要改进的地方。经过改进,相信系统会更加具有说服力,并且更加美观大方。本次竞赛极大地锻炼了我们各方面的能力,我们懂得了合作的重要性与思维的无限性。虽然我们遇到了很多困难与障碍,但是总体上成功与挫折交织,困难与希望并存,今后我们将继续努力,争取更大进步。 参考文献1 童诗白,华成英.模拟电子技术基础.第三版.北京:高等教育出版社,20012 刘军.例说STM32.第一版.北京航空航天大学出版社,20113 Jopseph Yiu,宋岩(译).Cortex-M3权威指南M.北京:

14、清华大学出版社,2009附页:一、 原理图二、部分源程序/*/*自启动定时器匹配两路AD(P0.25-AD0.4,P0.13-AD1.4)采样电压并显示波形,频率,峰峰值,有效值,失真度(涉及低频和高频采样的优化算法)*/*/#include config.h#include math.h#define uchar unsigned char;#define uint unsigned int;const uint32 ck0 = 1 28;const uint32 ck1= 1 29;const uint32 RS = 1 1;const uint32 RW = 1 3;const uint

15、32 EN = 1 5;const uint32 PSB = 1 7;#define DATA 0xFF 0; dly-) for (i=0; i500; i+);/*写指令数据到LCD RS=L,RW=L,E=脉冲,D0-D7=指令码。*/void lcd_wcmd(uint8 cmd) IO0CLR=RS; IO0CLR=RW; DelayNS(1); IO0SET = EN;/打开并口 DelayNS(1); IO1PIN = (cmd) 18; DelayNS(1); IO0CLR=EN; /关闭并口 这个函数怎么写,完全参照时序图去写, /*写显示数据到LCD RS=H,RW=L,E

16、=脉冲,D0-D7=数据。*/void lcd_wdat(uint8 dat) IO0SET=RS; IO0CLR=RW; DelayNS(1); IO0SET = EN; DelayNS(1); IO1PIN = (dat) 18; DelayNS(1); IO0CLR=EN; /* LCD显示汉字初始化设定,只设必须的,若显示图片初始化设定得另外设定 */void lcd_init() / unsigned int i; IO0SET = PSB; /并口方式 lcd_wcmd(0x34); /扩充指令操作 0011xRGL R=1扩充指令G=0关闭绘图显示L=0 DelayNS(1);

17、lcd_wcmd(0x30); /基本指令操作 DelayNS(1); lcd_wcmd(0x08); /睡眠模式 DelayNS(1); lcd_wcmd(0x0C); /显示开,关光标00001DCB D=1整体显示,C=0关光标,B=0关游标位置 DelayNS(1); lcd_wcmd(0x01); /清除LCD的显示内容 DelayNS(1); /改变启动时间长短/*设定显示位置*/ void lcd_pos(uint8 X,uint8 Y) uint8 pos; if (X=0) X=0x80; /参照12864PDF文档设定 else if (X=1) X=0x90; else

18、if (X=2) X=0x88; else if (X=3) X=0x98; pos = X+Y ; lcd_wcmd(pos); /* * 清整个GDRAM空间*/ void clrgdram() unsigned char x,y; for(y=0;y64;y+) for(x=0;x16;x+) lcd_wcmd(0x34); DelayNS(1); lcd_wcmd(y+0x80); /行地址 DelayNS(1); lcd_wcmd(x+0x80);/列地址 DelayNS(1); lcd_wcmd(0x30); DelayNS(1); lcd_wdat(0x00); DelayNS(

19、1); lcd_wdat(0x00); DelayNS(1); /* * 清除屏幕*/ void clrscreen() lcd_wcmd(0x30); lcd_wcmd(0x01); DelayNS(1);/*-显示图片-*/ void Disp_Img (unsigned char *img) unsigned int j=0; unsigned char x,y,i; for(i=0;i9;i+=8) for(y=0;y32;y+)/*原来 为 y26 ,上下两个半屏不能正常对接显示,导致显示的图片中间有空隙*/ for(x=0;x8;x+) lcd_wcmd(0x36);/功能设置-8

20、BIT控制界面,扩充指令集 lcd_wcmd(y+0x80); /行地址 lcd_wcmd(x+0x80+i); /列地址 lcd_wcmd(0x30); lcd_wdat(imgj+); lcd_wdat(imgj+); /把AD转换的值转换成为以3300为基准电压源的电压值void zhuanhuan_ADout() uint8 i; for(i=0;i128;i+) s_f4i = s_f4i*3300; s_f4i = s_f4i/1024; /求电压的峰峰值vpp/void qiuvpp() uint8 i,j; uint16 k; revise=0; for(i=0;i128;i+

21、) paixui=s_f4i;/把值放排序数组中用于排序 for(i=0;i128;i+)/把数组从小到大排序程序 for(j=0;j(paixuj+1) k=paixuj; paixuj=paixuj+1; 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

22、=0;izhzhi) temp=(s_f4i-zhzhi); else temp=(zhzhi-s_f4i); k=k+temp*temp;/求出所有点的平方和 k=k/128; vr=sqrt(k);/ 求出有效值 temp=(vpp*vpp)/4; if(k7*temp/10) boxing=1;/表示为方波 else if(k2*temp/5) boxing=3;/表示为正弦波 else boxing=2;/表示为sanjiao波 /处理 AD采样结果子程序/void handle_AD(void) uint8 i=0,j=0,k=0; revise=0; for(i=0;i128;i+) huitui=s_f4i/64; revise=42-(vpp/2/64);/revise表示调整的意思,调整波形始终以中线为中心在上下两屏显示 for (i=0;i128;i+) /列 for (j=0;j64;j+)/行 k=63-huitui;/在哪一行 if (k=j) /若在第j行 /i/8+16*j表示在哪行哪个字节(一行有16个字节) buffi/8+16*(j-revise)=buff

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1