欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    双路正弦波发生器.docx

    • 资源ID:5078968       资源大小:671.70KB        全文页数:21页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    双路正弦波发生器.docx

    低成本双路正弦波发生器(D题)摘要:本设计以51开发板的MCU为核心控制部件,控制独立按键、LCD (1602)的输入和 显示,并控制数字逻辑控制单元(CPLD)、经模拟电路发出双路正弦波信号,实现低成本双 路正弦波发生器的设计。双路正弦波频率在1Hz1.1kHz范围内、最大幅度可达5V、两路信 号的相位差在0359度范围内均可程控设置。本设计产生的信号在频段范围内的幅值变化量 可达2.8%,频率分辨力达1mHz,最大波形失真度0.27% (远小于2%),相位的分辨力能达 到0.2度,输出噪声A路0.75mV、B路0.71mV (远低于技术指标5mV)。最大的特点就是 使用了 TL084、CD4053、电阻、电容等低成本元件,实现了超低成本。关键词:正弦波 51单片机CPLD差并通过低通滤波器LPFTL£i841. 设计任务与要求1.1设计任务设计、制作一个低成本双路正弦波发生器,每路信号的频率、幅度及两路信号的 相位差均可程控设置。1.2技术指标(1)两路正弦波频率范围1Hz1kHz,步进不大于1Hz,频率准确度不低于0.1%;(2)两路正弦波输出最大幅度不低于3V,设置分辨率不低于12bit;(3)正弦波信号在整个频率设置范围内,波形失真度不大于2%;(4)两路信号的相位差在0359度内可调,设置分辨力不大于1度;(5)微处理器单元与控制逻辑单元信号连线应不超过3条;1.3发挥部分(1)控制逻辑单元输出给模拟电路单元的信号线应不超过5条;(2)当两路信号频率为1到10间的倍频关系时能同步,示波器观测两路波形稳定;(3)设定的输出信号电压值在整个频段内,变换量小于5%;(4)两路正弦信号幅度设置为零时,输出噪声小于5mV;(5)取消微处理器单元,控制逻辑单元也能实现独立设置特定参数信号的输出;2. 方案比较与论证2.1差频方案比较与选择方案一:用开关模拟乘法器本方案通过累加器发生两路高频正弦波,通过方波控制开关而选中sin或者是-sin两路波中的一路,相当于正弦波sin2侦乘以一固定频率的方波/W (如图1-1所示)。 根据傅里叶级数,方波展成:2 E ( .1 . °1 .广sin t + sin 3 t + sin 5 t -I 0 30 50(其中 w0=2&), sin2# 经积化和得到频率(f-f0)的正弦波。ULfI;OUtTLD84图1-1开关模拟乘法器示意图方案二:直接使用乘法器两信号Vx和Vy直接通过乘法器相乘得vz,即:Vz =Vx *y =(sin2nf1t)*( sin2nf2t)1=2(sin2 n(f1 +f2)t - sin2 n(f1-f2)t)匕经低通滤波器(LPF)后得频率为f1-f2的正弦波。方案三:混频锁相环本方案中的混频锁相环是由混频器(M)、带通滤波器(BPF)和基本锁相环组成(如图1-2所示)。当混频器为差频时,环路的输出频率是两个频率"和fi2之差。图1-2混频锁相环差频原理图对以上三种方案进行比较,方案一的正弦波sin2就的频率始终是固定的10kHz,而方 波可以通过51单片机控制频率在10.0kHz11.0kHz范围内,通过低通滤波器后就得到 0HZ-1.0kHZ的正弦波。其优点为滤波器的滤波特性好,得到的正弦波精度高。方案二结 构简单,原理清楚。但成本较高,有悖于本设计的最大特点一一低成本。方案三中用到了混 频器、带通滤波器和基本锁相环,导致电路庞大、复杂、成本高。综上,采用方案一可实现 差频,并能满足低成本的要求,同时可以保证频率范围和频率准确度要求。2.2整体方案的比较与确定方案一:DDS芯片AD9850实现频率合成本方案以基准频率源(系统时钟)对相位进行等间隔的采样。由图2-1所示,DDS由相 位累加器和波形存储器(即ROM查询表)构成的数控振荡器(NCO_ Numerically Controlled Oscillators).数模转换器(DAC)以及低通滤波器(LPF)三部分组成。在每一个时钟周期, N位相位累加器与其反馈值进行累加,其结果的高L位作为查询表的地址,然后从ROM中读 出相应的幅度值送到DAC。再由DAC将其转换成为阶梯模拟波形,最后由具有内插作用的LPF 将其平滑为连续的正弦波形作为输出。因此,通过改变频率控制字K就可以改变输出频率。图2-1 DDS工作原理图方案二:相位累加器及模拟电路实现频率合成如图2-2所示,通过单片机输出频率控制字和相位控制字到累加器,控制相位累加器输 出占空比不同的PWM波,配合模拟电路实现频率合成(其中模拟部分包括调幅电路、方波发 生电路和调频电路)。相位控制字图2-2利用相位累加器及模拟电路实现频率合成对以上三种种方案进行比较,方案一中用芯片AD9850实现频率合成,输出一定频率的正 弦波,但在DDS中用到了存储器资源ROM查询表以及DAC,即违反了题目的要求,又大大增加 了系统的成本。方案二中,仅仅使用了累加器,通过51单片控制并配合模拟部分即可实现频 率合成。综上:采用方案二实现频率合成,输出1Hz-1kHz的正弦波,所有参数均可程控设置, 达到题目要求。3. 理论分析与计算3.1关于频率指标计算逻辑电路本设计主要应用DDS频率合成技术,一个正弦波,虽然它的幅度不是线性的, 但是它的相位却是线性增加的。DDS正是利用了这一特点来产生正弦信号。根据DDS的频 率控制字的位数N,把360°平均分成了 2的N次等份。假设系统时钟为Fc,输出频率为Fout。 每次转动一个角度360°/2n,则可以产生一个频率为Fc/2n的正弦波的相位递增量。那么 只要选择恰当的频率控制字M,使得Fout / Fc= M / 2n,就可以得到所需要的输出频率Fout。即:Fout = Fc*M / 2n(3.1)式中频率控制字由外部控制电路预置,当时钟频率Fc和 相位累加器的字长N一定时,输 出频率仅取决于K的值。当K=1时,DDS输出所能产生的波形信号的最低频率,即DDS系 统输出信号的频率为:f =Fc/ 2n(3.2)根据要求两路正弦波的频率范围1Hz1kHz,频率准确度不低于0.1% ;也就是最小可分辨 1mHZ的正弦波。在本设计中晶振选用40MHZ,即Fc = 40MHZ.由公式(3.1):2n= 40*106/ 1*10-3解得 N = 36所以DDS中控制频率的累加器采用36位。同时解得频率控制字M:M = ( F+F0) * 2n / FC(3.3)(其中F = 10kHZ为基准频率,F0为要显示的波形频率(1Hz-1kHz), FC为时钟频率) 通过设置M的值即可得到1 Hz-1kHz范围内的任意频率正弦波,频率准确度不低于0.1% .3.2关于相位指标计算根据题目要求:两路信号的相位差可以在0359度内可调,设置分辨力不大于1度; 根据公式:3600/ 2n <= 10解得:N >= 9取N = 12,满足题目要求。同时能够计算出相位控制字:P = 2n * PX/ 3600(3.4)(其中PX为要显示的正弦波的相位)。3.2关于幅度指标计算图3-1产生不同占空比PWM波原理(3.5)幅度是通过控制PWM的占空比来实现的。控制PWM的占空比的电路由一个N位计数器 和一个比较器构成(如图3-1所示)。基本原理是:晶振时钟触发计数器计数,比较器比较 幅度控制字X与2n的大小输出高低电平。通过PWM控制生成的占空比不同的方波信号,方 波信号经低通滤波后得到不同幅度的正弦波。本设计中取14位计数器构成控制PWM的占空 比的电路。满足题目要求。幅度控制字的计算公式:A = 2n * AX/ 5(其中AX为要显示信号的幅值)。4. 系统硬件设计4.1系统的总体设计图4-1系统的总体框图如图4-1所示,微处理器单元MCU(90C51)以串行方式向控制逻辑单元发送参数控制字, 控制逻辑单元CPLD产生五路频率稳定的PWM逻辑脉冲控制模拟电路单元,模拟电路单元经过 整形、滤波等信号变换后得到预定参数的双路正弦波。同步显示正弦波的频率、幅度、相位, 同时通过键盘程控正弦波的各个参数。4.2. 控制逻辑电路设计逻辑电路要实现的是输出为A路信号的幅值控制信号PWMA,B路信号的幅值控制 信号PWMB,10kHz基准频率FRE,A路信号的频率、相位控制信号PHSA( 10kHz-11kHz), B路信号的频率、相位控制信号PHSB (10kHz-11kHz)。4.2.1. 信号的频率、相位控制信号PHSA、PHSB发生电路设计二视:枷演;岫地5dickadrV jWEimq.图4-2 CPLD内部逻辑单元结构图累加器是此部分电路的关键部分,累加器的工作速度决定了输出波形的频率精度,由fc/2N 知,累加器的位数决定了频率最小分辨力。MCU输出的频率控制字和相位控制字分别控制累 加器和相位调制器输出特定的PWM波(如图4-2所示)。本设计中的CPLD的工作频率 fC=40MHZ,累加器为32位,相位控制器位数为12位(具体计算参见频率指标计算和相位指 标计算),这样满足了题目频率范围1Hz1kHz,步进值不大于1Hz,频率准确度不低于0.1% 和相位差在0359度内可调,设置分辨力不大于1度的要求。4.2.2. 幅值控制信号PWMA、PWMB发生电路设计幅值控制是通过控制PWM的占空比来实现的,控制PWM的占空比的电路由一个N 位计数器和一个比较器构成的(如图4-3所示).本设计中取14位计数器计数器即可满足 题目要求(具体工作原理参见关于幅度指标计算)。图4-3 CPLD内部逻辑单元结构图4.2.3. 10kHz基准频率FRE发生电路设计图4-4 CPLD内部逻辑单元结构图10kHz基准频率通过对40MHz时钟频率4000分频可得到。CPLD内部逻辑单元结构 如图4-4所示。4.3. 模拟电路设计模拟电路要实现的就是得到频率范围为1Hz-1kKHz的正弦波。用差频电路即可实现输 出一定频率范围的正弦波,考虑到成本问题没有直接使用乘法器或锁相环原理,而是利用 模拟开关模拟乘法器来实现,同时实现调频。根据要求正弦波信号在整个频率设置范围内, 波形失真度不大于2%,所以滤波器的前置电路产生中心频率10kHz的正弦波,通过此中心 频率设计低通滤波器可达到高精度。由于方波可展开为不同频率的正弦分量。所以利用与 上述相同原理的低通滤波器可得中心频率 10kHz的正弦波°10kHz的PWM波通过开关切 换正负直流电压即可得到10kHz的方波。正负直流电压同样利用与上述相同原理的低通滤 波器作用通过PWM控制得到占空比不同的方波可得,同时可调整幅度。综上:模拟电 路调幅电路、方波发生电路和调频电路(正弦波发生电路)组成。框图如图 4-5所示:图4-5模拟电路的结构框图4.3.1. 调幅电路如图4-6所示,通过电压跟随和反向放大电路得到正负基准电压。通过PWM控制开关可实现幅度大小的调整(具体原理见关于幅度指标计算)。图4-6调幅电路4.3.2. 方波发生电路如图4-8示,进入AX的信号为占空比不同的方波信号。,方波由低通滤波器滤波 后为一定幅度的直流电压,后经过1:1的反向比例放大器得幅值大小相同、方向相反 的另一路信号,通过10kHz的PWM波控制开关得到10kHz的方波。经AX输出(具体 电路如图4-9所示)。滤波器采用如图4-8所示低通滤波器,经理论计算结合仿真得:R23=30k Q ; R25=47k Q; R27=56k Q ;C28=47nF ; C3=56pF ; C30=820nF ;-12V图4-9方波发生电路C5=33nF ;4.3.3. 调频电路图4-10调频电路如图4-10示,入乂输入的是10kHz的方波,可展开为:2 E ( .1 . °1 . 1 .)通过低通滤波器后得频率为fsin t + sin 3 t + sin 5 t H sin no t + I 03050 n 0)=10kHz的正弦波,其余各高频分量被滤掉。之后分别通过跟随器和1:1的反向比例运 算放大器得到两路相位相差为1800的10kHz正弦波。利用开关模拟乘法器将 10.1Hz-11kHz的PWM波与10kHz正弦波相乘经滤波后即得 1Hz-1kHz的正弦波(具体 参见差频方案比较与选择中的方案一)。4.4. 发挥部分的设计与实现4.4.1逻辑单元输出给模拟电路单元的连接如图4-1所示,逻辑单元与模拟电路单元的连接为5条信号线。分别为A路信 号的幅值控制信号PWMA,A路信号的频率、相位控制信号PHSA,10kHz基准频率FRE, B路信号的幅值控制信号PWMB,B路信号的频率、相位控制信号PHSB.满足控制逻辑 单元输出给模拟电路单元的信号线不超过5条;4.4.2输出信号电压值在整个频段内,变换量大小本设计在100Hz-900Hz范围内频率的变化对幅值没有影响,在0Hz-100Hz和 900Hz-1kHz范围内,频率变化对幅值稍微有影响,通过软件补偿可减少幅值的变 化,可达到2.8%,小于5%。4.4.3两路正弦信号幅度设置为零时,输出噪声大小当两路正弦信号幅度设置为零时,由于前置电路作用输出可能不为零,所以利用反向比例加法运算电路(如图4-11所示),通过设定R27和R30的阻值将输出噪声减小。本设计中幅度设置为0时,噪声为0.71mV。图4-11调零电路4.5.整体电路原理图(见附录一)5. 系统软件设计5.1程序总体流程图5.2程序清单(见附录二)6. 测试方案与测试结果6.1测试方案及测试条件本设计包括按键显示部分、CPLD和模拟电路,将这三部分按原理图连接后,按键 设置正弦波频率、幅值、相位,通过相应一起测量记录各参数即可。6.2测试仪器数字示波器TDS 1012,数字万用表,失真度分析仪6.3测试结果6.3.1频率准确度测量(幅值为3V)表一频率准确度测量数据预置频率50100200400500实际频率50.00199.999199.998399.998499.997预置频率60070080010001100实际频率599.997699.995799.995999.9941099.99根据频率准确度=频率误差/预计频率值,所以:最小频率准确度=0.03/50*100% =0.06%,小于题目要求低于0.1%。6.3.2幅度分辨力测量表二幅度分辨力测量数据预置电压3.0003.0013.0023.0033.004A路2.04412.04572.04692.04782.0486B路2.06112.06192.06282.06422.0684预置电压3.0053.0063.0073.0083.009A路2.04902.04992.05062.05112.0517B路2.06542.06112.06882.06732.0680由3.2中幅度字的计算公式知,本题目中要求幅度分辨力为5/4095=1.22mV,根据 表二的测量数据可得幅度分辨率可达1mV,满足题目要求分辨率不低于12bit。6.3.3波形失真度测试(亮点)选取具有代表性的数据50Hz,3V,A通道的波形失真度为0.27%,B通道的失真度为 0.24%。远小于题目要求2%。6.3.4相位分辨力测试(亮点)数字示波器TDS 1012观察,当相位变化0.2。时,两路波形相位差有明显变化。故 相位分辨力可达0.20,大于题目要求10。6.4发挥部分的测试6.4.1基本要求中超额完成的部分(1) 本设计频率可在1kHz-1.5kHz范围内连续变化。(2) 两路正弦波最大输出幅值可达到5V。6.4. 2两路信号频率1-10间的倍频能同步,波形稳定使用数字示波器TDS 1012观察,当在3V时,50HZ和500HZ波形能同步稳定显示。6.4. 3整个频段内变换量测量表三 整个频段内变换量测量数据幅值V 频率HZ0.51.01.52.02.53.03.54.05.0500.520.981.492.002.533.023.564.045.101000.500.991.502.022.533.043.604.085.102000.500.991.502.022.533.043.584.085.04000.500.981.492.002.523.003.524.044.955000.500.981.482.002.513.003.524.004.926000.500.981.482.002.513.003.524.004.929000.511.001.502.022.512.983.503.964.9210000.531.021.512.042.583.023.524.005.00由表三知:最大变换量为0.07/2.5 * 100% = 2.8%,远小于题目要求5%。6.4. 4输出噪声测量(亮点)当输入信号幅值为零时,A路的输出幅值为0.71mV,B路的输出幅值为0.75mV。这为本 设计最突出的特点,远远小于题目要求5mV。7结论本设计以超低成本元件设计出了双路正弦波发生器,并且所有参数均可程控设置。精确 度高,波形稳定。附录一模拟电路图inA:l-#include <reg51.h>#include <intrins.h>#include<stdio.h>#define uchar unsigned char#define uint unsigned intsbit din=P2A2;sbit clk=P2A3;sbit load2=P2A4;sbit LCD_RW = P2A5;sbit LCD_RS = P2A6;sbit LCD_EN = P2A7;sbit add=P1AQ;sbit inc=P1A1;sbit f=P1A2;sbit a=P1A3;sbit p=P1A4;sbit qing=P1A5;sbit cha=P1A6;sbit send=P1A7;char idata chanum,fnum,anum,pnum;char idata a1,a2,a3,a4,a5,a6,a7,b1,b2,b3,b4,b5,c1,c2,c3,c4;char idata aa1,aa2,aa3,aa4,aa5,aa6,aa7,bb1,bb2,bb3,bb4,bb5,cc1,cc2,cc3,cc4;long int idata Aout1,Aout2,Bout1,Bout2,Bout3;idata unsigned int shu12;3/*/*/主程序/*主程序*/*/*/main()float ff,af,pf,ff1,af1,pf1;char fs8,as6,ps5,sin4;char *si;si=sin;lcd_init();while(1)keyscan();keyp();guangbiao();delay(8Q);if(chanum=0)ff = a1*0.001 + a2*0.010 + a3*0.100 + a4*1.000 + a5*10.000+a6*100.000+a7*1000.000;pf = c1*0.1 + c2*1.0 + c3*10.0+c4*100.0;af = b1*0.0001 + b2*0.0010 + b3*0.0100 + b4*0.1000+b5*1.0000;if(pf>=360) c1=9;c2=9;c3=5;c4=3;sprintf(fs,"%8.3f”,ff);sprintf(as,"%6.4f”,af);sprintf(ps,"%5.1f”,pf);si="sinA”;if(chanum=1)ff1 = aa1*0.001 + aa2*0.010 + aa3*0.100 + aa4*1.000 + aa5*10.000+aa6*100.000+aa7*1000.000;pf1 = cc1*0.1 + cc2*1.0 + cc3*10.0+cc4*100.0;af1 = bb1*0.0001 + bb2*0.0010 + bb3*0.0100 + bb4*0.1000+bb5*1.0000;if(pf1>=360) cc1=9 ;cc2=9;cc3=5;cc4=3;sprintf(fs,"%8.3f”,ff1);sprintf(as,"%6.4f”,af1);sprintf(ps,"%5.1f”,pf1);si="sinB"Aout1=(ff+10000.0)*1717.9869184-16777216;Aout2=16384-af/5.000000*16384;Bout1=(ff1+10000.0)*1717.9869184-16777216;Bout2= 16384-af1/5.000000*16384;Bout3=(360-pf1)*4096/360.000;if(Aout1<=522912)&&(Aout1>0)|(Aout1>=522912) if(Aout2<6881)&&(Aout2>=0) Aout2=Aout2*1.02;else if(Aout2<=13763) &&(Aout2>=6881) Aout2=Aout2*1.010;else if(Aout2>13763) && (Aout2<16384) Aout2=Aout2*1.0000;if(Aout1>=1261647) && (Aout1<1948841)if(Aout2>=9829)&& (Aout2<16384) Aout2=Aout2*1.0000;else if(Aout2<9829) && (Aout2>=3604) Aout2=Aout2*0.9850;else if(Aout2<3604)&&(Aout2>=0) Aout2=Aout2*0.978;if(Aout1>=522912) && (Aout1<1261647)if(Aout2>=9829)&& (Aout2<16384) Aout2=Aout2*1.0000;else if(Aout2<9829) && (Aout2>=3604) Aout2=Aout2*1.0000;else if(Aout2<3604)&&(Aout2>=0) Aout2=Aout2*0.978;if(Bout1<=522912)&&(Bout1>0)|(Bout1>=522912) if(Bout2<6881)&&(Bout2>=0)Bout2=Bout2*1.02;else if(Bout2<13763) &&(Bout2>=6881) Bout2=Bout2*1.010;else if(Bout2>=13763) && (Bout2<16384) Bout2=Bout2*1.0000;if(Bout1>=1261647) && (Bout1<1948841)if(Bout2>=9829)&& (Bout2<16384) Bout2=Bout2*1.0000;else if(Bout2<9829) && (Bout2>=3604) Bout2=Bout2*0.9850;else if(Bout2<3604)&&(Bout2>=0) Bout2=Bout2*0.9780;if(Bout1>=522912) && (Bout1<1261647) if(Bout2>=9829)&& (Bout2<16384)Bout2=Bout2*1.00000;else if(Bout2<9829) && (Bout2>=3604)Bout2=Bout2*1.0000;else if(Bout2<3604)&&(Bout2>=0)Bout2=Bout2*0.9780;xianshi(si,fs,as,ps);chuli();if(send=0)delay (5);if(send=0) send=1;fasong();lcd_wcmd(0x01);if(qing=0)delay(5);if(qing=0)while(!qing)if(chanum=0)a1=a2=a3=a4=a5=a6=a7=b1=b2=b3=b4=b5=c1=c2=c3=c4=0;if(chanum=1)aa1=aa2=aa3=aa4=aa5=aa6=aa7=bb1=bb2=bb3=bb4=bb5=cc1=cc2=cc3=cc4=0;lcd_wcmd(0x01);附录三元件清单零件类型零件个数零件价格/元5.1K电阻340. 026.8K电阻20.0215K电阻40.0222K电阻40.0227K电阻40.0230K电阻40.0247K电阻40.0256K 电阻40.02180K电阻20.02270K电阻20.02320K电阻20.02104 电容360.10.27uF电容20.10.68u电容20.12.2nF电容40.13.3nF电容60.14.7nF电容40.127pF 电容40.133nF 电容40.11uF 电容20.1TL084CN6174HC405321CPLD120

    注意事项

    本文(双路正弦波发生器.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开