DSP重点知识点总结修改版.docx

上传人:b****5 文档编号:8518334 上传时间:2023-01-31 格式:DOCX 页数:21 大小:108.54KB
下载 相关 举报
DSP重点知识点总结修改版.docx_第1页
第1页 / 共21页
DSP重点知识点总结修改版.docx_第2页
第2页 / 共21页
DSP重点知识点总结修改版.docx_第3页
第3页 / 共21页
DSP重点知识点总结修改版.docx_第4页
第4页 / 共21页
DSP重点知识点总结修改版.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

DSP重点知识点总结修改版.docx

《DSP重点知识点总结修改版.docx》由会员分享,可在线阅读,更多相关《DSP重点知识点总结修改版.docx(21页珍藏版)》请在冰豆网上搜索。

DSP重点知识点总结修改版.docx

DSP重点知识点总结修改版

DSP重点知识点

1.数字信号处理的实现方法(P1)

1)在通用计算机上用软件实现(速度较慢,一般用于DSP算法模拟)

2)在通用计算机系统中加上专用的加速处理机实现(专用性强,应用受限,不便于系统的独立运行)

3)用通用的单片机实现——用于不太复杂的数字信号处理(简单的DSP算法)

4)用专用的DSP芯片实现——具有更加爱适合DSP的软硬件资源,可用于复杂的数字信号处理算法

5)用专用的DSP芯片实现——特殊场合,要求信号处理速度极高(专用性强,应用受限)

2.DSP两种含义(P2)

1)数字信号处理技术(DigitalSignalProcessing)

2)数字信号处理器(DigitalSignalProcessor)

3.DSP芯片的结构(P2)

1)冯•诺依曼结构

片内程序空间和数据空间是合在一起的,取指令和取操作数都是通过一条总线分时进行的

2)改进的哈佛结构

程序空间和数据空间分开,1组程序存储器总线,3组数据存储器总线,3组地址总线,允许同时取指令和取操作数,还允许在程序空间和数据空间之间相互传送数据

3)多总线结构

一个机器周期内可以多次访问程序空间和数据空间,如TMS320C51x内部有P、C、D、E共4条总线,每条总线又包括地址总线和数据总线

4)流水线结构

4.DSP芯片的分类(P4)

1)按照基础特性分类:

静态DSP芯片

一致性DSP芯片

2)按照数据格式分类:

定点DSP芯片

浮点DSP芯片

3)按照用途分类:

通用型DSP芯片

专用型DSP芯片

5.TMS320C54x硬件结构(P8)

1)TMS320系列同一代芯片具有相同的CPU结构,但是片内存储器和片内外围设备的配置是不同的

2)TMS320C54x是16位定点DSP,采用改进的哈佛结构,有一组程序总线和三组数据总线

6.TMS320C54x总线结构(P10)

片内有8条16位主总线:

4条程序/数据总线和4条地址总线

 

7.累加器(P11)

39~32

31~16

15~0

ACCA累加器A

AG

AH

AL

保护位

高阶位

低阶位

39~32

31~16

15~0

ACCA累加器B

BG

BH

BL

保护位

高阶位

低阶位

累加器A和累加器B的差别仅在于累加器A的31~16位可以用做乘法器的一个输入,累加器A可以用来累加器寻址。

8.处理器工作方式控制及寄存器PMST(P15)

16~7

6

5

4

3

2

1

0

IPTR

MP/MC

OVLY

AVIS

DROM

CLKOFF

SMUL

SST

PMST各位定义

1)IPTR:

中断向量指针,9位字段中断向量驻留的128字程序存储区地址。

复位时9位全置1,中断向量序号为0→1111111110000000即向量地址FF80H

中断向量地址的计算:

中断向量地址由IPTR和左移2位后的中断向量序号K(0~31,左移后变成7位)所组成。

高9位

低7位

IPTR

K<<2

例:

INT0的中断向量序号为18,PMST寄存器的IPTR=011H,计算中断向量地址

1将中断向量序号转化成16进制

18→12H

2将12H转化成二进制码并左移2位,变成7位

1

2

4

8

0001

0010

100

1000

 

3将9位IPTR中断向量指针和左移后的中断向量序号结合即为所求

