DSP原理及应用C54X.docx

上传人:b****6 文档编号:16213874 上传时间:2023-07-11 格式:DOCX 页数:25 大小:631.05KB
下载 相关 举报
DSP原理及应用C54X.docx_第1页
第1页 / 共25页
DSP原理及应用C54X.docx_第2页
第2页 / 共25页
DSP原理及应用C54X.docx_第3页
第3页 / 共25页
DSP原理及应用C54X.docx_第4页
第4页 / 共25页
DSP原理及应用C54X.docx_第5页
第5页 / 共25页
DSP原理及应用C54X.docx_第6页
第6页 / 共25页
DSP原理及应用C54X.docx_第7页
第7页 / 共25页
DSP原理及应用C54X.docx_第8页
第8页 / 共25页
DSP原理及应用C54X.docx_第9页
第9页 / 共25页
DSP原理及应用C54X.docx_第10页
第10页 / 共25页
DSP原理及应用C54X.docx_第11页
第11页 / 共25页
DSP原理及应用C54X.docx_第12页
第12页 / 共25页
DSP原理及应用C54X.docx_第13页
第13页 / 共25页
DSP原理及应用C54X.docx_第14页
第14页 / 共25页
DSP原理及应用C54X.docx_第15页
第15页 / 共25页
DSP原理及应用C54X.docx_第16页
第16页 / 共25页
DSP原理及应用C54X.docx_第17页
第17页 / 共25页
DSP原理及应用C54X.docx_第18页
第18页 / 共25页
DSP原理及应用C54X.docx_第19页
第19页 / 共25页
DSP原理及应用C54X.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

DSP原理及应用C54X.docx

《DSP原理及应用C54X.docx》由会员分享,可在线阅读,更多相关《DSP原理及应用C54X.docx(25页珍藏版)》请在冰点文库上搜索。

DSP原理及应用C54X.docx

DSP原理及应用C54X

第一章绪论

1.1DSP的基本原理

数字信号处理(简称DSP)是一门涉及多门学科并广泛应用于很多科学和工程领域的新兴学科。

数字信号处理是利用计算机或专用处理设备,以数字的形式对信号进行分析、采集、合成、变换、滤波、估算、压缩、识别等加工处理,以便提取有用的信息并进行有效的传输与应用。

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

如数学领域中的微积分、概率统计、随机过程、数字分析等都是数字信号处理的基础工具。

它与网络理论、信号与系统、控制理论、通信理论、故障诊断等密切相关。

DSP可以代表数字信号处理技术(DigitalSignalProcessing),也可以代表数字信号处理器(DigitalSignalProcessor)。

前者是理论和计算方法上的技术,后者是指实现这些技术的通用或专用可编程微处理器芯片。

数字信号处理包括两个方面的内容:

1.法的研究2.数字信号处理的实现

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

20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。

在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。

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

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

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

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

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

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

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

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

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

数字信号处理的实现方法一般有以下几种:

