DSP总结(附程序)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP总结(附程序)
1.数字信号处理器也称DSP芯片,是一种特别适合于进行数字信号处理运算的微处理
器,主要应用是实时快速地实现各种数字信号处理算法。
2.DSP芯片的主要特点:
1。
哈佛结构;2.多总线结构;3.流水线结构;4。
多处理单元;
5。
特殊的DSP指令;6.指令周期短;7.运算精度高; 8.硬件配置强
3.选择DSP芯片时应考虑的因素:
1)DSP芯片的运算速度:这是一项很重要的性能指标,决定系统实时性问题。
运
算速度可以用以下几种性能指标来衡量:
①指令周期:执行一条指令所需要的时间,通常以毫秒为单位。
② MAC时间:完成一次乘法和一次加法的时间.
③ FFT执行时间:运行一个N点FFT程序所需的时间。
④ MIPS:每秒执行百万条指令。
⑤ MOPS:每秒执行百万次操作.
⑥ MFLOPS:每秒执行百万次浮点操作.
⑦ BOPS:每秒执行十亿次操作。
2)DSP芯片的硬件资源:如片内ROM和RAM的大小,外部可扩展的程序、数据和
空间,总线接口和I/O接口等。
3)DSP芯片的运算精度:参加运算的数据字长越长精度越高。
一般DSP字长16
位,如TI公司的TMS320系列;有的定点芯片字长为24位,如MOTOLORA公司
的MC56001。
浮点芯片为32位。
4)DSP芯片的功耗。
4.TMS320C54x是16位定点数字信号处理器.TMS320C54x的体系结构采用改进的哈佛
结构,程序与数据分开存放,内部具有8条高度并行的总线。
片内集成有片内的存储器和片内的外设以及专门用途的硬件逻辑,并配备有功能强大的指令系统,使得该芯片具有很高的处理速度和广泛的应用适应性。
再加上采用模块化设计以及先进的集成电路技术,芯片的功耗小,成本低,自推出以来已广泛地应用于诸如移动通信、数字无线电、计算机网络以及各种专门用途的实时嵌入系统和仪器仪表中。
5.TMS320C54x的硬件结构基本有三大块:
1)CPU 包括算术逻辑运算单元、乘法器、累加器、移位寄存器、各种专门用途
的寄存器、地址生成器以及内部总线;
2)存储器系统包括16~24位外接存储器接口、片内的程序ROM、片内单访问
的数据RAM和双访问的数据RAM;
3)片内的外设与专用硬件电路包括片内的定时器、各种类型的串口、主机接口、
片内的锁相环(PLL)时钟发生器以及各种控制电路.
6.TMS320C54x的主要特性—-CPU部分
1)先进的多总线结构.
2)40位算术逻辑单元(ALU)。
3)17位×17位并行乘法器与一个40位专用加法器相连。
4)比较、选择、存储单元(CSSU)。
5)指数编码器可以在单个周期内计算40位累加器中数值的指数。
6)双地址生成器包括8个辅助寄存器和两个辅助寄存器算术运算单元(ARAU)。
7.TMS320C54x的主要特性—-存储器系统(内核中的汇编)
具有16位192K字的可寻址空间:
1)64 K字程序存储器
2)64 K字数据存储器
3)64K字I/O空间
4)在C548、C549、C5402、C5410和C5420中程序存储器可以扩展。
5)不同型号芯片的片内存储器的结构及容量也不同.
8.TMS320C54x的主要特性——在片外设和专用电路
⑧可与主机直接连接的8位并行主机接口(HPI),有些产品还包括扩展的8位并行
主机接口(HPI8)和16位并行主机接口(HPI16)
⑨片内的串口根据型号不同可分为全双工的标准串口、支持8位和16位数据传送、
时分多路(TDM)串口、缓冲串口(BSP)以及多通道缓冲串口(McBSP)
9.TMS320C54x的主要特性——电源和功耗
①可采用5v(C),3.3v(LC),3v(UC)1.8v或2.5v(VC)的超低电压供电
②可采用功能下降指令IDLE1、IDLE2和IDLE3控制芯片的功耗.
③可控制禁止CLKOUT信号
10.’C54x片内存储器简介:
(1)片内ROM:
1)多用作程序存储空间的一部分;
2)2K容量的ROM含一个TI公司定义的引导装入程序,用于将程序;
3)快速引导入片内或片外的快速RAM中;
4)大容量ROM可划分为数据及程序空间;
5)较大的ROM属于通用的ROM,可以利用TI公司提供的合适工具和方法;
6)将目标文件格式的代码和数据固化到ROM中。
(2)片内双访问RAM(DARAM):
1)DARAM由几个块组成;
2)各DARAM块在每个机器周期内可被访问两次;
3)常被划分为数据空间存储数据值;
4)也可划分为程序空间存储程序代码;
5)’C5416片内含64K字程序/数据DARAM,分8块,每块8K字.
11.’C54x的外部程序存储器可寻址64K字的存储空间。
他们的片内ROM、双寻址RAM
(DARAM)以及单寻址RAN(SARAM),都可以通过软件映像到程序空间。
档存储单元映像到程序空间时,处理器就能自动地对它们所处的地址范围寻址.
12.TMS320C54x存储器由3个独立的可选择空间组成:程序空间、数据空间和I/O空
间.在任何一个存储空间内,RAM、ROM、EPROM、EEPROM或存储器映像外围设备都可以驻留在片内或者片外。
3个空间的总地址范围为192K字。
程序存储器空间存放要执行的指令和执行中所用的系数表,数据存储器存放执行指令所要用的数据。
I/O存储空间与存储映像外围设备接口,可以作为附加的数据存储空间使用.
在’C54x中片内存储器的形式有DARAM、SARAM和ROM3种,取决于芯片的型号。
RAM总是安排到数据存储空间,但也可以构成存储空间。
ROM一般构成程序存储空间,也可以部分安排数据存储空间。
’C54x的3个状态位:MP/位、OVLY位和DROM位.
13.2K字程序空间(F800H~FFFFH)中包含以下内容(TI公司定义的):
1)自举加载程序从串行口、外部存储器、I/O口,或者主机接口自举加载;
2)256字律压扩表;
3)256字A律压扩表;
4)256字正弦函数值查找表;
5)中断向量表。
14.CPU(中央处理单元)的基本组成:
1)40位算术逻辑单元(ALU)
2)2个40位累加器
3)一个16~30位的桶形移位寄存器
4)乘法器/加法器单元
5)比较、选择和存储单元(CSSU)
6)指数编码器
7)CPU状态和控制寄存器
8)两个地址发生器
15.40位桶形移位寄存器的输入端来源:(数据来源)
1)DB取得16位输入数据;
2)DB和CB取得32位输入数据;
3)40位累加器A和B。
桶形移位器的功能框图
16.程序地址发生器(PAGEN)共有5个寄存器:
1)程序计数器(PC)
2)重复计数器(RC)
3)块重复计数器(BRC)
4)块重复起始地址寄存器(RSA)
5)块重复结束地址寄存器(REA)
17.完整的片内外设配置包括通用I/O引脚、定时器、时钟发生器、主机接口(HPI)、软
件可编程等待状态发生器、串行通信接口和可编程存储器切换逻辑等.
18.锁相环电路(PLL)通过设定芯片的3个时钟模式引脚CLKMD1、CLKMD2和CLKMD3
的电平,可以选择片内振荡时钟与外部参考时钟的倍频.
19.软件的时钟频率调节方式灵活方便,可以设置以下两种时钟模式之一:
①倍频模式,输入时钟乘以从0。
25~15共31档比例系数之一;
②分频模式(DIV),输入时钟CLKIN2分频或4分频.
20.HPI接口:TMS320C54x片内都有一个主机接口(HPI),而HPI是一个8位的并行口,
用来与主设备或主处理器接口.外部主机是HPI的主控者,它可以通过HPI直接访问CPU的存储空间,包括映像存储器。
21.主机接口(HPI)各功能解释:
1)HPI存储器(DARAM) HPI RAM主要用于TMS320C54x与主机之间传送数据,
也可以用作通用的双寻址数据RAM或程序RAM。
2)HPI地址寄存器(HPIA)它只能由主机对其直接访问,寄存器中存放当前寻址
的存储单元的地址。
3)HPI数据锁存器(HPID)它同HPIA一样只能由主机对其直接访问。
4)HPI控制寄存器(HPIC) TMS320C54x和主机都能对它直接访问,它映像在
TMS320C54x数据存储器的地址为002CH.
5)HPI控制逻辑用于处理HPI与主机之间的接口信号。
22.HPI的2种工作方式:
1)共用访问模式(SAM):常用
主机和DSP都能访问HPI存储器;异步工作的主机访问可以在HPI内部重新得到同步;主机和DSP的周期发生冲突时(同时读或写),主机具有访问优先权,DSP等待一个周期.
2)仅主机访问模式(HOM):
只有主机能访问HPI存储器;主机可以以更快速度访问,与'C54x的时钟速率无关,DSP处于复位状态或所有内部外部时钟都停止的IDLE2空闲状态(最小功耗状态)。
23.中断系统:’C54xDSP及支持软件中断,也支持硬件中断.
1)由程序指令(INTR、TRAP或RESET)请求的软件中断;
2)由外部物理设备信号请求的硬件中断。
该中断有两种形式:
①受外部中断口信号触发的外部硬件中断;
②受片内外设电路信号触发的内部硬件中断。
24.中断分类:’C54x DSP可支持16个用户可屏蔽中断(SINT15-SINT0)
1)可屏蔽中断
对’C5402只使用14个可屏蔽中断,这些硬件名为:
① INT3-—INT0;
② RINT0、XINT0、RINT1和XINT1(串行口中断)
③ TINT、TINT1(定时器中断)
④ HPINT(主机接口)DMAC0——DMAC5。
2)非屏蔽中断
25.处理中断步骤:
1)接收中断请求
2)应答中断
3)执行中断服务程序(ISR)
26.重新映象中断向量地址:
C54x的中断向量表是可重新定位的,即在DSP复位时,IPTR=1FFH,中断向量新被映象到程序存储器的第511页,中断向量表的起始地址固定为0FF80H,复位后,此表的起始地址可由用户指定.
中断向量可重新被映象到程序存储器的任何一个128字页开始的地方(除保留区域外).中断向量地址由PMST中的中断向量指针IPTR(9位)和中断向量号(0~
31)左移两位后组成。
27.第4章与第6、7章结合看,编程题……
28.(实现求和的)例6-2 计算.程序如下:()
.title “example2。
asm”
.mmregs
STACK 。
usect “STK”,10H ;堆栈的设置
.bss x , 5 ;为变量分配6个字的存储空间。
bss y , 1。
def start。
data
table: .word 10,20,30,40,50 ;x1,x2,x3,x4,x5
.text
start: STK #0 , SWWSR ;插入0个等待状态
LD #1 , DP
STM # STACK+10H,SP ;设置堆栈指针
STM # x,AR1 ;AR1指向x
RPT #4
MVPD table,*AR1+
LD # 0,A
CALL SUM
end: B end
SUM: STM # x,AR3
STM # x,AR4
Loop: ADD *AR3+,A ;程序存储器
BANZ loop,*AR4—
STL A,@ y
RET
.end
.tit le “example2.asm”。
mmregs
STACK .usect “STK”,10H。
bss x , 5。
bss y , 1
.def start。
data
table: 。
word 10,20,30,40,50 .text
start: STK #0 , SWWSR
LD #1 , DP
STM # STACK+10H,SP
STM # x,AR1
RPT #4
MVPD table,*AR1+
LD # 0,A
CALL SUM
end: B end
SUM: STM # x,AR3
STM # x,AR4
Loop: ADD *AR3+,A BANZ loop,*AR4-
STL A,@ y
RET
.end
例 6.3 堆栈的使用
.title “example3.asm”。
mmregs
size 。
set 100
stack .usect “STK”,size
.def start
.text
start: STM # 0 SWWSR
STM stack + size,sp
LD # 1234H,A
STM #100,AR1
MVMM SP,AR7
Loop: STL A,*AR7—
BANZ loop,*AR1—
.end
.mmregs
STACK 。
usect “STK",10H。
bss x,1。
bss y,1
.bss w,1
.bss z,1
.def start
.data
table:。
word 30,20,25。
text
Start: STM # 0, SWWSR
STM STACK + 10H,SP
STM # x,AR1
RPT # 2
MVPD table,*AR1+
CALL SUMB
end : B end
SUMB: LD @ x,A
ADD @ y,A
SUB @ w,A
STL A,@ z
RET
.end
例6。
5 计算y=mx+b。
title“example5。
asm”。
mmregs
STACK .usect “STACK”,10H。
bss x ,1
.bss m ,1。
bss b ,1
.bss y ,1。
def start
.data
table: .word 3,15,20
.text
Start: STM # 0, SWWSR
STM STACK + 10H,SP
STM # x,AR1
RPT # 2
MVPD table,*AR1+
CALL SU
end : B end
SU : LD @ x,T
MPY @ m,A
ADD @ b,A
STL A,@ y
RET
.end。
mmregs
STACK 。
usect “STACK",10H
.bss x1 ,1。
bss x2 ,1。
bss a1 ,1。
bss a2 ,1。
bss y,1。
def start
.data
table: 。
word 3,4,5,6。
text
Start: STM # 0, SWWSR
STM STACK + 10H,S
STM # x1,AR1
RPT # 3
MVPD table,*AR1+
CALL SUM
end : B end
SUM: LD @ x1,T
MPY @ a1,B
LD @ x2,T
MAC @ a2,B
STL B,@ y
RET
.end
例6。
7 y=a1*x1+a2*x2+a3*x3+a4*x4。
.title“example6.asm”
.mmregs
STACK 。
usect “STACK",10H
.bss a ,4。
bss x ,4
.bss y ,1
.def start。
data
table:。
word 1,2,3,4
.word 8,6,4,2。
text
Start: STM # 0, SWWSR
STM STACK + 10H,SP
STM # a,AR1
RPT # 7
MVPD table,*AR1+
CALL SUM
end : B end
SUM: STM #a,AR3
STM #x,AR4
RPTZ A,# 3
MAC *AR3+,*AR4+,A
STL A,@y
RET
.end。
title “example2.asm”。
mmregs
STACK .usect “STK",10H
.bss x , 5。
bss y , 1。
def start。
data
table:。
word 10,20,30,40,50 .text
start: STK #0 , SWWSR
LD #1 , DP
STM # STACK+10H,SP
STM # x,AR1
RPT #4
MVPD table,*AR1+
LD # 0,A
CALL SUM
end: B end
SUM: STM # x,AR3
STM # x,AR4
Loop: ADD *AR3+,A
BANZ loop,*AR4-
STL A,@ y
RET。
end
例 6.3 堆栈的使用
.title “example3.asm”。
mmregs
size .set 100
stack .usect “STK”,size
.def start
.text
start: STM # 0 SWWSR
STM stack + size,sp
LD # 1234H,A
STM #100,AR1
MVMM SP,AR7
Loop: STL A,*AR7-
BANZ loop,*AR1—。
end。
mmregs
STACK 。
usect “STK”,10H
.bss x,1
.bss y,1。
bss w,1
.bss z,1。
def start
.data
table: .word 30,20,25
.text
Start: STM # 0, SWWSR
STM STACK + 10H,SP
STM # x,AR1
RPT # 2
MVPD table,*AR1+
CALL SUMB
end : B end
SUMB: LD @ x,A
ADD @ y,A
SUB @ w,A
STL A,@ z
RET。
end
例6.5 计算y=mx+b。
title“example5.asm”。
mmregs
STACK .usect “STACK”,10H。
bss x ,1
.bss m ,1
.bss b ,1
.bss y ,1
.def start。
data
table:。
word 3,15,20。
text
Start: STM # 0, SWWSR
STM STACK + 10H,SP
STM # x,AR1
RPT # 2
MVPD table,*AR1+
CALL SU
end : B end
SU : LD @ x,T
MPY @ m,A
ADD @ b,A
STL A,@ y
RET。
end
.mmregs
STACK .usect “STACK”,10H
.bss x1 ,1
.bss x2 ,1
.bss a1 ,1
.bss a2 ,1。
bss y,1
.def start。
data
table: .word 3,4,5,6。
text
Start: STM # 0, SWWSR
STM STACK + 10H,S
STM # x1,AR1
RPT # 3
MVPD table,*AR1+
CALL SUM
end : B end
SUM: LD @ x1,T
MPY @ a1,B
LD @ x2,T
MAC @ a2,B
STL B,@ y
RET
.end
例6.7 y=a1*x1+a2*x2+a3*x3+a4*x4。
title“example6.asm"。
mmregs
STACK 。
usect “STACK”,10H
.bss a ,4。
bss x ,4
.bss y ,1
.def start。
data
table: .word 1,2,3,4
.word 8,6,4,2。
text
Start: STM # 0, SWWSR
STM STACK + 10H,SP
STM # a,AR1
RPT # 7
MVPD table,*AR1+
CALL SUM
end : B end
SUM: STM #a,AR3
STM #x,AR4
RPTZ A,# 3
MAC *AR3+,*AR4+,A
STL A,@y
RET。
end。