DSP原理 第四章
DSP第四章 TMS320C20X系列的寻址方式及汇编指令

LT *0+
执行指令前: ARP=1, (AR1)=100H,(AR0)=3 执行操作: 用AR1所指的数据存储器100H内 容装载暂时寄存器; 执行指令后: ARP=1,(AR1)=103H
⑤减去索引量
方法
举例
指令使用AR内容作
LT *0-
为数据存储器地址,
执行指令后AR内容 执行指令前:
自动减去ARO的内容。 ARP=1, (AR1)=100H,(AR0)=3
执行操作:
用AR1所指的数据存储器100H内
容装载暂时寄存器;
执行指令后:
ARP=1,(AR1)=FEH
⑥加上索引量,反向进位
方法
举例
指令使用AR内容作为 数据存储器地址,执 行指令后AR内容自动 加上AR0的内容,该 加法采用反向进位方 法。 注:主要用于FFT算 法
LT *BR0+
把AR0加到辅助寄存器中时,地址以位倒序的方 式产生,即进位是从左向右,而不是从右向左进位。
LTP ind [,ARn]
MAC MAC pma , dma
乘且累加
MAC pma, ind [ , ARn]
MACD MACD pma, dma
乘且累加,并将被寻址数据移至下一单元
MACD pma, ind [, ARn]
MPY MPY dma
MPY ind [, ARn]
MPYA/MPYS
累加前次乘积,再将TREG与被寻址数相乘
PAC PAC
PREG转入累加器ACC
SPH
存储PREG高16位,直接或间接寻址
SPL
存储PREG低16位,直接或间接寻址
例1:MAC
0FF00H,02H ;DP=6,地址300H~37FH,PM=0, CNF=1
DSP原理及应用第4章

0000H~007FH 0080H~00FFH 0100H~017FH
页0 页1 页2
……
FF80~FFFFH
数据存储器的分页
1111 1111 1 … 1111 1111 1
000 0000 … 111 1111
图4.2
页511
1) 状态寄存器ST0中的低9位D8~D0(DP)的 状态寄存器ST0中的低9 D8~D0(DP) ST0中的低 值确定当前数据页,DP称页面指针 称页面指针。 值确定当前数据页,DP称页面指针。 当前数据页128个字中的每一个字则由一个7 128个字中的每一个字则由一个 2) 当前数据页128个字中的每一个字则由一个7位 的偏移地址确定,它来自于直接寻址方式的指令。 的偏移地址确定,它来自于直接寻址方式的指令。
● 4.1 ● 4.2 ● 4.3 ●
存储器的类型 程序存储器
数据存储器 4.4 引导加载程序 I/O空间 I/O空间 使用HOLD 4.6 使用HOLD 操作直接访问存储器 TMS320C2000器件的存储器配置 4.7 TMS320C2000器件的存储器配置
● 4.5 ● ●
C2000存储器的类型 4.1 C2000存储器的类型
C2000与外部数据存储器接口 4.3.2 C2000与外部数据存储器接口
第四章 F2833x系统时钟及中断控制-TMS320F28335 DSP原理、开发及应用-符晓

看门狗计数器独立于CPU而运行 看门狗计数器溢出时,产生复位或者中断
CPU正常运行时看门狗计数器被定时复位,即“喂狗” 150MHz的时钟频率相当于6.67ns,看门狗计数器是16
位的,从0开始计数到计满溢出是65536个数,即 6.67ns*65536=4.396ms
第四章 系统时钟及中断控制
4.1 F2833x OSC与PLL (对应: SysCtrl.c)
3.3V时钟脉冲输入
外部晶振
片上振 荡器
PLL工作模式 XRS
表4-1 PLL工作模式
工作模式介绍
PLLSTS[DIVSEL]
PLL关闭
通过将PLLSTS寄存器中的PLLOFF位置1可将PLL模块关闭,从而减少
2-0
HSPCLK
ADC
2-0
LSPCLK
SCI / SPI / I2C / McBSP
4.2 外设时钟信号的寄存器
SysCtrlRegs.PCLKCR0
15
14
13
ECANB ECANA MA ENCLK ENCLK ENCLK
7
6
5
reserved reserved
SCIC ENCLK
12
MB ENCLK
0,1
系统噪声并减少功率损耗。在进入此模式前应首先将PLLCR寄存器设为
0x0000。
2
3
PLL旁路
上电复位或 复位后,PLL进入该模式。在该模式下时钟信号直接绕过
0,1
PLL模块,但PLL模块却未关闭。
2
3
PLL使能
向PLLCR寄存器中写入非零的数可使能PLL模块,一旦写入数据后,PLL
数字信号处理DSP第4章

