九江学院DSP实训报告.doc_第1页
九江学院DSP实训报告.doc_第2页
九江学院DSP实训报告.doc_第3页
九江学院DSP实训报告.doc_第4页
九江学院DSP实训报告.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

JIU JIANG UNIVERSITYDSP 课程设计题 目 基于DSP的正弦信号发生器英文题目 Sinusoidal Signal Generator based on DSP院 系 班 级 专 业 姓 名 同组人员 指导教师 二零一三年五月23摘要目前,各领域对信号发生器要求越来越高,DSP是高速实时处理的专用处理器,A/D转换后用DSP处理编程灵活,波形精度高与稳定性好,应用价值高和前景广泛。于是提出了基于DSP的正弦信号发生器。 详细阐述了采用查表法和级数逼近法产生正弦信号的原理,并在集成开发环境CCS中用C语言分别采用两种方法编写可调频、调幅、调相的正弦波程序。此外编写GEL文件,在主菜单GEL选项中增加“Application Control”一级菜单,Gain、Pinlv、Xiangwei三个二级菜单,程序运行时打开以上菜单,界面上会出现三个相应的滑动条,调节相应的滑动条可调幅、调频、调相。在图形窗口中实时观察正弦信号幅度、频率、相位的变化。并对两种方法产生的正弦信号图形进行观察、比较。关键词 DSP CCS 级数逼近法目录摘要2第一章 绪 论41.1 课题背景及国内外研究概况41.2 DSP的发展趋势4第二章 DSP的结构与指令52.1 DSP的组成与结构52.1.1 典型DSP系统的构成52.1.2 TMS320系列DSP的结构62.2 DSP的指令9第三章 系统总体概况103.1 系统实现功能103.2级数逼近法产生正弦信号10第四章 软件设计114.1 级数逼近法产生正弦波软件设计114.2 源程序文件124.3 GEL文件134.4 链接命令文件144.5 正弦波形观察14第六章、心得体会17参考文献18附 录19第一章 绪 论1.1 课题背景及国内外研究概况信号发生器作为一种常用的信号源,主要作为激励信号或仿真信号,广泛应用于航空航天、国防、电力电子、电子设计、生物医疗、环保、机械运动、新型材料等各个领域。随着技术的进步,各领域对信号发生器的要求也越来越高,常用的信号发生器绝大部分是由模拟电路构成的。这种模拟信号发生器用于低频信号输出时,往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大,受到了很多的限制。随着社会的不断进步和科研的不断深入,对信号发生器的波形可编程性、波形的精度与稳定性等性能提出了更高的要求。此时随着大规模集成电路的应用,信号发生器也开始数字化,而数字信号处理器(DSP)是在模拟信号变成数字信号以后进行高速实时处理的专用处理器。DSP芯片以其独特的结构和快速实现各种数字信号处理算法的突出优点,发展十分迅速1,2。基于以上情况本课题设计了基于DSP的信号发生器,采用查表发和级数逼近法编写程序,产生可调频、调幅、调相的正弦信号,在CCS软件进行编辑、编译、仿真。其编程高度灵活性,波形精度高与稳定性好等特点,具有极大的应用价值和广泛的应用前景。1.2 DSP的发展趋势数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,信号处理已经在通信等领域得到极为广泛的应用3。数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础8。数字信号处理器还是在模拟信号变成数字信号以后进行高速实时处理的专用处理器。DSP芯片以其独特的结构和快速实现各种数字信号处理算法的突出优点,发展十分迅速。数字信号发生器是在电子电路设计、自动控制系统和仪表测量校正调试中应用很多的一种信号发生装置和信号源。而正弦信号是一种频率成分最为单一的常见信号源,任何复杂信号(例如声音信号)都可以通过傅里叶变换分解为许多频率不同、幅度不等的正弦信号的叠加,广泛地应用在电子技术试验、自动控制系统和通信、仪器仪表、控制等领域的信号处理系统中及其他机械、电声、水声及生物等科研领域3,4。第二章 DSP的结构与指令2.1 DSP的组成与结构2.1.1 典型DSP系统的构成典型DSP系统DSP芯片的基本结构包括:1.哈佛结构2.流水线结构3.专用的硬件乘法器4快速的指令周期2.1.2 TMS320系列DSP的结构1.多总线结构由哈佛结构决定了具有独立的程序总线和数据总线,以及独立的程序存储器和数据存储器,这样就可以同时获得指令字和操作数互不干扰,即一个指令周期内可以同时准备好指令和操作数。2.中央处理单元(CPU) 包含5个基本部分:输入比例部分、乘法部分、中央算术逻辑部分、辅助寄存器算术单元、状态寄存器(1)输入比例部分作用:把来自存储器的16Bit数与32Bit的CALU(中央算术逻辑单元)的数据通路对齐。组成:主要由一个32Bit的输入比例移位器组成。(2)乘法部分组成:16比特的临时寄存器(TREG),其中存放一个乘数。乘法器,它把TREG中的乘数与来自数据存储器或程序存储器的第二个数相乘。32比特的乘积寄存器(PREG),它接收相乘运算的结果。乘积移位器,它可将PREG中的乘积值在送到CALU之前进行移位操作。(3)中央算术逻辑部分这部分的部件有:中央算术逻辑单元(CALU)、32比特累加器(ACC)、输出移位器。a.中央算术逻辑单元(CALU)中央算术逻辑单元(CALU)完成各种算术和逻辑功能,其中大部分只需一个时钟周期。这些功能分为4类: 16比特加 16比特减 布尔逻辑操作 比特测试、移动和循环b.累加器CALU一完成操作就把结果传送到32比特的累加器,累加器可对其内容进行单比特的移动或循环。与累加器相关联的4个状态位是: 进位位C(状态寄存器ST0的比特9); 溢出模式位OVM(状态寄存器ST0)的比特11); 溢出标志位OV(状态寄存器ST0的比特12); 测试控制标志位TC(状态寄存器ST1的比特11)c.输出数据比例移位器主要功能:输出数据比例移位器的32比特输人连到累加器的32比特输出,其16比特输出连到数据总线。(4)辅助寄存器算术单元(ARAU)ARAU的主要功能是与CALU中进行的操作并行地实现对8个辅助寄存器(AR7AR0)的算术运算。 8个辅助寄存器(AR7AR0)提供了灵活而有效的间接寻址。通过辅助寄存器中的16比特地址可以访问64K数据存储空间的任何单元。ARAU能完成以下运算: 将辅助寄存器值增、减1,或者增、减一个变址量(借助任何支持间接寻址的指令)。 使辅助寄存器值加一常数(ADRK指令)或使其减去一常数(SBRK指令)。该常数值是指令字的低8比特。 把AR0的内容与当前AR的内容进行比较,并把结杲放人状态寄存器STl的测试控制位(TC)(CMPR指令)。(5)状态寄存器ST0和ST1CPU有两个状态寄存器-ST0和ST1,它们含有状态和控制位。这些寄存器可以保存在数据存储器,也可以从数据存储器加载。因此可以保存和恢复子程序的机器状态。 LST(加载状态寄存器)指令写ST0和ST1; SST(保存状态寄存器)指令读ST0和ST1;这些寄存器中有很多位可用SETC和CLRC指令单独置1和清0。3存储器和I/O空间TMS320有3个存储空间:64K字或更多的程序存储器、64K字的数据空间、64K的I/O空间内部有随机存储器(RAM)和只读存储器(ROM)或可擦除存储器(Flash)。RAM由两种形式:单寻址(SARAM)和双寻址(DARAM)。RAM这一存储区可以由软件设置映射到程序或数据存储空间。程序从片外存储器引导后,可装入到该存储区全速进行。4电源电路设计(1)电源电压要求DSP芯片大部分采用低电压供电方式,这样可以大大降低DSP芯片的功耗。内核电源CVdd:对内部逻辑进行供电,一般为3.3V或2.5V,甚至更低。I/O电源DVdd:给外部逻辑(扩展接口逻辑)供电,一般为3.3V。(2)电流要求电流消耗取决于器件的激活度。 CVdd 消耗的电流主要决定于CPU的激活度。外设消耗的电流决定于正在工作的外设的数量及速度,以及在这些输出上的负载电容。(3)加电次序理想情况下,两个电源应同时加电,但在一些场合很难做到。不同型号器件上电顺序不一样。(4)电源解决方案从5V产生双电源5DSP外部总线(1)外部总线接口(以TMS320为例)总线包括数据总线D15D0 、地址A15A0控制信号存储器选通信号 /MSTRBIO设备选通信号 /IOSTRB程序空间选择信号 /PS地址空间选择信号 /DSIO空间选择信号 /IS读写信号 R/W数据准备好信号 READY总线请求信号 /HOLD总线请求响应信号 /HOLDA微状态完成信号 /MSC获取指令地址信号 /IAQ中断响应信号 /IAKDSP访问片内资源时,外部数据总线置高阻状态,而外部地址总线以及存储器选择信号均保持先前的状态,其他信号均处于无效状态。由于外部总线只有一套数据地址总线,因此外部总线只能允许每个机器周期进行一次寻址,而且数据寻址比程序存储器取指具有较高的优先权。(2)外部总线控制C5000系列片内有两个部件一等待状态发生器和分区切换逻辑电路,用来控制外部总线的工作。这两个部件都是可编程的,它们的控制寄存器分别位于片内数据空间0028h和0029h,用户程序可以读写这些寄存器,去控制处理器访问外部存储器或外围设备时须插入的等待状态数。(3)外部总线时序所有外部总线访问都是在整数个机器周期内完成的。一个机器周期定义为时钟信号的一个下降沿到其下一个下降沿。某些不需等待状态的外部总线访问,例如存储器写操作或者I/O写和IO读,都是两个机器周期。存储器的读操作只需一个机器周期;但是存储器的读操作之后紧跟一次存储器写操作,或者相反的操作,存储器的读就要多花半个周期。存储器读写时序I/O外设读写时序存储器和IO外设混合读写时序存储器和IO外设混合读写时序分别遵循各自的时序要求,只是访问周期变长了。紧跟存储器读或写的IO读写至少需要三个机器周期;紧跟IO读或写的存储器读需要两个机器周期。2.2 DSP的指令定点DSP指令集是按两个目标来设计的: (1)使处理器能够在每个指令周期内完成多个操作,从而提高每个指令周期的计算效率。 (2)将存贮DSP程序的存储器空间减到最小(由于存储器对整个系统的成本影响甚大,该问题在对成本敏感的DSP应用中尤为重要)。 为了实现这些目标,DSP处理器的指令集通常都允许程序员在一个指令内说明若干个并行的操作。例如,在一条指令包含了MAC操作,即同时的一个或两个数据移动。在典型的例子里,一条指令就包含了计算FIR滤波器的一节所需要的所有操作。这种高效率付出的代价是,其指令集既不直观,也不容易使用(与GPP的指令集相比)。 GPP的程序通常并不在意处理器的指令集是否容易使用,因为他们一般使用像C或C+等高级语言。而对于DSP的程序员来说,不幸的是主要的DSP应用程序都是用汇编语言写的(至少部分是汇编语言优化的)。这里有两个理由:首先,大多数广泛使用的高级语言,例如C,并不适合于描述典型的DSP算法。其次,DSP结构的复杂性,如多存储器空间、多总线、不规则的指令集、高度专门化的硬件等,使得难于为其编写高效率的编译器。 即便用编译器将C源代码编译成为DSP的汇编代码,优化的任务仍然很重。典型的DSP应用都具有大量计算的要求,并有严格的开销限制,使得程序的优化必不可少(至少是对程序的最关键部分)。因此,考虑选用DSP的一个关键因素是,是否存在足够的能够较好地适应DSP处理器指令集的程序员。 第三章 系统总体概况3.1 系统实现功能 DSP 产生正弦信号的方法有三种:查表法,迭代法和级数逼近法,我们这次用的是级数逼近法。现象可以在CCS中观察仿真结果,对性能进行分析比较。同时,对级数逼近法产生正弦信号,要求能调幅、调频4,5。 3.2级数逼近法产生正弦信号 正弦函数的泰勒级数展开如下式(2-1)所示。在实际编程时, 用C语言编写计算sinx和cosx程序,根据正弦信号在0,90与90,180区间数值对称,0,180和180,360数值对称的关系,复制出0,360一个周期的正弦值。正弦函数的台劳级数展开如下式所示。(2-1)产生可调频、调幅、调相的正弦波 : (2-2) 角频率:w=2f/fs (2-3)周期:N=fs/f (2-4)因此计算出在0,90内的正弦值即可,式(2-1)中的x的值为W*n四分之一周期内n(0,N/4),有式(2-5)可知N和f程反比,改变f则相应得N也会变化。相位代表m个W,调节相位时只要x从m*W开始计算即可。级数逼近法产生正弦信号用图2-2表示如下:第四章 软件设计4.1 级数逼近法产生正弦波软件设计 级数逼近法产生正弦波是根据泰勒级数公式 正弦波 : 角频率 : 周期 : 首先令fs =400,W=f/200,x=f/200*n,其中n0,1/4*N。计算出0,90,利用0,90与90,180区间数值对称, 0,180和180,360数值对称,可以得到0,360的正弦值。然后再改变幅度和相位,就可以在CCS环境下图形窗口内观察可调幅、调频、调相的波形。如框图4-1所示,是级数逼近法产生正弦波的工程中包含的文件,以及文件的功能介绍。4.2 源程序文件源程序用C语言编程,实现正弦信号调幅,调频,调相。程序流程图如4-2:4.3 GEL文件 GEL文件中主要对频率、幅度、相位三个变量编程,生成相对应的滑动条。程序流程图如4-3,程序代码见附录。4.4 链接命令文件 编译器产生可重新定位的数据和代码块。这些块称为段,根据各种不同的应用系统结构,可以使用不同的方法将这些段分配到存储器。 编译器产生两种不同的段:初始化段和未初始化段,一般未初始化段有.cinit(位于0页),.const(位于1页),.pinit(全局对像构造表),.switch(位于0页),.text(位于0页)。非初始化段有.bss(位于1页),.stack(位于1页),.sysmem(位于1页)。 PAGE 说明一个存储器空间,用户最多可说明255页。一般page0是程序存储器,page1是数据存储器。根据以上内容编写jishu_sinx.cmb文件,程序代码见附录。4.5 正弦波形观察 程序编辑,编译,链接后生成.out文件,在jishu_sinx.c程序代码 data IO()行设置断点,改行开头出现红色圆点,程序运行到断点处时将更新所有界面。Load GEL文件,在主菜单GEL选项中分别选择Gain 、Pinlv、Xiangwei三个二级菜单,界面上会出现三个对应的滑动条。如图5-11所示是频率代表为1、相位为0、幅度为1时的正弦波。上边图像是输入正弦波,下边图像是输出正弦波。 图5-11 幅度、频率、相位为初值幅度调整:将幅度由1变为2,频率、相位都不变,正弦波形如图5-12所示。输入波形最高值为2048输出波形的最高值变为4096,4096/2048=2,幅度变化了2倍,所以实现了调幅。 图5-12 幅度改变,频率、相位为初值频率调整将幅度由1变为2,频率由1变为4、相位都不变,正弦波形如图5-13所示。输入波形最高值为2048,输出波形的最高值变为4096,4096/2048=2,调幅变化了2倍。正弦波由N=400,变成了N=100,400/100=4,频率变化了4倍。所以实现了调频。图5-13 幅度、频率改变,相位为初值相位调整:将幅度由1变为2,频率由1变为4、相位由0变为40,正弦波形如图5-14所示。输入波形最高值为2048,输出波形的最高值变为4096,4096/2048=2,调幅变化了2倍。正弦波由N=400,变成了N=100,400/100=4,频率变化了4倍。相位50/100*2=1/2,相位角变化了90,所以实现了对正弦波调相。 图5-14 幅度、频率、相位均改变第六章、心得体会如果说任何机会都是需要去创造出来的话,那么那个创造者,其实就是你自己。时间过得真快,转眼间已经有一个星期了,现在回想起来,往事还历历在目。但是不可否认的却是这些经历将会是我人生当中不可多得的财富和经验的累积。这一周的课程设计实习周终于结束了,通过一周以来同学和老师的共同努力,我们终于完成了设计要求。但大家脸上的表情都是欣慰和欢喜的,到底工夫不负有心人。回想过去一周,这里面的辛苦只有做是课程设计的人才明白,才能体会。通过这种综合性训练,要学生达到以下的目的和要求:1结合课程中所学的理论知识,独立设计方案。达到学有所用的目的。2学会查阅相关手册与资料,通过查阅手册和文献资料,并掌握合理选用的原则,培养独立分析与解决问题的能力。这次设计我们学到了很多东西,虽然作出来的东西很基础,但是我们加深了对知识的理解和掌握。作为一名大三的学生,我觉得能做类似的课程设计是十分有意义的。同时这是一次团队合作开发过程,一次难得的经历。通过此次设计试验也着重能够学到许多东西。机会谁都有,关键在于自己怎么利用一些外部条件去创造。与其等待机会的来临,还不如自己去创造机会,变被动为主动,事情才能成功。过去在自己的心里,老是有种恐惧的心理在作祟,怀疑自己的能力,认为自己不能胜任某件事情,甚至连尝试的胆量都没有。通过在这次设计,我也明白了只有抛弃心中的恐惧,拿掉不可能,不断培养自己锻炼自己,才能在这个行业中走得更远。自己本身还是存在着很大的欠缺,这样才能不断地提升自身的素质、素养,不断地改进自己的知识结构水平,让自己投入到理论学习中,好好积累基础理论知识,方能厚积薄发。也将随着自身能力水平和环境的不断变化而更加完善。参考文献1 廖柏林. 基于DSP正弦信号发生器设计.2011年第24卷第2期.2 孙增友. 基于TMS320C5402的正弦信号发生器.第23卷.3 戴明桢,周建江. TMS320C54x DSP结构、原理及应用(第2版)M.北京:北京航空航天大学出版社.2007,p273-2824 李爱华.基于DSP的正弦信号发生方法J.江苏电器,2008(5):7-95 俞兴明.正弦信号发生器的DSP 实现方法及比较.2009年第9期.6 张雄伟,曹铁勇,陈亮DSP芯片的原理与开发应用M北京:电子工业出版社,20097 Campbell R J, Amitage J R, Sherlock G, et al. Wavelength stable uncooled fiber grating s emiconductor laser foruse in an optical WDM access networkJ. Electron Lett, 1996, 32(12): 119-1218 TLC320AD50C/TLC320AD53C Data Manual M. Texas InstrumentsInch20009 TMS320C54x DSP Reference Set,Volume 2:Mnemonic Instrustion SetTI 200110 TMS320C54x Users Guide199911 刘建科,王艳芬,王胜利基于DSP的信号发生器的设计与实现J制造与设计,2005(16):126 -12812 蹇勇. 一种新型正弦信号发生器的设计.2006年4月第2期.13宋萌基于DSP的正弦信号发生器设计J电子元器件应用2006(9):62-6614 朱卫华基于DSP数字振荡器的三相基准正弦信号发生器设计J仪表技术,2009(9):l-3附 录级数逼近法中jishu_sinx.c文件源代码: #include #include #include volume.h float m4,y400; int inp_buffer400; /* processing data buffers */ int out_buffer400; int N; int f=MINPINLV; int xiangwei =MINXIANGWEI; int gain = MINGAIN;static int processing(int *input, int *output);static void dataIO(void);void main() int *input=&inp_buffer0 ; int *output=&out_buffer0 ; int j; for(j=0;j400;j+) inp_bufferj=0; out_bufferj=0; while(TRUE) dataIO(); processing(input, output); static int processing(int *input, int *output) /相位,幅度调整 int i; int size=4*N; int xiangwei1=xiangwei; size-=xiangwei1; input = &inp_bufferxiangwei; while(size-) *output+ =*input+*gain; input = &inp_buffer0; while(xiangwei1-) *output+ =*input+ * gain; output=&out_buffer4*N; for(i=0;i=(399-4*N);i+) *output+=0; return(TRUE);static void dataIO() /* do data I/O */ float x,xx; int i; int *input1 ; int *zhongjian; N=100/f; for (i=0; i=N; i+) /计算1/4周期内的N个样值 x=i*6.28/400*f; xx = x*x; m0= 1-xx/(8*9); m1= 1-m0*xx/(6*7); m2= 1-m1*xx/(4*5); m3= 1-m2*xx/(2*3); yi= x*m3; for (i=0; i=N; i+) /转换成定点 inp_bufferi= (int)(yi*2048); input1=&inp_bufferN+1; zhongjian=&inp_bufferN-1; for

温馨提示

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

评论

0/150

提交评论