DSP课程设计1.docx
- 文档编号:11243068
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:29
- 大小:438.61KB
DSP课程设计1.docx
《DSP课程设计1.docx》由会员分享,可在线阅读,更多相关《DSP课程设计1.docx(29页珍藏版)》请在冰豆网上搜索。
DSP课程设计1
苏州市职业大学
课程设计说明书
名称正弦信号发生器
2010年6月21日至2010年6月27日共1周
院 系电子信息工程系
班级08通信
(1)班
姓名
学号
系 主 任曹丰文
教研室主任苏品刚
指导教师
目录
第一章绪论1
第二章DSP芯片的介绍3
2.1DSP芯片的特点3
2.1.1DSP芯片主要特点3
2.1.2DSP芯片的优缺点4
2.2DSP芯片的分类4
2.3DSP芯片的应用5
2.4TMS320C54X芯片的介绍6
第三章CCS集成开发工具9
3.1CCS是什么9
3.2CCS窗口简介10
3.2.1CCS窗口示例10
3.2.2CCS中常用的工具11
3.3CCS的安装与设置11
第四章正弦信号发生器的实现过程13
4.1正弦信号发生器的理论实现13
4.1.1常用的理论实现方法13
4.1.2编程实现13
4.2调试过程18
第五章实验心得与体会23
第一章绪论
数字信号处理是20世纪60年代,随着信息学科和计算机学科的高速发展而迅速发展起来的一门新兴学科。
它的重要性日益在各个领域的应用中表现出来。
其主要标志是两项重大进展,即快速傅里叶变换(FFT)算法的提出和数字滤波器设计方法的完善。
数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。
例如:
滤波、检测、变换、增强、估计、识别、参数提取、频谱分析等。
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。
因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。
而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。
数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。
数字信号处理的研究方向应该更加广泛、更加深入.特别是对于谱分析的本质研究,对于非平稳和非高斯随机信号的研究,对于多维信号处理的研究等,都具有广阔前景。
数字信号处理技术发展很快、应用很广、成果很多。
多数科学和工程中遇到的是模拟信号。
以前都是研究模拟信号处理的理论和实现。
模拟信号处理缺点:
难以做到高精度,受环境影响较大,可靠性差,且不灵活等。
数字系统的优点:
体积小、功耗低、精度高、可靠性高、灵活性大、易于大规模集成、可进行二维与多维处理。
随着大规模集成电路以及数字计算机的飞速发展,加之从60年代末以来数字信号处理理论和技术的成熟和完善,用数字方法来处理信号,即数字信号处理,已逐渐取代模拟信号处理。
数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们所需要的信号形式。
数字信号处理是将信号以数字方式表示并处理的理论和技术。
数字信号处理与模拟信号处理是信号处理的子集。
数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。
数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。
数字信号处理在理论上的发展推动了数字信号处理应用的发展。
反过来,数字信号处理的应用又促进了数字信号处理理论的提高。
而数字信号处理的实现则是理论和应用之间的桥梁。
数字信号处理是以众多的学科为理论基础的,它所涉及的范围及其广泛。
例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。
一些新兴的学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。
可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
长期以来,信号处理技术—直用于转换或产生模拟或数字信号。
其中应用得最频繁的领域就是信号的滤波。
此外,从数字通信、语音、音频和生物医学信号处理到检测仪器仪表和机器人技术等许多领域中,都广泛地应用了数字信号处理(digitalsignalprocessing,DSP)技术。
数字信号处理己经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统。
世界上三大DSP芯片生产商:
1.德克萨斯仪器公司(TI)2.模拟器件公司(ADI)3.摩托罗拉公司(Motorola).这三家公司几乎垄断了通用DSP芯片市场。
数字信号处理的书籍很多,其中以麻省理工学院奥本海姆编著的《DiscreteTimeSignalProcessing》最为经典,有中译本《离散时间信号处理》由西安交通大学出版。
现在是第二版。
第二章DSP芯片的介绍
2.1DSP芯片的特点
DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。
DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速的实现各种数字信号处理算法。
2.1.1DSP芯片主要特点
根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:
在一个指令周期内可完成一次乘法和一次加法。
程序和数据空间分开,可以同时访问指令和数据。
片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。
具有低开销或无开销循环及跳转的硬件支持。
快速的中断处理和硬件I/O支持。
具有在单周期内操作的多个硬件地址产生器。
可以并行执行多个操作。
支持流水线操作,使取指、译码和执行等操作可以重叠执行。
与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。
2.1.2DSP芯片的优缺点
DSP芯片主要应用在信号处理、图像处理、仪器、声音语言、控制军事、通讯、医疗、家用电器等诸多领域。
其优点主要有:
大规模集成性、稳定性好、精度高、可编程性、高速性能、可嵌入性、接口和集成方便;缺点主要有:
成本较高、高频时钟的高频干扰、功率消耗较大等。
2.2DSP芯片的分类
DSP芯片可以按照下列三种方式进行分类。
1.按基础特性分
这是根据DSP芯片的工作时钟和指令类型来分类的。
如果在某时钟频率范围内的任何时钟频率上,DSP芯片都能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称为静态DSP芯片。
例如,日本OKI电气公司的DSP芯片、TI公司的TMS320C2XX系列芯片属于这一类
如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码机管脚结构相互兼容,则这类DSP芯片称为一致性DSP芯片。
例如,美国TI公司的TMS320C54X就属于这一类。
2.按数据格式分
这是根据DSP芯片工作的数据格式来分类的。
数据以定点格式工作的DSP芯片称为定点DSP芯片,如TI公司的TMS320C1X/C2X、TMS320C2XX/C5X、TMS320C54X/C62XX系列,AD公司的ADSP21XX系列,AT&T公司的DSP16/16A,Motolora公司的MC56000等。
以浮点格式工作的称为浮点DSP芯片,如TI公司的TMS320C3X/C4X/C8X,AD公司的ADSP21XXX系列,AT&T公司的DSP32/32C,Motolora公司的MC96002等。
不同浮点DSP芯片所采用的浮点格式不完全一样,有的DSP芯片采用自定义的浮点格式,如TMS320C3X,而有的DSP芯片则采用IEEE的标准浮点格式,如Motorola公司的MC96002、FUJITSU公司的MB86232和ZORAN公司的ZR35325等。
3.按用途分
按照DSP的用途来分,可分为通用型DSP芯片和专用型DSP芯片。
通用型DSP芯片适合普通的DSP应用,如TI公司的一系列DSP芯片属于通用型DSP芯片。
专用DSP芯片是为特定的DSP运算而设计的,更适合特殊的运算,如数字滤波、卷积和FFT,如Motorola公司的DSP56200,Zoran公司的ZR34881,Inmos公司的IMSA100等就属于专用型DSP芯片。
2.3DSP芯片的应用
数字信号处理(DSP)芯片是一种特别适合于进行数字信号处理运算的微处理器可实时快速地实现各种数字信号处理算法。
自20世纪80年代初诞生以来已广泛应用于通信、电子、航空航天、军事及家电产品成为一种十分重要的电子产品的核心部件。
DSP芯片得到了飞速的发展。
DSP芯片的高速发展,一方面得益于集成电路技术的发展,另一方面也得益于巨大的市场。
在近20年时间里,DSP芯片已经在信号处理、通信、雷达等许多领域得到广泛的应用。
目前,DSP芯片的价格越来越低,性能价格比日益提高,具有巨大的应用潜力。
DSP芯片的应用主要有:
(1)信号处理——如数字滤波、自适应滤波、快速傅立叶变换、相关运算、谱分析、卷积、模式匹配、加窗、波形产生等;
(2)通信——如调制解调器、自适应均衡、数据加密、数据压缩、回波抵消、多路复用、传真、扩频通信、纠错编码、可视电话等;
(3)语音——如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音存储等;
(4)图形/图像——如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等;
(5)军事——如保密通信、雷达处理、声纳处理、导航、导弹制导等;
(6)仪器仪表——如频谱分析、函数发生、锁相环、地震处理等;
(7)自动控制——如引擎控制、声控、自动驾驶、机器人控制、磁盘控制等;
(8)医疗——如助听、超声设备、诊断工具、病人监护等;
(9)家用电器——如高保真音响、音乐合成、音调控制、玩具与游戏、数字电话/电视等。
随着DSP芯片性能价格比的不断提高,可以预见DSP芯片将会在更多的领域内得到更为广泛的应用。
2.4TMS320C54X芯片的介绍
TMS320C54x系列DSP芯片是使用静态CMOS技术制造的。
其方框图见图2-1,从图中可以看出C54x系列DSP芯片具有以下功能单元:
总线
C54x共有八条总线分别是:
PB:
程序读取总线CB:
数据读取总线1
DB:
数据读取总线2EB:
数据写入总线
PAB:
程序读取地址总线CAB:
数据读取地址总线1
DAB:
数据读取地址总线2EAB:
数据写入地址总线
中央处理器(CPU)
CPU由以下几个部件组成:
先进的多总线结构:
包括三个独立的数据总线和一个程序总线
40位的算术逻辑单元:
包括一个40位移位器和两个独立的40位累加器
17bit17bit的并行乘法器同一个专用的加法器相配合:
用来执行不经流水线的单周期乘加(MAC)运算
指数译码器:
可以在一个周期里计算出一个40位累加器的指数值
两个地址生成器:
包括8个辅助寄存器和两个辅助寄存器算术单元
程序控制器:
对指令进行解码、管理流水线和程序流程
片上存储器
C54x共有192K字的寻址能力(64K字的程序区,64K字的数据区,和64K字的I/O区)如图2-2所示。
芯片内部采用改进的哈佛结构,允许同时取指令和取数据,而且还允许在程序空间和数据空间之间相互传送数据。
所谓哈佛结构,是将程序和数据的存贮空间分开,各有各的地址总线和数据总线。
这样同一条指令可以同时对不同的存贮空间进行读操作或写操作,从而提高了处理速度。
C54xDSP芯片还提供了块指令循环功能,此功能可以大大地提高执行循环的速度,但是此功能只能在一重循环中使用,因为它只提供了一个循环记数寄存器BRC,所以在遇到多重循环时就要尽量把这个功能用在最里层的循环中,最里层循环是执行次数最多的循环。
图2-1C54xDSP结构框图
第0页程序存储器第0页程序存储器数据存储器
保留(OVLY=1)或外部(OVLY=0)
片内DARAM(OVLY=1)或外部(OVLY=0)
外部
中断向量表(外部)
保留(OVLY=1)或外部(OVLY=0)
片内DARAM(OVLY=1)或外部(OVLY=0)
外部
片内ROM(4K字)
保留
中断向量表(片内)
存储器映像寄存器
暂存寄存器
片内DARAM(16K字)
外部
片内ROM(DROM=1)或外部(DROM=0)
保留ROM(DROM=1)或外部(DROM=0)
MP/MC=1
微处理器方式
MP/MC=1
微处理器方式
图2-2TMS320VC5402存储器空间分配图
下表1给出了部分C54x芯片的片上资源、运算能力、工作电压等。
运算能力用MIPS来度量,即每秒能执行一百万条指令的数量。
表1:
部分C54X芯片资料
DSP型号
片内RAM(字)
寻址范围
串口数
内核电压(V)
I/O电压(V)
运算能力(MIPS)
TMS320VC5416
128K
64K/8M
3
1.5
3.3
160
TMS320VC5410
64K
64K/8M
3
1.6
3.3
160
TMS320VC5409
64K
64K/8M
3
1.6
3.3
160
TMS320LC549
32K
64K/8M
3
2.5
3.3
120
TMS320LC542
10K
64K/64K
3
3.3
3.3
50
第三章CCS集成开发工具
3.1CCS是什么
通常,DSP厂商和第三方都会为DSP的开发应用提供各种各样的软硬件开发工具(代码生成工具和代码调试工具等)。
早期的DSP开发工具没有集成化,需要在DOS环境下键入比较复杂的命令,使用起来不很方便,调试、开发的效率也不高。
1999年,TI公司推出了CCS(CodeComposerStudio)集成开发工具(直译为代码设计工作室),为DSP用户提供了十分便利的开发环境。
CCS内部集成了以下软件工具:
◆DSP代码生成工具(包括DSP的C编译器、汇编优化器、汇编器和链接器等)
◆CCS集成开发工具(编辑、链接和调试DSP目标程序)。
◆实时分析插件DSP/BIOS和实时数据交换模块RTDX等(必须有硬件开发板)。
CCS是一种可视化集成开发工具,它集代码生成软件和代码调试工具
于一体,具有强大的应用开发功能:
可视化代码编辑界面:
可以直接编写汇编语言和C语言程序、.H头文件和.CMD命令文件等。
代码生成工具:
包括DSP的汇编器、C编译器和链接器等。
各种调试工具:
包括加载执行文件、运行、单步操作、设置断点、查看编辑存储器和寄存器、观察变量、评估程序和执行时间等。
探针工具:
可将PC机数据文件中的数据传到DSP,或者将DSP中数据传到PC机数据文件中,以便实现各种算法仿真和数据监视。
图形显示工具:
可以将DSP程序生成的数据绘制成时域/频域图等,以便于观察和分析。
通用扩展语言GEL:
可以让用户通过GEL语言编程,建立需要的GEL函数来扩展CCS的功能,包括配置各种参数、修改变量等。
DSP/BIOS工具:
它是DSP芯片简化了的操作系统内核,即各种DSP芯片操作系统的底层文件,为嵌入式系统应用提供基本的运行服务,具有代码较少、逻辑精简等优点。
开放式的插入架构技术:
只需安装相应的驱动程序,就能够集成第三方的专用插件。
3.2CCS窗口简介
3.2.1CCS窗口示例
CCS系统设置完成后,就可以打开CCS应用程序,在CCS集成开发环境下完成工程定义,程序的编辑、编译、链接和调试,以及程序运行结果的分析和评估等工作。
一个典型的CCS集成开发环境住窗口如图3-1所示。
该示例窗口由菜单栏、工具栏、工程窗口、源程序编辑和调试窗口、存储器窗口、CPU寄存器窗口、输出窗口等组成。
此外,还可以根据需要打开反汇编窗口、图形显示窗口、变量观察窗口,以及时钟窗口等。
图3-1CCS应用窗口示例
3.2.2CCS中常用的工具
菜单栏——和CCS所有功能相关的菜单都在这里面。
编译工具栏——编译程序时常用的一些工具。
调试工具栏——调试程序时常用的一些工具。
工程文件框——打开的工程所有文件会按类别放在这里,便于我们编程时在各个文件之间的切换。
代码编辑区——顾名思义,代码都是在这里编辑完成的了,是我们最主要的工作区域。
编译信息输出区——编译时产生的信息会在这个区域内输出,能让我们直观的了解到正在编译哪个文件,编译过程中是否产生了错误,而这些错误是哪些,由于什么原因引起的,这些内容都会显示在这里。
3.3CCS的安装与设置
CCS的安装步骤如下:
(1)将CCS的安装光盘插入计算机的CD-ROM光盘驱动器中,运行CCS安装程序Set-up.exe.按屏幕提示,将CCS系统安装到C:
\ti(默认系统)安装目录下。
安装完成后:
在桌面上将出现Set-upCCS2(’C5000)和CCS2(’C5000)两个快捷方式图标,分别对应CCS配置程序和CCS应用程序。
在C:
\ti目录下有bin、c5400、c5500、cc、docs、drivers、examples、myprojects、plugins、tutoria、uninstall共11个文件夹,以及DosRun等3个文件夹,用户的工程文件都将存放在myprojects文件夹下。
(2)单击Set-upCCS2(’C5000)快捷方式图标,运行CCS配置程序,弹出对话框如图3-2所示。
图3-2CSS配置对话框
从对话框的AvailableConfigurations列表框中选择应用平台类型。
配置完成后,保存设置并退出。
CCS系统将C5402软件仿真器作为系统配置,显示在SystemConfiguration列表框中。
第四章正弦信号发生器的实现过程
4.1正弦信号发生器的理论实现
开始
4.1.1常用的理论实现方法
初始化设置
调用sin.cos程序计算0~45°值
在通信、仪器和控制等领域的信号处理系统中,可能会用到正弦波信号发生器。
一般来说产生正弦波的方法有两种:
Sin2a=2sina*cosa求0~90°的sin值(间隔为1°)
查表法:
此方法用于对精度要求不高的场合,如果要求精度高,表就很大,相应的存储器容量也要增大。
重复向PA口输出
重复得到0~359°正弦值
泰勒级数展开法。
这是一种更为有效的方法。
与查表法相比,该方法需要的存储单元很少,而且精度高。
正弦波
一个角度正弦和余弦函数,都可以展开成泰勒级数,取其前5项进行近似。
图4-1程序流程图
结束
本次课程设计利用泰勒级数展开法求正弦值,产生正弦波。
软件流程图如图4-1
4.1.2编程实现
先计算0~45°(间隔为0.5°)的sin和cos值,在利用sin2a=2sina*cosa求出sin值(间隔为1°)。
然后,通过复制,获得0~359°的正弦值。
重复向PA口输出,便可得到正弦波。
程序如下:
1.产生正弦波程序清单sin.asm:
.title"sin.asm";为汇编文件取名为“sin.asm”
.mmregs;定义存储器映像寄存器
.def_c_int00
.refsinx,d_xs,d_sinx,cosx,d_xc,d_cosx;定义标号
sin_x:
.usect"sin_x",360;为"sin_x"保留360个存储空间
STACK:
.usect"STACK",10;为堆栈保留10个存储空间
k_theta.set286;theta=pi/360(0.5deg)
PA0.set0
_c_int00
.text;定义文本程序代码段
STM#STACK+10,SP;设置堆栈指针
STMk_theta,AR0;AR0-->K_theta(increment)
STM0,AR1;(AR1)=X(rad)
STM#sin_x,AR6;AR6-->sin(x)
STM#90,BRC;formsin0(deg.)—sin90(deg)
;重复执行块语句(下条语句开始至loop1-1)91次
RPTBloop1-1
LDMAR1,A
LD#d_xs,DP;DPd_xs
STLA,@d_xs;(A)低16位→d_xs
STLA,@d_xc;(A)低16位→d_xc
CALLsinx;调用sinx程序
CALLcosx;调用conx程序
LD#d_sinx,DP;DPd_sinx
LD@d_sinx,16,A;A=sin(x)
MPYA@d_cosx;B=sin(x)*cos(x)
STHB,1,*AR6+;AR6-->2*sin(x)*cos(x)
MAR*AR1+0;修改辅助寄存器AR1
loop1:
STM#sin_x+89,AR7;sin91(deg.)--sin179(deg.)
STM#88,BRC;重复执行下条指令至loop2-1
RPTBloop2-1;处90次
LD*AR7-,A;((AR7))→A,然后AR7减去1
STLA,*AR6+;(A)低16位→AR6
loop2:
STM#179,BRC;sin180(deg.)--sin359(deg.)
;(BRC)=179,重复执行180次
STM#sin_x,AR7;AR7指向sin_x首地址
RPTBloop3-1;
LD*AR7+,A;((AR7))→A,然后AR7加1
NEGA;累加器变负
STLA,*AR6+;A低16位→AR6
loop3:
STM#sin_x,AR6;generatesinwaveAR6指向sin_x
STM#1,AR0;AR01
STM#360,BK;BK360
loop4:
PORTW*AR6+0%,PA0;PA0=*AR6+0%,向PA0输出数据
Bloop4;
sinx:
.defd_xs,d_sinx;定义标号d_xs,d_sinx
.data;定义数据代码段
table_s.word01c7h;c1=1/(8*9)
.word030bh;c1=1/(6*7)
.word0666h;c1=1/(4*5)
.word1556h;c1=1/(2*3)
d_coef_s.usect"coef_s",4;为"coef_s"保留4个存储空间
d_xs.usect"sin_vars",1;为d_xs中sin_vars保留1个存储空间
d_squr_xs.usect"sin_vars",1;为d_squr_xs中sin_vars保留1个存储空间
d_temp_s.usect"sin_vars",1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 课程设计