k 0,1, , N 1
2
13
4.2 按时间抽取(DIT)的基2–FFT算法
将系数统一为 WNk 2 WN2k ,则可得
x[0]
N 4点
x[4]
DFT
G[0]
X [0]
G[1]
X [1]
x[2]
N 4点
WN0
x[6]
DFT
WN2
G[2]
1 G[3]
1
X [2] X [3]
x[1]
N 4点
X m1[i] WNr X m1[ j] , X m1[i] WNr X m1[ j]
m 1, 2 ,
每一个蝶形需要一次复数乘法和两次复数加法。
17
4.2 按时间抽取(DIT)的基2–FFT算法
N点的DIT-FFT计算量为
复数乘法:
1
N 2
log2
N
N 2
复数加法:
2
N 2
log2
N
N
例: 如果每次复数乘法需要100us,每次复数加法需要20us,来 计算N=1024点DFT,则需要
12
4.2 按时间抽取(DIT)的基2–FFT算法
同理
( N 4)1
( N 4)1
G[k] DFT[g[r]]
g[2l]WN2lk2
g[2l 1]WN(22l1)k
l 0
l 0
( N 4)1
( N 4)1
g[2l]WNlk 4 WNk 2
g[2l 1]WNlk 4 ,
l 0
l 0
k 0,1,
(3) WN0 WN4 WN8 WN12 WN16 WN20 WN24 WN28
或 WN4i i 0,1, 2, 3, 4, 5, 6, 7 (dm 1)
DSP原理与应用第4章

DSP原理与应用第4章DSP(Digital Signal Processing,数字信号处理)是利用数字技术对信号进行处理的一种方式。
它将连续时间的模拟信号转化为离散时间的数字信号,通过数学计算和算法实现对信号的分析、处理和改变。
第4章主要介绍了数字滤波器的原理与应用。
首先,章节讲述了滤波器的概念和分类。
滤波器是一种能够通过特定频率的信号的传递或阻止来改变信号频谱的设备。
按照频率特性,滤波器可以分为低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。
每种滤波器都有不同的特性和适用场景。
接着,章节介绍了数字滤波器的设计方法和基本原理。
数字滤波器可以由时域方法或频域方法进行设计。
时域方法包括有限冲激响应(FIR)滤波器设计和无限冲激响应(IIR)滤波器设计。
FIR滤波器的特点是稳定、线性相位和易于设计,但需要更多的计算资源。
IIR滤波器的优点是需要较少的计算资源,但可能不稳定和非线性相位。
基于频域方法,可以利用离散傅里叶变换(DFT)和离散余弦变换(DCT)等频率域变换方法进行滤波器设计。
频域设计方法可以利用频域特性对滤波器进行更精确的控制。
此外,章节还介绍了数字滤波器的性能评估指标,如幅频特性、相位特性、群延迟和频率选择性等。
这些指标可以衡量滤波器的效果和应用范围。
最后,章节介绍了数字滤波器的应用案例。
数字滤波器广泛应用于音频处理、图像处理、通信系统、雷达系统和生物医学工程等领域。
例如,数字降噪滤波器用于从语音信号中去除噪声,数字滤波器在通信系统中用于信号调制和解调,数字滤波器在雷达系统中用于目标检测和跟踪,数字滤波器在生物医学工程中用于信号分析和生物信号处理。
总结起来,第4章主要介绍了数字滤波器的原理和应用。
通过学习本章内容,我们能够了解到数字滤波器的基本概念、分类、设计方法和性能评估指标,以及其在不同领域中的应用案例。
这对于理解和应用DSP技术具有重要意义。
DSP 原理及应用精品课件第4章第2节

