第 8章 TMS320C54x片内外设及应用实例
? 8.1 定时器
? 8.2 时钟发生器
? 8.3 定时器 /计数器编程举例
? 8.4 多通道缓冲串口( McBSP)
? 8.5 多通道缓冲串口应用实例
? 8.6 主机接口( HPI)
? 8.7 外部总线操作
8.1 定时器
? 定时器的组成框图如图 8-1所示 。 它有 3个存储器
映象寄存器,TIM,PRD和 TCR。 这 3个寄存器在
数据存储器中的地址及其说明如表 8-1所示 。 定时
器控制寄存器 ( TCR) 位结构如图 8-2所示, 各控
制位和状态位的功能如表 8-2所示 。
返回首页
图 8-1 定时器组成框图
表 8-1 定时器的三个寄存器
Timer0
地址
Timer1
地址 寄存器 说明
0024H 0030H TIM 定时器寄存器, 每计数一次自动减1
0025H 0031H PRD
定时器周期寄存器, 当 TIM减为 0
后, CPU自动将 PRD的值装入 TIM
0026H 0032H TCR 定时器控制寄存器, 包含定时器的控制和状态位
15~ 12 11 10 9~ 6 5 4 3~ 0
保留 soft free PSC TRB TSS TDDR
图 8-2 TCR位结构图
表 8-2 定时器控制寄存器( TCR) 的功能
返回本节
8.2 时钟发生器
? 8.2.1 硬件配置 PLL
? 8.2.2 软件可编程 PLL
返回首页
8.2.1 硬件配置 PLL
? 用于 C541,C542,C543,C545和 C546芯片 。
? 所谓硬件配置 PLL,就是通过 C54x的 3个引脚 CLKMD1、
CLKMD2和 CLKMD3的状态, 选定时钟方式, 如表 8-3所
示 。 由表 8-3可见, 不用 PLL时, CPU的时钟频率等于晶
体振荡器频率或外部时钟频率的一半;若用 PLL,CPU的
时钟频率等于晶体振荡器频率或外部时钟频率乘以系数 N
( PLL?N), 使用 PLL可以使用比 CPU时钟低的外部时
钟信号, 以减少高速开关时钟所造成的高频噪声 。
表 8-3 时钟方式的配置
返回本节
8.2.2 软件可编程 PLL
? 软件可编程 PLL具有高度的灵活性, 其时钟定标器提供各
种时钟乘法器系数, 并能直接接通和关断 PLL。 PLL的锁
定定时器可以用于延迟转换 PLL的时钟方式, 直到锁定为
止 。 通过软件编程, 可以选用以下两种时钟方式 ( 如表 8-
4 ~ 8-6,图 8-3所示 ) 。
? PLL方式, 其比例系数共 31种 。 靠锁相环电路完成 。
? 分频 ( DIV) 方式, 其比例系数为 1/2和 1/4,在此方式下,
片内 PLL电路不工作以降低功耗 。
表 8-4 复位时的时钟方式( C5402)
CLKMD
1
CLKMD
2
CLKMD
3
CLKMD寄存
器 时钟方式
0 0 0 E007H 乘 15,内部振荡器工作, PLL工作
0 0 1 9007H 乘 10,内部振荡器工作, PLL工作
0 1 0 4007H 乘 5,内部振荡器工作, PLL工作
1 0 0 1007H 乘 2,内部振荡器工作, PLL工作
1 1 0 F007H 乘 1,内部振荡器工作, PLL工作
1 1 1 0000H 乘 1/2,内部振荡器工作, PLL不工作
1 0 1 F000H 乘 1/4,内部振荡器工作, PLL不工作
0 1 1 … 保留
表 8-5 时钟方式寄存器 CLKMD各位域功能
表 8-6 比例系数与 CLKMD的关系
PLLN
DIV
PLLD
Ⅳ PLLMUL 比例系数
0 X 0~ 14 0.5
0 X 15 0.25
1 0 0~ 14 PLLMUL+1
1 0 15 1
1 1 0或偶数 (PLLMUL+1)÷ 2
1 1 奇数 PLLMUL÷ 4
图 8-3 PLL锁定时间和 CLKOUT频率的关系
返回本节
8.3 定时器 /计数器编程举例
? 【 例 8 - 1 】 设 时 钟 频 率 为 16,3 8 4 MHz,在
TMS320C5402的 XF端输出一个周期为 2s的方波,
方波的周期由片上定时器确定, 采用中断方法实
现 。
1,定时器 0的初始化
( 1) 设置定时控制寄存器 TCR( 地址 0026H) 。
( 2) 设置定时寄存器 TIM( 地址 0024H) 。
( 3) 设置定时周期寄存器 PRD( 地址 0025H) 。
返回首页
2,定时器对 C5402的主时钟 CLKOUT进行分频
? CLKOUT与外部晶体振荡器频率 ( 在本系统中外
部晶体振荡器的频率为 16.384MHz) 之间的关系
由 C5402 的三个引脚 CLKMD1,CLKMD2 和
CLKMD3 的电平值决定, 为使主时钟频率为
16.384MHz,应使 CLKMD1=1,CLKMD2=1、
CLKMD3=0,即 PLL?1。
3,中断初始化
( 1) 中断屏蔽寄存器 IMR中的定时屏蔽位 TINT0置
1,开放定时器 0中断 。
( 2) 状态控制寄存器 ST1中的中断标志位 INTM位
清零, 开放全部中断 。
4,汇编源程序如下:
.mmregs
.def _c_int00
STACK,usect "STACK",100h
t0_cout,usect "vars",1 ;计数器
t0_flag,usect ―vars‖,1 ; 当前 XF 输 出 电 平 标 志 。
t0_flag=1,则 XF=1;;t0_flag=0,则 XF=0
TVAL,set 1639 ;1640?10?61=1ms 因中断程序中计数器初值;t0_cout=1000,所以定时时间,1ms?1000=1s
TIM0,set 0024H ;定时器 0寄存器地址
PRD0,set 0025H
TCR0,set 0026H
.data
TIMES,int TVAL ;定时器时间常数
.text
**********************************; 中断矢量表程序段
_c_int00
b start
nop
nop
NMI rete ;非屏蔽中断
nop
nop
nop
SINT17,space 4*16 ;各软件中断
SINT18,space 4*16
SINT19,space 4*16
SINT20,space 4*16
SINT21,space 4*16
SINT22,space 4*16
SINT23,space 4*16
SINT24,space 4*16
SINT25,space 4*16
SINT26,space 4*16
SINT27,space 4*16
SINT28,space 4*16
SINT29,space 4*16
SINT30,space 4*16
INT0 rsbx intm ;外中断 0中断
rete
nop
nop
INT1 rsbx intm ;外中断 1中断
rete
nop
nop
INT2 rsbx intm ;外中断 2中断
rete
nop
nop
TINT,bd timer ;定时器中断向量
nop
nop
nop
RINT0,rete ;串口 0接收中断
nop
nop
nop
XINT0,rete ;串口 0发送中断
nop
nop
nop
SINT6,space 4*16 ;软件中断
SINT7,space 4*16 ;软件中断
INT3,rete ;外中断 3中断
nop
nop
nop
HPINT,rete ;主机中断
nop
nop
nop
RINT1,rete ;串口 1接收中断
nop
nop
nop
XINT1,rete ;串口 1发送中断
nop
nop
nop
******************************************
start:
LD #0,DP
STM #STACK+100h,SP
STM #07FFFh,SWWSR
STM #1020h,PMST
ST #1000,*(t0_cout) ;计数器设置为 1000(1s)
SSBX INTM ;关全部中断
LD #TIMES,A
READA TIM0 ;初始化 TIM,PRD
READA PRD0
STM #669h,TCR0 ; 初始化 TCR0
STM #8,IMR;初始化 IMR,使能 timer0 中断
RSBX INTM ;开放全部中断
WAIT,B WAIT
**************************************;定时器 0中断服务子程序
timer,ADDM #-1,*(t0_cout) ;计数器减 1
CMPM *(t0_cout),#0 ;判断是否为 0
BC next,NTC ;不是 0,退出循环
ST #1000,*(t0_cout);为 0,设置计数器, 并将 XF取反
BITF t0_flag,#1
BC xf_out,NTC
SSBX XF
ST #0,t0_flag
B next
xf_out,RSBX XF
ST #1,t0_flag
next,RSBX INTM
RETE
.end
5,链接命令文件 times.cmd如下:
times.obj
-o times.out
-m times.map
MEMORY
{PAGE 0:RAM1,origin =1000h,length =500h
PAGE 1:SPRAM1,origin=0060h,length=20h
SPRAM2,origin=0100h,length=200h
}
SECTIONS
{
.text,>RAM1 PAGE 0
.data,>RAM1 PAGE 0
vars,>SPRAM1 PAGE 1
STACK,>SPRAM2 PAGE 1
} 返回本节
8.4 多通道缓冲串口( McBSP)
? 8.4.1 McBSP原理框图及信号接口
? 8.4.2 McBSP控制寄存器
? 8.4.3 时钟和帧同步
? 8.4.4 McBSP数据的接收和发送
? 8.4.5 有关的几个概念
返回首页
8.4.1 McBSP原理框图及信号接口
? TMS320C54xx多通道缓冲串口 ( McBSP) 由引
脚, 接收发送部分, 时钟及帧同步信号产生, 多
通道选择以及 CPU中断信号和 DMA同步信号组成,
如图 8-4所示 。
? 表 8-7给出了有关引脚的定义, McBSP通过这 7个
引脚为外部设备提供了数据通道和控制通道 。
McBSP通过 DX和 DR实现 DSP与外部设备的通信
和数据交换 。
图 8-4 McBSP原理框图
RS R RBR
XSR
扩展
压缩
D RR
DXR
RCR
X CR
S RG R
P CR
RCER
X CER
M CR
M cBS P
时钟与帧同步
发生与控制
多通道选择
16




