1、毕业设计精品 高精度脉冲信号发生器 精品高精度脉冲信号发生器 摘 要: 波形发生器广泛应用于各种测量、激励和时域响应领域,产生信号的方法有很多种。在实际的应用中的应用领域很广,而在实际应用中又是以正弦波和方波信号的应用最为广泛,本文将介绍一种基于FPGA的多通道高精密高分辨率的方波信号发生装置,并应用串口写入波形参数,达到智能化控制,在实际应用中还可以通过远程控制远端的设备,该模块在实际的电路板上测试,达到了预期的设计目的,由于选择的是可编程器件(FPGA)来实现,这也便于以后系统的升级和维护。该系统将应用于汽车仪表领域。 关键词:方波信号发生 FPGA 串行通信 远程控制 Abstract:
2、 Waveform generators are widely applied in all kinds of measurement, motivation and time domain response fields, and there are many way to generate signals. Key words目 录1 前 言 12方案论证与比较 22.1信号产生部分 22.2 可控增益放大部分 22.3功率放大部分 23 系统设计 33.1 总体设计思路 33.2 主要电路原理与分析 43.2.1信号波形产生 43.2.2直流滤除 43.2.3 压控增益放大 43.2.4
3、 峰值检测 43.2.5 后级功率放大 43.2.6单片机控制 44 软件设计 104.1系统总程序框图 104.2 核心程序代码 115 系统调试方法与测试数据 165.1 测试仪器 165.2 测试方法与测试数据 165.3 测试结果分析 166 参考文献 197 附录: 207.1电路总图 207.2单片机控制电路 20 1 前 言 脉冲信号发生器主要用来作为各种电子设备的信源,此电路要求达到:产生单个可任意设置时长宽度的脉冲信号,也可产生任意个数的脉冲群信号群,且脉冲群之间的间隔可任意设置。该脉冲信号发生器生成速度快,设计的电路可以输出最大幅度36V,脉冲宽度1ms1000ms的脉冲信
4、号,此脉冲信号有多种脉冲方式可选择,前后沿快,脉冲周期、延迟(群脉冲间隔)、宽度时间的调节范围大,此电路可产生单个或多个可编程脉冲信号。2 方案论证与比较2.1总体方案选择2.1.1方案一论证该方案采用正弦波振荡电路。震荡电路产生一个基波(正弦波),然后通过比较器来输出脉冲信号。这一种办法可以得到不同频率的脉冲信号。但是想要达到调节占空比是很困难的,并且大多是采用模拟器件构成的不便于精度的控制和自动化控制。方案一方框图:2.1.2方案二论证采用DDS芯片AD9851,方波占空比可调。频率输出可调。该方案可以达到设计脉冲信号的目的,但是在实际应用中需要多路的信号输出,各路的信号参数要分别可调,采
5、用这种方案是很难达到的。方案三:采用MCU处理器来产生,这样可以方便的控制频率和占空比的阐述,但是若是使用在多路的高精度的信号应用领域,这也是不可取的。应方案四:采用现代数字信号处理技术和可编程器件来实现。采用可编程器件FPGA来实现对信号的产生和精确控制,这是很容易办到的,而且采用该方案系统可以方便的升级和维护。方案选择:基于以上的讨论和实际的应用场合,我们采用方案四来作为本次设计的核心。2.2 可控增益放大部分方案一:由于ad9833产生的信号在200mv左右,需要的最大输出电压为10v,放大最大50倍,所以只需要一级放大加上一级功率放大。由晶体管和运算放大器实现。 本方案由于大量采用分立
6、元件, 如三极管等,电路比较复杂, 工作点难于调整,尤其增益的定量调节非常困难。但电路成本较低。方案二:采用一级程控放大器+运算放大器实现。前级运放完成高增益放大,后级程控放大器ad603实现程控功能,本方案控制简单,能对较大增益范围实现程控,前段高倍数放小,使得程控步进较较大,精度提高。成本也相对提高。 2.3功率放大部分方案一:使用分立元件自行搭建后级放大器。有不同电路分别对电压和电流进行放大,前级由运放对信号电压进行放大,后级由分立元件搭成功率放大电路对信号进行功率放大。使用分立元件设计困难,调试繁琐,。方案二:使用集成电路芯片。使用集成电路芯片电路简单、使用方便、性能稳定、有详细的文档
7、说明。可选择宽带的高波摆率的电流反馈运放ths3001,该运放可提供250mA的电流,实现题目要求的输出10V有效值,带50的负载和0-10MHz的带宽。 3系统设计3.1总体设计思路根据题目的要求,结合考虑过的各种方案,充分利用模拟和数字系统各自的优点,发挥其优势,采用单片机预置和控制放大器增益的方法,大大提高了系统的精度和可控性;后级放大器使用对管推挽互补输出驱动, 提高了输出电压有效值。 我们使信号都在单片机的数字算法控制下得到最合理的前级放大,使其放大倍数精确。 图3-1所示即为本系统框图。 图3-1Ad9833产生信号后通过前级可控增益放大,放大倍数由单片机通过D/A转换提供的电压控
8、制。ad603 增益AGC 模式下, 此控制电压Vg有单片机DA输出 ,经过前级放大后的信号最后经过后级放大得到需要的输出信号, 前级和后级增益的搭配, 都是经过精确的测量和计算的。 同时单片机控制LCD128*64显示。 3.2主要电路原理与分析3.2.1信号波形产生AD9833无需外接元件,输出频率和相位都可通过软件编程,易于调节,频率寄存器是28位的,主频时钟为25MHz时,精度为0.1Hz,主频时钟为1MHz时,精度可以达到0.004Hz ,无需外界元件。仅需要1个外部参考时钟、1个低精度电阻器和一个解耦电容器就能产生高达12.5MHz的正弦波。除了产生射频信号外,该电路还广泛应外于各
9、种调制解调方案。这些方案全都用在数字领域,采用DSP技术能够把复杂的调制解调算法简化,而且很精确。电路见 图3-2-1AD9833的主要特点如下:频率和相位可数字编程;工作电压为3V时,功耗仅为20mW;输出频率范围为0MHz12.5MHz;频率寄存器为28位(在25MHz的参考时钟下,精度为0.1Hz);可选择正弦波、三角波、方波输出;3线SPI接口; 电路见 图3-2-1 3.2.2直流滤除 由于ad9833输出的信号有1v的直流偏置,需要虑除直流成分,不然将影响后续的交流放大,峰值检测,功率放大等。除掉此直流有两种方式。可以用减法电路将此直流减掉。另一中方法就是利用电容加上运放组成交流跟
10、随电路,这样不仅滤除了直流,还做了一级跟随,增加了电路操作的稳定性。电路见 图3-2-2 图3-2-23.2.3压控增益放大电压增益控制放大器原理框图如图3-2-3所示,放大器增益取决于增益控制电压VG。由D/A转换器输出的控制电压VG 输出到VG端,即可实现连续线性增益控制。图3-2-3 电压增益控制放大器原理框图ad603 具有 dB 线性可变增益控制放大器的150MHz BW 。da603:可变增益放大器;150 MHz 带宽与 1700 V/s 压摆率;可利用外置电阻器在 -10dB (1V/V) 至 30 dB (100 V/V) 的范围内设置最大增益;在 dB/V 或 V/V 的线
11、性增益间进行选择;只需要一片ad603就可以多信号放大到需要的3v以下。如图3-2-3 图 3-2-33.2.4峰值检测 在上一级有ad603实现压控放大后输出的电压可能与想要输出的电压有一定的差异,如果差异过大经过后级固定增益功率放大产生的误差将会增大。所以需要在ad603输出的波形进行峰值检测,检测其峰值电压,通过AD输入单片机进行比较从而调节DA的输出,继而控制ad603的增益,起到闭环控制的目的,使输出更精确。电路如图图 3-2-4。 图 3-2-43.2.5后级功率放大在信号输出端增加功率放大模块,以系统的带负载能力满足要求。鉴于运算放大器THS3001自身负载驱动能力在250mA,
12、输出最大电压10v,负载50欧,本模块选用宽带、高波摆率的电流反馈型运放THS3001图 3-2-5所示,经过实际测试,整个电路输出阻抗小于30 欧姆,通频带大于10MHz,输出端接50 欧姆负载时,无失真最大输出正弦波电压峰-峰值大于10v。 图 3-2-53.2.6单片机控制单片机是整个放大器控制的核心部分, 它主要完成以下功能 : 接收用户按键信息以控制增益 ;对ad603的增益控制电压进行控制。各个功能由不同的模块实现:键盘测模块记录用户对键盘的操作,将设定的增益数值记录下来。控制电压模块:根据用户对增益的设置,得到D/A转换器TLV5619的控制字串, 输出给D/A 转换器以产生精确
13、的控制电压。也可采用调节电位器来控制压控增益放大器da603的控制电压,从而实现增益控制的连续可调。见图 3-2-6 图 3-2-64 软件设计4.1系统总程序框图 图 4-1 系统总体流程图 4.2 核心程序代码#include msp430x16x.h#define uchar unsigned char#define uint unsigned int #define AD9833_FSYNC_H P3OUT |= BIT3#define AD9833_FSYNC_L P3OUT &=BIT3#define AD9833_SCLK_H P2OUT |= BIT7#define AD983
14、3_SCLK_L P2OUT &=BIT7#define AD9833_SDATA_H P2OUT |= BIT3#define AD9833_SDATA_L P2OUT &=BIT3unsigned int Config_Data8;void Wave_Generate(unsigned long Freq, unsigned char Shape );/*函数名称:Delayms()入口参数:int Time出口参数:无*/void Delayms(int Time) int i; for(;Time0;Time-) for(i=0;i 0; iq0-); / 延时,等待XT2起振 whi
15、le (IFG1 & OFIFG) != 0); / 判断XT2是否起振 BCSCTL2 |= SELM_1; /选择时钟源为XT2,不分频 BCSCTL1 &= XT2OFF; /开启XT2void main( void ) WDTCTL = WDTPW + WDTHOLD; P3DIR=0XFF; P2DIR=0XFF; P3OUT=0XFF; P2OUT=0XFF; AD9833_FSYNC_H; AD9833_SCLK_L; Wave_Generate(800000, 1); while (1);void Send_Word(unsigned int Data_In) unsigned
16、 int i,j; AD9833_SCLK_H; AD9833_FSYNC_L; for(i = 0; i 15); j = 0x01; while(j-); AD9833_SCLK_L; Data_In = Data_In 1; j = 0x01; while(j-); AD9833_FSYNC_H; AD9833_SCLK_L;/波形发生函数/入口参数: 频率 10000000) Freq = 10000000; switch(Shape) case 0 : Config_Data0=0x2108; Config_Data7=0x2008; break; case 1 : Config_D
17、ata0=0x210A; Config_Data7=0x200A; break; case 2 : Config_Data0=0x2128; Config_Data7=0x2028; break; default : Config_Data0=0x2108; Config_Data7=0x2008; break; /20M 13.4218 /19.6608M 13.6533 /16M 16.7772 /24M 11.1848 temp = Freq*11.18477; Config_Data1 = temp&0x00003fff; Config_Data3 = Config_Data1; Co
18、nfig_Data2 = (temp&0x0fffc000)14; Config_Data4 = Config_Data2; Config_Data1 = Config_Data1 | 0x4000; Config_Data2 = Config_Data2 | 0x4000; Config_Data3 = Config_Data3 | 0x8000; Config_Data4 = Config_Data4 | 0x8000; Config_Data5 = 0xC000; Config_Data6 = 0xE000; for(k = 0; k8; k+) Send_Word(Config_Dat
19、ak); 5系统测试方法与测试数据5.1测试仪器测试仪器仪器名称 型号规格数字万用表 VC9800 四位半数字示波器 TDS1002 60M 1GS5.2测试方法与测试数据5.3 开关电源的调试正弦波输入频率HZ10010001000000500000010000000输入电压mv 1000 3000 4000 7000 10000实际频率HZ 99.8 1001 1000001 499999.510000001.5实际电压mv 950 2970 4080 7090 99980 方波输入频率HZ10010003000005000001000000输入电压mv 1000 2000 3000 50
20、00 6000实际频率HZ 99.8 1001 300001 49999.01000001.5实际电压mv 950 1978 3060 5030 5980 三角波输入频率HZ10010003000005000001000000输入电压mv 1000 2000 3000 5000 6000实际频率HZ 99.8 1001 300001 49999.01000001.5实际电压mv 950 1972 3080 5040 5980 5.3测试结果分析测试结果分析: 上述结果是在没有带负载的条件下测量的,输出结果精度很准确,特别是频率。都在1赫兹以内,带上100欧的负载后输出幅值有所下降。正弦波的输出
21、频率大10M,方波、三角波的频率可以达到2M,失真度很小。误差分析:由于人为读数存在误差,周围环境如磁场,温度等一因数影响,测量的数据达不到理论计算值,但是我们通过多次测量取平均把误差降低到最小控制在5%以内。整个电路系统由手工制作完成,无法实现严格的阻抗匹配,布线无法避免线路之间以及外界磁场的干扰,干扰抑制还不够。6 参考文献1 康光华电子技术基础模拟部分(第四版)北京:高等教育出版社,1999.62 康光华电子技术基础数字部分(第四版)北京:高等教育出版社,2000.73 谢自美电子线路设计实验测试华中科技出版社,2000.54 石东海单片机数据通信技术从入门到精通西安电子科技大学出版社,2002.115 全国大学生电子设计竞赛组委会第五届全国大学生电子设计竞赛获奖作品选编北京理工大学出版社,2003.16鲁标.潘玉恒.孟克DDS技术在步进电动机控制系统中的应用-应用科技 2005(08)7 沈建华、杨艳琴、翟骁曙msp430系列16位超低功耗单片机原理与应用清华大学出版社,2004.07.038 中国电子网:9程序员联合开发网:10 万方数据库:7 附录:7.1电路总图附录17.2单片机控制电路附录2
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1