DSP重点知识点总结修改版.docx
- 文档编号:8518334
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:21
- 大小:108.54KB
DSP重点知识点总结修改版.docx
《DSP重点知识点总结修改版.docx》由会员分享,可在线阅读,更多相关《DSP重点知识点总结修改版.docx(21页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 重点 知识点 总结 修改