4.8 CPU定时器中断应用举例
▪ 配置CPU定时器,启动定时器。 ▪ 开中断,程序进入死循环中等待中断。 ▪ 每次进入中断子程序中使
CpuTimer2.InterruptCount加1。
例4.7
▪ #include "DSP28_Device.h"
▪ void main(void)
▪{
▪
InitSysCtrl();
10
4.7 CPU定时器寄存器
CPU定时器预定标寄存器TIMERxTPR CPU定时器预定标寄存器高位TIMERxTPRH
11
位 15~8
7~0
名称 PSC
TDDR
描述
CPU定时器预定标计数器。
这些位保持了定时器的当前预定标计数值。当PSCH:PSC的值大于0时, 对每一次定时器时钟源周期PSCH:PSC减1。PSCH:PSC减到0以后的 下一个定时器时钟(定时器预定标器的输出)周期,TDDRH:TDDR的 值装入PSCH:PSC中,且定时器计数器寄存器 (TIMH:TIM)减1。 当定时器重新装载位TRB用软件置1时,可以重新装载PSCH:PSC值。 通 过 读 寄 存 器 可 以 检 查 PSCH : PSC 中 的 值 , 但 不 能 直 接 设 置 PSCH : PSC中的值,PSCH:PSC中的值只能从定时器分频寄存器(TDDRH: TDDR)中得到。复位时,PSCH:PSC被设置为0。
//初始化系统控制寄存器、PLL、看门狗、时钟位默认配置
▪
DINT;
//禁止全局中断
▪
IER = 0x0000; //禁止CPU中断
▪
IFR = 0X0000; //清除所有中断标志
▪
InitPieCtrl(); //初始化PIE控制寄存器为默认状态(PIE中断被禁止并且标志被清除)
DSP第四章6概论

1、变换原理 使数字滤波器的频率响应
与模拟滤波器的频率响应相似。
冲激响应不变法、阶跃响应不变法:时域模仿逼近 缺点是产生频率响应的混叠失真
:[,]
1
:
T
,
T
tg 1T 2
z es1T
tg 1T 2
sin 1T 2
cos 1T 2
j 1T
j 1T
e 2 e 2
2 j j 1T
c tg 1T 2
s
c
1 1
z z
1 1
z cs cs
2、变换常数c的选择
1)低频处有较确切的对应关系: 1
1
c
tg
1T 2
c
1T 2
c 2 T
2)某一特定频率严格相对应: c c
c
c tg
1cT 2
c tg c
2
c
cctg
Байду номын сангаас
c
2
特定频率处频率响应严格相等,可以较准确地 控制截止频率位置
4、优缺点
优点:避免了频率响应的混迭现象
c tg
2 s 平面与 z 平面为单值变换
0 0 0 0
缺点:除了零频率附近, 与 之间严重非线性
1)线性相位模拟滤波器 非线性相位数字滤波器
2)要求模拟滤波器的幅频响应为分段常数型,不 然会产生畸变
分段常数型模拟滤波器 经变换后仍为分段常数 型数字滤波器,但临界 频率点产生畸变
j 1T
e 2 e 2
2
j 1T
j 1T
s1T
s1T
s
j
e2
j 1T
e 2
j 1T
DSP原理及应用第四章

