基于dsp技术的正弦信号发生课程设计.doc

上传人:仙人指路1688 文档编号:4141588 上传时间:2023-04-07 格式:DOC 页数:24 大小:344KB
返回 下载 相关 举报
基于dsp技术的正弦信号发生课程设计.doc_第1页
第1页 / 共24页
基于dsp技术的正弦信号发生课程设计.doc_第2页
第2页 / 共24页
基于dsp技术的正弦信号发生课程设计.doc_第3页
第3页 / 共24页
基于dsp技术的正弦信号发生课程设计.doc_第4页
第4页 / 共24页
基于dsp技术的正弦信号发生课程设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《基于dsp技术的正弦信号发生课程设计.doc》由会员分享,可在线阅读,更多相关《基于dsp技术的正弦信号发生课程设计.doc(24页珍藏版)》请在三一办公上搜索。

1、正弦波发生器第一章:绪论数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,信号处理已经在通信等领域得到极为广泛的应用。图一是数字信号处理系统的简化框图。此系统先将模拟信号转换为数字信号,经数字信号处理后,再转换成模拟信号输出。其中抗混叠滤波器的作用是将输入信号x(t)中高于折叠频率的分量滤除,以防止

2、信号频谱的混叠。随后,信号经采样和A/D转换后,变成数字信号x(n)。数字信号处理器对x(n)进行处理,得到输出数字信号y(n),经D/A转换器变成模拟信号。此信号经低通滤波器,滤除不需要的高频分量,最后输出平滑的模拟信号y(t)。抗混叠滤波 器A/D数字信号处理器D/A低通滤波器x(n)y(n)x(t)y(t)图一 数字信号处理系统简化框图数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。近来新兴的一些学科,如人工智能、模式识别、神经

3、网络等,都与数字信号处理密不可分。可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。第二章:TMS320C54x芯片介绍1.总线结构 C54x 包括8 条16 比特宽度的总线,其中: 一条程序总线(PB):传送取自程序存储器的指令代码和立即操作数 三条数据总线(CB、DB、EB):将内部个单元连接在一起,CB和DB传送读自数据存储器的数据,EB传送写入存储器的数据 四条地址总线(PAB CAB DAB EAB):传送执行指令所需的地址2C P UC54x 的CPU 结构包括: 40 比特的ALU ,其输入来自16 比特立即数、16 比特来自

4、数据存储器的数据、暂时存储器、T 中的16 比特数、数据存储器中两个16 比特字、数据存储器中32 比特字、累加器中40 比特字。 2 个40 比特的累加器,分为三个部分,保护位(39 32 比特)、高位字(3116 比特)、低位字(150 比特)。 桶型移位器,可产生0 到31 比特的左移或0 到16 比特的右移。 17x17 比特的乘法器 40 比特的加法器 比较选择和存储单元CSSU 数据地址产生器DAGEN 程序地址产生器PAGEN3外设C54x 包括: 通用I/O 引脚,XF 和BIO 定时器 PLL 时钟产生器 HPI 口8 比特或16 比特 同步串口 带缓存串口BSP 多路带缓存

5、串口McBSP 时分复用串口TDM 可编程等待状态产生器 可编程bank switching 模块 外部总线接口 IEEE1149.1 标准JTAG 口4.存储器4.1存储空间一般而言,C54x 的存储空间可达192K16 比特字,64K 程序空间,64K 数据空间,64KI/O 空间。依赖其并行的工艺特性和片上RAM 双向访问的性能,在一个机器周期内,C54x 可以执行4 条行并行存储器操作:取指令,两操作数读,一操作数写。使用片内存储器有三个优点:高速执行(不需要等待),低开销,低功耗。4.2程序存储区C54x 有片内ROM 、DARAM、 SARAM ,这些区域可以通过软件配置到程序空间

6、。当地址落在这些区域内,自动对这些区域进行访问,当地址落在这些区域以外,自动产生对外部存储器的访问。4.2.1 片内 R O M片内ROM( 4K 16K 24K 28K 或48K 字)可能包括的内容有: 引导程序,可以从串口、外部存储器、I/O 口或HPI 口引导 256 字的率扩展第三章:CCS简介1.CCS工作模式CCS是TI公司针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。CCS有两种工作模式,即: 软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算

