单片机信号发生器_第1页
单片机信号发生器_第2页
单片机信号发生器_第3页
单片机信号发生器_第4页
单片机信号发生器_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. . . . 多功能函数发生器学 校:电子科技大学学院系别:电子工程系专业名称:通信工程、电子科学与技术学 生 姓 名:凯、何骏、何镜勇指导教师、职称:根据(主任)完成日期2011年6月7日14 / 17交多功能函数发生器摘 要交多功能函数发生器主要实现了常用波形的发生和上位机的同步控制,并且能够产生一系列的调制波。文中详细阐述了交多功能函数发生器的总体结构、软硬件实现与上位机调试方法。关键词:单片机;DDS;上位机Pay multi-function function generatorAbstractPay multi-function function generator mainly

2、 realizes the common occurrence and PC waveform synchronous control and can produce a series of modulation wave.This paper expounds the multi-function function generator into the general structure, software and hardware realization and PC debugging method.Keywords:MCU; DDS; PC目录1 引言11.1 项目背景11.2 项目的

3、主要任务12 交多功能函数发生器22.1 方案选择22.2 总体结构框图23 STC12C5A60S2单片机简介44 模拟开关CD4066简介64.1 主要特性64.2 芯片引脚与部电路65 DDS模块简介75.1 特征75.2 DDS的优点75.3典型的DDS函数发生器76 硬件设计96.1 RS232通信模块96.2 DDS模块97 软件设计108 通信协议设计119 结论12致13参考文献14附录源程序清单151 引言1.1 项目背景函数发生器是实验室基本的设备之一,目前广泛使用的使一些标准产品,虽然功能齐全、性能指标较高,但是价格较贵,而且许多功能用不上。该设计已集成运行放大器为应用核

4、心,通过增加外围器件使其形成运算、正反馈电路,并满足振荡条件,产生一定的波形,最后应用差分电路的传输特性将三角波转换为正弦波。该仪器具有结构简单、成本低、体积小、便于携带等特点,虽然功能与性能指标赶不上标准信号发生器,但足以满足一般的实验要求。函数发生器作为一种常用的信号源,是现代测试领域应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以与整机设备时,都学要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。它可以产生多种波形

5、信号,如正弦波,三角波,方波等,因而广泛用于通信、雷达、导航、宇航等领域。1.2 项目的主要任务任务与要求:1、可编程产生几种常用信号;2、信号样式可变,正弦波,三角波,方波,2PSK,LFM;3、频率可变,1MHz10MHz,2PSK调制信号周期0.1ms1ms,LFM带宽为中心频率的1/100-10%;4、输出幅度可变,可以编程实现或手调。5、电源可用实验室稳压电源2 多功能函数发生器2.1 方案选择方案是否合理、可行对能否实现交多功能函数发生器的各项技术指标有着决定性影响。因此,在进行具体设计前,非常有必要根据设计要求,对各种候选方案的优、缺点进行反复推敲,最终确定选用的具体器件,以与这

6、些器件之间的连接方式,涉与单片机时,还要进行软件总体结构的设计。为实现交多功能函数发生器的功能要求,系统中应包含输出选择模块、DDS波形发生模块、单片机等部件,下面对这些部件进行选型分析,确定具体的型号后,部件之间的连接形式也就随之确定了。(1)输出选择模块我们采用CD4066模拟开关选择来自前级的波形,控制方便又稳定。(2)单片机本设计选用STC12C5A60S2单片机,其主要特点是工作速度快,12C单片机特有的1T工作模式保证了他的高速运行,比一般单片机快12倍。(3)DDS波形发生模块最早时候我们使用单片机来产生波形,由于普通的单片机工作频率最高也不过35MHz,所以我们想采用飞思卡尔的

7、MC9S12XS128MCC单片机,把16MHz的外部晶振倍频到100MHz,然后再读取ROM里面的波形数据,但理论上还是达不到10MHz的题目要求,最后我们选择了DDS,在DDS的帮组下,我们轻松输出10MHz的信号,最高甚至可以达到40MHz。2.2 总体结构框图综合上述分析,可画出多功能函数发生器的总体结构框图,如图2-1所示。单片机作为整个系统的控制核心,接收上位机发送的控制命令,进行必要的处理后,送给DDS模块进行波形的相关参数控制,同时控制模拟开关,有选择性的输出波形。数据记录的查询可通过PC机进行,因此,图中也附设了一个RS232通信接口。上位机对单片机发送命令,实时控制函数发生