(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年来通信、计算机、控制等领域的技术发展起到十分重要的作用。

1.2DSP芯片的基本结构,原理和功能

数字信号处理器(DSP)是一种特别适合于进行数字信号处理运算的微处理器,主要用于实时快速实现各种数字信号处理的算法。

数字信号处理不同于普通的科学计算与分析,它强调运算的实时性。

除了具备普通微处理器所强调的高速运算和控制能力外,针对实时数字信号处理的特点,在处理器的结构、指令系统、指令流程上作了很大的改进,其主要特点如下:

(1)冯•诺伊曼(VonNeuman)结构

该结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。

当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。

图1冯·诺伊曼(VonNeuman)结构

(2)哈佛(Harvard)结构

该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。

微处理器的哈佛结构如图2所示。

图2哈佛结构

(3)改进型的哈佛结构

改进型的哈佛结构是采用双存储空间和数条总线,即一条程序总线和多条数据总线。

其特点如下:

①允许在程序空间和数据空间之间相互传送数据,使这些数据可以由算术运算指令直接调用,增强芯片的灵活性;

②提供了存储指令的高速缓冲器(cache)和相应的指令,当重复执行这些指令时,只需读入一次就可连续使用,不需要再次从程序存储器中读出,从而减少了指令执行作需要的时间。

如:

TMS320C6200系列的DSP,整个片内程序存储器都可以配制成高速缓冲结构。

1.3DSP芯片的特点

(1)采用多总线结构

DSP芯片都采用多总线结构,可同时进行取指令和多个数据存取操作,并由辅助寄存器自动增减地址进行寻址,使CPU在一个机器周期内可多次对程序空间和数据空间进行访问,大大地提高了DSP的运行速度。

如:

TMS320C54x系列内部有P、C、D、E等4组总线,每组总线中都有地址总线和数据总线,这样在一个机器周期内可以完成如下操作:

从程序存储器中取一条指令;

从数据存储器中读两个操作数;

向数据存储器写一个操作数。

(2)采用流水线技术

利用这种流水线结构,加上执行重复操作,就能保证在单指令周期内完成数字信号处理中用得最多的乘法-累加运算。

如:

图3四级流水线

(3)配有专用的硬件乘法-累加器

为了适应数字信号处理的需要,当前的DSP芯片都配有专用的硬件乘法-累加器,可在一个周期内完成一次乘法和一次累加操作,从而可实现数据的乘法-累加操作。

如矩阵运算、FIR和IIR滤波、FFT变换等专用信号的处理。

(4)具有特殊的DSP指令

为了满足数字信号处理的需要,在DSP的指令系统中,设计了一些完成特殊功能的指令。

如:

TMS320C54x中的FIRS和LMS指令,专门用于完成系数对称的FIR滤波器和LMS算法。

(5)快速的指令周期

由于采用哈佛结构、流水线操作、专用的硬件乘法器、特殊的指令以及集成电路的优化设计,使指令周期可在20ns以下。

如:

TMS320C54x的运算速度为100MIPS,即100百万条/秒。

(6)硬件配置强

新一代的DSP芯片具有较强的接口功能,除了具有串行口、定时器、主机接口(HPI)、DMA控制器、软件可编程等待状态发生器等片内外设外,还配有中断处理器、PLL、片内存储器、测试接口等单元电路,可以方便地构成一个嵌入式自封闭控制的处理系统。

(7)支持多处理器结构

为了满足多处理器系统的设计,许多DSP芯片都采用支持多处理器的结构。

如:

TMS320C40提供了6个用于处理器间高速通信的32位专用通信接口,使处理器之间可直接对通,应用灵活、使用方便;

(8)省电管理和低功耗

DSP功耗一般为0.5~4W,若采用低功耗技术可使功耗降到0.25W,可用电池供电,适用于便携式数字终端设备。

1.4TMS320C54xDSP芯片的主要特性

TMS320C54x(简称’C54x)是TI公司为实现低功耗、高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应于远程通信等实时嵌入式应用的需要,现已广泛地应用于无线电通信系统中。

TMS320C54X是为实现低功耗、高性能而专门设计的定点DSP芯片,其主要应用是无线通信系统等。

该芯片的内部结构与TMS320C5X不同,因而指令系统与TMS320C5X和TMS320C2X等是互不兼容的。

1.4.1TMS320C54X的主要特点包括:

(1)运算速度快。

指令周期为25/20/15/12.5/10ns,运算能力为40/50/66/80/100MIPS;

(2)优化的CPU结构。

内部有1个40位的算术逻辑单元,2个40位的累加器,2个40位加法器,1个17×17的乘法器和1个40位的桶形移位器。

有4条内部总线和2个地址产生器。

此外,内部还集成了维特比加速器,用于提高维特比编译码的速度。

先进的DSP结构可高效地实现无线通信系统中的各种功能,如用TMS320C54X实现全速率的GSM需12.7MIPS,实现半速率GSM需26.2MIPS,而实现全速率GSM语音编码器仅需2.3MIPS,实现IS-54/136VSELP语音编码仅需12.8MIPS;

(3)低功耗方式。

TMS320C54X可以在3.3V或2.7V电压下工作,三个低功耗方式(IDLE1、IDLE2和IDLE3)可以节省DSP的功耗,TMS320C54X特别适合于无线移动设备。

用TMS320C54X实现IS54/136VSELP语音编码仅需31.1mW,实现GSM语音编码器仅需5.6mW;

(4)智能外设。

除了标准的串行口和时分复用(TDM)串行口外,TMS320C54X还提供了自动缓冲串行口BSP(auto-BufferedSerialPort)和与外部处理器通信的HPI(HostPortInterface)接口。

BSP可提供2K字数据缓冲的读写能力,从而降低处理器的额外开销,指令周期为20ns时,BSP的最大数据吞吐量为50Mbit/s,即使在IDLE方式下,BSP也可以全速工作。

HPI可以与外部标准的微处理器直接接口。

表1是TMS320C54X系列部分DSP芯片比较表。

TMS320C54X

指令周期(ns)

工作电压(V)

片内RAM(字)

片内ROM(字)

串行口

BSP

HPI

C541

20/25

5/3.3/3.0

5K

28K

2个标准口

C542

20/25

5/3.3/3.0

10K

2K

1个TDM口

1

1

C543

20/25

3.3/3.0

10K

2K

1个TDM口

1

C545

20/25

3.3/3.0

6K

48K

1个标准口

1

1

C546

20/25

3.3/3.0

6K

48K

1个标准口

1

C548

15/20/25

3.3/3.0

32K

2K

1个TDM口

2

1

LC/VC549

10/12.5/15

3.3/2.5

32K

16K

1个TDM口

2

1

VC5402

10

3.3/1.8

16K

4K

2

1

表1TMS320C54X的资源配置

1.4.2TMS320C54xDSP芯片的主要特性:

(1)CPU

1、先进的多总线结构。

2、40位算术逻辑运算单元(ALU),包括1个40位桶形移位寄存器和2个独立的40位累加器。

3、17位*17位并行乘法器,与40位专用加法器相连,用与非流水线式单周期乘法/累加(MAC)运算。

4、比较、选择、存储单元(CSSU),用于加法/比较选择。

5、指数编码器,可以在单个周期内计算40位累加器中数值的指数。

6、双地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU)。