9
常用的汇编命令:
汇编命令 .title .end 作 用 .title "example.asm" 放在汇编语言源程序的最后 .text段是源程序正文。经汇编后,紧随.text后的是可执 行程序代码 有两种数据形式:.int和.word Table: .word 1,2,3,4 .word 8,6,4,2 表示在程序存储器标号为table开始的8个单元中存放初 始化数据1、2、3、4、8、6、4和2 .bss x,4表示在数据存储器中空出4个存储单元存放变 量x1,x2,x3和x4 .sect " vectors "定义向量表,紧随其后的是复位向量 和中断向量,名为vectors STACK .usect "STACK",10H在数据存储器中留出16 个单元作为堆栈区,名为STACK .def 举 例 紧跟其后的是用双引号括起的源程序名 结束汇编命令,汇编程序将忽略此后的任何源 语句,所以它应是程序的最后语句 紧跟其后的是汇编语言程序正文
分段的优点:在目标文件中将放置程 序、数据、变量的代码分开,便于在链 接时作为一个单独的部分分配存储器。 由于大多数系统都有好几种形式的存储 器,通过对各个段重新定位,可以使目 目标文件中的段与目标存 标存储器得到更为有效的利用。 储器之间的关系
17
2.外部符号的概念
外部符号 在一个模块中定义,可在另 一个模块中引用的符号。
25
段命令应用举例
汇编语言源程序: .data coeff .word 044h,055h,066h .bss buffer,8 prt .word 0456h .text add: LD 0Dh,A aloop:SUB #1,A BC aloop,AGEQ .data ivals .word 0CCh,0DDh,0EEh
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目的:掌握CPU各部分功能 目的:掌握CPU各部分功能 54系列CPU概述参看2-3节 54系列 系列CPU概述参看 概述参看2
本章主要内容
4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8 CPU状态与控制寄存器 ST CPU状态与控制寄存器----ST0,ST1 状态与控制寄存器---处理器模式状态寄存器PMST 处理器模式状态寄存器PMST 算术与逻辑运算单元— 算术与逻辑运算单元—ALU 累加器A 累加器A和B 滚筒移位寄存器— 滚筒移位寄存器—Barrel Shifter 乘法加法器 比较、选择与存储单元CSSU 比较、选择与存储单元CSSU 指数编码器 EXP
SST:存储饱和位。 SST:存储饱和位。 SST=1 当 SST=1时 , 累加器的结果在存入存储器时进行 饱和操作,而累加器值并不改变。 饱和操作,而累加器值并不改变。 存储器饱和操作: 存储器饱和操作: SXM=0 当 SXM=0 时 , 把 大 于 FFFFFFFFH 的 数 饱 和 成 FFFFFFFFH SXM=1 当 SXM=1 时 , 把 大 于 7 FFFFFFFH 的 数 饱 和 成 7 FFFFFFFH, 把 小 于 8 0 0 0 0 0 0 0 H 的 数 饱 和 成 FFFFFFFH, 80000000H 80000000H
1、ALU结构: ALU结构 结构: ALU输入 ALU输入 X端(DB0~15,S移位寄存器) 移位寄存器) Y端(CB0~15,A,B,T) ALU输出 ALU输出 A,B 2、OVA,OVB,TC,C 参看 CPU状态寄存器 OVA,OVB,TC, 参看CPU 状态寄存器 ST0 3、 OVM,C16参看CPU状态寄存器ST1 OVM, 参看CPU状态寄存器 状态寄存器ST 4、ZA/ZB 用于比较条件指令(A=0,B=0) 用于比较条件指令(A=0 B=0
3-2 处理器模式状态寄存器PMST 地址001DH 处理器模式状态寄存器PMST 地址001DH 各位分布: 各位分布:
各位意义: 各位意义: IPTR: 中断向量指针, 复位时各位全1 IPTR: 中断向量指针 , 复位时各位全 1 , 为 FF1H, 此时中断矢量永远为 FF80H。IPTR FF1 此时中断矢量永远为FF80H 拼接中断向量地址形成中断矢量。 (9位)拼接中断向量地址形成中断矢量。复 位后可用软件修改IPTR值 位后可用软件修改IPTR值,改变中断矢量映 射区。 射区。
C16:双16/双精度算术运算模式位 16/ C16=0时,ALU进行32位字长运算,双精度运算 ALU进行 位字长运算 进行32位字长运算, C16=1时,ALU同时进行2个独立的16位字长运算, ALU同时进行 个独立的16位字长运算 同时进行2 位字长运算, 16位运算 双16位运算 FRCT : 小 数 方 式 位 。 复 位 时 , FRCT=0 。 FRCT=0 FRCT=1乘法器输出左移一位, FRCT=1乘法器输出左移一位,以消去多余的符 号位。 号位。 CMPT:兼容模式位。 本课程不讲) CMPT:兼容模式位。(本课程不讲) ASM: 累加器移位模式位, ASM用二进制补码 ASM: 累加器移位模式位 , ASM 用二进制补码 表示, 移位范围- 16~ 15 ( 表示 , 移位范围 - 16 ~ +15( 右移为负 , 左移为 正)。
4-1 CPU状态与控制寄存器----ST0,ST1 CPU状态与控制寄存器 ST 状态与控制寄存器---1 、 CPU 状态与控制寄存器 ST0, 地址 0006H, 各 CPU状态与控制寄存器 状态与控制寄存器ST 地址0006 H 位分布
各位意义: 各位意义: ARP:辅助寄存器指针。 ARP: 辅助寄存器指针。在兼容模式下选择 AR0—AR7,一般ARP=0 一般ARP=0 TC: 测试控制位 。 保存对 ALU的测试结果 , TC: 测试控制位。 保存对ALU 的测试结果 的测试结果, 常用在位测试和比较指令中
C: 进位位 。该位定义在 A的 bit32,向 32 位有进位 C=1 进位位。该位定义在A bit32, 32位有进位 1 位有进位C= 有借位C=0 ,有借位C=0 OVA:累加器A溢出标志位。 OVA:累加器A溢出标志位。 以累加器A为目的寄存器的算术逻辑运算和乘/ 以累加器A为目的寄存器的算术逻辑运算和乘/加运 发生溢出时OVA=1 算,发生溢出时OVA=1 一旦发生溢出,除了复位或以AOV( 有溢出) 一旦发生溢出 , 除了复位或以 AOV(A 有溢出 ) 、 ANOV为条件的 ANOV为条件的B、BC、XC等指令的执行外, OVA保 为条件的B BC、XC等指令的执行外 OVA保 等指令的执行外, 持不变 OVA=1 有 符 号 数 运 算 时 , OVA=1 表 示 计 算 结 果 大 于 7FFFFFFFH或小于80000000H FFFFFFFH或小于 或小于80000000H 根据测定加法运算时, 中第30位向第 位 符号位) 位向第31 根据测定加法运算时,A中第30位向第31位(符号位) 有进位时,OVA=1 有进位时,OVA=1。
2 、 CPU 状态与控制寄存器 ST1, 地址 0007H, 各 CPU状态与控制寄存器 状态与控制寄存器ST 地址0007 H 位分布
各位意义 BRAF: BRAF:块重复激活标志 BRAF=1 表示块重复处于激活状态, BRAF=1 表示块重复处于激活状态,当执行 RPTB指令时 BRAF=1 RPTB指令时,BRAF=1 指令时, BRAF=0 表示块重复处于非激活状态, BRAF=0 表示块重复处于非激活状态,当块 重复计数器BRC减到 减到0 BRAF自动为 自动为0 重复计数器BRC减到0时,BRAF自动为0。
AVIS: 地址可访问设置, AVIS: 地址可访问设置 , 此位决定是否可以由外 AVIS=1 部引 脚 访问内 部程序 存储器 。 AVIS=1, 可以 ; AVIS=0 不可以。 AVIS=0 不可以。 CLKOFF:时钟禁止位。 CLKOFF:时钟禁止位。 CLKOFF=1 CLKOFF=1时 , 禁止时钟输出端 CLKOUT输出, 禁止时钟输出端CLKOUT输出 输出, CLKOUT为高电平 CLKOUT为高电平 CLKOFF=0 CLKOFF=0时,允许时钟输出端CLKOUT输出。 允许时钟输出端CLKOUT输出 输出。 SMUL: 乘法运算饱和位, SMUL=1 SMUL: 乘法运算饱和位 , 当 SMUL= 1 , 在执行 MAC或MAS指令时 先完成乘法饱和操作, MAC或MAS指令时,先完成乘法饱和操作,再进 指令时, 行累加操作。 一般设SMUL=0 行累加操作。 (一般设SMUL=0)
OVB:累加器B溢出标志位。 OVA类似 OVB:累加器B溢出标志位。与OVA类似。 类似。 DP: 数据存储器页指针 。 在直接寻址中 , DP: 数据存储器页指针。 在直接寻址中, DP(高九位,页地址)拼接指令的低7位 DP(高九位,页地址)拼接指令的低7 构成操作数地址。 构成操作数地址。
例C16位功能说明 指令: Lmem,src[, 指令:DADD Lmem,src[,dst] 执行时 若C16=0时, Lmem(31~ ))+ src(31~ dst (Lmem(31~0))+(src(31~0)) 若C16=1时, Lmem(31~16)) ))+ src(31~16)) dst (Lmem(31~16))+(src(31~16)) (31~16) 31~16) Lmem(15~ ))+ src(15~ (Lmem(15~0))+(src(15~0)) dst(15~0) dst(15~
6、如何把40位的累加器中内容存入到16位的寄存器中 如何把40位的累加器中内容存入到16位的寄存器中 例如 (AR0)=0100H,A中值为 0100H
STL A,*AR0+;(AL) 0100H,(0100H)=789AH,( AL) 0100H 0100H 789AH, AR0)=0101H 0101H STH A,*AR0+;(AH) 0101H,(0101H)=3456H,( AH) 0101H 0101H 3456H AR0)=0102H 0102H STH A,-16,*AR0+;A 中内容右移 16位后 , 把 ( AH) 16, 中内容右移16 位后, AH) 0102H 0102H,(0102H)=0012H, (AR0)=0103H 0102H 0012H 0103H 存储完成后A中值仍然不变( 123456789AH) 存储完成后A中值仍然不变(为123456789AH)
CPL:编辑模式位。 CPL:编辑模式位。 CPL=0 在直接寻址中,使用指针DP( 当CPL=0时,在直接寻址中,使用指针DP(数 据页指针) 据页指针) CPL=1 在直接寻址中,使用指针SP( 当CPL=1时,在直接寻址中,使用指针SP(堆 栈指针) 栈指针) XF:XF 状态位 , 它决定外部引脚 XF状态 。 可 XF:XF状态位 它决定外部引脚XF 状态 状态位, 状态。 用指令SSBX置XF=1 RSBX置XF=0 用指令SSBX置XF=1,用RSBX置XF=0。 HM:保持模式位 HM: HM=0 CPU正在执行内部程序存储器程 当 HM=0 时 , CPU 正在执行内部程序存储器程 序,外部接口处于高阻态 HM=1 CPU停止执行内部程序 当HM=1时,CPU停止执行内部程序
OVM: OVM:溢出模式位 OVM=0 OVM=0时,溢出结果直接加载目的累加器 OVM=1 OVM=1时, 把大于007FFFFFFFH的正数加载到目的累 把大于007FFFFFFFH的正数加载到目的累 加器为007FFFFFFFH; 加器为007FFFFFFFH; 把小于FF80000000H 把小于 FF80000000H 的负数加载到目的累 加器为FF80000000H 加器为FF80000000H。 SXM:符号扩展模式位。 SXM:符号扩展模式位。 SXM=0 SXM=0时,禁止符号位扩展,进行无符号运算 禁止符号位扩展, SXM=1 SXM=1时,允许符号位扩展,进行有符号运算 允许符号位扩展,