线
DR
DX
S P CR
CLK X
CLK R
FSX
FSR
CLK S
RI N T
X IN T
REV T
X EV T
REV TA
X EV TA
向 CP U 发出的
中断请求信号
D M A 同
步操作
表 8-7 McBSP引脚说明
引脚 I/O/Z 说明
DR I 串行数据接收
DX O/Z 串行数据发送
CLKR I/O/Z 接收数据位时钟
CLKX I/O/Z 发送数据位时钟
FSR I/O/Z 接收帧同步
FSX I/O/Z 发送帧同步
CLKS I 外部时钟输入
表 8-8 McBSP内部信号说明
信号 说明
RINT 接收中断, 送往 CPU
XINT 发送中断, 送往 CPU
REVT DMA接收到同步事件
XEVT 向 DMA发出事件同步
REVTA DMA接收到同步事件 A
XEVTA 向 DMA发出事件同步 A
返回本节
8.4.2 McBSP控制寄存器
1,控制寄存器及其映射地址
? 表 8-9列出了 McBSP控制寄存器及其映射地址 。
? 子块数据寄存器 SPSDx用于指定对应子地址寄存
器中数据的读写, 其内部连接方式如图 8-5所示 。
这种方法的好处是可以将多个寄存器映射到一个
较小的存储空间 。
表 8-9 McBSP控制寄存器及其映射地址
S P S D x