(2)存储器

1、192K字可寻址存储空间(64K字程序存储器、64K字数据存储器以及64K字I/O空间),在’C548和’C549中存储空间可扩展至8M字。

2、片内ROM,可配置为程序/数据存储器。

3、片内双寻址RAM(DARAM)。

4、片内单寻址RAM(SARAM)(仅’C548和’C549)。

(3)指令系统

1、单指令重复和块指令重复操作。

2、块存储器传送指令。

3、32位长操作数指令。

4、同时读入2或3个操作数的指令。

5、能并行存储和并行加载的算术指令。

6、条件存储指令。

7、从中断快速返回。

(4)在片外围电路

1、软件可编程等待状态发生器。

2、可编程分区转换逻辑电路。

3、带有内部振荡器或用外部时钟源的片内锁相环(PLL)时钟发生器。

4、全双工串行口,支持8位或16位传送(仅’C541、’LC545和’LC546)。

5、时分多路(TDM)串行口(仅’C542、’C543、’C546、’C548和’C549)。

6、缓冲串行口(BSP)(仅’C542、’C543、’C545、’C546、’C548和’C549)。

7、16位可编程定时器。

8、8位并行主机接口(HPI)(’C542、’C545、’C548和’C549)。

9、外部总线关断控制,以断开外部的数据总线、地址总线和控制信号。

10、数据总线具有总线保持器特性。

(5)电源

1、可用IDLEI、IDLE2和IDLE3指令控制功耗,以工作在省电方式。

2、CLKOUT输出信号可以关断。

(6)在片坊真接口

1、具有符合IEEE1149.1标准的在片坊真接口。

(7)速度

1、单周期定点指令执行时间为:

25/20/15/12.5/10ns(40/50/66/80/10/MIPS)。

1.5用DSP实现正弦函数的基本算法

在通信、仪器和控制等领域的信号处理系统中,可能会用到正弦发生器。

产生正弦波的方法:

1、查表法。

此中方法用于对精度要求不是很高的场合。

如果要求精度高,表就很大,相应的存储器容量也要增大。

2、台劳级数展开法。

这是一种更为有效的方法。

与查表法相比,需要的存储单元很少,而且精度很高。

一个角度θ的正弦和余弦函数,都可以展开成台劳级数,取其前5项进行近似:

Sinθ=x-x3/3!

+x5/5!

