DSP实现任意波形发生器
- 格式:pdf
- 大小:279.96 KB
- 文档页数:8
基于DSP芯片设计的一种波形发生器在通信、仪器仪表和控制等领域的信号处理系统中,经常要使用到正弦波以及其他波形发生器。
通常可以通过下述两种方法来产生所需波形。
一种方法为使用算法直接产生(如正弦波通过泰勒级数展开得到),这种方法能直接精确地计算出每个角度的波形值,所占的存储空间较小。
另一种为查表法,使用这种方法时,如果要有高的精度则要使用很大的表来记录,从而占有较多的存储空间,但是实时性较第一种方法好。
我们来主要讨论第二种方法。
系统框架结构该系统主要包括以下几个部分:DSP、DAC、DAC后端低通滤波电路以及两个数字可编程运放PGA205、PGA1039(图1)。
系统中DSP采用了TI公司的TMS320VC5402,它有一组程序总线和三组数据总线,高度并行性的算术逻辑单元ALU、专用硬件逻辑片内存储器、增强型HPI口和高达100MHz的CPU 频率,可以在一个周期里完成两个读和一个写操作。
D/A采用了ADI公司的一种16位、低功耗数模转换器AD7846,实现了高速同步数模转换。
可编程增益放大器采用的是美国BB公司的具有低增益误差的PGA205和PGA103,它们可采用4.5V至18V的电源工作,通过与CMOS与TTL兼容的输入端来设定增益,并能提供快速的稳定时间。
硬件实现TMS320VC5402和DAC AD7846是通过VC5402的并行I/O接口来实现数据交换,通过地址线来对AD7846的四个数字逻辑进行控制的。
将cs和R/W1均置为低电平时,开始向该DAC写数,经过一段延时,将LDAC置为高电平,CLR置为低电平,DAC进行数模转换,最后,将R/W和CLR均置为低电平,即将该DAC锁存器清零。
当然,也可以通过CPLD来对其进行控制。
具体时序图如图2所示。
后端运放电路由可编程增益运放PGA205和PGA103串联组成。
该运放电路可提供从G=1到G=800的可编程增益放大。
增益输入端具体输入值详见参考文献[5]真值表。
Um ax、U i m n、Qm ax、Qm i n。
对于Um ax、Um i n的整定,可参照当地的电网运行规程,设定合格电压的上下限。
例如:如果当地10k V的合格电压的范围为9.8~10.7kV,因此Um ax设定为10.7,Um i n设定为10.0,对于10k V因馈线长网损较大的特殊情况,可将Um i n适当增大。
4.1.2 无功Qm ax、Qm in的整定Qm ax与Qm i n的整定比较复杂,因为Q与负荷大小密切相关。
对于Qm ax、Qm i n的整定,应先根据当地电网对于功率因数的运行规定,确定COS m ax及CO S m i n。
例如: COS m ax规程允许0.98,COS m in规程允许0.9。
现假设对于一台两卷变压器,容量为50000kVA。
现考虑该台变压器运行在额定负荷的80%情况下,则可得出Qm ax及Qm i n在80%的额定负荷条件下的值:Qm ax=80%*S* (1-CO S m i n*COS m in=17436kV arQm i n=80%*S* (1-CO S m ax*COS m ax=7960k V ar因为负荷是变化的,因此Qm ax与Qm in随着不同的负荷变化而变化。
因此VQ C软件一般都要求分时段执行定值。
所以可根据当地的负荷变化规律,在不同的时段整定不同的Qm ax与Qm i n大小。
本装置有可分为5个时段。
4.2 投退一组并联电容器对电压的变化率 U确定投一组并联电容器对母线电压的影响,通常比较困难。
因为负荷受时间、季节的变化而不同,因此要精确整定是比较困难的。
可以利用综合自动化系统的遥测数据来确定此定值。
4.3 投一组并联电容器对无功的变化率对于一组并联电容器,其出厂铭牌都会注明其容量,例如对于某电容器组,其参数为5010k V ar,则其容量可直接作为投一组并联电容器对无功的变化大小,例如对于上述电容,则其对无功的变化率为5010k V ar。
北京交通大学数字信号处理(DSP)综合设计性实验报告题目:任意信号发生器的设计学院:电子信息工程学院班级:指导教师:***学生:北京交通大学电工电子教学基地2013年7月15日目录一、设计任务…………………………………………………二、实验目的…………………………………………………三、实验要求及目标…………………………………………………四、实验原理…………………………………………………五、程序代码及仿真结果…………………………………………………1. 泰勒级数产生正弦波2. 泰勒级数产生余弦波3. 三角波4. 方波5. 锯齿波六、实验总结…………………………………………七、参考资料…………………………………………一. 设计任务信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
各种波形曲线均可以用三角函数方程式来表示。
能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
信号发生器在现代工程中应用非常广泛。
在实际中常需要产生一些特殊波形,用于仿真实际信号的波形,以检测和调试测量装置。
使用 DSP可以产生连续的正弦波信号,同样也能产生方波、锯齿波、三角波等其它各种信号波形。
本设计要求采用DSP及其CODEC产生上述各种信号波形。
二. 实验目的(1)了解产生信号的两种方法及各自的优缺点。
(2)掌握使用DSP产生正弦波的原理和算法,进而掌握一般信号产生的原理和方法。
(3)掌握5502DSK CODECC的工作原理和初始化过程。
三. 设计要求及目标基本部分:使用DSP产生300—4000HZ的正弦信号,要求使用计算法,并且频率可变、幅度可变、直流分量可变。
发挥部分:使用DSP产生300—4000HZ的方波、锯齿波和三角波。
四. 设计思路产生连续信号的方法通常有两种:查表法和计算法,查表法不如计算法使用灵活。
数字信号处理(DSP)综合设计性实验报告学院:电子信息工程学院班级:通信0708指导教师:高海林学生:原凌云07211253张丽康07211256北京交通大学电工电子教学基地2004年12月28日目录一、设计任务 (3)二、实验目的 (3)三、设计内容 (3)四、实验原理 (4)五、程序设计 (6)1、程序源代码2、实验截图和结果六、实验总结 (22)七、参考资料 (23)一、设计任务书信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
各种波形曲线均可以用三角函数方程式来表示。
能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
信号发生器在现代工程中应用非常广泛。
在实际中常需要产生一些特殊波形,用于仿真实际信号的波形,以检测和调试测量装置。
使用DSP 和D/A 转换器可以产生连续的正弦波信号,同样也能产生方波、锯齿波、三角波等其它各种信号波形。
本设计要求采用DSP及其D/A转换器产生上述各种信号波形。
二、实验目的(1)了解产生信号的两种方法及各自的优缺点。
(2)掌握使用DSP产生正弦波的原理和算法,进而掌握一般信号产生的原理和方法。
(3)掌握5402DSK CODECC(A/D、D/A)的工作原理和初始化过程。
(4)掌握使用指针访问片上ROM中正弦查找表的方法。
三、设计内容使用DSP 产生300—4000HZ 的正弦信号,要求使用查表法,测量产生的信号波形的频率和幅度,并且频率可变、幅度可变、直流分量可变。
用软件CCS5000编程实现,并硬件(DSK 板或示波器)连接进行功能演示。
使用计算法产生余弦波分量。
发挥部分:(1)使用DSP 产生300—4000HZ 的方波、锯齿波和三角波。
(2)使用现有程序,实现不改变源程序,频率和幅度自动可调。
四、实验原理产生连续信号的方法通常有两种:查表法和计算法,查表法不如计算法使用灵活。
7附录7.1 C程序/**********DSP可调波形发生器C程序*********/#include "scancode.h"#define PI 3.1415926ioport unsigned int port3002;ioport unsigned int port3003;ioport unsigned int port1000;ioport unsigned int port1004;ioport unsigned int port8001;ioport unsigned int port8002;/*******************端口定义***********************/#define LED port3002#define DIP port3003#define DAC0 port1000#define LDAC port1004#define CTRKEY port8001 //键盘数据读寄存器#define CTRCLKEY port8002 // 清除键盘寄存器/*********************延时模块*********************/void Delay(unsigned int nDelay) // 延时子程序{int ii,jj,kk=0;for ( ii=0;ii<nDelay;ii++ ){for ( jj=0;jj<64;jj++ ){kk++;}}}/*********************主程序模块*******************/main(){unsigned int nKeyCode,flag,N,F1,V1,V2;float x,x1,x2,sinx,cosx;int uDA0;int i;V1=256; //V1用来控制锯齿波幅度;初值是256,可用按键加减V2=254; //V2用来控三角波幅度;初值是254,可用按键加减F1=1; //F1用来控制锯齿波频率;初值是1,可用按键加减N=360; //N是正弦波采样点数,用来控制正弦波频率;初值是360,可用按键加减uDA0=0;x=0;flag=0; //三角波产生辅助标志/********************波形发生模块*******************/while(1){DAC0=uDA0; // 通道0赋值LDAC=0x1f; // 启动转换i=DIP; // 取拨码开关状态i=i&0x03; // 屏蔽高6位LED=i; // 输出到LEDnKeyCode=CTRKEY;nKeyCode&=0x0ff;nKeyCode=CTRCLKEY;/****************拨码开关选择波形模块****************/switch ( i ){//V1的值可由按键5,6控制,从而改变锯齿波幅度case 0x01: //上锯齿波uDA0+=F1; uDA0%=V1; break;case 0x02: //三角波//从0逐次加1到255是三角波的上升线,到255后逐次减1到0是三角波的下降线if(uDA0<=V2&&flag==0){flag=0;uDA0+=1;}else{flag=1;uDA0-=1;if(uDA0==0)flag=0;}break;case 0x03: //正弦波x+=(2*PI)/N; //N的值在按键中增减,改变N的值可以改变正弦波频率if(x<=PI/4){//将sinx和cosx按泰勒级数展开sinx=x*(1-x*x/(2*3)*(1-x*x/(4*5)*(1-x*x/(6*7)*(1-x*x/(8*9)*(1-(x*x/(10*11)))))));cosx=1-x*x/(2*1)*(1-x*x/(4*3)*(1-x*x/(6*5)*(1-x*x/(8*7)*(1-(x*x/(10*9))))));}else if(x<=PI/2){x1=PI/2-x;sinx=x1*(1-x1*x1/(2*3)*(1-x1*x1/(4*5)*(1-x1*x1/(6*7)*(1-x1*x1/(8*9)*(1-(x1*x1/(10*11)))))) );cosx=1-x1*x1/(2*1)*(1-x1*x1/(4*3)*(1-x1*x1/(6*5)*(1-x1*x1/(8*7)*(1-(x1*x1/(10*9))))));}else if(x<=PI){x2=x-PI;sinx=x2*(1-x2*x2/(2*3)*(1-x2*x2/(4*5)*(1-x2*x2/(6*7)*(1-x2*x2/(8*9)*(1-(x2*x2/(10*11)))))) );cosx=1-x2*x2/(2*1)*(1-x2*x2/(4*3)*(1-x2*x2/(6*5)*(1-x2*x2/(8*7)*(1-(x2*x2/(10*9))))));}else{x=0;sinx=0;}uDA0=128+127*2*sinx*cosx;break;}/*******************按键调频调幅模块********************/if ( nKeyCode!=0 && nKeyCode!=0x0ff ) //如果有键按下,执行内部程序{switch(nKeyCode){case 2:N-=18; //按键2每按一下,采样点数减18,增加正弦波的频率if(N<=0)N=360;F1+=1; //按键2每按一下,F1加1,减小锯齿波的频率break;case 3:N+=18; //按键3每按一下,采样点数加18,减少正弦波的频率F1-=1; //按键3每按一下,F1减1,增加锯齿波的频率if(F1<=0)F1=1;break;case 5:V1++ ; //锯齿波幅度增加if(V1>=255)V1=255;V2++; //三角波幅度增加if(V2>=255)V2=254;break;case 6:V1--; //锯齿波幅度减少if(V1==0)V1=256;V2--; //三角波幅度减少if(V2==0)V2=254;break;}}}}。
微处理器应用 电 子 测 量 技 术 EL ECTRONIC M EASUREM EN T TEC HNOLO GY 第32卷第4期2009年4月 基于TMS320F2812的任意波形发生器设计张树团1 张 凯1 李 静2(1.海军航空工程学院控制工程系 烟台 264001;2.山东商务职业学院 烟台 264000)摘 要:为了能够方便地产生一些复杂具有特殊要求的、频率稳定的任意波形,本文提出了一种任意波形发生器的设计方法。
完成了基于TI公司高性能DSP芯片—TMS320F2812和BB公司数模转换器———DAC7724的任意波形发生器设计,设计中使用TMS320F2812的外部扩展接口代替通用I/O口完成DAC7724的控制功能,详细叙述了设计方案、接口电路以及软件实现。
实验结果表明,该任意波形发生器能够按照要求输出相应波形,达到了设计要求。
关键词:TMS320F2812;DAC7724;任意波形发生器中图分类号:TN75 文献标识码:ADesign of arbitrary w aveform generator based on TMS320F2812Zhang Shutuan1 Zhang Kai1 Li Jing2(1.Depart ment of Control Engineering,Naval Aeronautical and Astronautical University,Yantai264001;2.Shandong business institute,Yantai264000)Abstract:This paper introduced a way of the arbitrary waveform generator to produce the complex and special waveform with the stable f requency.In this paper,an arbitrary waveform generator is designed and implemented in this article based on TMS320F2812and DAC7724.The control f unction of DAC7724adopt exterior extendable interface based on TMS320F2812to replace the current I/O.The scheme,the interface circuit and the software design are introduced particularly.At last,the results show that the arbitrary waveform generator can export the corresponding output waveform and reach the design requirement.K eyw ords:TMS320F2812;DAC7724;arbitrary waveform generator0 引 言函数发生器是一种常用的信号源,在教学、科研、生产、生物工程、遥控遥测等诸多领域得到广泛应用[123]。
基于Matlab/DSP Builder 任意波形信号发生器的两种设计0 引言在当今的科技信息社会中,尤其是在电子设计和信号测试系统中,通常需要一些复杂、特定频率的信号,通常的信号发生器难以满足要求,市场上出售的一些任意信号发生器的价格昂贵,体积较大,不能满足实际的需要。
Altera DSP Builder 是一款系统级的设计工具,依赖于Mathworks 公司的数学分析工具Matlab/Simulink,可以在Sireulink 中进行图形化设计和仿真,同时又可以通过signalCompiler 把Matlab/Simulink 的模型文件(.mdl)转换成相应的硬件描述语言VHDL,本文用两种方法,即传统型的任意信号发生器和基于直接数字频率合成(DDS)的任意信号发生器,在DSPBuilder 的开发工具下实现任意信号发生器的设计,不涉及到编程,操作简单。
1 传统型任意信号发生器的设计1.1 设计原理传统型任意信号发生器原理比较简单,将时钟源作为地址发生器(计数器)的输入时钟,通过改变时钟源的频率,可以实现调整地址发生器(计数器)产生地址的变化速率,从而达到改变输出波形与输出频率的目的。
当地址发生器输出值等于待生成波形数据存储器中波形数据的地址时,待生成波形数据存储器将输出此数据到高速D/A 转换,将其变为模拟信号,经低通滤波器后输出所需波形。
D/A 的输出频率fuot 与待生成波形数据存储器的波形数据点数N 以及时钟源的频率fclk 关系为:由式(1)可知,只要改变数据波形点数N 就能控制输出信号的频率。
1.2 系统设计根据图1 所示的原理框图,在Matlab/DSP Builder 平台上,建立传统型任意信号发生器的Simulink 模型,如图2 所示。
在图2 中,Increment Decrement 模块起到一个地址发生器的作用,随着时。