DSP课程设计信号发生器方波.docx

上传人:b****7 文档编号:10318707 上传时间:2023-02-10 格式:DOCX 页数:14 大小:195.47KB
下载 相关 举报
DSP课程设计信号发生器方波.docx_第1页
第1页 / 共14页
DSP课程设计信号发生器方波.docx_第2页
第2页 / 共14页
DSP课程设计信号发生器方波.docx_第3页
第3页 / 共14页
DSP课程设计信号发生器方波.docx_第4页
第4页 / 共14页
DSP课程设计信号发生器方波.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

DSP课程设计信号发生器方波.docx

《DSP课程设计信号发生器方波.docx》由会员分享,可在线阅读,更多相关《DSP课程设计信号发生器方波.docx(14页珍藏版)》请在冰豆网上搜索。

DSP课程设计信号发生器方波.docx

DSP课程设计信号发生器方波

成绩评定表

学生姓名

王子豪

班级学号

23

专业

电子信息工程

课程设计题目

信号发生器(方波)

组长签字:

成绩

日期

2015年1月日

课程设计任务书

学院

信息科学与工程学院

专业

电子信息工程

学生姓名

王子豪

班级学号

课程设计题目

信号发生器(方波)

实践教学要求与任务:

基于Dsp的信号发生器设计:

1、设计一个信号发生器(方波)。

2、在XF引脚上输出任意频率的方波。

工作计划与进度安排:

1、选题、查阅资料及编写软件程序(或硬件原理图设计)。

2、课内上机调试程序及仿真。

3、课外上机调试程序及仿真。

4、调试出结果、调试结果验收并写报告。

5、修改报告及提交报告电子版(修改之后)。

6、正式提交报告(打印版)及参加第一次答辩。

指导教师:

2014年月日

专业负责人:

2014年月日

学院教学副院长:

2014年月日

 

信号发生器(方波)

1绪论

设计背景

数字信号处理是20世纪60年代,随着信息学科和计算机学科的高速发展而迅速发展起来的一门新兴学科。

它的重要性日益在各个领域的应用中表现出来。

其主要标志是两项重大进展,即快速傅里叶变换(FFT)算法的提出和数字滤波器设计方法的完善。

数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。

例如:

滤波、检测、变换、增强、估计、识别、参数提取、频谱分析等。

数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。

因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。

而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。

数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。

数字信号处理的研究方向应该更加广泛、更加深入.特别是对于谱分析的本质研究,对于非平稳和非高斯随机信号的研究,对于多维信号处理的研究等,都具有广阔前景。

数字信号处理技术发展很快、应用很广、成果很多。

多数科学和工程中遇到的是模拟信号。

以前都是研究模拟信号处理的理论和实现。

模拟信号处理缺点:

难以做到高精度,受环境影响较大,可靠性差,且不灵活等。

数字系统的优点:

体积小、功耗低、精度高、可靠性高、灵活性大、易于大规模集成、可进行二维与多维处理。

随着大规模集成电路以及数字计算机的飞速发展,加之从60年代末以来数字信号处理理论和技术的成熟和完善,用数字方法来处理信号,即数字信号处理,已逐渐取代模拟信号处理。

数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们所需要的信号形式。

数字信号处理是将信号以数字方式表示并处理的理论和技术。

数字信号处理与模拟信号处理是信号处理的子集。

数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。

数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。

数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。

数字信号处理在理论上的发展推动了数字信号处理应用的发展。

反过来,数字信号处理的应用又促进了数字信号处理理论的提高。

而数字信号处理的实现则是理论和应用之间的桥梁。

数字信号处理是以众多的学科为理论基础的,它所涉及的范围及其广泛。

例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。

一些新兴的学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。

可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。

长期以来,信号处理技术—直用于转换或产生模拟或数字信号。

其中应用得最频繁的领域就是信号的滤波。

此外,从数字通信、语音、音频和生物医学信号处理到检测仪器仪表和机器人技术等许多领域中,都广泛地应用了数字信号处理(digitalsignalprocessing,DSP)技术。

数字信号处理己经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统。

设计目的

1.通过课程设计加深对DSP软件有关知识的学习与应用。

2.学习汇编语言并能熟练掌握与应用。

3.了解定时中断原理。

设计任务

1.设计一个信号发生器(方波)。

2.在XF引脚上输出任意频率的方波。

2设计过程

设计原理

作为本设计的核心器件,DSP芯片的运算能力要求比较高,同时又存在运算过程中大量数据交换的特点。