IPTR

INT

0

1

1

4

8

0

0

0

0

1

0

0

0

1

1

0

0

1

0

0

0

向量

0

0

0

0

1

0

0

0

1

1

0

0

1

0

0

0

15

14

13

12

11

10

09

08

07

06

05

04

03

02

01

00

地址

0

8

C

8

2)MP/MC:

微处理器或微计算机工作选择位,高电平工作于微处理器状态,低电平工作于微计算机状态(可寻址片内的程序存储器)

3)OVLY:

RAM重复占位标志

4)SMUL:

乘法饱和方式位。

SMUL=1,使用多项式加MAC或多项式减MAS指令进行累加时,对乘法结果进行饱和处理,且只有当OVM=1,FRCT=1时,SMUL位才起作用。

只有LP器件有此状态位,其他器件此位均为保留位。

当执行MAC或MAS时,进行多项式加或减之前,小数模式的8000H×8000H处理成为7FFFFFFFH。

如果不设定小数模式,且OVM=1,在完成加或减之前,乘法结果不进行饱和处理,只对MAC或MAS执行的结果进行饱和处理

5)SST:

存储饱和位。

SST=1,对存储前的累加器进行饱和处理。

饱和处理是在移位操作执行完成之后进行的。

◆根据指令要求对累加器的40位数据进行移位

◆将40位数据饱和处理成32位数据,饱和处理与SXM位有关。

如果SXM=0,数据为正,如果数值大于7FFFFFFFH,则饱和处理的结果为7FFFFFFFH;如果SXM=1,若移位后,数值大于7FFFFFFFH,则饱和处理的结果为7FFFFFFFH;若移位后数值小于80000000H,则生成80000000H

◆按指令要求操作数据

◆在指令执行期间,累加器的内容不变

9.状态寄存器ST0(P16)

15~13

12

11

10

9

8~0

ARP

TC

C

OVA

OVB

DP

ST0各位定义

1)OVA:

累加器A的溢出标志

2)OVB:

累加器B的溢出标志

3)DP:

数据存储器页指针。

将DP的9位数作为高位与指令中的低7位作为低位结合,形成16位直接寻址方式下的数据存储器地址

10.状态寄存器ST1(P16)

15

14

13

12

11

10

9

8

7

6

5

4~0

BRAF

CPL

XF

HM

INTM

O

OVM

SXM

C16

FRCT

CMPT

ASM

ST1各位的定义

1)BRAF:

块重复操作标志位。

2)CPL:

直接寻址编辑方式标志位。

CPL=1,表示选用栈指针(SP)的直接寻址方式;CPL=0,表示选用页指针(DP)的直接寻址方式

3)INTM:

中断方式控制位。

=1,由SSBX指令控制,关闭所有可屏蔽中断,

=0,由RSBX指令控制,开放所有可屏蔽中断

4)OVM:

溢出方式控制位。

OVM=1,ALU运算若正数溢出,目的累加器置正的最大值(007FFFFFFFH);若负数溢出,置成负的最大值(FF80000000H)。

OVM=0,直接加在实际运算结果,可由SSBX和RSBX置位或清零

5)SXM:

符号位扩展方式控制字。

SXM=1,数据进入ALU之前进行符号位扩展;SXM=0,数据进入ALU之前符号位禁止扩展。

可由SSB和RSBS置位或清零

6)FRCT:

小数方式控制位。

FRCT=1,乘法器输出自动左移1位,消去多余的符号位

11.TMS320C54x的片内存储空间分为3个可选择的存储空间:

64KW的程序存储空间、64KW的数据存储空间和64KW的I/O存储空间,共192KW。

所有的TMS320C54x芯片都包括随机访问存储器(RAM)和只读存储器(ROM)。

RAM又分两种:

一种是只可一次寻址的RAM(SARAM),另一种是可以两次寻址的RAM(DARAM)//P17

12.TMS320C54x的片内ROM、DARAM、SARAM都可以通过软件映射到程序空间。

从0080H开始将DARAM分成每80H(128)个存储单元为一个数据块//P20

13.寻址存储器映射CPU寄存器无需等待周期,存储器映射外设存储器至少需要两个机器周期,由片内外设电路决定//P20