7、法实现和调试。 硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。 2.CCS的组成CCS的开发系统主要由以下组件构成1. TMS320C54x集成代码产生工具 用来对C语言、汇编语言或混合语言编程的DSP源程序进行编译汇编,并链接成为可执行的DSP程序。主要包括汇编器、链接器、C/C+编译器和建库工具等。 2. CCS集成开发环境 集编辑、编译、链接、软件仿真、硬件调试和实时跟踪等功能于一体。包括编辑工具、工程管理工具和调试工具等。 3. DSP/BIOS实时内核插件及其应用程序接口API主要为实时信号处理应用而设计。包括DSP/BIOS的配置工具、实时

8、分析工具等。4.实时数据交换的RTDX插件和相应的程序接口API 可对目标系统数据进行实时监视,实现DSP与其他应用程序的数据交换。 5. 由TI公司以外的第三方提供的应用模块插件3.CCS的主要功能 CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C+和汇编的混合编程,其主要功能如下 具有集成可视化代码编辑界面,用户可通过其界面直接编写C、汇编、.cmd文件等; 含有集成代码生成工具,包括汇编器、优化C编译器、链接器等,将代码的编辑、编译、链接和调试等诸多功能集成到一个软件环境中; 高性能编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错

9、误; 工程项目管理工具可对用户程序实行项目管理。在生成目标程序和程序库的过程中,建立不同程序的跟踪信息,通过跟踪信息对不同的程序进行分类管理; 基本调试工具具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试; 断点工具,能在调试程序的过程中,完成硬件断点、软件断点和条件断点的设置; 探测点工具,可用于算法的仿真,数据的实时监视等; 分析工具,包括模拟器和仿真器分析,可用于模拟和监视硬件的功能、评价代码执行的时钟; 数据的图形显示工具,可以将运算结果用图形显示,包括显示时域/频域波形、眼图、星座图、图像等,并能进行自动刷新; 提供GEL工具。利用GEL扩展语言,用

10、户可以编写自己的控制面板/菜单,设置GEL菜单选项,方便直观地修改变量,配置参数等; 支持多DSP的调试; 支持RTDX技术,可在不中断目标系统运行的情况下,实现DSP与其他应用程序的数据交换; 提供DSP/BIOS工具,增强对代码的实时分析能力。 4.CCS的安装及设置 在使用CCS之前,必须首先按照CCS的产品说明安装CCS软件;其次创建CCS系统配置,进行环境设置;最后,按照具体使用的仿真器,安装目标板和驱动程序。5.系统配置要求 机器类型:IBM PC及兼容机; 操作系统:Microsoft Windows 95/98/2000或Windows NT4.0; 机器资源配置要求:机器部件

11、 最低配置 推荐配置 内存 32MB 128MB 剩余硬盘空间 100MB 200MB CPU Pentium Pentium以上 显示分辨率 SVGA 800600 SVGA 1024768 主板插槽 一条空余EISA插槽 一条空余EISA插槽 第四章:正余弦信号发生器的实现原理1.正弦波信号发生器 正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。 通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。 查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。 泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正

12、弦和余弦值,且只需要较小的存储空间。 本次主要用泰勒级数展开法来实现正弦波信号。 产生正弦波的算法 正弦函数和余弦函数可以展开成泰勒级数,其表达式:取泰勒级数的前5项,得近似计算式:递推公式: sin(nx) = 2cos(x)sin(n-1)x-sin(n-2)x cos(nx) = 2cos(x)sin(n-1)x-cos(n-2)x 由递推公式可以看出,在计算正弦和余弦值时,需要已知cos(x)、sin(n-1)x、sin(n-2)x和cos(n-2)x。2计算一个角度的正弦值 计算一个角度x的正弦值,可利用泰勒级数的展开式,采用子程序的调用方式来实现。在调用前先在数据存储器d_xs单元

13、中存放x的弧度值,计算结果存放在d_sinx单元中程序中要用到一些存储单元存放数据和变量,存储单元的分配如下: d_xs:x; d_squr_xs: x2 d_temp_s:暂存; d_sinx:计算结果sinx c_1_s:7FFFh (数值1);d_coef_s :泰勒系数存储单元分配图: 程序清单sinx.asm: .title “sinx.asm” .mmregs .def start .ref sin_start,d_xs,d_sinx STACK: .usect “STACK”,10start: STM #STACK+10,SP LD #d_xs,DP ST #6487H,d_xs