S P C R 1 x
S P C R 2 x
RCR 1 x
P C R x
S P S A x
子地址
0 x 0000
0 x 0001
0 x 0002
0 x 000 E
图 8-5 子地址映射示意图
2,串行口的配置
? 串口控制寄存器 ( SPCR1,SPCR2) 和引脚控制寄存器
( PCR) 用于对串口进行配置, 接收控制寄存器 ( RCR1、
RCR2) 和发送控制寄存器 ( XCR1,XCR2) 分别对接收
和发送操作进行控制 。
( 1) 串口控制寄存器 ( SPCR1,SPCR2) 串口控制寄存
器 1( SPCR1) 结构如图 8-6所示, 表 8-10为 SPCR1控制
位功能说明 。 串口控制寄存器 2( SPCR2) 结构如图 8-7
所示, 表 8-11为 SPCR2控制位功能说明 。
( 2) 引脚控制寄存器 ( PCR) 。 引脚控制寄存器 ( PCR)
结构如图 8-8所示, 表 8-12为 PCR控制位功能说明 。
图 8-6 串口控制寄存器 1( SPCR1)
表 8-10 SPCR1控制位功能说明
图 8-7 串口控制寄存器 2( SPCR2)
表 8-11 SPCR2控制位功能说明
图 8-8 引脚控制寄存器( PCR)
表 8-12 PCR控制位功能说明
( 3) 接收控制寄存器 ( RCR[1,2]) 。 结构如图 8-9
所示, 表 8-13所示为 RCR1控制位功能说明, 表 8-
14所示为 RCR2控制位功能说明 。
( 4) 发送控制寄存器 ( XCR[1,2]) 。 发送控制寄
存器 ( XCR[1,2]) 结构如图 8-10所示, 表 8-15所
示为 XCR1控制位功能说明, 表 8-16所示为 XCR2
控制位功能说明 。
( a) RCR1
( b) RCR2
图 8-9 接收控制寄存器( RCR[1,2])
表 8-13 RCR1控制位功能说明
表 8-14 RCR2控制位功能说明
( a) XCR1
( b) XCR2
图 8-10 发送控制寄存器( XCR[1,2])
表 8-15 XCR1控制位功能说明
表 8-16 XCR2控制位功能说明
返回本节
8.4.3 时钟和帧同步
? 采样率发生器由三级时钟分频组成,如图 8-11所示,可以
产生可编 程的 CLKG( 数据位时钟)信号 和 FSG( 帧同步
时钟)信号 。 CLKG和 FSG是 McBSP的内部信号,用于
驱动接收 /发送时钟信号( CLKR/X) 和 帧同步信号
( FSR/X)。 采样率发生器时钟既可以由内部 的 CPU时 钟
驱动( CLKSM=1),也可以由外部时钟源驱动
( CLKSM=0)。 采样率发生器寄存器 SRGR[1,2]控制
着采样率发生器的各种操作,其结构如图 8-12所示。表 8-
17所示为 SRGR1控制位功能说明,表 8-18所示为 SRGR2
控制位功能说明。
1
0
C L KSM
C L KS
C L KSP
C PU 时钟
C L KSR G
÷ ÷
帧脉

