DSP实验指导书.docx
- 文档编号:8872615
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:71
- 大小:989.71KB
DSP实验指导书.docx
《DSP实验指导书.docx》由会员分享,可在线阅读,更多相关《DSP实验指导书.docx(71页珍藏版)》请在冰豆网上搜索。
DSP实验指导书
广东石油化工学院
D
S
P
实
验
指
导
书
第一章、数字信号处理及DSP芯片概述
随着信息技术革命的深入和计算机技术的飞速发展,数字信号处理技术已经逐渐发展成为一门关键的学科。
而DSP芯片的出现则为数字信号处理算法的实现提供了可能。
这一方面极大的促进了数字信号处理技术的进一步发展,另一方面,它也使数字信号处理的应用领域得到了极大的拓展。
DSP芯片,即数字信号处理器,是专门为快速实现各种数字信号处理算法而设计的、具有特殊的结构的微处理器。
它具有以下特点:
(1)内部采用程序和数据分开的哈佛总线结构;
(2)具有专门的硬件乘法器;(3)广泛采用流水线操作;(4)提供特殊的DSP指令集。
目前在微电子发展的带动下,DSP的发展日新月异。
DSP的功能也日益强大,性能价格比不断上升,开发手段不断改进,从而促进了数字信号处理器在众多领域中的应用。
DSP芯片已经在通信与电子系统、信号处理系统、自动控制、雷达、军事、航空航天、医疗、家用电器、电力系统等许多领域得到了广泛的应用,而且新的领域不断的被发掘。
数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。
例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。
近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。
可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
数字信号处理的实现方法一般有以下几种:
(1)在通用的计算机(如PC机)上用软件(如Fortran、C语言)实现;
(2)在通用计算机系统中加上专门的加速处理机实现;
(3)用通用的单片机(如MCS-51、96系列等)实现,这种方法可用于一些不太复杂的数字信号处理,如数字控制等;
(4)用通用的可编程DSP芯片实现。
与单片机相比,DSP芯片具有更加适合于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法;
(5)用专用的DSP芯片实现。
在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片很难实现,例如专用于FFT、数字滤波、卷积、相关等算法的DSP芯片,这种芯片将相应的信号处理算法在芯片内部用硬件实现,无需进行编程。
在上述几种方法中,第1种方法的缺点是速度较慢,一般可用于DSP算法的模拟;第2种和第5种方法专用性强,应用受到很大的限制,第2种方法也不便于系统的独立运行;第3种方法只适用于实现简单的DSP算法;第4种方法才使数字信号处理的应用打开了新的局面。
虽然数字信号处理的理论发展迅速,但在20世纪80年代以前,由于实现方法的限制,数字信号处理的理论还得不到广泛的应用。
直到20世纪70年代末80年代初世界上第一片单片可编程DSP芯片的诞生,才将理论研究结果广泛应用到低成本的实际系统中,并且推动了新的理论和应用领域的发展,可以毫不夸张地说,DSP芯片的诞生及发展对近20年来通信、计算机、控制等领域的技术发展起到十分重要的作用。
本章主要讲述有关DSP的一些基础知识,介绍DSP技术的发展历史,特点以及相关的应用领域、如何根据自己的具体需求制定系统解决方案以及选择合适的数字信号处理器来实现等。
1.1数字信号处理系统
1.1.1数字信号处理系统的构成
图1.1所示为一个典型的DSP系统。
图中的输入信号可以有各种各样的形式。
例如,它可以是麦克风输出的语音信号或是电话线来的已调数据信号,可以是编码后在数字链路上传输或存储在计算机里的摄像机图像信号等。
图1.1典型的DSP系统
输入信号首先进行带限滤波和抽样,然后进行A/D(AnalogtoDigital)变换将信号变换成数字比特流。
根据奈奎斯特抽样定理,为保证信息不丢失,抽样频率至少必须是输入带限信号最高频率的2倍。
DSP芯片的输入是A/D变换后得到的以抽样形式表示的数字信号,DSP芯片对输入的数字信号进行某种形式的处理,如进行一系列的乘累加操作(MAC)。
数字处理是DSP的关键,这与其他系统(如电话交换系统)有很大的不同,在交换系统中处理器的作用是进行路由选择,它并不对输入数据进行修改。
因此虽然两者都是实时系统,但两者的实时约束条件却有很大的不同。
最后,经过处理后的数字样值再经D/A(DigitaltoAnalog)变换转换为模拟样值,之后再进行内插和平滑滤波就可得到连续的模拟信号波形。
必须指出的是,上面给出的DSP系统模型是一个典型模型,但并不是所有的DSP系统都必须具有模型中的所有部件。
如语音识别系统在输出端并不是连续的波形,而是识别结果,如数字、文字等;有些输入信号本身就是数字信号如CD:
CompactDisk,因此就不必进行模数变换了。
1.1.2数字信号处理系统的特点
数字信号处理系统是以数字信号处理为基础,因此具有数字处理的全部优点:
(1)接口方便:
DSP系统与其他以现代数字技术为基础的系统和设备都是相互兼容的,与这样的系统接口以实现某种功能要比模拟系统与这些系统接口容易很多;
(2)编程方便:
DSP系统中的可编程DSP芯片可使设计人员在开发过程中灵活方便地对软件进行修改和升级;
(3)稳定性好:
DSP系统以数字处理为基础,受环境温度以及噪音的影响较小,可靠性高;
(4)精度高:
16位数字系统可以达到10-5的精度;
(5)可重复性好:
模拟系统的性能受到元器件参数影响性能变化比较大,而数字系统基本不受影响,因此数字系统便于测试、调试和大规模生产;
(6)集成方便:
DSP系统中的数字部件有高度的规范性,便于大规模集成。
当然,数字信号处理也存在一定的缺点。
例如,对于简单的信号处理任务,如与模拟交换线的电话接口,若采用DSP则使成本增加。
DSP系统中的高速时钟可能带来高频干扰和电磁泄漏等问题,而且DSP系统消耗的功率也较大。
此外,DSP技术更新的速度快,数学知识要求多,开发和调试工具还不尽完善。
虽然DSP系统存在着一些缺点,但其突出的优点已经使之在通信、语音、图像、雷达、生物医学、工业控制、仪器仪表等许多领域得到越来越广泛的应用。
1.2DSP芯片的应用
自从20世纪70年代末80年代初DSP芯片诞生以来,DSP芯片得到了飞速的发展。
DSP芯片的高速发展,一方面得益于集成电路技术的发展,另一方面也得益于巨大的市场。
在近20年时间里,DSP芯片已经在信号处理、通信、雷达等许多领域得到广泛的应用。
目前,DSP芯片的价格越来越低,性能价格比日益提高,具有巨大的应用潜力。
DSP芯片的应用主要有:
(1)信号处理——如数字滤波、自适应滤波、快速傅立叶变换、相关运算、谱分析、卷积、模式匹配、加窗、波形产生等;
(2)通信——如调制解调器、自适应均衡、数据加密、数据压缩、回波抵消、多路复用、传真、扩频通信、纠错编码、可视电话等;
(3)语音——如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音存储等;
(4)图形/图像——如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等;
(5)军事——如保密通信、雷达处理、声纳处理、导航、导弹制导等;
(6)仪器仪表——如频谱分析、函数发生、锁相环、地震处理等;
(7)自动控制——如引擎控制、声控、自动驾驶、机器人控制、磁盘控制等;
(8)医疗——如助听、超声设备、诊断工具、病人监护等;
(9)家用电器——如高保真音响、音乐合成、音调控制、玩具与游戏、数字电话/电视等。
随着DSP芯片性能价格比的不断提高,可以预见DSP芯片将会在更多的领域内得到更为广泛的应用。
第二章、DSP芯片的基本结构和特征
可编程DSP芯片是一种具有特殊结构的微处理器,为了达到快速进行数字信号处理的目的,DSP芯片一般都具有程序和数据分开的总线结构、流水线操作功能、单周期完成乘法的硬件乘法器以及一套适合数字信号处理的指令集。
本章将首先介绍DSP芯片的基本结构,然后介绍TI公司的各种DSP芯片的特征,最后简要介绍其他公司的DSP芯片的特点。
2.1DSP芯片的基本结构
为了快速地实现数字信号处理运算,DSP芯片一般都采用特殊的软硬件结构。
下面以TMS320系列为例介绍DSP芯片的基本结构。
TMS320系列DSP芯片的基本结构包括:
(1)哈佛结构;
(2)流水线操作;(3)专用的硬件乘法器;(4)特殊的DSP指令;(5)快速的指令周期。
这些特点使得TMS320系列DSP芯片可以实现快速的DSP运算,并使大部分运算(例如乘法)能够在一个指令周期内完成。
由于TMS320系列DSP芯片是软件可编程器件,因此具有通用微处理器具有的方便灵活的特点。
下面分别介绍这些特点是如何在TMS320系列DSP芯片中应用并使得芯片的功能得到加强的。
2.1.1哈佛结构
哈佛结构是不同于传统的冯·诺曼(VonNeuman)结构的并行体系结构,其主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。
与两个存储器相对应的是系统中设置了程序总线和数据总线两条总线,从而使数据的吞吐率提高了一倍。
而冯·诺曼结构则是将指令、数据、地址存储在同一存储器中,统一编址,依靠指令计数器提供的地址来区分是指令、数据还是地址。
取指令和取数据都访问同一存储器,数据吞吐率低。
在哈佛结构中,由于程序和数据存储器在两个分开的空间中,因此取指和执行能完全重叠运行。
为了进一步提高运行速度和灵活性,TMS320系列DSP芯片在基本哈佛结构的基础上作了改进,一是允许数据存放在程序存储器中,并被算术运算指令直接使用,增强了芯片的灵活性;二是指令存储在高速缓冲器(Cache)中,当执行此指令时,不需要再从存储器中读取指令,节约了一个指令周期的时间。
如TMS320C30具有64个字的Cache。
2.1.2流水线
与哈佛结构相关,DSP芯片广泛采用流水线以减少指令执行时间,从而增强了处理器的处理能力。
TMS320系列处理器的流水线深度从2~6级不等。
第一代TMS320处理器采用二级流水线,第二代采用三级流水线,而第三代则采用四级流水线。
也就是说,处理器可以并行处理2~6条指令,每条指令处于流水线上的不同阶段。
图2.1所示为一个三级流水线操作的例子。
在三级流水线操作中,取指、译码和执行操作可以独立地处理,这可使指令执行能完全重叠。
在每个指令周期内,三个不同的指令处于激活状态,每个指令处于不同的阶段。
例如,在第N个指令取指时,前一个指令即第N-1个指令正在译码,而第N-2个指令则正在执行。
一般来说,流水线对用户是透明的。
图2.1三级流水线操作
2.2TI定点DSP芯片
自1982年TI推出第一个定点DSP芯片TMS32010以来,TI的定点DSP芯片已经历了TMS320C1X、TMS320C2X/C2XX、TMS320C5X、TMS320C54X、TMS320C62X等几代产品,产品的性能价格比不断提高,应用越来越广泛。
下面分别介绍这些芯片的主要特征。
2.2.1TMS320C50的基本特征
TMS320C50的主要特点包括:
25/35/50ns的指令周期(20~40MIPS)
224K×16位最大可寻址外部存储空间(64K程序、64K数据、64KI/O、32K全局)
算术逻辑单元(ALU),32位累加器(ACC)以及32位加法器的缓冲器(ACCB)
并行逻辑单元(PLU)
结果具有32位的16×16位并行乘法器
单周期乘累加指令
具有一个专用算术单元的8个辅助寄存器,可用于间接寻址
8级硬件堆栈
0~16位数据左移和右移
两个间接寻址的循环缓冲器,用于循环寻址
程序代码的单指令重复和程序块重复
全双工同步串行口,用于完成TMS320C5X与其他串行器件之间的直接通信
时分多址访问(TDM)串行口
内部定时器,可用软件控制
64K并行I/O口,其中16个有存储器映像
可软件编程的等待状态发生器
扩展保持操作,用于并发外部DMA
四级流水线操作,用于延迟跳转、调用、返回指令
比特反转寻址方式,用于FFT运算
JTAG扫描仿真接口(IEEE标准,P1149.1)
第三章、数字信号处理系统设计和开发
一个简单的DSP系统的设计和开发的流程如图,从下图可以看出,在设计和开发前,设计者需要对设计系统的要求有清楚的了解,在确定系统的设计指标后进入具体的设计阶段。
首先,要选择DSP芯片,目的是选择能够满足设计要求,性能价格比最优的方案。
选择DSP芯片后开始应用设计。
应用设计包括硬件和软件设计。
在开发过程中,硬件和软件是相互依赖的,硬件设计者和软件设计者应该对彼此的工作有很好的了解,而不应该相互独立地工作。
如有必要的开发工具支持,硬件和软件设计完成后,进入系统集成阶段。
系统集成的任务是使软件和硬件相配合,完成原理样机的系统功能测试。
在这个阶段,硬件仿真器(Emluator)是最好的工具。
如系统测试结果符合设计指标,则样机设计完成;如不合格,则要对软件或硬件进行修改,以满足设计要求。
本章重点介绍数字信号处理系统开发的一般步骤和相关工具的使用方法,使用户能够对DSP系统的开发方法有一个较深入的了解。
能够熟练的运用我公司的DSP实验教学系统。
3.1硬件仿真器的使用
硬件仿真器是数字信号处理系统开发的必备工具,它是采用边界扫描技术和DSP芯片通过JTAG口相连接。
实现了主机对DSP芯片的完全检测和控制。
可以通过JTAG和相应的软件调试环境实现数字信号处理系统的硬件调试和软件的再现调试开发工作。
下面给出JTAG的定义:
3.2CCS文件名介绍
在使用CCS前,应该先了解以下软件的文件名约定:
●Project.makCCS定义的工程文件
●Program.cC程序文件
●Program.asm汇编语言程序文件
●Filename.hC语言的头文件,包括DSP/BIOSAPI模块
●Filename.lib库文件
●Project.cmd连接命令文件
●Program.obj编译后的目标文件
●Program.out可在目标DSP上执行的文件,可在CCS监控下调试/执行
●Project.wks工作空间文件,可以记录你的工作环境设置、
●Program.cdbCCS的设置数据库文件,是使用DSP/BIOSAPI必须的,其他没有使用DSP/BIOSAPI的程序也可以使用,当新建一个设置数据库时,会产生下面的文件:
ØProgramcfg.cmd
ØProgramcfg.h54
ØProgramcfg.s54
3.3编写一个简单的程序
这一部分将介绍如何在CCS下面新建一个程序,及如何编译、连接、下载、调试程序。
3.3.1新建一个工程文件
(1)如果你的CCS安装在c:
\ti目录下,请在c:
\ti\myproject目录下新建一个目录,名为test
(2)将光盘test文件夹下的所有文件拷贝到新目录中(修改只读属性)
(3)运行CCS程序
(4)选择Project/New菜单
(5)在SaveNewProjectAs窗口中,选择你新建的目录,键入test作为文件名,然后点击Save。
CCS会给你新建一个叫test.mak的工程文件,它将保存你的工程文件设置和工程引用的相关文件。
3.3.2往工程中加入文件
(1)选择Project/AddFilestoProject,在文件类型选项中选择*.c文件,选择test.c,加入文件。
(2)选择Project/AddFilestoProject。
在文件类型选项CMD文件(*.cmd),选择test.cmd。
(3)此时,可以在工作窗口的工程视窗中test.mak旁的+号,展开工程查看其中的文件。
结果如下图所示:
(4)注意此时,一些包含的文件不会出现在include目录下,编译后CCS会自动加入,不必手动执行。
3.3.3浏览代码
和Windows的浏览器相似,只要打开+号展现下面的文件,然后双击文件的图标,在主窗口就会显示相应文件的原始代码。
3.3.4编译/执行程序
(1)选择Project/RebuildAll,或工具条中的相应按钮。
(2)编译成功后,选择File/LoadProgram,选择你刚编译的可执行程序test.out。
(3)选择Debug/Run,或工具条中的相应图标。
(4)运行程序。
3.4程序调试的环境应用
3.4.1跟踪/调试程序
(1)选择Debut/Restart,重新执行程序。
(2)不全速运行,而是选择Debug/StepInto或按F8,单步执行。
(3)单步执行程序的同时,选择View/CPURegisters/CPURegister观察主要寄存器的变换。
3.4.2关于出现问题的处理
如果在CCS的编译连接过程出现问题,CCS都会给出提示,用户可以通过阅读提示,寻找问题出现在什么地方。
如果是语法上的错误,请查阅相关的语法资料;如果是环境参数设置上有问题,一般应在Project/Options中进行相应的修改(新安装程序时的默认设置不熟悉的用户最好不要随意修改)。
如果是下载过程中出现问题,可以尝试Debug/ResetDSP,或是按下硬件上的复位键。
3.5CCS软件应用和DSP编程
3.5.1概述
本节介绍DSP语言软件的开发流程和涉及到的软件开发工具。
一个DSP应用软件的标准开发流程如图所示。
由下图可见,软件开发过程中将涉及到C编译器、汇编器、链接器等开发工具。
不过,这里的C编译器不像在PC上开发C程序一样会输出目标文件(.obj),而是输出满足C5X条件的汇编程序(.asm)。
而C5X中的C编程效率是较低的,所以它的C编译器才输出汇编程序,让用户可以对该汇编程序进行最大限度的优化,提高程序效率。
C编译器将在本章后面介绍。
下面从汇编程序开始介绍软件开发流程的各个环节。
编制一个汇编程序,需要经历下列步骤:
(1)用文本编辑器(Editor)编辑满足C5X汇编器(Assembler)格式要求的汇编源程序。
(2)调用汇编器汇编该源文件,如果源文件中调用了宏,汇编器还会到宏库中搜索该宏。
(3)汇编之后生成格式为公共目标文件格式(COFF,CommonObjectFileFormat)的目标文件(.obj),称为COFF目标文件。
(4)调用链接器(Linker)链接目标文件,如果包含可运行支持库和目标文件库,链接器还会到所保护的库中搜索所需要的成员。
(5)链接之后生成可执行的COFF执行文件(.out)。
(6)将COFF执行文件下载到C5XDSP中执行,同时也可借助调试工具(DebuggingTool)对程序进行跟踪调试或优化,也可利用交叉参考列表器(Cross-referenceLister)和绝对列表器(AbsoluteLister)生成一些包含调试信息的表。
下面先介绍汇编源文件(.asm)格式。
3.5.2汇编源文件(.asm)
C5X的程序以段(Section)为基本单元构成,一个程序文件由若干段构成,每段又由若干语句(Statement)构成。
C5X的程序段分为初始化(Initialized)段和未初始化(Uninitialized)段两大类。
初始化段可以是程序代码,也可以是程序中用到的常量、数据表等。
我们可以从程序下载的角度来理解,初始化就是需要往程序空间写数据(代码或数据)的段,如同初始化程序空间一样。
而未初始化段为变量,在下载时,这些变量是没有值的,所以无需向程序空间写,只需留出一段空间以便在运行时存放变量的值。
所以这段空间在程序未运行前是没有初始化的。
段的名称和属性可以由用户自定义,如果用户不定义,汇编器将按默认的段来处理。
C5X汇编器默认的段有3个:
“.text”、“.data”、“.bss”。
其中,“.text”为程序代码段,“.data”为数据段,“.bss”为未初始化段。
用户自定义用“.sect”和“.usect”两个汇编指示符来完成,其中“.sect”用于定义初始化段,“.usect”用于定义未初始化段,语法如下:
[symbol].sect“section_name”
[symbol].usect“section_name”,length
第四章CCS软件使用
4.1、CCS50002.0版本软件的安装与设置
1.软件的安装
a)运行光盘中的客户软件\CCS50002.0\CCS2.0\setup,进入安装界面。
b)按照默认方式进行安装,装在C:
\ti下,重新启动计算机。
d)按DEL键进入CMOS的设置界面CMOSSETUPUTILITY,将IntegratedPeripherals中的OnboardParalellPort改为378/IRQ,ParrallelPortMode改为EPP,保存退出。
e)进入windows后会出现CCS2(C5000),SetupCCS2(C5000)的图标,然后运行客户软件\CCS50002.0\CCS2.0\wtdriver\WT_EPP\CCS5000drv\SetupCC54X,进入安装界面。
f)按照默认的方式安装,文件装在C:
\ti\drivers下。
2.软件设置步骤
a)打开SetupCCS2(C5000),进入设置界面,如下图所示。
b)点击InstallaDeviceDriver,进入驱动文件选择界面,如下图1所示,选择C:
\ti\drivers\sdgo5xx.dvr,然后打开,出现如图2所示界面,选择OK。
图1
图2
c)在将AvailableBoard/SimulatorType中的sdgo5xx移入SystemConfiguration中,出现如下图所示界面。
d)点击Next,出现如下图所示界面,将I/OPort中的0x240改为0x378。
e)点击Next,出现如下图所示界面,点击AddSingle。
f)点击Next,选择gel文件中的C5402.gel,点击Finish完成,退出设置界面并保存所作的修改。
3.将计算机与ZYE1801C实验箱通过并口P1相连,检查是否能够进入CCS50002.0软件。
4.2CCS50002.0版本软件的基本使用
1.CMD文件的编写
a)MEMORY:
根据程序的需要对存储器空间进行分配,一般分为程序存储器和数据存储器,分别列出起始地址origin和存储器长度length。
b)SECTION:
根据程序的需要将不同的具体的段分配到程序存储器或者数据存储器。
2.新工程文件的建立
a)先在任何目录下建立一个文件夹,如test;
b)编写好*.c(或者*.asm)文件和*.cmd文件,如test.c,test.cmd。
c)选择Project\New菜单,在SaveNewProjectAs窗口中,选择你新建的目录test,键入test作为文件名,然后点击Save。
CCS会给你新建一个叫test.mak的工程文件,它将保存你的工程文件设置和工程引用的相关文件。
3.往工程中加入文件
a)选择Project/AddFilestoProject,在文件类型选项中选择*.c文件,选择test.c,加入文件。
b)选择Project/AddFilestoProject。
在文件类型选项CMD文件(*.cmd),选择te
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 实验 指导书