14、 CALL sin_start end: B end sin_start: .def sin_start d_coef_s .usect “coef_s”,4 .data table_s: .word 01C7H .word 030BH .word 0666H .word 1556H d_xs .usect “sin_vars”,1 d_squr_xs .usect “sin_vars”,1 d_temp_s .usect “sin_vars”,1 d_sinx .usect “sin_vars”,1 c_1_s .usect “sin_vars”,1 .text SSBX FRCT STM

15、#d_coef_s,AR4 RPT #3 MVPD #table_s,*AR4+ STM #d_coef_s,AR2 STM #d_xs,AR3 STM #c_1_s,AR5 ST #7FFFH,c_1_s SQUR *AR3+,A ST A,*AR3 | LD *AR5,B MASR *AR3+,*AR2+,B,A MPYA A STH A,*AR3 MASR *AR3-,*AR2+,B,A MPYA *AR3+ ST B,*AR3 | LD *AR5,B MASR *AR3-,*AR2,B,A MPYA *AR3+ ST B,*AR3 | LD *AR5,B MASR *AR3-,*AR2

16、,B,A MPYA d_xs STH B,d_sinx RET .end3.计算一个角度的余弦值计算余弦值与计算正弦值相同。存储单元分配图: 程序清单cosx.asm:.title “cosx.asm”.mmregs.def _c_int00.ref cos_start,d_cosxSTACK: .usect “STACK”,10_c_int00: STM # STACK+10,sp LD #d_x,DP ST #6487h,d_x CALL cos_startend: B endcos_start: .def cos_startd_coeff .usect “coeff”,4 .dataTa

17、ble .word 0249h.Word 0444h.Word 0aahh.word 4000hd_x .usect “cos_vars”,1d_squr_x .usect “sin_vars”,1d_temp .usect “sin_vars”,1d_cosx .usect “sin_vars”,1c_1 .usect “sin_vars”,1 .text SSBX FRCT STM #d_coeff,AR5 Rpt #3 MVPD #table,*AR5+ STM #d_coeff,AR3 STM #d_x,AR2 STM #c_1,AR4 ST #7FFFH,c_1 SQUR *AR2+

18、.A ST A,*AR2 LD *AR4,B MASR *AR2+,*AR3+,B,A MPYA A STH A,*AR2 MASR *AR-,*AR3+,B,A MPYA*AR2+ ST B,*AR2 LD *AR4,B MASR *AR2-,*AR3,B,A SFTA A,-1,A NEG A MPYA *AR2+ MAR *AR2+ RETD ADD *AR4,16,B STH B,*AR2 RET .end 正余弦信号发生器程序清单;This function generates the sine wave of angle using the Taylor series expans