C L KGDV FPE R FW ID
FSG
帧脉冲检测
与时钟同步
C L KG
GSYNC
FSR
图 8-11 采样率发生器框图
( a) 采样率发生器寄存器 1 (SRGR1)
( b) 采样率发生器寄存器 2 (SRGR2)
图 8-12 采样率发生器寄存器 SRGR[1,2]结构图
表 8-17 SRGR1控制位功能说明
表 8-18 SRGR2控制位功能说明
图 8-13 可编程帧周期和帧脉冲宽度
返回本节
8.4.4 McBSP数据的接收和发送
? 数据的接收是通过三级缓冲完成的,例如,通过设置
SPCR1寄存器的 RINTM=00b,则可由 RRDY信号驱动产
生接收中断信号 RINT,TMS320C54xx CPU响应中断,
读取 DRR中的数据。接收时序如图 8-14所示。
? 数据的发送通过两 级缓冲完成,通过设置 SPCR2寄存器
的 XINTM=00b,可由 XRDY驱动产生发送中断信号 XINT,
TMS320C54xx CPU响应中断,将下一个发送数据写入
DXR中,随后 XRDY降为 0。发送时序如图 8-15所示。
图 8-14 数据的接收
图 8-15 数据的发送
返回本节
8.4.5 有关的几个概念
1,相的概念
? 在 McBSP中, 帧同步信号表示一次数据传输的开
始 。 帧同步信号之后的数据流可以有两个相 ——
相 1和相 2。 相的个数 ( 1或 2) 可以通过设置
RCR2和 XCR2中的 ( R/X) PHASE位来实现 。 每
帧 的 字 数 和 每 字 的 位 数 分 别 由 ( R/X)
FRLEN[1,2]和 ( R/X) WDLEN[1,2]决定 ( 如图 8-
6,8-18所示 ) 。
图 8-16 例 8-2的图
图 8-17 例 8-3的图
2,数据延迟
? 每一帧都是从帧同步信号有效时到来的第一个时
钟周期开始的 。 实际的数据接收或传输开始时刻
相对于帧的开始时刻可以有延时, 这一延时称为
数据延迟, 用 RDATDLY和 XDATDLY分别指定接
收和发送的数据延迟 。 可编程数据延迟的范围为
0,1,2个时钟周期 ( [R/X]DATDLY = 00b –
10b), 如图 8-18所示 。
图 8-18 数据延迟
3,SPI协议,McBSP时钟停止模式
? SPI协议是一种主从配置的, 支持一个主方, 一
个或多个从方的串行通信协议, 一般使用 4条信
号线:串行移位时钟线 ( SCK), 主机输入 /从机
输 出 线 ( MISO), 主 机 输 出 / 从 机 输 入 线
( MOSI), 低电平有效的使能信号线 ( ) 。 如
图 8-19~8-22所示, 表 8-19,20所示 。
SS
图 8-19 McBSP作为 SPI模式的主设备
图 8-20 McBSP作为 SPI模式的从设备
图 8-21 CLKSTP=10b,CLKXP=0时
钟停止模式 1的时序图
图 8-22 CLKSTP=11b,CLKXP=1
时钟停止模式 4的时序图
表 8-19 McBSP寄存器位域设置( SPI模式的主设备)
表 8-20 McBSP寄存器位域设置( SPI模式的从设备)
返回本节
8.5 多通道缓冲串口应用实例
? 8.5.1 TLV1572高速串行 ADC与 TMS320C5402接口
设计
? 8.5.2 TLC5617串行 DAC与 TMS320C5402接口设计
? 8.5.3 语音接口芯片 TLC320AD50C与 TMS320C5402
接口设计
返回首页
8.5.1 TLV1572高速串行 ADC与 TMS320C5402接口设计
1,TLV1572芯片简介
? TLV1572是高速同步串行的 10位 A/D转换芯片,
单电源 2.7 V至 5.5 V供电, 8引脚 SOIC封装 。 功耗
较低 ( 3V供电功耗 3m W,5V供电功耗 25m W),
当 AD转换不进行期间自动进入省电模式 。 5V供
电, 时钟速率 20MHz时最高转换速率为 1.25
MSPS,3V供电, 时钟速率 10MHz时最高转换速
率为 625 KSPS。 TLV1572 D封装引脚排列如图 8-
23所示, TLV1572的引脚说明如表 8-21所示 。
图 8-23 TLV1572的引脚排列
CS
VR E F
GND
AIN
DO
FS
V CC
S CLK
1
2
3
4 5
6
7
8
表 8-21 TLV1572引脚功能表
2,TLV1572与 TMS320系列 DSP的连接
图 8-24 TLV1572与 TMS320系列
DSP连接框图
图 8-25 TLV1572 DSP工作方式时序图
3,TLV1572与 TMS320C5402的 McBSP1接口软件
编程
? 【 例 8 - 4 】 在本例应用中, TMS320C5402的
McBSP1以 CPU中断的方式读取 TLV1572模数转
换结果, 并存放在 DSP 片内的 DARAM 区的
3000H开始的单元中, 共采样 256个点, A/D转换
的速率为 64kHz,由串口 McBSP1的帧频决定,
TMS320C5402的主时钟频率为 81.925MHz。 其
实现程序 ( 略 )
返回本节
8.5.2 TLC5617串行 DAC与 TMS320C5402接口设计
1,TLC5617工作原理
? TLC5617是带有缓冲基准输入的双路 10位电压输
出数模转换器 。 TLC5617通过与 CMOS兼容的 3
线串行接口实现数字控制, 器件接收的用于编程
的 16位字的前 4位用于产生数据的传送模式, 中间
10位产生模拟输出, 最后两位为任意的 LSB位
( 如图 8-26~8-28,表 8-22,23所示 ) 。
CS REF IN
AGND
D IN V D D
S CLK
1
2
3
4 5
6
7
8
O U T A
O U T B
图 8-26 TLC5617引脚排列
表 8-22 TLC5617引脚功能说明
RE FIN
6
DAC +
-
+
-
上电复位
控制逻辑
10 - Bi t DAC 锁存器 A
双缓冲
锁存器
10 - Bi t DAC 锁存器 B
+
-
+
-
DAC
16 - Bi t 移位寄存器
4 位可编
程控制位
( LSB ) ( MS B )
12 位数据位
5
3
2
1
AGND
CS
SCLK
DIN
DA C A
DA C B
7
OU T A
( 电压输出 )
R R
R R
4
OU T B
( 电压输出 )
图 8-27 TLC5617功能框图
CS
SC L K
DIN
DAC OUT
A / B
可编程控制位 ( 4 )
D 15 D 14 D 13 D 12 D 11 D 0
DAC 数
据位
( 12 )
t S
t su ( CS 2 )
t
su
( CS 1 )
t
w
( CH )t
w
( CL )
t su ( C S S )
t su ( DS ) t h ( DH )
≤ 终值 ± 0, 5 L SB
图 8-28 TLC5617的时序图
表 8-23 可编程控制位( D15~D12) 功能表
2,TLC5617与 TMS320C5402的 McBSP接口设计
? TLC5617 符合 SPI 数 字 通 信 协 议, 而
TMS320C54xx系列 DSP芯片的多通道缓冲串口
( McBSP) 工作于时钟停止模式时与 SPI协议兼
容 。 TLC5617与 TMS320C5402的 McBSP0接口连
接如图 8-29所示 。
FSX 0
FSR 0
DX 0
C L KX 0
CS
DIN
SC L K
R E FIN
2, 5 V
V CC
OUT A
OUT B
5 V
GND
C L KR 0
T MS 320 C 5402 TLC 5617
图 8-29 TMS320C5402与 TLC5617的连接
3,软件设计
? 给出了较完整的软件程序, 包括主程序, 串口初
始化程序和 CPU中断服务程序, 中断服务程序分
别对数据进行处理, 然后在 TLC5617的 A,B两
个通道同时输出 。 TMS320C5402的主时钟频率
为 81.925MHz,数模转换速率为 128kHz。 汇编
源程序 ( 略 )
返回本节
8.5.3 语音接口芯片 TLC320AD50C与
TMS320C5402接口设计
1,模拟接口芯片 TLC320AD50C的工作原理
? 音频接口芯片 TLC320AD50C集成了 16位 A/D和
D/A转换器, 使用过采样 ( over sampling) 技术
提供 16位 A/D和 D/A低速信号转换, 该器件包括
两个串行的同步转换通道, 工作方式和采样速率
均可由 DSP编程设置 。 其内部 ADC之后有抽样滤
波器, DAC之前有插值滤波器, 接收和发送可同
时进行 。
图 8-30 AD50C的引脚排列
图 8-31 AD50C的内部结构框图
? AD50C片内还包括一个定时器和控制器 。 该芯片
可工作在单端或差分方式, 支持 3个从机级联,
其参数设置模式采用单线串行口直接对内部寄存
器编程, 不受数据转换串行口的影响 。
( 1) ADC信号通道 ( 如图 8-32,8-33)
( 2) DAC信号通道 ( 如图 8-34所 示 )
( 3) AD50C的控制寄存器 ( 如表 8-24所 示 )
图 8-32 ADC通道主通信时序图
图 8-33 ADC通道主通信和次通信时序图
图 8-34 DAC信号通道主通信和次通信时序图
表 8-24 控制寄存器 1位功能表
表 8-25 控制寄存器 2位功能表
表 8-26 控制寄存器 3位功能表
FSFSD
表 8-27 控制寄存器 4位功能表
表 8-28 寄存器映象表
寄存器编
号 D12 D11 D10 D9 D8
寄存器名字
0 0 0 0 0 0 空操作寄存器
1 0 0 0 0 1 控制寄存器 1
2 0 0 0 1 0 控制寄存器 2
3 0 0 0 1 1 控制寄存器 3
4 0 0 1 0 0 控制寄存器 4
2,TLC320AD50C与 TMS320C5402硬件接口设计
? 硬件连接采用 AD50C为主控模式 ( =1), 向 C5402的
McBSP0( 从设备 ) 提供 SCLK( 数据移位时钟 ) 和 FS
( 帧同步脉冲 ), 并控制数据的传输过程 。
TMS320C5402工作于 SPI方式的从机模式, CLKX0和
FSX0为输入引脚, 在接收数据和发送数据时都是利用外
界时钟和移位脉冲 。 C5402与 TLC320AD50C的硬件连接
如 图 8-35所 示 。
FS
SCLK
D IN
DOUT
FSX 0
FSR 0
CL K R 0
CL K X 0
DX 0
DR 0
TLC 320 AD 50 C
MCLK
TMS 320 C 5402
8, 192 MH z
FC
图 8-35 TMS320C5402与 TLC320AD50C的硬
件连接示意图
3,软件编制过程
( 1) TMS320C5402串口的初始化 。
( 2) AD50C初始化 。
( 3) 用户代码的编写 。
返回本节
8.6 主机接口( HPI)
? 8.6.1 HPI-8接口的结构
? 8.6.2 HPI-8控制寄存器和接口信号
? 8.6.3 HPI-8接口与主机的连接框图
? 8.6.4 HPI的 8条数据线作通用的 I/O引脚
返回首页
8.6.1 HPI-8接口的结构
? HPI-8是一个 8位的并行口,外部主机是 HPI的主
控者,HPI-8作为主机的从设备,其框图如图 8-
36所示。其接口包括一个 8比特的双向数据总线、
各种控制信号及 3个寄存器。片外的主机通过修
改 HPI控制寄存器( HPIC) 设置工作方式,通过
设置 HPI地址寄存器( HPIA) 来指定要访问的片
内 RAM单元,通过读 /写数据锁存器( HPID) 来
对指定存储器单元读 /写。主机通过 HCNTL0、
HCNTLl管脚电平选择 3个寄存器中的一个。
图 8-36 HPI-8框图
返回本节
8.6.2 HPI-8控制寄存器和接口信号
? HPI控制寄存器 ( HPIC) 状态位控制着 HPI操作:
( 1) BOB,字节次序位 。
( 2) SMOD,标准 HPI-8寻址方式位 。
( 3) DSPINT,主机向 C54x发出中断位 。
( 4) HINT,C54x向主机发出中断位 。
( 5) XHPIA,增强 HPI-8扩展寻址使能位 。
( 6) HPIENA,增强 HPI-8使能状态位 。
主机从 HPIC寄存器读出数据
主机写入 HPIC寄存器的数据
C54x从 HPIC寄存器读出的数据
C54x写入 HPIC寄存器的数据
图 8-37 标准 HPI-8的 HPIC寄存器位结构图
主机从 HPIC寄存器读出数据
主机写入 HPIC寄存器的数据
C54xx从 HPIC寄存器读出的数据
C54xx写入 HPIC寄存器的数据
图 8-38 增强 HPI-8的 HPIC寄存器位结构图
表 8-29 HPI-8接口信号名称及其功能
返回本节
8.6.3 HPI-8接口与主机的连接框图
图 8-39 C54x HPI与主机链接框图
返回本节
8.6.4 HPI的 8条数据线作通用的 I/O引脚
表 8-30 通用 I/O控制寄存器 (GPIOCR)各位的功能
返回本节
8.7 外部总线操作
? 8.7.1 软件等待状态发生器
? 8.7.2 可编程分区切换逻辑
? 8.7.3 外部总线接口定时
返回首页
8.7.1 软件等待状态发生器
表 8-31 软件等待状态寄存器( SWWSR) 各字段的功能
表 8-32 软件等待状态控制寄存器( SWCR) 的功能
返回本节
8.7.2 可编程分区切换逻辑
表 8-33 分区转换控制寄存器( BSCR) 各字段的功能
图 8-40 存储器两次读操作之间分区切换
图 8-41 程序存储器读切换到数据存储器读
返回本节
8.7.3 外部总线接口定时
1,存储器寻址定时图
? 如图 8-42所示为存储器读 —读 —写操作时序图 。
如图 8-43所示为存储器写 —写 —读操作时序图 。
写操作的地址线和数据线继续保持有效约半个周
期, 紧跟着写操作之后的读操作也要两个机器周
期 。
? 如图 8-44所示为程序空间读插入一个等待周期的
存储器读 —读 —写操作时序图 。
图 8-42 存储器读 — 读 — 写操作时序
图 8-43 存储器写 — 写 — 读操作时序
图 8-44 存储器读 — 读 — 写操作时序(程序空
间读插入一个等待周期)
2,I/O寻址定时图
? 如图 8-45所示为并行 I/O口读 —写 —读操作时序图 。
如图 8-46所示为插入一个等待周期的并行 I/O口
读 —写 —读操作时序图 。 每次 I/O读写操作都延长
一个机器周期 。
? 如果 I/O读 /写操作紧跟在存储器读 /写操作之后,
则 I/O读 /写操作至少 3个机器周期, 如果存储器读
操作紧跟在 I/O读 /写操作之后, 则存储器读操作
至少 2个机器周期 。
图 8-45 并行 I/O口读 — 写 — 读操作时序
图 8-46 并行 I/O口读 — 写 — 读操作时序(插
入一个等待周期)
3,软, 硬件等待状态的使用
? DSP无论是运算还是存取数据, 速度都很快, 但
外部存储器或其他设备的读写周期都较长 。 因此
经常用等待方式访问外存储器 。
? DSP有软等待 ( 内等待 ), 硬等待 ( 外等待 ) 访
问控制以便于与不同速度的外围器件交换数据,
同时 DSP自身的运行速度又可以保持很高 。 软,
硬件等待都可以分别对不同类型, 不同地址范围
的外设产生不同的等待状态数 。
返回本节