14.数据页0(0H~7FH)不能映射到程序空间//P20

15.特殊功能寄存器(P20)

1)第一类特殊功能寄存器

第一类特殊功能寄存器为26个,连续分布在数据存储区的0H~1FH地址范围内,主要用于程序的运算处理和寻址方式的选择及设定

2)第二类特殊功能寄存器

第二类特殊功能寄存器连续分布在20H~5FH的存储区内,主要用于控制片内外设,包括串口通信控制寄存器组、定时器定时控制寄存器组、机器周期设定寄存器组等

16.TMS320C54x芯片都有

和XF两个通用I/O引脚//P22

17.软件可编程等待发生器能把外部总线周期扩展到最多14个机器周期,以适应较慢的片外存储器和I/O设备//P22

18.复位输入引脚

的电平变化——出现两个外部时钟周期以上的低电平,引脚变为高电平后,程序从指定的存储地址FF80H开始运行。

复位有三种方式上电复位、手动复位和软件复位//P23

19.复位时ST0=1800H,ST1=2900H,PMST=FF80H//P23

20.寻址方式(P25)

1)立即数寻址

LD#0F0H,A

在数值或符号前面加一个“#”号表示是一个立即数否则被认为是一个地址

2)绝对地址寻址

绝对地址的代码为16位,所以包含绝对寻址的指令至少要两个字长

1数据存储器地址(dmad)寻址——用程序标号或数据寻址

MVKDDATA1,*AR2

DATA1标注的地址就是一个dmad值,DATA1必须适合程序中的标号或者DSP内部已经定义的单元

2程序存储器地址(pmad)寻址——用一个符号或具体的数寻址

MVPDTABLE1,*AR2

TABLE1所标注的地址就是一个pmad值,TABLE1标注的程序存储单元中的一个字

程序存储器地址寻址和数据存储器地址寻址区别仅在于空间不同

3端口寻址

PORTRF2F0,*AR5

F2F0指的是端口地址,端口地址寻址只涉及两条指令,端口读(PORTR)和端口写(PORTW)

片外存储空间也只有WRITA和READA两条指令

4*(1K)寻址

LD*(BUFFER),A

用一个符号或一个常数来确定数据存储器中的一个地址,访问数居空间的任意单元而不改变数据页(DP)的值,也不用对AR进行初始化。

不能与RPT,RPTZ一起使用

采用绝对寻址方式时,指令长度将在原来的基础上增加一个字

3)累加器寻址

只有两条指令READA和WRITA可以采用累加器寻址

4)直接寻址

ADDSAMPLE,A;把存储器单元SAMPLE中的内容加到累加器A中去

或ADD@x,A;将符号@加在变量x的前面

CPL=0dmad值与9位的DP值结合,形成16位的数据存储器地址

CPL=1dmad值加上(正偏移)SP的值,形成16位的数据存储器地址

dmad值指的是指令寄存器IR的低7位

5)间接寻址

间接寻址方式按照辅助寄存器中的地址访问存储器(8个16位辅助寄存器AR0~AR7,两个辅助寄存器算数单元ARAU0和ARAU1)

1单操作数寻址

2循环寻址

3位倒序寻址

位倒序寻址提高了执行速度和在FFT算法的程序中使用储存器的效率。

在这种寻址方式中,AR0存放的整数N是FFT点数的一半,当使用位倒序寻址方式把AR0加到辅助寄存器中时,地址以位倒序方式产生,即进位是从左向右的,而不是从右向左

4双数据存储器操作数寻址

用Xmem和Ymem代表这两个数据存储器操作数,Xmem表示读操作数,Ymem在读两个操作数时表示读操作数,而在一个读同时并行一个写的指令表示写操作数

6)堆栈寻址

共有4条指令使用堆栈寻址方式访问堆栈:

PSHD——把一个数据存储器的值压入堆栈

PSHM——把一个存储器映射寄存器的值压入堆栈

POPD——把一个数据存储器的值弹出堆栈

POPM——把一个储存器映射寄存器的值弹出堆栈

21.指令系统(P34)