方波信号发生器是信号中最常见的一种,它能输出一个幅度可调、频率可调的方波信号,在科学研究及生产实践中均有着广泛应用。

目前,常用的信号发生器绝大部分是由模拟电路构成的,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积大和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵,而本文借助DSP运算速度高,系统集成度强的优势设计的这种信号发生器,比以前的数字式信号发生器具有速度更快,且实现更加简便。

这里说明一下使用TI公司的DSP芯片TMS320C5502(以下简称5502)来产生方波信号的原理:

由于产生一个方波信号需要有一个适合的定时器来重复产生一个与方波周期相同的计数周期,并用一个比较寄存器来保持调制值,因此,比较寄存器的值应不断与定时寄存器的值相比较,这样,当两个值相匹配时,就会在响应的输出上产生一个转换(从低到高或从高到低),从而产生输出脉冲,输出的开启(或关闭)时间与被调制的数值成正比,因此,改变调制数值,相关引脚上输出的脉冲信号的宽度也将随之改变。

通过TMS320C5502的事件管理器模块可以产生一定占空比的脉冲信号,而使用其中的通用定时器、全比较单元和单比较单元则均可发出脉冲,由DSP可输出一系列等幅不等宽的波形信号,这些信号再经过外围一系列调理电路的变换之后,便可以得到所需要方波信号了。

事实上,在硬件上,DSP有两个设计一样的事件管理模块(EVA/EVB),每一个事件管理模块都有6个输出口,故可输出两组方波,一般均可满足通常的设计需要。

XF引脚周期性变化

最简单的程序:

循环对XF位置1和清0,用示波器可以在XF脚检测到电平高低周期性变化。

.mmregs;预定义的寄存器

.defCodeStart;定义程序入口标记

.text;程序区

CodeStart:

;程序入口

BSETXF;XF置1

RPT#999;重复执行1000次空指令产生延时

NOP

BCLRXF;XF清0

RPT#999;重复执行1000次空指令产生延时

NOP

BCodeStart;跳转到程序开头循环执行

.end

NOP指令执行时间为一个时钟周期,设DSP工作频率是50MHz,可以估算出XF引脚电平的变化频率约为:

50M/2000=25kHz

在没有示波器的情况下,就要将这个程序稍作改进,增加延时,用一个延时子程序将XF脚电平变化频率降到肉眼可分辨的程度,就可以用LED来显示电平的变化。

子程序的调用

对稍作改进,用延时子程序设置较长的延时,可以用试验板上的LED看到XF引脚电平的变化

.mmregs;预定义的寄存器

.defCodeStart;定义程序入口标记

.text;程序区

CodeStart:

;程序入口

BSETXF;XF置1

CALLDelay;调用延时程序

BCLRXF;XF清0

CALLDelay;调用延时程序

BCodeStart;跳转到程序开头循环执行

;延时子程序:

Delay

;用两级减一计数器来延时。

调整AR1和AR2的大小LED闪烁的频率不同

Delay:

MOV#999,*AR1;循环次数1000

LOOP1:

MOV#4999,*AR2;循环次数5000

LOOP2:

BCCLOOP2,*AR2-;如果AR2不等于0,AR2减1,再判断

BCCLOOP1,*AR1-;如果AR1不等于0AR1减1,跳转到LOOP1

RET

.end

3程序代码

源程序

;方波与程序清单

.mmregs

.def_c_int00

.refsdram_init

tim0.set0x1000

prd0.set0x1001

tcr0.set0x1002

prsc0.set0x1003

sysr.set0x07fd

clkmd.set0x1c00

pdp_timer0.settim0/128

STACK.usect".stack",200h

SYSSTACK.usect".sysstack",200h

.bssa1,1

.data

.sect".vectors"

rsv:

b_c_int00

nop

.align8

nmi:

.loop8

nop

.endloop

int0:

.loop8

nop

.endloop

int2:

.loop8

nop

.endloop

tint0:

b_Timer0

nop

.align8

;主程序:

.text

_c_int00:

amov#0,xdp

amov#STACK+200h,xsp

amov#SYSSTACK+200h,xssp

bsetintm

mov#1,@ivpd

mov#1,@ivph

mov#10h,@ier0

mov#10h,@dbier0

mov#0,@ier1

mov#0ffffh,@ifr0

mov#0ffffh,@ifr1

callsdram_init

mov#pdp_timer0,pdp

mov#04f0h,port(tcr0)

mov#0h,port(tim0)

mov#0ffffh,port(prd0)

mov#15h,port(prsc0)

mov#0e0h,port(tcr0)