8、器的输出,可以在三角波、方波、正弦波、2PSK、LFM、FSK、2ASK之间进行切换,并且可以相应的控制输出波形的幅度和占空比,而单片机也实时的把控制量的数据发送回上位机,并通过上位机的虚拟多功能函数发生器进行输出显示。单片机上位机DDS模块RS232接口模拟开关信号输出图2-1 多功能函数发生器总体结构框图3 STC12C5A60S2单片机简介STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。部集成MAX810专用复位电路,2路PWM,8路高速1

9、0位A/D转换(250K/S),针对电机控制,强干扰场合。1、增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统80512、工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机)3、工作频率围:0-35MHz,相当于普通8051的0-420MHz4、用户应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/62K字节5、片上集成1280字节RAM6、通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:准双

10、向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O 口驱动能力均可达到20mA,但整个芯片最大不要超过55mA7、ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片8、有EEPROM功能(STC12C5A60S2/AD/PWM无部EEPROM)9、看门狗10、部集成MAX810专用复位电路(外部晶体12MHz以下时,复位脚可直接1K电阻到地)11、外部掉电检测电路:在P4.6口有一个低压门槛比较器5V单片机为1.32V,误差为+/-5%,3.3v单片机为1.30V,误差为+/-3%12、 时钟

11、源:外部高精度晶体/时钟,部R/C振荡器(温漂为+/-5%到+/-10%以)用户在下载用户程序时,可选择是使用部R/C振荡器还是外部晶体/时钟常温下部R/C振荡器频率为:5.0V单片机为:11MHz-15.5MHz;3.3V单片机为:8MHz-12MHz精度要求不高时,可选择使用部时钟,但因为有制造误差和温漂,以实际测试为准13、共4个16位定时器两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器再加上2路PCA模块可再实现2个16位定时器14、2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.

12、5/T1输出时钟15、外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2),CCP1/P1.4(也可通过寄存器设置到P4.3)16、PWM(2路)/PCA(可编程计数器阵列,2路),也可用来当2路D/A使用,也可用来再实现2个定时器,也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)17、A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟

13、25万次)18、通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或 PCA软件实现多串口19、STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)20、工作温度围:-40-+85(工业级)/0-75(商业级)21、封装:PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。4 模拟

14、开关CD4066简介4.1 主要特性CD4066是四双向模拟开关,主要用作模拟或数字信号的多路传输。引出端排列与CC4016一致,但具有比较低的导通阻抗。另外,导通阻抗在整个输入信号围基本不变。CD4066由四个相互独立的双向开关组成,每个开关有一个控制信号,开关中的p和n器件在控制信号作用下同时开关。这种结构消除了开关晶体管阈值电压随输入信号的变化,因此在整个工作信号围导通阻抗比较低。与单通道开关相比,具有输入信号峰值电压围等于电源电压以与在输入信号围导通阻抗比较稳定等优点。4.2 芯片引脚与部电路图4-1 CD4066管脚排列图 图4-2 芯片部电路5DDS模块简介5.1 特征DDS同 D

15、SP(数字信号处理)一样,是一项关键的数字化技术。DDS是直接数字式频率合成器(Direct Digital Synthesizer)的英文缩写。与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。一块DDS芯片中主要包括频率控制寄存器、高速相位累加器和正弦计算器三个部分(如Q2220)。频率控制寄存器可以串行或并行的方式装载并寄存用户输入的频率控制码;而相位累加器根据DDS频率控制码在每个时钟周期进行相位累加,得到一个相位值;正弦计算器则对该相位值计算数字化正弦波幅度(芯片一般通过查表得到)。DDS芯

16、片输出的一般是数字化的正弦波,因此还需经过高速D/A转换器和低通滤波器才能得到一个可用的模拟频率信号。 另外,有些DDS芯片还具有调幅、调频和调相等调制功能与片D/A变换器(如AD7008)。5.2 DDS的优点频率分辨率高,输出频点多,可达2的N次方个频点(N为相位累加器位数);频率切换速度快,可达us量级; 频率切换时相位连续; 可以输出宽带正交信号; 输出相位噪声低,对参考频率源的相位噪声有改善作用; 可以产生任意波形; 全数字化实现,便于集成,体积小,重量轻。在各行各业的测试应用中,信号源扮演着极为重要的作用。但信号源具有许多不同的类型,不同类型的信号源在功能和特性上各不一样,分别适用