22.流水线操作,是指在执行多条指令时,将每条指令的预取指、取指、译码、寻址、读取操作数、执行等阶段,相差一个阶段重叠执行,以减少指令执行时间,从而增加处理器的处理能力//P50

23.TMS320C54x采用6级深度的指令流水线作业,它们之间彼此独立,即在任何一个机器周期内,可以有1~6条不同的指令同时工作,但每条指令工作在流水线的不同级上//P51

6级流水线的功能

第1级

第2级

第3级

第4级

第5级

第6级

P(预取指)

F(取指)

D(译码)

A(寻址)

R(读数)

X(执行)

24.延迟分支转移的流水线和条件执行指令的流水线(P51~P52)

25.数字信号处理系统的设计过程(P61)

26.常用的汇编命令(P68)

汇编命令

作用

举例

.title

紧随其后的是汇编语言程序正文

.title“example.asm”

.end

结束汇编命令

放在汇编语言程序的最后

.text

紧随其后的是汇编语言程序正文

经汇编后,紧随.text后的是可执行程序代码

.data

紧随其后的是已初始化数据

有两种数据形式:

.int和.word

.int

.int用来设置一个或多个16位无符号整型量常数

table:

.word1,2,3,4

.word6,8,4,2

表示在程序存储器标号为table开始的8个单元中存放初始化数据1,2,3,4,6,8,4,2

.word

.word用来设置一个或多个16位符号整型量常数

.bss

.bss为未初始化变量保留存储空间

.bssx,4表示在数据存储器中空出4个存储单元存放变量x1,x2,x3和x4

.sect

建立包含代码和数据的自定义段

.sect“vectors”定义向量表,紧随其后的是复位向量和中断向量,名为vectors

.usect

为未初始化变量保留存储空间的自定义段

STACK.usect“STACK”,10h在数据存储器中留出16个单元作为堆栈区,名为STACK

.def

在此模块中定义,可为别的模块引用

.def

.mmregs

将寄存器名定义为全局符号,这样就可以直接引用寄存器

.mmregs

27.COFF文件中的段(P79)

1)3种形式的段:

.text段(此段通常包含可执行代码)

.data段(此段通常包含初始化数据)

.bss段(此段通常为未初始化变量保留存储空间)

2)段的基本类型:

初始化段

.text段、.data段、.sect汇编命令建立的自定义段均是已初始化段

未初始化段

.bss段、.usect汇编命令建立的自定义段均是未初始化段

28.如果连接命令文件中没有MEMORY和SECTIONS命令(默认情况),则连接器就从地址0080H开始,一个段接着一个段地进行配置//P84

29.Simulator纯粹以软件来模拟源平台的功能和运行结果(软件仿真);Emulator以软件和硬件来模拟源平台的内部设计、行为和运行结果(硬件支持)//P119

30.条件算符(P140)

条件分支转移指令或条件调用、条件返回指令都是条件来限制分支的转移、调用和返回操作。

条件算符分成两组,每组组内还有分类

第1组:

EQNEQ

LEQGEQ

LTGT

OV

NOV

第2组:

TC

NTC

C

NC

BIO

NBIO

选用条件算符时应当注意以下3点:

●第1组:

组内两类条件可以进行与/或运算,但不能在组内同一类中选择两个条件算符与/或。

当选择两个条件时,累加器必须是同一个。

例如,可以同时选择AGT和AOV,但不能同时选择AGT和BOV

●第2组:

可从组内3类算符中各选一个条件算符与/或,但不能在组内同一类中选两个条件算符与/或。

例如,可以同时测试TC、C、和BIO,但不能同时测试NTC和TC

●组与组之间的条件只能进行或运算

31.乘加运算(P145)

1)简单乘加

计算

其中

.title“zh1.asm”

.mmregs

STACK.usect“STACK”,10H

.bssm,1

.bssx,1

.bssb,1

.bssy,1

.defstart

.data

table:

.word3,15,20

.text

start:

STM#0,SWWSR

STM#STACK+10H,SP

STM#m,AR1

RPT#2

MVPDtable,*AR1+

CALLSU

end:

Bend

SU:

LD@m,T

MPY@x,A

ADD@b,16,A

STHA,@y

RET