-x7/7!

+x9/9!

=x(1-x2/2*3(1-x2/4*5(1-x2/6*7(1-x2/8*9)))

Cosθ=1-x2/2!

+x4/4!

-x6/6!

+x8/8!

=1-x2/2!

(1-x2/3*4(1-x2/5*6(1-x2/7*8)))

上式中的X为θ的弧度值。

也可以有递推公式求正弦和余弦值:

Sinnθ=2cosθ*sin(n-1)θ-sin(n-2)θ

Cosnθ=2cosθ*cos(n-1)θ-cos(n-2)θ

利用递推公式计算正弦和余弦值需已知Cosθ和正、余弦的前两个值。

用这种方法,求少数点还可以,如产生连续正弦、余弦波,则积累误差太大,不可取。

 

第二章CCS集成开发环境

利用CCS集成开发环境,用户可以在一个开发环境下完成工程定义、程序编辑、编译链接、调试和数据分析等工作环节.

2.1CCS集成开发环境简介

CCS开发应用程序的一般步骤:

打开或创建一个工程文件.工程文件中包括源程序(C或汇编)、目标文件、库文件、连接命令文件和包含文件.

编辑各类文件.如头文件(.h文件),命令文件(.cmd文件)和源程序(.c,.asm文件)等.可以使用一般的编辑软件或CCS集成编辑环境进行各类文件编辑.

对工程进行编译.如果有语法错误,将在构建(Build)窗口中显示出来.用户可以根据显示的信息定位错误位置,更改错误.

排除程序的语法错误后,用户可以对计算结果/输出数据进行分析,评估算法性能.CCS提供了探针、图形显示、性能测试等工具来分析数据、评估性能.

图4CCS集成环境窗口示例

图4中为一个典型的CCS集成环境窗口示例.整个窗口由主菜单、工具条、工程窗口、编辑窗口、图形显示窗口、内存单元显示窗口和寄存器显示窗口等构成.

2.2建立工程文件

CCS采用工程文件来集中管理一个工程.一个工程包括源程序、库文件、链接命令文件和头文件等,它们按照目录树的结构组织在工程文件中.工程构建(编译链接)完成后生成可执行文件.工程视窗显示了工程的整个内容.例如图2-4显示了工程codec_eg.mak所包含的内容.其中Include文件夹包含源文件中以”.include”声明的文件,Libraies文件夹包含所有后缀为”.lib”的库文件,Source文件夹包含所有后缀为”.c”和”.asm”的源文件.文件夹上的”+”符号表示该文件夹被折叠,”-“表示该文件夹被展开.

命令ProjectNew用于创建一个新的工程文件(后缀为”.mak”),此后用户就可以编辑源程序、链接命令文件和头文件等,然后加入到工程中.工程编译链接后产生的可执行程序后缀为”.out”.

命令ProjectOpen用于打一个已存在的工程文件.例如用户打开位于”c:

\ti\c5400\dsk\

examples\dsp”目录下的codec_eg.mak工程文件时,工程中包含的各项信息也被载入,其工程窗口。

如图5所示。

图5工程目录

2.3在工程中添加删除文件

以下任一操作都可以添加文件到工程中:

①选择命令ProjectAddFiletoProject…

②在工程视图中右键单击调出关联菜单,选择AddFile…

在工程中源文件、链接命令文件及库文件(Libraries)需要用户指定加入,头文件(Include文件)通过扫描相关性(ScanAllDependencies)自动加入到工程中.

在工程视图中右键单击某文件,从关联莱单中选择”Removefromproject”可以从工程中删除此文件.

2.4编辑源程序

CCS集成编辑环境可以编辑任何文本文件(对C程序和汇编程序),可以打开多个窗口或对同一文件打开多个窗口,进行多窗口显示.点击主莱单命令FileNewSourceFile弹出编辑窗口进行编辑.

2.5编译和调试

A,载入可执行程序:

命令FileLoadProgram载入编译链接好的可执行程序.用户也可以修改”ProgramLoad”属性,使得在构建工程后自动装入可执行程序.设置方法为选择命令OptionsProgramLoad.

B,使用反汇编工具:

在某些时候(例如调试C语言关键代码),用户可能需要深入到汇编指令一级.此时可以利用CCS的反汇编工具.用户的执行程序(不论是C程序或是汇编程序)载入到目标板或仿真器时,CCS调试器自动打开一个反汇编窗口.如图6所示.

图6反汇编窗口

C,断点:

1、断点设置:

有两种方法可以增加一条断点:

1.使用断点对话框

选择命令DebugBreakpoints将弹出对话框如图7所示.

在”BreakpointType”栏中可以选择”无条件断点(BreakatLocation)”或”有条件断点(BreakatLocationifexpressionisTRUE)”.在”Location”栏中填写需要中断的指令地址.用户可以观察反汇编窗口,确定指令所处地址.对C代码,由于一条C语句可能对应若干条汇编指令,难以用唯一地址确定位置.为此可以采用”filenamelinelineNumber”的形式定位源程序中的一条C语句.断点类型和位置设置完成后,依次单击”Add”和”OK”按钮即可.断点设置成功后,该语句条用彩色光条显示.

图7设置断点对话框

2.采用工程工具条

将光标移到需要设置断点的语句上,点击工程工具条上的”设置断点”按钮.则该语句位置一断点,默认情况下为”无条件断点”.用户也可以使用断点对话框修改断点属性,例如将”无条件断点”改为”有条件断点”.

2、断点的删除

在图7所示断点对话框中,单击”Breakpoint”列表中的一个断点,然后点击”Delete”按钮可

删除此断点.点击”Deleteall”按钮或工程工具条上的”取消所有断点”按钮,将删除所有断点.

3、允许和禁止断点

在图7所示断点对话框中,单击”EnableAll”或”DisableAll”将允许或禁止所有断点.”允许”状态下,断点位置前的复选框有”对勾”符号.注意只有当设一断点,并使其”允许”时,断点才发挥作用.

D,查看、编辑内存

CCS允许显示特定区域的内存单元数据.方法为选择ViewMemory或单击调试工具条上的”显示内存数据”按钮.在弹出对话框中输入内存变量名(或对应地址)、显示方式即可显示指定地址的内存单元.为改变内存窗口显示属性(如数椐显示格式,是否对照显示等),可以在内存显示窗口中单击右键,从关联莱单中选择Properties即弹出如图8所示的选项对话框.

图8选项对话框

内存窗口选项包括以下内容:

Address:

输入需要显示内存区域的起始地址.

QValue:

显示整数时使用的Q值(定点位置).新的整数值=整数/2Q.

Format:

从下拉菜单中选取数据显示的格式.

UseIEEEFloat:

是否使用IEEE浮点格式.

Page:

选择显示的内存空间类型-程序、数据或I/O.

EnableReferenceBuffer:

选择此检查框将保存一特定区域的内存快照以便用于比较.

StartAddress:

用户希望保存到参考缓冲区(ReferenceBuffer)的内存段的起始地址.只有当用户选中”EnableReferenceBuffer”检查框时此区域才被激活.

EndAddress:

用户希望保存到参考缓冲区的内存段的终止地址.只有当用户选中”EnableReferenceBuffer”检查框时此区域才被激活.

UpdateReferenceBufferAutomatically:

若选择此检查框,则参考缓冲区的内容将自动被内存段(由定义参考缓冲区的起始/终止地址所规定的区域)的当前内容覆盖.

第三章用CCS环境编程,调试实现正弦函数信号

3.1编写汇编程序sin.asm和vectors.asm

3.1.1正弦波源程序清单sin.asm

;ThisfunctiongeneratesthesinewaveofangleusingtheTaylorseriesexpansion

;sin(theta)=x(I-x2/2*3(1-x'2/4*5(1-x2/6*7(1-x'2/8*9))))

;cos(theta)=1-x2/2(1-x2/3*4(1-x2/5*6(1-x'2/7*8)))

;sin(2*theta)=2*sin(theta)*cos(theta)

.title"sin.asm"

.mmregs

.defstart

;.refd_xs,d_sinx,d_xc,d_cosx

;.refsinx,d_xs,d_sinx,cosx,d_xc,d_cosx

sin_x:

.usect"sin_x",360

STACK:

.usect"STACK",10

k_theta.set286;theta=pi/360(0.5deg.)

PA0.set0

start:

.t

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2