1
信息工程学通信工程系
DSP技术 及应用
Digital Signal Processor
数字信号处理器
陈金鹰 副教授
2
第二章 DSP芯片结构介绍
第一节 基本性能
第二节 CPU结构
第三节 内部总线结构
第四节 存储器结构
第五节 在片外围电路
第六节 串行口
第七节 与外设的接口
第八节 复位与省电
第九节 中断
第十节 自举加载
3
1)多总线结构
2) 40位算术逻辑单元( ALU)
3) 17× 17位并行乘法器
4)比较、选择和存储单元( CSSU)
5) 指数编码器
6) 两个地址发生器
第一节 C54x芯片的基本性能
4
7)数据总线
8)总线寻址空间
9)三种存储器空间
10)单指令循环和块循环
11)区分的存储块移动指令
12) 32位长操作数指令
13)可编程等待状态发生器和
可编程的存储单元转换
5
14)锁相环( PLL)发生器
15)多通道缓冲串口( McBSP)
16)直接存储器访问( DMA)控制器
17)主机接口( HPI)
18)定时器
19)多种节电模式
20) JTAG接口
21)低电压工作
6
第二节 C54x芯片的 CPU结构
40位算术逻辑运算单元 ( ALU)
2个 40位累加器 A和 B
移位 -16~ 30位的桶形移位寄存器
乘法器 /加法器单元
比较和选择及存储单元 ( CSSU)
指数编码器
CPU状态和控制寄存器
包
括
7C542的结构框图
8CPU结构
9
1,算术逻辑运算单元
? ALU如何获取数据
? ALU输出送往何方
? 溢出怎么办
? 进位位的作用
? 什么是双 16位算术运算
要
点
10
11
2,累加器 A和 B
? 作用
? 结构与位置
? A和B的异同
? 加载与存储中的移位
AG
保护位
39~ 32
AH
高阶位
31~ 16
AL
低阶位
15~ 0
要
点
89
D
O页存储器
12
3.桶形移位器的功能
? 什么是定标
? 移位处理的作用
? 归一化的作用
? 为何要扩展符号位
要
点
13
4.乘法器 /加法器
? 结构
? 功能
? 什么是舍入处理
? 饱和处理的优点
? 数据流向
17X17乘法
40位加法
检零 饱和 取整
14
5.比较、选择和存储单元
? 结构
? 功能
MUX
COMP
TRN
TC
MSW/LSW
选择
EB15~ EB0
CSSU
桶形移位器
16
S
A B
15
CMPS A,*AR1;如果 A( 31~ 16) >A( 15~ 0);则 A( 31~ 16) ->*AR1,; TRN左移 1位,0->TRN( 0),0->TC;否则 A( 15~ 0) ->*AR1,TRN左移 1位,; 1->TRN( 0),1->TC
If
(M1+D1)>(M2+D2)
then N1= M1+D1
Else
N1= M2+D2
D1
D2M1(尺度 1)
M2(尺度 2)
2*J
2*J+1
N1
J
N2
J+8D1
D2
16
6.指数编码器
? 结构
? 功能 EXP指数编码器
A B
T寄存器
要点 如何计算指数
17
7,CPU状态和控制寄存器
? 3个状态寄存器
? 功能
? 位置
? 各 bit的作用
要
点
6
7
1D
O页存储器
18
ARP
15~ 13
TC
12
C
11
OVA
10
OVB
9
DP
8~ 0
( 1)状态寄存器 0( ST0)
( 2)状态寄存器 1( ST1)
BRAF
15
CPL
14
XF
13
HM
12
INTM
11
0
10
OVM
9
SXM
8
C16
7
FRCT
6
CMPT
5
ASM
4 ~ 0
19
( 3)处理器工作方式状态寄存器( PMST)
IPTR
15~ 7
MP/MC
6
OVLY
5
AVIS
4
DROM
3
CLKOFF
2
SMUL
1
SST
0
如何将 40位数据饱和处理成 32位数
20
第三节 内部总线结构
不同总线作用与区别
?程序总线( PB)
?数据总线( CB,DB和 EB)
?地址总线( PAB,CAB,DAB和 EAB)
?在片双向总线
21
22
读 /写方式
地址总线 程序总线 数据总线
PAB CAB DAB EAB PB CB DB EB
程序读 △ △
程序写 △ △
单数据读 △ △
双数据读 △ △ △ △
长数据 (32位 )
读
△
( hw)
△
( lw)
△ (h
w)
△
( lw)
单数据写 △ △
数据读 /数据
写 △ △ △ △
双数据读 /系
数读 △ △ △ △ △ △
外设读 △ △
外设写 △ △
23
? 为何要设置多内部总线
? 一个机器周期内可完成的存取操作
? 为何要用两个辅助寄存器算术运算单元
? 一个周期内如何执行 3操作数指令
要点
24
第四节 C54x芯片的存储器结构
一、哈佛结构
冯 ?诺依曼
结构
特点
与
区别
程序 /数据存储器 CPU
25
哈佛结构
改善的哈佛结构
特点
与
区别
程序存储器 CPU 数据存储器
对存储器空间分配的不同考虑
26
二、哈佛结构存储空间分配
64K字程序存储空间
64K字数据存储空间
空
间
构
架
DARAM
SARAM
ROM
64K字的 I/O空间
并行性及 RAM双寻址
片内 /片外存储器
特
点
27
存储器型式 C541 C542 C543 C545 C546 C548 C549
ROM 28K 2K 2K 48K 48K 2K 16K
程序 20K 2K 2K 32K 32K 2K 16K
程序 /数据 8K 0 0 16K 16K 0 0
DARAM♀ 5K 10K 10K 6K 6K 8K 8K
SARAM♀ 0 0 0 0 0 24K 24K
28
1.存储器空间的划分与交叉
? DARAM
? SARAM
? ROM
片内存储器
类型
空间
交叉
的条件
MP/位
OVLY位
DROM位
使能
禁止
程序
数据
片内存储器空间
29
TMS320C549存储器空间分配图
30
?C548和 C549页扩展方法
?对程序空间扩展
31
2.程序存储器
器件 ROMMP/MC=0 DARAMOVLY=1 SARAMOVLY=1
C541 28K 5K -
C542 2K 10K -
C543 2K 10K -
C545 48K 6K -
C546 48K 6K -
C548 2K 8K 24K
C549 16K 8K 24K
32
? 片内存储器作为程序存储器条件
? 外部存储器作为程序存储器条件
? 片内 ROM分块的目的
33
高端 2K字的利用
34
3.数据存储器
数据存储器类型
RAM( SARAM)
RAM( DARAM)
片内 ROM(软件映 像 )
片内 /片外数据存储器的识别
35
器件 程序 /数据ROM
DROM=1
DARAM SARAM
C541 8K 5K -
C542 - 10K -
C543 - 10K -
C545 16K 6K -
C546 16K 6K -
C548 - 8K 24K
C549 16K 8K 24K
36
RAM分块目的
37
DARAM前 1K数据存储器的配置
38
4.存储器映 像 寄存器
? 位置
? 作用
? 访问所需周期数
39
地址 CPU寄存器名称 地址 CPU寄存器名称
0 IMR( 中断屏蔽寄存器 ) 12 AR2( 辅助寄存器 2)
1 IFR( 中断标志寄存器 ) 13 AR3( 辅助寄存器 3)
2~5 保留 ( 用于测试 ) 14 AR4( 辅助寄存器 4)
6 ST0( 状态寄存器 0) 15 AR5( 辅助寄存器 5)
7 ST1( 状态寄存器 1) 16 AR6( 辅助寄存器 6)
8 AL( 累加器 A低字 ) 17 AR7( 辅助寄存器 7)
9 AH( 累加器 A高字 ) 18 SP( 堆栈指针 )
A AG( 累加器 A保护位 ) 19 BK( 循环缓冲长度寄存器 )
B BL( 累加器 B低字 ) 1A BRC( 块重复计数器 )
C BH( 累加器 B高字 ) 1B RSA( 块重复起始寄存器 )
D BG( 累加器 B保护位 ) 1C REA( 块重复结束寄存器 )
E T( 暂存寄存器 ) 1D PMST( 处理器工作方式 )
F TRN( 状态转移寄存器 ) 1E XPC( 程序计数器扩展 )
10 AR0( 辅助寄存器 0)
11 AR1( 辅助寄存器 1) 1E~1F 保留
40
地 址 名 称 说 明
20 DRR0 串行端口 0数据接收寄存器
21 DXR0 串行端口 0数据发送寄存器
22 SPC0 串行端口 0数据控制寄存器
23 - 保留
24 TIM 定时寄存器
25 PRD 定时周期寄存器
26 TCR 定时控制寄存器
27 - 保留
28 SWWSR 软件等待状态寄存器
29 BSCR 块切换控制寄存器
2A~2F - 保留
30 DRR1 串行端口 1数据接收寄存器
31 DXR1 串行端口 1数据发送寄存器
32 SPC1 串行端口 1数据控制寄存器
33~5F - 保留
41
第五节 在片外围电路
通用 I/O引脚 XF
定时器
时钟发生器
主机接口
软件可编程等待状态发生器
可编程分区开关
串行口
不同
子系列
器件
差别
42
一、通用 I/O引脚
BIO
XF SSBX XFRSBX XF
特点
发信号
收信号 XC 2,BIO
43
二、定时器
功能
结构图
工作过程
44
定时器寄存器( TIM)
定时器周期寄存器( PRD)
定时器控制器寄存器( TCR)
主要
部件
保留
15~ 12
soft
11
free
10
PSC
9 ~ 6
TRB
5
TDDR
3~ 0
TSS
4
TCR中的控制位和状态位
45
定时中断的周期计算
定时中断周期 =CLKOUT× ( TDDR+1) × ( PRD+1)
定时器输出信号
定时器如何节电
TOUT
TINT
46
1) TCR中的 TSS位置 1,关闭定时器。
2)加载 PRD。
3)重新加载 TCR
定时器初始化的步骤
使 TDDR初始化
令 TSS位为 0
TRB位置 1
47
1)将中断标志寄存器 IFR中的 TINT位置 1,
清除尚未处理完的定时器中断。
2)将中断屏蔽寄存器 IMR中的 TINT位置 1,
开放定时中断。
3)将 ST1中的 INTM位清 0,从整体上开放中
断。
开放定时中断 (假定 INTM=1)
48
编程举例
STM #0000h,SWWSR ;不插等待周期; ( 软件等待状态寄存器置 0)
STM #0010h,TCR ; TSS=1( TCR第 5位 TSS置 1)
STM #0100h,PRD ;加载定时器周期寄存器 ( PRD);定时中断周期 =CLKOUT× ( TDDR+1) × ( PRD+1)
STM #0C20h,TCR ;定时分频系数 TDDR初始化为 0; TSS=0,启动定时器工作; TRB=1,当 TIM减到 0后重新加载 PRD; Soft=1,Free=1定时器遇到断点后继续运行
STM #0008h,IFR ;清除尚未处理完的定时中断
STM #0008h,IMR ;开放定时中断
RSBX INTM ;开放中断 ( 状态寄存器 ST1的 INTM位复位 )
…
49
三、时钟发生器
? 作用
? 组成
两种参考时钟输入方式
内部振荡电路 晶体振荡电路
50
时钟频率
CPU时钟频率
CLKOUT
晶体振荡频率
外部时钟频率
CLKIN
内部 PLL功能
51
( 1) 硬件配置的 PLL
引脚状态 时钟方式
CLKM
D1
CLKM
D2
CLKM
D3 选择方案 1 选择方案 2
0 0 0 工作频率 =外时钟 × 3 工 作 频率 = 外时 钟× 5
1 1 0 工作频率 =外时钟 × 2 工 作 频率 = 外时 钟× 4
1 0 0 工作频率 =内时钟 × 3 工 作 频率 = 内时 钟× 5
0 1 0 工作频率 = 外时钟× 1.5 工 作 频率 = 外时 钟4.5
0 0 1 工作频率 =外时钟 /2 工作频率 =外时钟 /2
1 1 1 工作频率 =内振荡器 /2 工作频率 =内振荡器/2
1 0 1 工作频率 =外时钟 × 1 工 作 频率 = 外时 钟× 1
0 1 1 停止方式 停止方式
52
( 2) 软件可编程 PLL
时钟工作方式寄存器 (CLKMD)
作用
PLL
MUL
15~ 12
PLL
DIV
2
PLL
COUNT
11
PLL
ON/OFF
10 ~ 3
PLL
NDIV
1 0
PLL
STATUS
时钟发生
器选择位
乘数 除数 计数器 通 /断位 工作状
态位
53
软件编程时钟方式
? 第一,PLL方式
? 第二,DIV方式
工作时钟 CLKOUT=CLKIN× 乘系数
CLKOUT启动过程
锁定
复位 DIV工作
加载 延迟定时
PLL
开始
定时
54
引脚状态 CLKMD寄存器复位
值
时钟方式CLKMD1 CLKMD2 CLKMD3
0 0 0 0000h 工频 =外时钟 /2
0 0 1 1000h 工频 =外时钟 /2
0 1 0 2000h 工频 =外时钟 /2
1 0 0 4000h 工频 =内振荡器 /2
1 1 0 6000h 工频 =外时钟 /2
1 1 1 7000h 工频 =内振荡器 /2
1 0 1 0007h 工频 =外时钟 × 1
0 1 1 - 停止方式
复位时设置的时钟方式
55
锁定定时器
? 工作方式
? 锁定延时时间的设定
? PLLCOUNT的数值设定
DIV
工作方式 时钟发生器
按 DIV方式工作
PLL
工作方式
锁定定时器工作
56
设计举例
? 如果要从 DIV方式转到 PLL× 3方式, 已知
CLKIN的频率为 13MHz,PLLCOUNT=41( 十进制
数 ), 只要在程序中加入如下指令即可:
? STM #0010 0001 0100 1111 b,CLKMD
? 其中, PLLMUL=0010,PLLDIV=0,PLLNDIV=1,
故由表 5-10可得乘系数为 3; PLLON/OFF=1,
表 5-10知 PLL工作; PLLCOUNT=00101001,十
进制计数值为 41。
57
四、复位电路
? 功能
简单的复位电路 有监视功能的复位电路
58
五、主机接口
?功能
?结构
59
?( 1) HPI存储器( DARAM)
?( 2) HPI地址寄存器( HPIA)
?( 3) HPI数据锁存器( PHID)
?( 4) PHI控制寄存器( HPIC)
?( 5) PHI控制逻辑
工作过程
CPU存储
空间访问
主机数据
寄存器 HPID
主机地址
寄存器 HPIA
外部
主机
外部控制信号
60
HPI两种工作方式
( 1)共用寻址方式( SAM)
( 2)仅主机寻址方式( HOM)
HPI存储器主机 CPU
HPI存储器主机 CPU
61
HPI与主机的连接
62
? HPID与 DARAM存储器的关系
? HPIA寄存器对寻址的影响
? HPIC控制寄存器各位设置
63
对 HPI的寻址过程
HPI的中断过程
主机 HPI中断
写 DSPHINT
HCNTL0
HCNTL1
00,10,11 HPIC
64
第六节 串行口
? 标准同步串行口( SP)
? 缓冲同步串行口( BSP)
? 多路缓冲串口( McBSP)
? 时分多路串行口( TDM)
当缓冲串行口和时分多路串行口工作在标
准方式时,它们的功能与标准串行口相同
串
行
口
分
类
65
一、标准串口 SP
66
1.串行口 组成
? 16位数据接收寄存器( DRR)
? 数据发送寄存器( DXR)
? 接收移位寄存器( RSR)
? 发送移位寄存器( XSR)
? 控制电路
67
标准串口 SP特点
? 可有多个相互独立的标准同步串口
? 发送和接收是双向缓冲的
? 2个存储器映像寄存器用于传送数据
? 每个口有时钟, 帧同步脉冲以及串行移位寄存器
? 可以按 8位字节或 16位字节转换
? 可以产生自己的可屏蔽收发中断
? 可以工作在任意的时钟频率上
? 标准串行口的最高工作频率是 CLKOUT的 1/4。
68
串行口连接方法
数据发送工作过程
数据接收工作过程
69
2.串行口控制寄存器
功能
控制位作用
70
3,标准串口 SP的使用
? STM #0038H, SPC ;串口初始化
? STM #00C0H, IFR ;清除挂起的串口中断
? AND #00C0H, IMR ;使能中断
? RSBX INTM ;使能全局中断
? STM #00F8H, SPC ;开始串口传输
? STM DATA1,DXR ;写第一个数据到 DXR
71
二、缓冲串行口( BSP)
特点
缓冲串行口 6个寄存器
控制扩展寄存器 BSPCE
数据接收移位寄存器 BRSR
数据发送移位寄存器 BXSR
数据接收寄存器 BDRR
数据发送寄存器 BDXR
控制寄存器 BSC
72
1.串行口的组成
BDR
BCLKR
BFSR
BCLKX
BFSX
BDX
BRINT
BMINT
BXINT
C54x内存界面
自动缓冲单元 ABU
控制 XRDY RRDY BXINT BMINT BRINT
BDXR BSPCE
BXSR
BRSR
串口控
制逻辑
BSPCBDRR
中断
控制
C54xCPU界
面
中断
逻辑
16
11
73
2.缓冲串行口的工作模式
? ( 1)缓冲串行口的标准模式 (表 2-16)
? ( 2)缓冲串行口增强模式
可编程串口时钟选择时钟
帧同步信号的正负极性可选
10,12位字长
允许忽略同步信号或不忽略 。
新增
功能
BSPCE的 BRE控制模式转换
74
3.自动缓冲单元 ABU
可独立于 CPU自动完成控制串口与
固定缓冲内存区中的数据交换。功能
组成
地址寄存器 AXR
块长度发送寄存器 BKX
地址接收寄存器 ARR
块长度接收寄存器 BKR
串口控制寄存器 BSPCE特点
75
ABU完成对缓冲存储器的存取;工作过
程中地址寄存器自动增加, 直至缓冲区
的底部 。 到底部后, 地址寄存器内容恢
复到缓冲存储器区顶部;如果数据到了
缓冲区的一半或底部, 就会产生中断,
并刷新 XH/XL;如果选择禁止自动缓冲功
能, 当数据过半或到达缓冲区底部时,
ABU会自动停止缓冲功能 。
工作过程
76
循环寻址原理
装载 BKX/R确定缓冲区长度,装载 ARX/R给出 2K字
缓冲区基地址和缓冲区数据起始地址实现初始化。
BKX/R从高位至低位方向第一个 1的位置 N位将 ARX/R
分为 ARH和 ARL两部分,缓冲区顶部地址( TBA)由
高位为 ARH,而低位为 N+1个 0组成的数定义。缓冲
区底部地址( BBA)由 ARH和 BKL-1决定。而当前数
据缓冲区的位置由 ARX/R的内容决定。如图所示。
ARX/R的内容会随着每一次访问继续增加直至到下
一个允许的缓冲区开始地址。然后在后续的存取操
作中,作为更新的循环缓冲开始地址,新的 ARX/R
内容用来进行正确的循环缓冲地址计算。
77
循环寻址示意图
BKX/R
ARX/R
ARH ARL
0… 0 1…
BBA
TBA
缓冲区当前位置
ARH BKL
ARH BKL>>1
ARH 0… 0
下半部开始
缓冲区顶部
上半部分
缓冲区底部
下半部分
78
三、时分多路串行口( TDM)
功
能
非 TDM方式 =标准串口
TDM方式 当 TSPC的 TDM=1
工作
方式
相
关
寄
存
器
TDM数据接收寄存器 TRCV
TDM数据发送寄存器 TDXR
TDM串口控制发送寄存器 TSPC
TDM通道选择寄存器 TCSR
TDM发送 /接收地址寄存器 TRTA
TDM接收地址寄存器 TRAD
TDM数据接收移位寄存器 TRSR
TDM数据发送移位寄存器 TXSR
79
C54x
TDX TDR TFSX TFSR TCLKX TCLKR
器件 0 器件 1 器件 7……
TDM时分多路串口连接
80
第七节 外设接口
数据总线
地址总线
一组控制信号
一、外设接口的时序关系
1.外设接口引线
片外存储器
I/O口
作用 寻址
81
82
? ( 1) 如何识别片内存储器与片外存储器
? ( 2) 如何区别片外数据存储器与程序存
储器和 I/O空间
? ( 3) 如何确定与外部器件通信期间数据
传送中方向
? ( 4) 如何与低速设备通信
? ( 5) 如何与外部电路共享总线
? ( 6) 如何隐藏内部程序器地址线内容
83
2.外部总线操作的优先级别
单周期内对片内存储器可完成从程序存储
器取 1条指令, 从数据存储器读 2个操作数,
共 3个操作 。
但由于只有一条外部总线, 故只能有 1个
操作 。 在遇到一个机器周期内, CPU寻址外
部存储器两次, 一次取指, 一次取操作数时,
数据寻址比程序存储器取指具有较高的优先权 。
单周期内对片内存储器操作
与片外存储器操作的区别
84
3.外部接口定时图
存储器读一读一写操作定时图
M ST RB
W
PS
DS
IS
注意下面
信号变化:
地址
R/
读操作 1个机器周期
85
存储器写一写一读操作定时图
写操作要用 2个机器周期
86
并行 I/O读一写一读定时图
I/O设备读 /写操作要持续 2个机器周期
87
二、外设接口的速度配合
1.对接口器件的速度要求
外部存储器存取时间应小于 60%的机器,
周期否则需通过软件或硬件插入等待状态。
C54x读操作定时简图
88
插入等待状态数与外部器件的
存取时间的关系
外部器件的存取时间 ta/ ns 插入等待状态数
ta≤15 0
15< ta≤40 1
40< ta≤65 2
65< ta≤90 3
90< ta≤115 4
115< ta≤140 5
对于型号为 TMS320C54x-40的 DSP芯片
89
2.软件等待状态发生器
功能
软件等待状态寄存器( SWWSR)
为什么要对外部存储器分块
90
等待应用举例
为程序空间和 I/O空间插入 3个等待状态
C54x等待状态发生器的逻辑框图
91
如图进行连接,复位 SWWSR=7FFFh,所有
的程序、数据和 I/O空间都被插入 7个等
待状态。然后用 STM指令进行修改 SWWSR:
STM #349B,SWWSR; SWWSR= 0 011 010 010 011 011
工作过程
92
将 SWWSR中相应的字段值加载到计数器 。
等待状态计数器减计数 。 当计数器减到 0且
外部 READY线置高电平, 经或门加到 CPU的
端, 结束等待状态 。 注意:只有插入 2个以
上机器周期时, CPU才在 CLKOUT的下降沿检
测外部 READY信号 。 执行到最后一个等待状
态时, 信号将变成电平 。 利用这一特
点, 可以再附加插入硬件等状态 。
WAIT
MSC
93
3.利用软件等待实现
接口的速度配合
例 2-1 试为 TMS320C54x-40作如下外设配置:
程序存储器 EPROM 8K× 16位, ta=70ns
数据存储器 SRAM 8K× 16位, ta=12ns
A/D和 D/A变换器 16位, 转换时间 =120ns
画出系统的接口连线图 。
94
本例中 C54x的机器周期为 25ns( 40MIPS),
若外部器件的存取时间小于 15ns,可以不插入
等待状态 。 因此例中的数据存储器可以不插入
等待状态, 但程序存储器和 A/D,D/A外部设备
应分别插入 3个 ( 75ns) 和 5个 ( 125ns) 等待
状态 。 此时软件等待状态寄存器 SWWSR应配置
为:
0 101 000 000 011 000
STM #5018,SWWSR
95系统接口连线图
96
4.利用硬件等待实现接口的速度配合
? 什么情况下需插入硬件等待状态
? 怎样用硬件插入等待 应
5.利用混合等待实现接口的速度配合
混合等待状态举例
C54x-40与低地址程序存储器( SRAM,12 ns)
以及高地址程序存储器( EPROM,200 ns)相
接口。
97
软件和硬件混合等待状态连接
STM #1278,SWWSR
98
三、分区转换逻辑
? 为什么要对外部存储器分区
? 可编程分区转换逻辑的功能
? 分区转换控制寄存器( BSCR)的定义
BNKCMP
15~ 12
PS ~ DS
11
保留位 BH
1
EXO
010~ 2
99
外部存储器的分区
BNKCMP 屏蔽的最
高有效位
分区大小
( 16位字)位 15 位 14 位 13 位 12
0 0 0 0 - 64K
1 0 0 0 15 32K
1 1 0 0 15~ 14 16K
1 1 1 0 15~ 13 8K
1 1 1 1 15~ 12 4K
100
第八节 复位与省电
? 使 C54x进入一已知状态
? 至少保持 2个时钟周期的低电平
? 复位后为高电平
? 如果 MP/ =0,则处理器从片内
ROM开始执行程序,否则,它将从
片外程序存储器开始执行程序。
一、复位和 IDLE3省电工作方式
1.复位操作
RS
的功能
MC
101
处理器复位操作包括
1)置 IPTR= 1FFh。
2)置 MP/ 位为引脚 MP/ 电平 。
3)置 PC= FF80h
4)将 FF80h加到 PA。
5) 置数据总线为高阻, 控制线为无效状态 。
6) 产生中断响应信号 。
7) 置 ST1的 INTM= 1,关闭所有的可屏蔽中断 。
8)IFR清 0。
9) 产生同步复位信号 ( ), 外围电路初始化 。
10) 将相应状态位置成初始值 。
MC MC
IACK
STRESET
102
2.外部总线复位定时图
RS
复位两
阶段
低
电
平
后
高
电
平
后
103
3., 唤醒, IDLE3省电方式的定时图
104
进入 IDLE3:执行 IDLE3指令
必须重新启动 PLL,并在 CPU重
新恢复工作以前锁定好相位。
IDLE3状态特点
结束 IDLE3,利用外部中断
(,, )INTn 1NM RS
105
中断唤醒条件,当 CLKOUT频率为 40MHz时
“唤醒,
过程
中断脉冲宽度大于 10ns
PLL减法计数时间大于 50μ s
?中断引脚变低电平
?PLL锁相
?计数器对输入时钟减法计数到 0
?PLL输出加到 CPU
?C54x退出 IDLE3
106
计数器
起始值
PLL乘
系数
等效时钟
周期( N)
减法计数时间( μ s)
CLKOUT频率为 40MHz
2048 1 2048 51.2
2048 1.5 3072 76.8
1024 2 2048 51.2
1024 2.5 2560 64
1024 3 3072 76.8
512 4 2048 51.2
512 4.5 2304 57.6
512 5 2560 64
107
108
复位
方法
,唤醒,
IDLE3
不用减法计数器
PLL输出立即加到内部逻辑电路
要求 的低电平应大于 50μ s,以保证 PLL有 50μ s的锁存时间,
不致用不稳定的时钟启动工作 。
RS
109
二、保持方式
? 何种情况使用保持方式
? 如何进入保持方式
110
C54x在保持状态的工作方式
1)正常保持方式
2) DMA操作方式
保持状态的维持与确认
保持状态的退出
111
第九节 中断处理
?受外部中断口信号触
发的外部硬件中断
?受片内外围电路信号
触发的内部硬件中断
?程序指令
INTR
TRAP
RESET
1.中断来源
软件驱动硬件驱动
一、中断类型
112
2.中断分类
可屏蔽中断 非屏蔽中断
中断
可以用软件
屏蔽或开放
( SINT15~
SINT0)
C54x总是响应
所有软件中断,
两个外部硬件
中断,RS NMI
113
二、中断标志寄存器( IFR)和
中断屏蔽寄存器( IMR)
中断标志寄存器:功能, 设置, 清除
中断屏蔽寄存器:功能, 设置, 开放
114
三、中断处理过程
( 1)接受中断请求
( 2)响应中断
( 3)执行中断服务程序
四、实现中断的相关问题
( 1)中断向量地址的计算
115
中断向量地址计算举例
复位后的初始地址计算
( 1)取 IPTR的值
( 2)查表 2- 25得中断向量序号
( 3)将十六进制的中断向量序号左移 2位
( 4)将( 1)与( 3)相加 得中断向量地址
116
117
IPTR=1 1 1 1 1 1 1 1 1
+ K= 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0
F F 8 0 h
故硬件复位后的开始地址为 0FF80h。
IPTR=0 0 0 0 0 0 0 0 1
+ K= 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 8 0 h
此时中断向量被移到从 0FF80h单元开始处 。
118
( 2)外部中断响应的时间
响应的时间=采样时间+查询时间
= 1+ 2≥ 3个完整的机器周期
外部中断的时间基本上在 3~ 8个机器周期
之间 。
( 3)外部中断触发方式
电平触发
边沿触发
119
信息工程学通信工程系
DSP技术 及应用
Digital Signal Processor
数字信号处理器
陈金鹰 副教授
2
第二章 DSP芯片结构介绍
第一节 基本性能
第二节 CPU结构
第三节 内部总线结构
第四节 存储器结构
第五节 在片外围电路
第六节 串行口
第七节 与外设的接口
第八节 复位与省电
第九节 中断
第十节 自举加载
3
1)多总线结构
2) 40位算术逻辑单元( ALU)
3) 17× 17位并行乘法器
4)比较、选择和存储单元( CSSU)
5) 指数编码器
6) 两个地址发生器
第一节 C54x芯片的基本性能
4
7)数据总线
8)总线寻址空间
9)三种存储器空间
10)单指令循环和块循环
11)区分的存储块移动指令
12) 32位长操作数指令
13)可编程等待状态发生器和
可编程的存储单元转换
5
14)锁相环( PLL)发生器
15)多通道缓冲串口( McBSP)
16)直接存储器访问( DMA)控制器
17)主机接口( HPI)
18)定时器
19)多种节电模式
20) JTAG接口
21)低电压工作
6
第二节 C54x芯片的 CPU结构
40位算术逻辑运算单元 ( ALU)
2个 40位累加器 A和 B
移位 -16~ 30位的桶形移位寄存器
乘法器 /加法器单元
比较和选择及存储单元 ( CSSU)
指数编码器
CPU状态和控制寄存器
包
括
7C542的结构框图
8CPU结构
9
1,算术逻辑运算单元
? ALU如何获取数据
? ALU输出送往何方
? 溢出怎么办
? 进位位的作用
? 什么是双 16位算术运算
要
点
10
11
2,累加器 A和 B
? 作用
? 结构与位置
? A和B的异同
? 加载与存储中的移位
AG
保护位
39~ 32
AH
高阶位
31~ 16
AL
低阶位
15~ 0
要
点
89
D
O页存储器
12
3.桶形移位器的功能
? 什么是定标
? 移位处理的作用
? 归一化的作用
? 为何要扩展符号位
要
点
13
4.乘法器 /加法器
? 结构
? 功能
? 什么是舍入处理
? 饱和处理的优点
? 数据流向
17X17乘法
40位加法
检零 饱和 取整
14
5.比较、选择和存储单元
? 结构
? 功能
MUX
COMP
TRN
TC
MSW/LSW
选择
EB15~ EB0
CSSU
桶形移位器
16
S
A B
15
CMPS A,*AR1;如果 A( 31~ 16) >A( 15~ 0);则 A( 31~ 16) ->*AR1,; TRN左移 1位,0->TRN( 0),0->TC;否则 A( 15~ 0) ->*AR1,TRN左移 1位,; 1->TRN( 0),1->TC
If
(M1+D1)>(M2+D2)
then N1= M1+D1
Else
N1= M2+D2
D1
D2M1(尺度 1)
M2(尺度 2)
2*J
2*J+1
N1
J
N2
J+8D1
D2
16
6.指数编码器
? 结构
? 功能 EXP指数编码器
A B
T寄存器
要点 如何计算指数
17
7,CPU状态和控制寄存器
? 3个状态寄存器
? 功能
? 位置
? 各 bit的作用
要
点
6
7
1D
O页存储器
18
ARP
15~ 13
TC
12
C
11
OVA
10
OVB
9
DP
8~ 0
( 1)状态寄存器 0( ST0)
( 2)状态寄存器 1( ST1)
BRAF
15
CPL
14
XF
13
HM
12
INTM
11
0
10
OVM
9
SXM
8
C16
7
FRCT
6
CMPT
5
ASM
4 ~ 0
19
( 3)处理器工作方式状态寄存器( PMST)
IPTR
15~ 7
MP/MC
6
OVLY
5
AVIS
4
DROM
3
CLKOFF
2
SMUL
1
SST
0
如何将 40位数据饱和处理成 32位数
20
第三节 内部总线结构
不同总线作用与区别
?程序总线( PB)
?数据总线( CB,DB和 EB)
?地址总线( PAB,CAB,DAB和 EAB)
?在片双向总线
21
22
读 /写方式
地址总线 程序总线 数据总线
PAB CAB DAB EAB PB CB DB EB
程序读 △ △
程序写 △ △
单数据读 △ △
双数据读 △ △ △ △
长数据 (32位 )
读
△
( hw)
△
( lw)
△ (h
w)
△
( lw)
单数据写 △ △
数据读 /数据
写 △ △ △ △
双数据读 /系
数读 △ △ △ △ △ △
外设读 △ △
外设写 △ △
23
? 为何要设置多内部总线
? 一个机器周期内可完成的存取操作
? 为何要用两个辅助寄存器算术运算单元
? 一个周期内如何执行 3操作数指令
要点
24
第四节 C54x芯片的存储器结构
一、哈佛结构
冯 ?诺依曼
结构
特点
与
区别
程序 /数据存储器 CPU
25
哈佛结构
改善的哈佛结构
特点
与
区别
程序存储器 CPU 数据存储器
对存储器空间分配的不同考虑
26
二、哈佛结构存储空间分配
64K字程序存储空间
64K字数据存储空间
空
间
构
架
DARAM
SARAM
ROM
64K字的 I/O空间
并行性及 RAM双寻址
片内 /片外存储器
特
点
27
存储器型式 C541 C542 C543 C545 C546 C548 C549
ROM 28K 2K 2K 48K 48K 2K 16K
程序 20K 2K 2K 32K 32K 2K 16K
程序 /数据 8K 0 0 16K 16K 0 0
DARAM♀ 5K 10K 10K 6K 6K 8K 8K
SARAM♀ 0 0 0 0 0 24K 24K
28
1.存储器空间的划分与交叉
? DARAM
? SARAM
? ROM
片内存储器
类型
空间
交叉
的条件
MP/位
OVLY位
DROM位
使能
禁止
程序
数据
片内存储器空间
29
TMS320C549存储器空间分配图
30
?C548和 C549页扩展方法
?对程序空间扩展
31
2.程序存储器
器件 ROMMP/MC=0 DARAMOVLY=1 SARAMOVLY=1
C541 28K 5K -
C542 2K 10K -
C543 2K 10K -
C545 48K 6K -
C546 48K 6K -
C548 2K 8K 24K
C549 16K 8K 24K
32
? 片内存储器作为程序存储器条件
? 外部存储器作为程序存储器条件
? 片内 ROM分块的目的
33
高端 2K字的利用
34
3.数据存储器
数据存储器类型
RAM( SARAM)
RAM( DARAM)
片内 ROM(软件映 像 )
片内 /片外数据存储器的识别
35
器件 程序 /数据ROM
DROM=1
DARAM SARAM
C541 8K 5K -
C542 - 10K -
C543 - 10K -
C545 16K 6K -
C546 16K 6K -
C548 - 8K 24K
C549 16K 8K 24K
36
RAM分块目的
37
DARAM前 1K数据存储器的配置
38
4.存储器映 像 寄存器
? 位置
? 作用
? 访问所需周期数
39
地址 CPU寄存器名称 地址 CPU寄存器名称
0 IMR( 中断屏蔽寄存器 ) 12 AR2( 辅助寄存器 2)
1 IFR( 中断标志寄存器 ) 13 AR3( 辅助寄存器 3)
2~5 保留 ( 用于测试 ) 14 AR4( 辅助寄存器 4)
6 ST0( 状态寄存器 0) 15 AR5( 辅助寄存器 5)
7 ST1( 状态寄存器 1) 16 AR6( 辅助寄存器 6)
8 AL( 累加器 A低字 ) 17 AR7( 辅助寄存器 7)
9 AH( 累加器 A高字 ) 18 SP( 堆栈指针 )
A AG( 累加器 A保护位 ) 19 BK( 循环缓冲长度寄存器 )
B BL( 累加器 B低字 ) 1A BRC( 块重复计数器 )
C BH( 累加器 B高字 ) 1B RSA( 块重复起始寄存器 )
D BG( 累加器 B保护位 ) 1C REA( 块重复结束寄存器 )
E T( 暂存寄存器 ) 1D PMST( 处理器工作方式 )
F TRN( 状态转移寄存器 ) 1E XPC( 程序计数器扩展 )
10 AR0( 辅助寄存器 0)
11 AR1( 辅助寄存器 1) 1E~1F 保留
40
地 址 名 称 说 明
20 DRR0 串行端口 0数据接收寄存器
21 DXR0 串行端口 0数据发送寄存器
22 SPC0 串行端口 0数据控制寄存器
23 - 保留
24 TIM 定时寄存器
25 PRD 定时周期寄存器
26 TCR 定时控制寄存器
27 - 保留
28 SWWSR 软件等待状态寄存器
29 BSCR 块切换控制寄存器
2A~2F - 保留
30 DRR1 串行端口 1数据接收寄存器
31 DXR1 串行端口 1数据发送寄存器
32 SPC1 串行端口 1数据控制寄存器
33~5F - 保留
41
第五节 在片外围电路
通用 I/O引脚 XF
定时器
时钟发生器
主机接口
软件可编程等待状态发生器
可编程分区开关
串行口
不同
子系列
器件
差别
42
一、通用 I/O引脚
BIO
XF SSBX XFRSBX XF
特点
发信号
收信号 XC 2,BIO
43
二、定时器
功能
结构图
工作过程
44
定时器寄存器( TIM)
定时器周期寄存器( PRD)
定时器控制器寄存器( TCR)
主要
部件
保留
15~ 12
soft
11
free
10
PSC
9 ~ 6
TRB
5
TDDR
3~ 0
TSS
4
TCR中的控制位和状态位
45
定时中断的周期计算
定时中断周期 =CLKOUT× ( TDDR+1) × ( PRD+1)
定时器输出信号
定时器如何节电
TOUT
TINT
46
1) TCR中的 TSS位置 1,关闭定时器。
2)加载 PRD。
3)重新加载 TCR
定时器初始化的步骤
使 TDDR初始化
令 TSS位为 0
TRB位置 1
47
1)将中断标志寄存器 IFR中的 TINT位置 1,
清除尚未处理完的定时器中断。
2)将中断屏蔽寄存器 IMR中的 TINT位置 1,
开放定时中断。
3)将 ST1中的 INTM位清 0,从整体上开放中
断。
开放定时中断 (假定 INTM=1)
48
编程举例
STM #0000h,SWWSR ;不插等待周期; ( 软件等待状态寄存器置 0)
STM #0010h,TCR ; TSS=1( TCR第 5位 TSS置 1)
STM #0100h,PRD ;加载定时器周期寄存器 ( PRD);定时中断周期 =CLKOUT× ( TDDR+1) × ( PRD+1)
STM #0C20h,TCR ;定时分频系数 TDDR初始化为 0; TSS=0,启动定时器工作; TRB=1,当 TIM减到 0后重新加载 PRD; Soft=1,Free=1定时器遇到断点后继续运行
STM #0008h,IFR ;清除尚未处理完的定时中断
STM #0008h,IMR ;开放定时中断
RSBX INTM ;开放中断 ( 状态寄存器 ST1的 INTM位复位 )
…
49
三、时钟发生器
? 作用
? 组成
两种参考时钟输入方式
内部振荡电路 晶体振荡电路
50
时钟频率
CPU时钟频率
CLKOUT
晶体振荡频率
外部时钟频率
CLKIN
内部 PLL功能
51
( 1) 硬件配置的 PLL
引脚状态 时钟方式
CLKM
D1
CLKM
D2
CLKM
D3 选择方案 1 选择方案 2
0 0 0 工作频率 =外时钟 × 3 工 作 频率 = 外时 钟× 5
1 1 0 工作频率 =外时钟 × 2 工 作 频率 = 外时 钟× 4
1 0 0 工作频率 =内时钟 × 3 工 作 频率 = 内时 钟× 5
0 1 0 工作频率 = 外时钟× 1.5 工 作 频率 = 外时 钟4.5
0 0 1 工作频率 =外时钟 /2 工作频率 =外时钟 /2
1 1 1 工作频率 =内振荡器 /2 工作频率 =内振荡器/2
1 0 1 工作频率 =外时钟 × 1 工 作 频率 = 外时 钟× 1
0 1 1 停止方式 停止方式
52
( 2) 软件可编程 PLL
时钟工作方式寄存器 (CLKMD)
作用
PLL
MUL
15~ 12
PLL
DIV
2
PLL
COUNT
11
PLL
ON/OFF
10 ~ 3
PLL
NDIV
1 0
PLL
STATUS
时钟发生
器选择位
乘数 除数 计数器 通 /断位 工作状
态位
53
软件编程时钟方式
? 第一,PLL方式
? 第二,DIV方式
工作时钟 CLKOUT=CLKIN× 乘系数
CLKOUT启动过程
锁定
复位 DIV工作
加载 延迟定时
PLL
开始
定时
54
引脚状态 CLKMD寄存器复位
值
时钟方式CLKMD1 CLKMD2 CLKMD3
0 0 0 0000h 工频 =外时钟 /2
0 0 1 1000h 工频 =外时钟 /2
0 1 0 2000h 工频 =外时钟 /2
1 0 0 4000h 工频 =内振荡器 /2
1 1 0 6000h 工频 =外时钟 /2
1 1 1 7000h 工频 =内振荡器 /2
1 0 1 0007h 工频 =外时钟 × 1
0 1 1 - 停止方式
复位时设置的时钟方式
55
锁定定时器
? 工作方式
? 锁定延时时间的设定
? PLLCOUNT的数值设定
DIV
工作方式 时钟发生器
按 DIV方式工作
PLL
工作方式
锁定定时器工作
56
设计举例
? 如果要从 DIV方式转到 PLL× 3方式, 已知
CLKIN的频率为 13MHz,PLLCOUNT=41( 十进制
数 ), 只要在程序中加入如下指令即可:
? STM #0010 0001 0100 1111 b,CLKMD
? 其中, PLLMUL=0010,PLLDIV=0,PLLNDIV=1,
故由表 5-10可得乘系数为 3; PLLON/OFF=1,
表 5-10知 PLL工作; PLLCOUNT=00101001,十
进制计数值为 41。
57
四、复位电路
? 功能
简单的复位电路 有监视功能的复位电路
58
五、主机接口
?功能
?结构
59
?( 1) HPI存储器( DARAM)
?( 2) HPI地址寄存器( HPIA)
?( 3) HPI数据锁存器( PHID)
?( 4) PHI控制寄存器( HPIC)
?( 5) PHI控制逻辑
工作过程
CPU存储
空间访问
主机数据
寄存器 HPID
主机地址
寄存器 HPIA
外部
主机
外部控制信号
60
HPI两种工作方式
( 1)共用寻址方式( SAM)
( 2)仅主机寻址方式( HOM)
HPI存储器主机 CPU
HPI存储器主机 CPU
61
HPI与主机的连接
62
? HPID与 DARAM存储器的关系
? HPIA寄存器对寻址的影响
? HPIC控制寄存器各位设置
63
对 HPI的寻址过程
HPI的中断过程
主机 HPI中断
写 DSPHINT
HCNTL0
HCNTL1
00,10,11 HPIC
64
第六节 串行口
? 标准同步串行口( SP)
? 缓冲同步串行口( BSP)
? 多路缓冲串口( McBSP)
? 时分多路串行口( TDM)
当缓冲串行口和时分多路串行口工作在标
准方式时,它们的功能与标准串行口相同
串
行
口
分
类
65
一、标准串口 SP
66
1.串行口 组成
? 16位数据接收寄存器( DRR)
? 数据发送寄存器( DXR)
? 接收移位寄存器( RSR)
? 发送移位寄存器( XSR)
? 控制电路
67
标准串口 SP特点
? 可有多个相互独立的标准同步串口
? 发送和接收是双向缓冲的
? 2个存储器映像寄存器用于传送数据
? 每个口有时钟, 帧同步脉冲以及串行移位寄存器
? 可以按 8位字节或 16位字节转换
? 可以产生自己的可屏蔽收发中断
? 可以工作在任意的时钟频率上
? 标准串行口的最高工作频率是 CLKOUT的 1/4。
68
串行口连接方法
数据发送工作过程
数据接收工作过程
69
2.串行口控制寄存器
功能
控制位作用
70
3,标准串口 SP的使用
? STM #0038H, SPC ;串口初始化
? STM #00C0H, IFR ;清除挂起的串口中断
? AND #00C0H, IMR ;使能中断
? RSBX INTM ;使能全局中断
? STM #00F8H, SPC ;开始串口传输
? STM DATA1,DXR ;写第一个数据到 DXR
71
二、缓冲串行口( BSP)
特点
缓冲串行口 6个寄存器
控制扩展寄存器 BSPCE
数据接收移位寄存器 BRSR
数据发送移位寄存器 BXSR
数据接收寄存器 BDRR
数据发送寄存器 BDXR
控制寄存器 BSC
72
1.串行口的组成
BDR
BCLKR
BFSR
BCLKX
BFSX
BDX
BRINT
BMINT
BXINT
C54x内存界面
自动缓冲单元 ABU
控制 XRDY RRDY BXINT BMINT BRINT
BDXR BSPCE
BXSR
BRSR
串口控
制逻辑
BSPCBDRR
中断
控制
C54xCPU界
面
中断
逻辑
16
11
73
2.缓冲串行口的工作模式
? ( 1)缓冲串行口的标准模式 (表 2-16)
? ( 2)缓冲串行口增强模式
可编程串口时钟选择时钟
帧同步信号的正负极性可选
10,12位字长
允许忽略同步信号或不忽略 。
新增
功能
BSPCE的 BRE控制模式转换
74
3.自动缓冲单元 ABU
可独立于 CPU自动完成控制串口与
固定缓冲内存区中的数据交换。功能
组成
地址寄存器 AXR
块长度发送寄存器 BKX
地址接收寄存器 ARR
块长度接收寄存器 BKR
串口控制寄存器 BSPCE特点
75
ABU完成对缓冲存储器的存取;工作过
程中地址寄存器自动增加, 直至缓冲区
的底部 。 到底部后, 地址寄存器内容恢
复到缓冲存储器区顶部;如果数据到了
缓冲区的一半或底部, 就会产生中断,
并刷新 XH/XL;如果选择禁止自动缓冲功
能, 当数据过半或到达缓冲区底部时,
ABU会自动停止缓冲功能 。
工作过程
76
循环寻址原理
装载 BKX/R确定缓冲区长度,装载 ARX/R给出 2K字
缓冲区基地址和缓冲区数据起始地址实现初始化。
BKX/R从高位至低位方向第一个 1的位置 N位将 ARX/R
分为 ARH和 ARL两部分,缓冲区顶部地址( TBA)由
高位为 ARH,而低位为 N+1个 0组成的数定义。缓冲
区底部地址( BBA)由 ARH和 BKL-1决定。而当前数
据缓冲区的位置由 ARX/R的内容决定。如图所示。
ARX/R的内容会随着每一次访问继续增加直至到下
一个允许的缓冲区开始地址。然后在后续的存取操
作中,作为更新的循环缓冲开始地址,新的 ARX/R
内容用来进行正确的循环缓冲地址计算。
77
循环寻址示意图
BKX/R
ARX/R
ARH ARL
0… 0 1…
BBA
TBA
缓冲区当前位置
ARH BKL
ARH BKL>>1
ARH 0… 0
下半部开始
缓冲区顶部
上半部分
缓冲区底部
下半部分
78
三、时分多路串行口( TDM)
功
能
非 TDM方式 =标准串口
TDM方式 当 TSPC的 TDM=1
工作
方式
相
关
寄
存
器
TDM数据接收寄存器 TRCV
TDM数据发送寄存器 TDXR
TDM串口控制发送寄存器 TSPC
TDM通道选择寄存器 TCSR
TDM发送 /接收地址寄存器 TRTA
TDM接收地址寄存器 TRAD
TDM数据接收移位寄存器 TRSR
TDM数据发送移位寄存器 TXSR
79
C54x
TDX TDR TFSX TFSR TCLKX TCLKR
器件 0 器件 1 器件 7……
TDM时分多路串口连接
80
第七节 外设接口
数据总线
地址总线
一组控制信号
一、外设接口的时序关系
1.外设接口引线
片外存储器
I/O口
作用 寻址
81
82
? ( 1) 如何识别片内存储器与片外存储器
? ( 2) 如何区别片外数据存储器与程序存
储器和 I/O空间
? ( 3) 如何确定与外部器件通信期间数据
传送中方向
? ( 4) 如何与低速设备通信
? ( 5) 如何与外部电路共享总线
? ( 6) 如何隐藏内部程序器地址线内容
83
2.外部总线操作的优先级别
单周期内对片内存储器可完成从程序存储
器取 1条指令, 从数据存储器读 2个操作数,
共 3个操作 。
但由于只有一条外部总线, 故只能有 1个
操作 。 在遇到一个机器周期内, CPU寻址外
部存储器两次, 一次取指, 一次取操作数时,
数据寻址比程序存储器取指具有较高的优先权 。
单周期内对片内存储器操作
与片外存储器操作的区别
84
3.外部接口定时图
存储器读一读一写操作定时图
M ST RB
W
PS
DS
IS
注意下面
信号变化:
地址
R/
读操作 1个机器周期
85
存储器写一写一读操作定时图
写操作要用 2个机器周期
86
并行 I/O读一写一读定时图
I/O设备读 /写操作要持续 2个机器周期
87
二、外设接口的速度配合
1.对接口器件的速度要求
外部存储器存取时间应小于 60%的机器,
周期否则需通过软件或硬件插入等待状态。
C54x读操作定时简图
88
插入等待状态数与外部器件的
存取时间的关系
外部器件的存取时间 ta/ ns 插入等待状态数
ta≤15 0
15< ta≤40 1
40< ta≤65 2
65< ta≤90 3
90< ta≤115 4
115< ta≤140 5
对于型号为 TMS320C54x-40的 DSP芯片
89
2.软件等待状态发生器
功能
软件等待状态寄存器( SWWSR)
为什么要对外部存储器分块
90
等待应用举例
为程序空间和 I/O空间插入 3个等待状态
C54x等待状态发生器的逻辑框图
91
如图进行连接,复位 SWWSR=7FFFh,所有
的程序、数据和 I/O空间都被插入 7个等
待状态。然后用 STM指令进行修改 SWWSR:
STM #349B,SWWSR; SWWSR= 0 011 010 010 011 011
工作过程
92
将 SWWSR中相应的字段值加载到计数器 。
等待状态计数器减计数 。 当计数器减到 0且
外部 READY线置高电平, 经或门加到 CPU的
端, 结束等待状态 。 注意:只有插入 2个以
上机器周期时, CPU才在 CLKOUT的下降沿检
测外部 READY信号 。 执行到最后一个等待状
态时, 信号将变成电平 。 利用这一特
点, 可以再附加插入硬件等状态 。
WAIT
MSC
93
3.利用软件等待实现
接口的速度配合
例 2-1 试为 TMS320C54x-40作如下外设配置:
程序存储器 EPROM 8K× 16位, ta=70ns
数据存储器 SRAM 8K× 16位, ta=12ns
A/D和 D/A变换器 16位, 转换时间 =120ns
画出系统的接口连线图 。
94
本例中 C54x的机器周期为 25ns( 40MIPS),
若外部器件的存取时间小于 15ns,可以不插入
等待状态 。 因此例中的数据存储器可以不插入
等待状态, 但程序存储器和 A/D,D/A外部设备
应分别插入 3个 ( 75ns) 和 5个 ( 125ns) 等待
状态 。 此时软件等待状态寄存器 SWWSR应配置
为:
0 101 000 000 011 000
STM #5018,SWWSR
95系统接口连线图
96
4.利用硬件等待实现接口的速度配合
? 什么情况下需插入硬件等待状态
? 怎样用硬件插入等待 应
5.利用混合等待实现接口的速度配合
混合等待状态举例
C54x-40与低地址程序存储器( SRAM,12 ns)
以及高地址程序存储器( EPROM,200 ns)相
接口。
97
软件和硬件混合等待状态连接
STM #1278,SWWSR
98
三、分区转换逻辑
? 为什么要对外部存储器分区
? 可编程分区转换逻辑的功能
? 分区转换控制寄存器( BSCR)的定义
BNKCMP
15~ 12
PS ~ DS
11
保留位 BH
1
EXO
010~ 2
99
外部存储器的分区
BNKCMP 屏蔽的最
高有效位
分区大小
( 16位字)位 15 位 14 位 13 位 12
0 0 0 0 - 64K
1 0 0 0 15 32K
1 1 0 0 15~ 14 16K
1 1 1 0 15~ 13 8K
1 1 1 1 15~ 12 4K
100
第八节 复位与省电
? 使 C54x进入一已知状态
? 至少保持 2个时钟周期的低电平
? 复位后为高电平
? 如果 MP/ =0,则处理器从片内
ROM开始执行程序,否则,它将从
片外程序存储器开始执行程序。
一、复位和 IDLE3省电工作方式
1.复位操作
RS
的功能
MC
101
处理器复位操作包括
1)置 IPTR= 1FFh。
2)置 MP/ 位为引脚 MP/ 电平 。
3)置 PC= FF80h
4)将 FF80h加到 PA。
5) 置数据总线为高阻, 控制线为无效状态 。
6) 产生中断响应信号 。
7) 置 ST1的 INTM= 1,关闭所有的可屏蔽中断 。
8)IFR清 0。
9) 产生同步复位信号 ( ), 外围电路初始化 。
10) 将相应状态位置成初始值 。
MC MC
IACK
STRESET
102
2.外部总线复位定时图
RS
复位两
阶段
低
电
平
后
高
电
平
后
103
3., 唤醒, IDLE3省电方式的定时图
104
进入 IDLE3:执行 IDLE3指令
必须重新启动 PLL,并在 CPU重
新恢复工作以前锁定好相位。
IDLE3状态特点
结束 IDLE3,利用外部中断
(,, )INTn 1NM RS
105
中断唤醒条件,当 CLKOUT频率为 40MHz时
“唤醒,
过程
中断脉冲宽度大于 10ns
PLL减法计数时间大于 50μ s
?中断引脚变低电平
?PLL锁相
?计数器对输入时钟减法计数到 0
?PLL输出加到 CPU
?C54x退出 IDLE3
106
计数器
起始值
PLL乘
系数
等效时钟
周期( N)
减法计数时间( μ s)
CLKOUT频率为 40MHz
2048 1 2048 51.2
2048 1.5 3072 76.8
1024 2 2048 51.2
1024 2.5 2560 64
1024 3 3072 76.8
512 4 2048 51.2
512 4.5 2304 57.6
512 5 2560 64
107
108
复位
方法
,唤醒,
IDLE3
不用减法计数器
PLL输出立即加到内部逻辑电路
要求 的低电平应大于 50μ s,以保证 PLL有 50μ s的锁存时间,
不致用不稳定的时钟启动工作 。
RS
109
二、保持方式
? 何种情况使用保持方式
? 如何进入保持方式
110
C54x在保持状态的工作方式
1)正常保持方式
2) DMA操作方式
保持状态的维持与确认
保持状态的退出
111
第九节 中断处理
?受外部中断口信号触
发的外部硬件中断
?受片内外围电路信号
触发的内部硬件中断
?程序指令
INTR
TRAP
RESET
1.中断来源
软件驱动硬件驱动
一、中断类型
112
2.中断分类
可屏蔽中断 非屏蔽中断
中断
可以用软件
屏蔽或开放
( SINT15~
SINT0)
C54x总是响应
所有软件中断,
两个外部硬件
中断,RS NMI
113
二、中断标志寄存器( IFR)和
中断屏蔽寄存器( IMR)
中断标志寄存器:功能, 设置, 清除
中断屏蔽寄存器:功能, 设置, 开放
114
三、中断处理过程
( 1)接受中断请求
( 2)响应中断
( 3)执行中断服务程序
四、实现中断的相关问题
( 1)中断向量地址的计算
115
中断向量地址计算举例
复位后的初始地址计算
( 1)取 IPTR的值
( 2)查表 2- 25得中断向量序号
( 3)将十六进制的中断向量序号左移 2位
( 4)将( 1)与( 3)相加 得中断向量地址
116
117
IPTR=1 1 1 1 1 1 1 1 1
+ K= 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0
F F 8 0 h
故硬件复位后的开始地址为 0FF80h。
IPTR=0 0 0 0 0 0 0 0 1
+ K= 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 8 0 h
此时中断向量被移到从 0FF80h单元开始处 。
118
( 2)外部中断响应的时间
响应的时间=采样时间+查询时间
= 1+ 2≥ 3个完整的机器周期
外部中断的时间基本上在 3~ 8个机器周期
之间 。
( 3)外部中断触发方式
电平触发
边沿触发
119