17、于许多不同的应用。目前,最常见的信号源类型包括任意波形发生器,函数发生器,RF信号源,以与基本的模拟输出模块。信号源中采用DDS技术在当前的测试测量行业已经逐渐称为一种主流的做法。5.3典型的DDS函数发生器一个完整周期的函数波形被存储在上面所示的存储器查找表中。相位累加器跟踪输出函数的电流相位。为了输出一个非常低的频率,采样样本之间的差相位()将非常小。例如,一个很慢的正弦波可能将有1度的相位。则波形的0号采样样本采得0度时刻的正弦波的幅度,而波形的1号采样将采得1度时刻的正弦波的幅度,依次类推。经过360次采样后,将输出正弦曲线的全部360度,或者确切地说是一个周期。一个较快的正弦波可能会

18、有10度的相位。于是,36次采样就会输出正弦波的一个周期。如果采样率保持恒定,上述较慢的正弦波的频率将比较快的正弦波慢10倍。进一步说,一个恒定的相位必将导致一个恒定正弦波频率的输出。但是,DDS技术允许通过一个频率表迅速地改变信号的相位。函数发生器能够指定一个频率表,该表包括由波形频率和持续时间信息组成的各个段。函数发生器按顺序产生每个定义的频率段。通过生成一个频率表,可以构建复杂的频率扫描信号和频率跳变信号。DDS允许函数发生器的相位从一级到另一级连续变化。矢量信号发生器提供高灵活度和强大的解决方案,可用于科学研究,通信,消费电子,宇航/国防,半导体测试以与一些新兴领域,如软件无线电,无线

19、电频率识别( RFID),以与无线传感网络等。有些公司还提供许多其他利用DAC来产生模拟信号的模拟输出产品。模拟输出板的基本架构是,将一个小型的FIFO存储器连接到一个DAC上。绝大部分的模拟输出板被用来产生静态电压,而且许多可以被用来产生低频波形。6 硬件设计6.1 RS232通信模块上位机通过RS232电平转换就可以和单片机进行通信,本设计采用MAX232跟串口直接连接电脑,电路如图6-1。图6-1 RS232模块6.2 DDS模块单片机输出经过DA转换后的输入到DDS模块第9脚,控制方波的占空比,单片机输出进过数字电位器后输入到DDS模块第5-7脚,控制输出波形的幅度,DDS第18脚为串

20、行数据传输口,15-17脚为模块控制端口,2、3和12、13引脚分别输出方波和正弦波,电路连接如图6-2。图6-2 DDS模块7 软件设计7.1 上位机:通过上位机发送数据给下位机产生相应波形,界面如下:8 通信协议设计由于要用到单片机和上位机的串口通信,所以有必要进行一些简单的通信协议设计。通信协议里面定义了控制输出波形、模式、频率、幅度、信号类型、占空比等参量,具体协议如图7-1。图7-1 通信协议9 结论经过反复调试,多功能函数发生器基本达到了设计要求,能选择性的输出三角波、方波、正弦波、2PSK、LFM,还增加了一些常用波形的输出,如2ASK、FSK。本设计项目用到了单周期的STC12

21、C5A60S2单片机、DDS模块,并利用DDS实现了较高频率波形的输出,利用其串口模块实现了与PC机的通信。项目的设计使得自己对设计一个电路有了进一步的了解和对以后工作打下基础,也锻炼了自己的思维和动手能力。致在即将完成毕业设计,就要离开母校走上工作岗位之时,心中充满了对母校和老师们的感激之情,母校4年的培养使我的知识水平和思想境界有了质的提高。在这里,想特别对4年来在学习、生活和思想方面给予我关心、支持、鼓励的各位老师、同学们道声!感父母多年来在物质和精神上莫大的关怀、鼓励和支持,是父母的爱给了我上进的巨大动力,也因此懂得了感恩。祝愿我的母校明天更比今天好!参考文献1 伟,王力.Protel

22、99SE基础教程M.人民邮电,2006.2 胡振宇.DS18B20接口的C语言程序设计J.单片机与嵌入式系统应用,2002,(7):55-56.3 何立民.单片机高级教程-应用与设计M.航空航天大学,2002.4 马忠梅.单片机的C语言应用程序设计M.航空航天大学,1999.5 祁伟.单片机C51程序设计教程与实验M.航空航天大学,2006.6 辉平,周国雄.基于Proteus的单片机系统设计与仿真实例M.-机械工业,2009.附录 源程序清单#include#includefuction.h#includegenerator.h#includeSerial.h#includeMPC41010