bclrintm

amov#a1,xdp

mov#0,ac0

movac0,@a1

loop:

Nop

bloop

_Timer0:

mova1,ac0

bccLoop1,ac0==#1

bLoop2

Loop1:

bsetxf

mov#0,a1

bnext

Loop2:

bclrxf

mov#1,a1

Next:

reti

.end

SDRAM初始化程序

.defsdram_init

ebsr.set0x6c00

egcr.set0x800

emirst.set0x801

emibe.set0x802

ce01.set0x803

ce02.set0x804

ce03.set0x805

ce11.set0x806

ce12.set0x807

ce13.set0x808

ce21.set0x809

ce22.set0x80A

ce23.set0x80B

ce31.set0x80C

ce32.set0x80D

ce33.set0x80E

sdc1.set0x80F

sdper.set0x810

sdcnt.set0x811

init.set0x812

sdc2.set0x813

sdram_pdp.setegcr/128

.text

sdram_init:

mov#0xa01,port(#ebsr);*ebsr=0xa01

mov#sdram_pdp,pdp

mov#0x220,port(@egcr);*egcr=0x220

mov#0x3000,port(@ce01);*ce01=0X3000

mov#0x1fff,port(@ce11);*ce11=0X1fff

mov#0x1fff,port(@ce21);*ce21=0x1fff

mov#0x1fff,port(@ce31);*ce31=0x1fff

mov#0x0,port(@emirst);*emirst=0

mov#0x5958,port(@sdc1);*sdc1=0X5958

mov#0x38f,port(@sdc2);*sdc2=0X38F

mov#0x0,port(@init);*init=0

ret

.end

方波程序连接命令文件

MEMORY

{

PAGE0:

MMR:

origin=00000000h,length=00000c0h

SPRAM:

origin=00000c0h,length=0000040h

VECS:

origin=0000100h,length=0000100h

DARAM0:

origin=0000200h,length=0001E00h

DARAM1:

origin=0002000h,length=0002000h

DARAM2:

origin=0004000h,length=0002000h

DARAM3:

origin=0006000h,length=0002000h

}

SECTIONS

{

.vectors:

{}>VECSPAGE0

.bss:

{}>DARAM0PAGE0

.stack:

{}>DARAM1PAGE0

.sysstack:

{}>DARAM1PAGE0

.text:

{}>DARAM2PAGE0

.data:

{}>DARAM3PAGE0

}

4调试仿真运行结果分析

所有程序经调试无误,全部正常运行,根据定时器长度计算公式:

Tt=T*(1+TDDR)*(1+PRD),通过修改TDDR与PRD的值便可在XF引脚上输出频率任意频率的方波。

寄存器仿真结果

在mov#0,a1设置断点,当程序运行到此位置时XF位已被置为1。

图XF引脚输出1

在mov#1,a1设置断点,当程序运行到此位置时XF位已被置为0。

图XF引脚输出0

当程序再次运行到mov#0,a1断点时,XF位又再一次被置为1。

图XF引脚再次输出1

模拟输出仿真

打开CCS的View——GraphPropertyDialog菜单,打开图形属性对话框,在对话框中修改相应参数,如图所示。

图图形显示窗口设置菜单

运行程序,在时域图观察视窗中的得到如图所示的波形图。

图图形显示XF引脚输出结果

5.设计总结

在本次课程设计中,对设计的信号发生器(方波)进行调试时采用了集成开发环境CodeComposerStudio(CCS),对C55xx用汇编语言进行调试。

本文以基于DSP的信号发生器(方波)的设计为题,完成了在XF引脚上输出任意频率的方波的任务。

但是上述工作尚有许多不成熟、不完善的地方,这就需要今后进一步开展的工作。

在这次课程设计从开始到完成,我得到了许多人的帮助。

首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。

在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。

其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。

同时也感谢学院为我提供良好的做毕业设计的环境。

最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。

参考文献

[1]方华刚.DSP原理与应用.北京.北京机械工业出版社,

[2]程佩青.数字信号处理教程第二版.北京.清华大学出版社,

[3]孙宗瀛.TMS320C5xDSP原理设计与应用.北京.清华大学出版社,2002

[4]郑红吴冠.TMS320C54XDSP应用系统设计.北京.北京航空航天大学出版社,2002

[5]TMS320C55XDSPProgrammer’sGuideSPRU376A[Z].TexasInstruments,2001

[6]TMS320C55XDSPMnemonicInstructionSetReferenceGuideSORU374G[Z].TexasInstrument2005

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1