19、ion;sin(theta)=x(1-x2/2*3(1-x2/4*5(1-x2/6*7(1-x2/8*9);cos(theta)=1-x2/2*3(1-x2/4*5(1-x2/6*7(1-x2/8*9);sin(2*theta)=2*sin(theta)*cos(theta) .title sin.asm .mmregs .def _c_int00 .ref sinx,d_xs,d_sinx,cosx,d_xc,d_cosxsin_x: .usect sin_x,360STACK: .usect STACK,10k_theta .set 286PA0 .set 0_c_int00 .text

20、STM #STACK+10,SP STM k_theta,AR0 STM 0,AR1 STM #sin_x,AR6 STM #90,BRC RPTB loop1-1 LDM AR1,A LD #d_xs,DP STL A,d_xs STL A,d_xc CALL sinx CALL cosx LD #d_sinx,DP LD d_sinx,16,A MPYA d_cosx STH B,1,*AR6+ MAR *AR1+0loop1: STM #sin_x+89,AR7 STM #88,BRC RPTB loop2-1 LD *AR7-,A STL A,*AR6+loop2: STM #179,

21、BRC STM #sin_x,AR7 RPTB loop3-1 LD *AR7+,A NEG A STL A,*AR6+loop3: STM #sin_x,AR6 STM #1,AR0 STM #360,bkloop4: PORTW *AR6+0%,PA0 B loop4sinx: .def d_xs,d_sinx .datatable_s .word 01c7h .word 030bh .word 0666h .word 1556hd_coef_s .usect coef_s,4d_xs .usect sin_vars,1d_squr_xs .usect sin_vars,1d_temp_s

22、 .usect sin_vars,1d_sinx .usect sin_vars,1c_l_s .usect sin_vars,1 .text SSBX FRCT STM #d_coef_s,AR5 RPT #3 MVPD #table_s,*AR5+ STM #d_coef_s,AR3 STM #d_xs,AR2 STM #c_l_s,AR4 ST #7FFFh,c_l_s SQUR *AR2+,A ST A,*AR2 |LD *AR4,B MASR *AR2+,*AR3+,B,A MPYA A STH A,*AR2 MASR *AR2-,*AR3+,B,A MPYA *AR2+ ST B,

23、*AR2 |LD *AR4,B MASR *AR2-,*AR3+,B,A MPYA *AR2+ ST B,*AR2 |LD *AR4,B MASR *AR2-,*AR3+,B,A MPYA d_xs STH B,d_sinx RETcosx: .def d_xc,d_cosxd_coef_c .usect coef_c,4 .datatable_c .word 0249h .word 0444h .word 0aabh .word 4000hd_xc .usect cos_vars,1d_squr_xc .usect cos_vars,1d_temp_c .usect cos_vars,1d_

24、cosx .usect cos_vars,1c_l_c .usect cos_vars,1 .text SSBX FRCT STM #d_coef_c,AR5 RPT #3 MVPD #table_c,*AR5+ STM #d_coef_c,AR3 STM #d_xc,AR2 STM #c_l_c,AR4 ST #7FFFh,c_l_c SQUR *AR2+,A ST A,*AR2 |LD *AR4,B MASR *AR2+,*AR3+,B,A MPYA A STH A,*AR2 MASR *AR2-,*AR3+,B,A MPYA *AR2+ ST B,*AR2 |LD *AR4,B MASR

25、 *AR2-,*AR3+,B,A SFTA A,-1,A NEG A MPYA *AR2+ MAR *AR2+ RETD ADD *AR4,16,B STH B,*AR2 RET .endMEMORY PAGE 0: EPROM: org=0E000h, len=1000h VECS: org=0FF80h, len=0080h PAGE 1: SPRAM: org=0060h, len=0020h DARAM1: org=0080h, len=0010h DARAM2: org=0090h, len=0010h DARAM3: org=0200h, len=0200hSECTIONS .te

26、xt :EPROM PAGE 0 .data :EPROM PAGE 0 STACK :SPRAM PAGE 1 sin_vars :DARAM1 PAGE 1 coef_s :DARAM1 PAGE 1 cos_vars :DARAM2 PAGE 1 coef_c :DARAM2 PAGE 1 sin_x : align(512) DARAM3 PAGE 1 .vectors :VECS PAGE 0 .title sin_v.asm .ref _c_int00 .sect .vectors B _c_int00 .end第五章:调试1.CCS工程项目的调试1.1程序的运行控制 在调试程序的

27、过程中,经常需要复位、执行、单步执行等操作。这些操作称为程序运行控制。 CCS开发环境提供了多种调试程序的运行操作。用户可以使用调试工具条或调试菜单“Debug”中的相应命令控制程序的运行。 1.创建工程项目 进入CCS集成开发环境 创建一个新的工程项目 将源程序文件、链接命令文件、库文件和头文件添加到工程项目中 单击所有“+”项观看工程项目所包含的文件双击各图标,打开各文件1.2.工程项目的编译工程项目的编译链接1.3.设置探测点 将volume.out文件装入目标板 设置探测点 为探测点选择链接的数据文件 设置数据文件的属性 将数据文件链接到探测点 关闭“File I/O”对话框 1.4.

28、工程项目的调试和结果的图形显示 设置断点 设置输入变量的图形属性 设置输出变量的图形属性 运行程序,显示图形 调整输出增益1.5.观察寄存器的运行数据2.仿真波形图第六章:总结本次实训过程中遇到一些课堂中从未有过的问题,通过网络查找和同学交流,大大促进了实训进程。并在过程中进一步提高自身的创作、创新水平,扎实基础,扩展所学。 实训过程中经常遇到问题,而在场的老师为各位同学提供了解答方案;辅助同学攻克了实训中的难点。同时也会请老师指点不足之处,以加以改进,完善作品。虽然机房内的气温较高,但好歹天气并不太热;加之机房内设空调,使实训过程大大降低了外部环境的影响,有了一个不错的实训环境。 实训每次都还算完成的不错,这次也一样不是太差,毕竟啊,对自己还是有信心的,继续加油。参考文献:【1】戴明帧.数字信号处理的硬件实现M.北京:航空工业出版社,1988【2】干张伟雄,陈亮,徐光辉.DSP集成开发与应用实例【M】。北京:电子工业出版社【3】戴明桢,周建江.TMS320C54XDSP结构,原理及应运【M】北京航空航天出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号