23、.hlong uint Frequency_0 = 0x00; /转羇换?后0的?频率表括?示?long uint Frequency_1 = 0x00; /转羇换?后的?频率表括?示?uchar modulation_signal8 = 0,1,0,1,0,1,0,1; /调獭?制?信?号?long uint modulation_Frequency_0 = 100000; /0载?频/LFM时骸?候则为a上?限T频率long uint modulation_Frequency_1 = 200000;/1载?频/LFM时骸?候则为a下?限T频率long uint sweep_time = 7

24、00; /扫?频时骸?间?(单蹋?位?是?10ms)long uint temp_time = 0; /定时骸?器时骸?间?中D间?变?量?long uint delta_Frequency = 0; /单蹋?位?时骸?间?变?化的?频率uchar delta_Frequency_tri = 0; /三角?波/锯a齿Y波改?变?的?频率long uint Frequency_sweep = 0x00; /扫?频所用?的?频率uint signal_width = 1000; /码?元a宽度/扫?频模式?时骸?为a单蹋?位?时骸?间?(10ms)uchar signal_h = 0x00; /码

25、?元a宽度高?位?uchar signal_l = 0x00; /码?元a宽度低台?位?uchar modulation_bit = 0; /调獭?制?信?号?位?uchar modulation_type = 0;/1为a正y弦波和方?波,?2为a三角?波,?3为a锯a齿Y波,?4为aFSK,?5为aASK,?6为aPSK,?7为aLFM,?8为a关?闭?信?号?源,0省?却?uchar modulation_type_temp = 0; /调獭?制?类?型变?换?时骸?的?值uchar duty_squ = 0x00;/方?波占?空?比括?uchar idata muc_receive45

26、; /单蹋?片?机接受酣?回?来?的?数簓据Y,?1位?代洙?表括?信?号?类?型,?2-9代洙?表括?(辍?非?调獭?制?类?)?信?号?频率,?10-13位?代洙?表括?幅?度,?10位?代洙?表括?非?调獭?制?类?信?号?类?型,?/11位?代洙?表括?是?否?外猘调獭?制?,?12-20代洙?表括?调獭?制?信?号?,?21-24代洙?表括?码?元a宽度,?25-32代洙?表括?载?频的?频率,?33-40代洙?表括?载?频的?频率/41-42代洙?表括?方?波占?空?比括?uchar out_tri = 0x0;/DA输?出?的?值uchar amp_tri = 1;/*函数簓功|

27、能:阰定时骸?器0初?始?化入?口参?数簓:阰N/A出?口参?数簓:阰N/A*/void time0_init(void)TMOD |= 0X11;signal_h = (65536-signal_width)/256;signal_l = (65536-signal_width)%256;TH1 = signal_h;TL1 = signal_l;ET1 = 1; TR1 = 0;TH0 = signal_h;TL0 = signal_l;ET0 = 1;EA = 1;IP = 0X10; /串?口优?先TR0 = 0;/*函数簓功|能:阰延时骸?函数簓入?口参?数簓:阰延时骸?值(辍?单蹋

28、?位?毫秒?)?出?口参?数簓:阰N/A*/*void delay_ms(uint z)uchar i,j;for(i = z;i 0;i+ ) for(j = 110;j0;j+); */*主函数簓*/void main(void)init_9850();time0_init();ser_init();InitADC();/*幅?度最?大洙?DA片?选?信?号?选?中D,DA用?作痢?调獭?节占?空?比括?*/cs = 0;wr1 = 0;key_sin = 0;key_squ = 1;key_tri = 0; /开a启?正y弦波DA_TRI = 0;DA_DUT = 1;P2 = 0x30

29、;Write_RES(0x00);/*/Frequency_1 = Calculate_Control_Word_9850(100000);Send_Control_Word_9850(Frequency_1,phase_0);modulation_type = 10;modulation_type_temp = modulation_type;while(1)switch(modulation_type)case 0:break;case 1:set_SIN();modulation_type = 0;break;case 2:set_TRI();modulation_type = 0;br

30、eak;case 3:set_SAW();modulation_type = 0;break;case 4:set_FSK();modulation_type = 0;break;case 5:set_ASK();modulation_type = 0;break;case 6:set_PSK();modulation_type = 0;break;case 7:set_sweep_Frequency();modulation_type = 0;break;case 8:close_all();modulation_type = 0;break;case 9:set_squ();modulation_type = 0;break;/case 10:modulation_external();break;case 10:SendByte(GetADCResult(0x00);break;default:break; /*定时骸?器中D断?0*/void timer0(void) interrupt 1switch(modulation_type_temp)case 4:change_FSK();break;case 5:change_ASK();break;case 6:change_PSK(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论