.end

2)乘加小数

 

计算

 

.title“zh2.asm”

.mmregs

STACK.usect“STACK”,10H

.bssa,4

.bssx,4

.bssy,1

.defstart

.data

table:

.word1*32768/10

.word2*32768/10

.word-3*32768/10

.word4*32768/10

.word8*32768/10

.word6*32768/10

.word-4*32768/10

.word-2*32768/10

.text

start:

SSBXFRCT

STM#0,SWWSR

STM#STACK+10H,SP

STM#a,AR1

RPT#7

MVPDtable,*AR1+

STM#x,AR2

STM#a,AR3

RPTZA,#3

MAC*AR2+,*AR3+,A

STHA,@y

end:

Bend

.end

3)乘加整数

题目同上,其中

.title“zh3.asm”

.mmregs

STACK.usect“STACK”,10H

.bssa,4

.bssx,4

.bssy,1

.defstart

.data

table:

.word1,2,3,4

.word5,6,7,8

.text

start:

STM#0,SWWSR

STM#STACK+10H,SP

STM#a,AR1

RPT#7

MVPDtable,*AR1+

STM#x,AR2

STM#a,AR3

RPTZA,#3

MAC*AR2+,*AR3+,A

STLA,@y

STHA,@y+1

end:

Bend

.end

32.重复操作(P148)

对数组x[5]中的每个元素初始化为2,再给每个元素加1

.title“zh4.asm”

.mmregs

STACK.usect“STACK”,10H

.bssx,5

.defstart

.text

start:

STM#0,SWWSR

STM#STACK+10H,SP

STM#x,AR1

LD#2H,A

RPT#4

STLA,*AR1+

LD#1,16,B

STM#4,BRC

STM#x,AR4

RPTBnext-1

ADD*AR4,16,B,A

STHA,*AR4+

next:

LD#0,B

end:

Bend

.end

33.长字运算(P156)

长字(32位)指令如下:

DLDLmem,dst;dst=Lmem

DSTsrc,Lmem;Lmem-src

DADDLmem,src,[,dst];dst=src+Lmem

DSUBLmem,src,[,dst];dst=src+Lmem

DRSUBLmem,src,[,dst];dst=Lmem-src

1)偶地址排列法

.title“zh5.asm”

.mmregs

STACK.usect“STACK”,10H

.bssa,2

.bssy,2.

.defstart

.data

table:

.word06CACH,0BD90H

.text

start:

STM#0,SWWSR

STM#STACK+10H,SP

STM#a,AR1

RPT#1

MVPDtable,*AR1+

STM#a,AR3

DLD*AR3+,A

end:

Bend

.end

执行后结果:

A=006CACBD90H

(0100H)=6CACH

(0101H)=BD90H

2)奇地址排列法

.title“zh6.asm”

.mmregs

STACK.usect“STACK”,10H

.bssa,2

.bssy,2.

.defstart

.data

table:

.word0BD90H,06CACH

.text

start:

STM#0,SWWSR

STM#STACK+10H,SP

STM#a,AR1

RPT#1

MVPDtable,*AR1-

STM#a,AR3

DLD*AR3+,A

end:

Bend

.end

执行后结果:

A=006CAC6CACH

(0100H)=6CACH

(0101H)=BD90H

总结:

偶地址排列,高字存放于偶地址,地址加一存放低字。

奇地址排列,高字存放于奇地址,地址减一存放低字。

34.FIR滤波器的实现方法(P192)

双操作数、带移位FIR滤波器实现程序如下:

数据存储器

暂存

AR1→

程序存储器

PAR→COEF

.title“zh7.asm”

.mmregs

.defstart

x.usect“x”,5

PA0.set0

PA1.set1

.data

COEF:

.word1*32768/10

.word-4*32768/10

.word3*32768/10

.word-4*32768/10

.word1*32768/10

.text

start:

SSBXFRCT

STM#x+5,AR1

STM#4,AR0

LD#x+1,DP

PORTRPA1,@x+1

FIR3:

RPTZA,#4

MACD#AR1-,table,A

STHA,*AR1

PORTW*AR1+,PA

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

当前位置:首页 > 党团工作 > 其它

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

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