DSP技术大作业文档格式.docx
《DSP技术大作业文档格式.docx》由会员分享,可在线阅读,更多相关《DSP技术大作业文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。
1.2、DSP的发展
世界上第一个单片DSP芯片是1978年AMI公司宣布的S2811,1979年美国Iintel公司发布的商用可编程器件2920是DSP芯片的一个主要里程碑。
这两种芯片内部都没有现代DSP芯片所必须的单周期芯片。
1980年,日本NEC公司推出的μPD7720是第一个具有乘法器的商用DSP
芯片。
第一个采用CMOS工艺生产浮点DSP芯片的是日本的Hitachi
公司,它于1982年推出了浮点DSP芯片。
1983年,日本的Fujitsu公司推出的MB8764,其指令周期为120ns
,且具有双内部总线,从而处理的吞吐量发生了一个大的飞跃。
而第一个高性能的浮点DSP芯片应是AT&
T公司于1984年推出的DSP32。
在这么多的DSP芯片种类中,最成功的是美国德克萨斯仪器公司(Texas
Instruments,简称TI)的一系列产品。
TI公司在1982年成功推出启迪一代DSP芯片TMS32010及其系列产品TMS32011、TMS32C10/C14/C15/C16/C17等,之后相继推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS32C30/C31/C32,第四代DSP芯片TMS32C40/C44,第五代DSP芯片TMS32C50/C51/C52/C53以及集多个DSP于一体的高性能DSP芯片TMS32C80/C82等。
自1980年以来,DSP芯片得到了突飞猛进的发展,DSP芯片的应用越来越广泛。
从运算速度来看,MAC(一次乘法和一次加法)时间已经从80年代初的400ns(如TMS32010)降低到40ns(如TMS32C40),处理能力提高了10多倍。
DSP芯片内部关键的乘法器部件从1980年的占模区的40左右下降到5以下,片内RAM增加一个数量级以上。
从制造工艺来看,1980年采用4μ的N沟道MOS工艺,而现在则普遍采用亚微米CMOS工艺。
DSP芯片的引脚数量从1980年的最多64个增加到现在的200个以上,引脚数量的增加,意味着结构灵活性的增加。
此外,DSP芯片的发展,是DSP系统的成本、体积、重量和功耗都有很大程度的下降。
第2部分硬件结构及硬件系统
TMS320C54x(简称’C54x)是TI公司为实现低功耗、高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应于远程通信等实时嵌入式应用的需要,现已广泛地应用于无线电通信系统中。
TMS320C54x的硬件结构主要分为以下几块:
2.1cpu
(1)采用先进的多总线结构,通过1组程序总线、3组数据总线和4组地址总线来实现。
(2)40位算术逻辑运算单元ALU,包括1个40位桶形移位寄存器和2个独立的40位累加器。
(3)17×
17位并行乘法器,与40位专用加法器相连,可用于进行非流水线的单周期乘法-累加运算。
(4)比较、选择、存储单元(CSSU),用于加法、比较、选择运算。
(5)指数编码器,是一个支持单周期指令EXP的专用硬件,可以在单个周期内计算40位累加器中数值的指数。
(6)双地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU)。
2.2存储器
(1)可访问的最大存储空间为192K×
16位,即64K字的程序存储器、64K字的数据存储器以及64K字的I/O空间。
(2)片内ROM,可配置为程序存储器和数据存储器。
(3)片内RAM有两种类型,即双寻址RAM(DARAM)和单寻址RAM(SARAM)。
2.3片内外设
(1)软件可编程等待状态发生器。
(2)可编程分区切换逻辑电路。
(3)带有内部振荡器或用外部时钟源的片内锁相环时钟发生器。
(4)支持全双工操作的串行口,可进行8位或16位串行通信。
(5)片内的串行口根据型号不同可分为4种:
单通道同步串行口(SP)、带缓冲器单通道同步串行口(BSP)、并行带缓冲器多通道同步串行口(McBSP)、时分多通道带缓冲器串行口(TMD)。
处理器不同串行口配置也不尽相同。
(6)可与主机直接连接的8位或16位并行主机接口(HPI)。
(7)16位可编程定时器。
(8)6通道直接存储器访问(DMA)控制器。
(9)外部总线关断控制,以断开外部的数据总线、地址总线和控制信号。
(10)数据总线具有总线保持特性。
TMS320C54xDSP的内部硬件结构如下图所示
第3部分指令系统
’C54x指令系统有两种分类方法:
1、按指令的功能分类
2、按指令所要求的周期分类
其中按指令的功能可将’C54x指令系统分为4大类,下面分别对这4大类指令系统做简单介绍。
(1)算术运算指令
算术运算指令是实现数学计算的重要指令集合。
’C54x的算术指令具有运算功能强、指令丰富等特点。
包括:
加法指令(ADD)
减法指令(SUB)
乘法指令(MPY)
乘法-累加/减指令(MAC/MAS)
双字运算指令(DADD)
特殊用途指令
加法指令共有13条如下图所示:
减法指令也包括13条如下图所示
乘法指令
乘法指令共10条如下图所示
(2)逻辑运算指令
逻辑运算指令包括与指令(AND),或指令(OR),异或指令(XOR),移位指令(ROL)和测试指令(BITF)
与指令
与指令有5条如下图所示
或指令
或指令有5条如下图所示
(3)程序控制指令
程序控制指令包括分支指令(B,BC),调用指令(CALL),中断指令(INTR,TRAP),返回指令(RET),重复指令(RPT),堆栈操作指令(FRAME,POP),其它程序控制指令(IDLE,NOP)
分支指令
分支指令有6条如下图所示
调用指令
调用指令有6条如下图所示
(4)
加载和存储指令
加载和存储指令包括一般的加载和存储指令(LD,ST),条件存储指令(CMPS,SACCD),并行的读取和乘法指令(LD‖MAC),并行的读取和存储指令(LD‖ST),并行的存储和乘法指令(ST‖MAC),并行的读取和加减指令(LD‖ADD,LD‖SUB)以及其他读取类型和存储类指令(MVDD,PORTW,READA)
.加载指令
加载指令共21条,见下图
存储指令
存储指令有14条如下所示
第4部分软件开发及CCS集成开发环境
CCS开发流程如下所示:
一、创建一个新工程
1、启动CCS集成开发环境。
2、从Project菜单中选择New命令。
3、ProjectName填volume1。
4、Location填1步创建的那个新文件夹。
5、ProjectType选择Executable(.out).
6、Target选择你的目标芯片比如TMS320C28XX,然后按“Finish”按钮完成创建一个新工程的任
务。
CCS将创建一个项目文件“volume1.pjt”,该文件保存项目设置,并引用项目中的其它文件。
二、在项目中添加文件
1、执行“Project-->
AddFilestoProject”命令,选择“volume.c”文件,单击“Open”按钮,这样就把文件加入到项目中了。
2、执行“Project-->
AddFilestoProject”命令,在打开的对话框中,文件类型选择汇编语言源文件类型即“(*.a*)”,选择“vectors.asm”和“load.asm”两个文件,单击“Open”按钮,这样就把这两个文件加入到项目中了。
3、执行“Project-->
AddFilestoProject”命令,在打开的对话框中,文件类型选择连接器命令文件类型即“(*.cmd,*.lcf)”,选择“volume.cmd”文件,单击“Open”按钮,这样就把这个文件加入到你的项目中了。
该文件包含内存布局的相关信息。
4、执行“Project-->
AddFilestoProject”命令,在打开的对话框中,首先导航到编译库文件
夹“(C:
\CCStudio_v3.3\c2000\cgtools\lib)”,文件类型选择目标文件和库文件类型即“(*.o*,*.l)”,选择和目标芯片相适应的TI实时支持库(run-timesupportlibrary)文件,对于模拟C28xx目标芯片可选择“rts2800_ml.lib”,单击“Open”按钮,这样就把这个文件加入到你的项目中了。
这个库文件
将为目标芯片提供实时支持。
5、鼠标右键单击“volume1.pjt”,在弹出的菜单中选择“ScanAllFileDependencies”命令,
再仔细观察,“Include”文件夹左边多了一个“+”号,单击“+”号展开“Include”文件夹,发现“volume.h”文件被自动添加到工程里面了。
所以说.h文件不必手动添加,CCS会自动发现并添加它们。
即使不经过第5步,在编译一遍工程以后CCS仍然会自动添加.h文件到工程中。
如果想从工程中移除某个文件,就在项目视图中右键单击该文件,在弹出菜单中选择“Removefrom
Project”命令即可。
该文件被从项目中移除,但并不从磁盘上删除。
在编译程序的过程中,CCS寻找文件时按照以下顺序在相应的目录中查找:
1、包含源文件的路径。
2、编译器或汇编器的“IncludeSearchPath”选项指定的路径(指定多个路径时按从左至右顺序)。
三、编译并运行程序
RebuildAll”命令,CCS开始编译程序,底部的信息窗口将显示编译信息。
2、默认情况下,编译结果生成的.out文件被保存到工程目录的“Debug”文件夹下。
3、执行“File-->
LoadProgram”命令,在弹出对话框内找到编译生成的Volume1.out文件,单
击“打开”按钮,CCS就会把这个文件加载到目标DSP芯片上,同时打开一个反汇编窗口,窗口上显示
了Volume1.out文件的汇编指令。
4、在反汇编窗口中,单击汇编指令的助记符部分,按F1键即可打开关于该指令的帮助信息窗口,
对于不熟悉的汇编指令来说,这是一个很好的获取帮助信息的方法。
5、执行“Debug-->
GoMain”命令,程序开始执行并停止到main函数的位置,仔细观察可以发现
在源文件volume1.c和它的反汇编窗口里面都有一个有颜色的箭头指向main函数开始的位置。
6、执行“Debug-->
Run”命令,程序又继续执行,这时你应该在底部的Stdout窗口中发现main函
数发出的信息“volumeexamplestarted”。
7、执行“Debug-->
Halt”命令,程序停止运行。
8、“View-->
MixedSource/ASM”命令是个切换命令,可以决定是否让C源代码程序中混合显示
相应的汇编命令。
为了进行下一项内容,我们需要把该命令调整到不混合显示的状态。
第5部分DSP应用实例
<
DSP与单片机之间串行通信的设计与实现>
>
TI公司的定点通用数字信号处理器TMS320LF2407A以其强大的功能及优秀的性能价格比而得到了广泛的应用,为了采用单片机进行控制和信息交流,需要设计一个简单的接口,串行接口与并行接口相比,其最大的优点就是减少了使用DSP的引脚数目,降低了接口设计的复杂性。
同时充分利用DSP多功能串行接口和DMA搬移数据的能力,使DSP在处理串口通信时不会占用太多的处理时间,
节约了DSP的资源。
串行通信接口电路设计简单、容易实现,适合通信距离稍远、数据交换不多、传输速率要求不高的场合;
并行通信接口电路设计稍复杂,时序配合要求严格,但传输速率高,适合通信距离短、传输速率要求较高的场合。
本文要讨论的是单片机89C51与TMS320LF2407ADSP之间的通信,并提出了一种简单可行的串行通信方式。
设计复杂双CPU系统的关键是两者之间的接口与数据通信问题。
针对单片机89C51与TMS320LF2407A构成的双CPU系统,本文提出了一种简单可行的串行通信方式。
本文不仅介绍了两者之间的硬件连接示意图,而且完成了两者通信的初始化设置,并且给出了完整的串行通信的软件流程图。
硬件设计方面
89C51单品机有两个功能强打的全双工串行口可以同时接收和发送数据。
串行口主要由2个物理上独立的串行数据缓冲器SBUF.发送控制器。
接收控制器。
输入移位寄存器和输出控制门组成。
串行口是可以编程的接口,可以通过指令对SBUF的读写来区别是对发送缓冲器还是接收缓冲器的操作。
串行口的4种工作方式中,串行通信只使用方式1、2、3。
方式0主要用于扩展并行输入输出口。
下面只介绍方式1。
在方式1状态下,串行口为8位异步通信接口。
一帧信号为10位:
1位起始位(0),8位数据(低位在先)和1位停止位
(1)。
TXD为发送位,RXD为接收端。
波特率不变。
TMS320LF2407ADSP内部有串行外设接口SPI和异步串行接口SCI。
SPI总线是一种三线(即时钟、发送和接收)同步总线,硬件功能很强。
SCI是一个标准的通用异步接受/发送(UART)通信接口,支持DSP和其他使用标准NRZ(非归零)格式的异步外设之间的异步串行数字通信,数据的传送只需要两根线,在硬件电路方面更容易设计实现。
在本系统中,利用SCI实现单片机与DSP通信的原理示意图如下所示。
单片机与DSP通信的原理示意图
其中MAX232A是RS-232C双工发送器/接收器接口芯片。
该芯片与TTL/CMOS电平兼容,使用比较方便。
SCIRXD、SCITXD分别是TMS320LF2407ADSP的SCI接收数据引脚和发送数据引脚;
RXD、TXD分别是单片机89C51的串行口输入端和串行口输出端。
软件设计方面
要实现串行异步通信,收发双方必须进行初始化设置,规定好字符格式,波特率等。
单片机对串行口的初始化可通过将控制字写入串行口控制寄存器SCON和电源控制寄存器PCON进行。
把单片机设置成工作方式1,接收允许。
TMS320LF2407ADSP利用SCI与单片机89C51进行通信的软件流程下图所示
参考文献
[1]林立,张俊亮.单片机原理及应用-基于Proteus和KeilC[M].北京:
电子工业出版社,2012.
[2]贾志成,王宝珠.DSP技术原理及应用教程[M].北京:
北京航空航天大学出版社,2012.
[3]李拥军,杨龙,安吉宇.
DSP原理及控制系统设计[M].北京:
清华大学出版社,2012.
[4](美)德州仪器著,彭启琮,张诗雅,常冉等编译.
TIDSP集成化开发环境(CCS)使用手册[M].北京:
清华大学出版社,2005.
[5]丁玉美,高西全.
数字信号处理器[M].西安:
西安电子科技大学出版社,2004.
期刊文章附于此