第7章TMS320C54x片内外设及其应用
Download
Report
Transcript 第7章TMS320C54x片内外设及其应用
第7章 TMS320C54x片内外设及其应用
C54x片内集成了大量外部设备,包
括:
通用I/O引脚、定时器、主机接
口、串行口、时钟产生逻辑、等待状
态产生器、直接存储器访问和外部总
线接口等。
TMS320C54x
DSP CPU and Peripherals
Reference Set Volume 1_spru131g.pdf
Volume 5 Enhanced Peripherals Set
spru302.pdf
第7章 TMS320C54x片内外设及其应用
其功能结构如图7-1所示 :
第7章 TMS320C54x片内外设及其应用
本章主要介绍GPIO引脚、定时器、HPI-8、
McBSP和DMA的工作原理。
目录:
7.1 通用I/O引脚(GPIO)
7.2 定时器
7.3 主机接口HPI
7.4 直接存储器访问DMA
7.5 多通道缓冲串行口(McBSP)
第7章 TMS320C54x片内外设及其应用
7.1 通用I/O引脚(GPIO)
在C54x芯片中主要提供了两条通用I/O(General
Purpose I/O,简称GPI/O)引脚:
外部标志输出XF
跳转控制输入BIO
本节将以TMS320VC5402A为例介绍这种引脚。
第7章 TMS320C54x片内外设及其应用
7.1.1 XF和BIO引脚
1. XF引脚
XF是一个输出引脚,输出电平可通过对
ST1的D13位(XF)进行控制。此外,XF引
脚有一定的驱动能力。
第7章 TMS320C54x片内外设及其应用
例7-1 采用XF引脚组成的告警电路。
告警时,用指令: SSBX
XF,点亮LED;
不告警时,用指令:RSBX
XF,熄灭LED。
采用XF引脚组成的告警电路:
第7章 TMS320C54x片内外设及其应用
2.BIO引脚
它是一个输入引脚。
可以作为查询引脚;
也可作为外部中断申请引脚.
第7章 TMS320C54x片内外设及其应用
例7-2 观察下列指令的执行情况。
BC
1500h, TC, NC, BIO;当TC=1、C=0且
;BIO为低时,程序转移,PC=1500h。
第7章 TMS320C54x片内外设及其应用
7.1.2 其它GPIO引脚
以TMS320VC5402A芯片为例,下列一些引脚可
以在不使用片内外设时被配置成为GPIO引脚:
• 18条多缓冲串行口(McBSP)引脚:BCLKX0/1/2、
BCLKR0/1/2、BDR0/1/2、BFSX0/1/2、
BFSR0/1/2、BDX0/1/2
• 8条主机接口(HPI)的数据引脚:HD0~HD7。
第7章 TMS320C54x片内外设及其应用
2. 主机接口(HPI)的数据引脚作为GPIO
当HPI被用作HPI16模式(HPI16 = 1),或
是禁用HPI(HPIENA = 0)时,HPI的数据线
可以作为GPIO来使用。
通过两个通用I/O控制寄存器(GPIOCR)
和通用I/O状态寄存器(GPIOSR)来完成操作
设置。
第7章 TMS320C54x片内外设及其应用
GPIOCR用来将HD0~HD7配置为输入或
者是输出引脚。DIRx=0 配置输入。
它的结构如图 :
第7章 TMS320C54x片内外设及其应用
GPIOSR用来反映GPI/O引脚的输入状态(当
HD0~HD7被配置为输入引脚时),或是用来给
出引脚的输出电平(当HD0~HD7被配置为输出
引脚时)。 结构如图所示 :
例7-3 将HPI的HD0–3 设为输入引脚, HD4–7为输出引
脚, HD0–3 的状态存储到 AR3; 设置 HD4–7 为 0101b.
GPIOCR .set 3Ch
;MMR GPIOCR address is 3Ch
GPIOSR .set 3Dh
;MMR GPIOSR address is 3Dh
.text
STM #0F0h, GPIOCR
; HD0-3 输入,HD4-7 输出
...
LDM GPIOSR, A
; 得到 GPIOSR值.
AND #0Fh, A
; Mask off MSBs.
STLM A, AR3
; Store value of HD0-3 in AR3.
STM #050h, GPIOSR
; Set HD4-7 to 0101b.
...
7.2 定时器
7.2.1 定时器的工作原理
定时器用于定时控制、延时、外部事件的计数等。
C54x片内集成了1~4个可编程的定时器,下图示出
了一个片内定时器的结构:
定时器控
制寄存器
TCR
第7章 TMS320C54x片内外设及其应用
定时器的组成:
定时寄存器TIM
周期寄存器PRD
预分频计数器PSC
预分频系数TDDR及控制逻辑电路等
第7章 TMS320C54x片内外设及其应用
它分为两个模块:
主定时模块:包括TIM和PRD,地址分
别是0024h和0025h。
预分频模块:由PSC和TDDR组成,它
们分别位于定时器控制寄存器TCR的
D9~D6、D3~D0位。
第7章 TMS320C54x片内外设及其应用
1.定时器控制寄存器TCR
TCR地址为0026h。它包含了定时器的控
制与状态信息以及预分频计数器PSC、预
分频系数TDDR等。
其结构如下图所示 :
15-12
11
10
9-6
5
4
3-0
保留
Soft
Free
PSC
TRB
TSS
TDDR
TCR各位的作用如下表:
保留
Soft
位
名称
15~12
保留
11
Soft
10
Free
Free
PSC
复位
值
保留:读为0
TRB
TSS
TDDR
功能
0
在用高级语言调试器时用来确定在断
点处定时器的状态
0
当Free=0,Soft=0时,定时器停止工
作
当Free=0,Soft=1时,定时器减到0
时停止工作
当Free=1,Soft=X时,定时器自由运
行,与Soft无关
保留
位
名称
9~6 PSC
5
4
TRB
TSS
Soft
复位值
-
Free
PSC
TRB
TSS
TDDR
功能
定时器的预分频计数器。PSC的计数源为
CPU clock,PSC减1计数。当PSC减到0
或定时器复位时,PSC加载TDDR的值且
TIM减1
-
定时器的重载位,用来复位定时器。当
TRB=1时,将PRD的值装入TIM;将TDDR
的值装入PSC。读PRB时总是0
-
定时器停止状态位,用来启动或停止定时器。
TSS=0,启动定时器;TSS=1,停止定时
器。复位时TSS为0,启动定时器工作
定时器分频值。在PSC减到0时,将TDDR
3~0 TDDR 0000 值装入PSC
第7章 TMS320C54x片内外设及其应用
2. 定时器的工作原理
计数器的初值装入:
SRESET是DSP的复位信号,
TRB为定时器的复位信号,两者中有一个为1,
就可使或门3输出使能信号,并通过或门1和或
门2产生使能信号,将PRD的值装入TIM;将
TDDR的值装入PSC。这就是计数器的初值装
入。
第7章 TMS320C54x片内外设及其应用
在DSP复位时(TSS为0)或将TSS清0时,与门5
被使能,CPU clock将作为计数源送入PSC的计
数端。
PSC在计数初值的基础上每来一个计数脉冲就减
1计数,当减至0时,在下一个脉冲到来时会产生
一个借位,该借位脉冲将作为TIM的计数脉冲,使
TIM减1,同时通过或门2使能,将TDDR值重新装
入PSC,PSC在此初值下继续减1计数。
第7章 TMS320C54x片内外设及其应用
当将TSS位置1时,与门5关闭,不允许
CPU clock输入,并且停止定时器的工作。
TIM的计数源是PSC的溢出借位信号。
TIM在计数初值的基础上每来一个计数脉
冲就减1计数,当减至0时会产生一个借
位,并引发下列行为:
1)向主机发出中断申请信号TINT;
第7章 TMS320C54x片内外设及其应用
TIM减至0时产生一个借位,并引发下列行为:
1)向主机发出中断申请信号TINT;
2)通过驱动门4和引脚TOUT输出信号;
3)通过或门1使能,将PRD的值重新装入TIM,
作为TIM的计数初值。从而完成定时工作的一个
基本过程。
• 定时器定时时间的计算公式如下:
• 定时周期=CLKOUT×(TDDR+1)×(PRD+1)
• 其中:CLKOUT是CPU的时钟周期。
第7章 TMS320C54x片内外设及其应用
7.2.2 定时器的编程
在应用编程中应该掌握的三个关键点:
怎样计算计数初值
怎样对定时器进行初始化
怎样配置定时器的中断
第7章 TMS320C54x片内外设及其应用
1.怎样计算计数初值
例:定时周期=1ms,设时钟周期
CLKOUT=1/80M=12.5ns,求TDDR及PRD。
先假定:分频系数TDDR=9
定时周期 =CLKOUT×(TDDR+1)×(PRD+1)
=12.5×(9+1) ×(PRD+1)
=1ms
求得:PRD=7999(10)=1F3FH;
第7章 TMS320C54x片内外设及其应用
2.怎样对定时器进行初始化
通过下列步骤对定时器进行初始化:
1)将TCR的TSS置1,关闭定时器
2)装载PRD
3)初始化TDDR:将TRB置1去重新装载定时器的
初值,将TSS清0以使能定时器。
保留
Soft
Free
PSC
TRB
TSS
TDDR
第7章 TMS320C54x片内外设及其应用
例:STM #0010H,TCR;TSS=1,关闭定时器
STM #1F3FH,PRD;加载周期寄存器
STM #0E69H,TCR;TDDR=9,TRB=1,装载
;TIM及PSC ,TSS=0,启
;动定时器
15-12
保留
11
10
Soft
Free
9-6
PSC
5
TRB
4
3-0
TSS
TDDR
0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1
第7章 TMS320C54x片内外设及其应用
3.怎样配置定时器的中断
假定INTM=1,定时器中断的设置方法如下:
1)给IFR的TINT位写入1,以清除没有处理完的定
时器中断;
2)给IMR的TINT位写入1,以使能定时器的中断;
3)INTM位清0,使能全部可屏蔽中断。
第7章 TMS320C54x片内外设及其应用
例:
STM #0008H,IFR;清除没处理完的定时器1中断
STM #0008H,IMR;开放定时器1中断
RSBX INTM
;开总中断
IFR、IMR
第7章 TMS320C54x片内外设及其应用
7.2.2 定时器的编程
• 【例7-4】采用片内定时器实现方波信号发生器。
在引脚XF端输出周期为2s、占空比为50%的方波
信号。设时钟周期CLKOUT=1/80M=12.5ns,通过
中断方式完成编程。
• 取定时周期=1ms,分频系数TDDR=9;
• 定时周期 =CLKOUT×(TDDR+1)×(PRD+1)
=12.5×(9+1)×(PRD+1) =1ms
• 求得:PRD=7999(10)=1F3FH
7.2.2 定时器的编程
(1)主程序清单
.file "timer.asm"
.mmregs
;54X 存储器影像寄存器定义
.global main
;声明 main为全局符号
.def timer_iserv
TIM0
.set 0x0024
; 定时器0定时寄存器
PRD0
.set 0x0025
; 定时器0周期寄存器0
TCR0
.set 0x0026
; 定时器0控制寄存器
TIM0_VAL .set 0x1F3F
; 定时0定时寄存器赋值为1F3Fh ;
;(此程序没有使用 )
;(十进制7999)
PRD0_VAL .set 0x1F3F ;周期寄存器赋值为1F3Fh (7999)
TCR0_VAL .set 0x0E69
; 控制寄存器赋值为0E69h,
0000 1110 0110 1001
; 即free.soft=11b, PSC=1001b, TRB=1,TSS=0, TDDR=1001b
7.2.2 定时器的编程
(1)主程序清单
;SWWSR
.set 0x0028 ; software wait-state register
SWWSR_VAL .set 0x36DB ; (0011011011011011b)三
个空间都插入了3个等待周期
SWCR
.set 0x002B ; 软件等待状态控制寄存器
SWCR_VAL .set 0x0001 ; 三个空间都插入的3个等待周
期都乘以2
TINT0_ENBL .set 0x0008
;开放TIMER0中断
;CLKMD
.set 0x0058
;锁相环PLL软件控制时钟
方式寄存器
PLLX5
.set 0x43EF
;锁相环PLL软件控制时钟方
式寄存器CLKMD的
; 设置字;0100 0011 1110 1111,外部时钟16MHz, 5倍频到
80MHz, PLLCOUNT=125
7.2.2 定时器的编程
OVLY_1
.set 0x00A0
;PMST中: 0000 0000 1010 0000
IPTR OVLY
stack_size .set 100
stack
.usect ".stack" , stack_size
sys_stack .set stack+stack_size
.bss XF_FLAG, 1
.bss LED_DISP, 1 ;此程序没有使用
.text
main:
STM #sys_stack, SP
ANDM #0fffeh, *(SP) ; 堆栈指针长字(双字)对齐
STM #OVLY_1, PMST ;设置OVLY=1,MP/MC=0,
STM #SWWSR_VAL, SWWSR ;插入三个等待周期,
DROM=0等
7.2.2 定时器的编程
*
; PLL的倍频,分频变换
STM #0,CLKMD;切换到DIV方式
DIV_Status:
LDM CLKMD,B
AND #01h,B
;测试PLLSTATUS位,
BC DIV_Status,BNEQ ;若B=0, 则已切换到DIV方式
STM PLLX5,CLKMD ;设置锁相环为PLL×5方式
PLL_Status:
LDM CLKMD,B
AND #01h,B
;测试PLLSTATUS位,
BC PLL_Status,BEQ ;若B≠0,则已切换到倍频方式
7.2.2 定时器的编程
*
;配置和启动定时器
STM #TINT0_ENBL, IMR ; 开TINT中断
STM #XF_FLAG, AR1 ; AR1中是XF状态XF_FLAG的地址
ST #0, *AR1
; 复位XF状态为0
STM #03E8h, AR2 ; 倒计时中断次数1000(03E8h)
STM #PRD0_VAL, PRD ; 装入主定时模块计数初值1F3Fh
STM #TCR0_VAL, TCR ;装入预分频模块计数初值9,
TSS=0,启动定时器
RSBX INTM ;开总中断
WAIT: BD WAIT
NOP
NOP
NOP
7.2.2 定时器的编程
* ;中断服务程序
timer_iserv:
BANZ EXIT_ISERV, *AR2STM #03E8h, AR2 ; 重载倒计时中断次数1000(03E8h)
BITF *AR1, #1h ;位测试XF_FLAG的最低位,AR1中是
XF_FLAG的地址
BC XF_0, TC ;若TC=1则XF_FLAG最低位为1, 转XF_0
SSBX XF
;XF置1
ST #01h, *AR1 ;标志位XF_FLAG置1
B EXIT_ISERV
XF_0:
RSBX XF
;XF清0
ST #00h, *AR1 ;标志位XF_FLAG清0
EXIT_ISERV:
RETE
.end
7.2.2 定时器的编程
(2)中断向量程序清单 VECTORS.ASM
.mmregs
;54X 存储器影像寄存器定义
.ref main
;声明 main为其他函数定义符号
.ref timer_iserv
.sect ".vectors"
IV_RESET: BD main ;复位中断,跳转到主程序入口
nop
nop
IV_NMI:
rete ;NMI中断,开中断返回
nop
nop
nop
SINT17:
rete ;SINT17中断,开中断返回
nop
nop
nop
7.2.2 定时器的编程
(2)中断向量程序清单
SINT18: rete
SINT22: rete
nop
nop
nop
nop
nop
nop
SINT19: rete
SINT23: rete
nop
nop
nop
nop
nop
nop
SINT20: rete
SINT24: rete
nop
nop
nop
nop
nop
nop
SINT21: rete
SINT25: rete
nop
nop
nop
nop
nop
nop
SINT26: rete
nop
nop
nop
SINT27: rete
nop
nop
nop
SINT28: rete
nop
nop
nop
SINT29: rete
nop
nop
nop
7.2.2 定时器的编程
SINT30: rete
nop
nop
nop
INT0: rete
nop
nop
nop
INT1: rete
nop
nop
nop
INT2: rete
nop
nop
nop
TINT0: b timer_iserv
nop
nop
BRINT0: rete
nop
nop
nop
BXINT0: rete
nop
nop
nop
DMAC0: rete
nop
nop
nop
7.2.2 定时器的编程
TINT1: rete
nop
nop
nop
INT3: rete
nop
nop
nop
HPINT: rete
nop
nop
nop
BRINT1: rete
nop
nop
nop
BXINT1: rete
nop
nop
nop
DMAC4: rete
nop
nop
nop
DMAC5: rete
nop
nop
nop
RESERVED .space 8*16
.end
7.2.2 定时器的编程
(3)命令文件清单 ucdos.CMD
MEMORY
{
PAGE 0 :
PROG: origin = 0x2400, length = 0x1b80
VECT: origin = 0x0080, length = 0x80
PAGE 1 :
DARAM: origin = 0x0100, length = 0x1f80
STACK: origin = 0x2000, length = 0x400
}
7.2.2 定时器的编程
(3)命令文件清单
SECTIONS
{
.text : load = PROG page 0
.data : load = PROG page 0
.bss : load = DARAM page 1
.stack : load = STACK page 1
.vectors : >VECT page 0
}
第7章 TMS320C54x片内外设及其应用
7.3 主机接口HPI
C54x的主机接口HPI(Host Port Interface)是一
个并行接口,用来实现DSP与外部主机芯片或其它
微处理器的并行通信。
根据数据线的宽度不同,HPI又分为8位的或者16位
的;根据功能的不同,又分为标准型HPI或是增强
型 HPI。
标准型HPI:主机访问片内2kRAM,异步;
增强型 HPI:主机和DSP都能访问片内RAM,同步
7.3.1 HPI-8的结构
8位的主机接口HPI-8主要由三个寄存器HPIC、HPID
和HPIA以及HPI控制逻辑组成。其结构如下图所示 :
第7章 TMS320C54x片内外设及其应用
1.有关引脚(20PIN)及信号
• HD0~HD7:输入/输出/高阻,双向并行数据总线
• HCNTL0、HCNTL1:输入,主机通过这两个引
脚来选择要访问的HPI寄存
器
• HBIL:输入,字节(第一、二字节)识别信号。
• HCS :输入,片选信号输入端。
• HDS1、HDS2:输入,数据选通信号。
第7章 TMS320C54x片内外设及其应用
•HAS:输入,地址选通信号。
•HR/W:输入,HPI的读/写信号。
•HINT:输出/高阻,中断输出信号。
•HRDY:输出/高阻,HPI准备好信号。
•HPIENA:输入,HPI模式选择信号。
•HPI16:输入,HPI16模式选择信号。
第7章 TMS320C54x片内外设及其应用
2. HPI的寄存器
HPI有三个寄存器 :
地址寄存器HPIA
数据寄存器HPID
16位控制寄存器HPIC
第7章 TMS320C54x片内外设及其应用
• 注意:
1)对主机来说,HPIC的高8位和低8位内容相同。而
对DSP来说,只使用HPIC的低8位,不使用高8位。
2)DSP可以写HINT位,而主机读HPIC要分两次字节
读完成。
3)主机对HPIC的读/写和DSP对HPIC的读/写会有不
同的位定义。这反映在下图中:
第7章 TMS320C54x片内外设及其应用
主机或C54x读/写HPIC的字段情况 :
第7章 TMS320C54x片内外设及其应用
HPIC寄存器的位功能
位
复位值
功能
BOB
0
字节顺序位。若BOB=0,第一个字节是高字节;若
BOB=1,第一个字节是低字节。只有主机可以修改该
位
DSPINT
0
主机向C54x发出的中断申请位。当主机对该位写1时,
就对C54x产生一次中断。只有主机可以访问该位
HINT
0
C54x向主机发出的中断申请位。该位决定引脚的输出
状态。当将HINT置1时,输出为低;当将HINT清0时,
输出被拉高。只有C54x可向该位写1,只有主机可将该
位清0。
XHPIA
X
扩展地址使能位。当XHPIA=0时,主机写入地址的低
16位;当XHPIA=1时,主机写入页地址。只有主机可
以访问该位
HPI使能状态位。反映在复位时引脚HPIENA的状态。
HPIENA
X
只有C54x可读该位
7.3.2 HPI-8与主机的接口
HPI-8有多种选通方式,可以方便的与许多种微处理器(即
主机)实现无缝连接。HPI-8与主机的典型接口如图所示:
第7章 TMS320C54x片内外设及其应用
在HPI-8的内部有一套选通和选择逻辑,用来产生片
内选通信号,以便对HBIL、HCNTL0/1和HR/W引脚
的信号进行采样的,其结构如图所示 :
不能同
时为高
或低
异或非
第7章 TMS320C54x片内外设及其应用
7.3.3 主机与HPI-8的数据传输
主机与HPI-8的数据传输过程包括下列两部分 :
• 片外传输:主机与HPI-8寄存器之间的数据
传输
• 片内传输 :HPI-8与片内RAM之间的数据
传输
第7章 TMS320C54x片内外设及其应用
HPI-8的时序示意图 :
第7章 TMS320C54x片内外设及其应用
7.4 直接存储器访问DMA
DMA可以独立完成与片内存储器、片内外设及外
部设备的数据传输,而不需要CPU的干预。
7.4.1 DMA的寄存器
DMA的控制寄存器分为两种类型:
可直接访问的存储器映像寄存器(4个)
通过同址寻址的控制寄存器(40个)
第7章 TMS320C54x片内外设及其应用
DMA寄存器的地址信息及其功能 :
地址
子地址
名称
功能
通道优先级使能控制寄存器
0054h
DMPREC
0055h
DMSA
子区地址寄存器
0056h
DMSDI
子区访问寄存器(地址自动
增加)
0057h
DMSDN
子区访问寄存器(地址不自
动增加)
00h
DMSRC0
通道0源地址寄存器
01h
DMDST0
通道0目的地址寄存器
第7章 TMS320C54x片内外设及其应用
02h
DMCTR0
通道0元素数目寄存器
03h
DMSFC0
通道0同步事件选择和帧数目
寄存器
04h
DMMCR0
通道0传输模式控制寄存器
05h
DMSRC1
通道1源地址寄存器
06h
DMDST1
通道1目的地址寄存器
07h
DMCTR1
通道1元素数目寄存器
08h
DMSFC1
通道1同步事件选择和帧数目
寄存器
09h
DMMCR1
通道1传输模式控制寄存器
0Ah
DMSRC2
通道2地址寄存器
0Bh
DMDST2
通道2目的地址寄存器
第7章 TMS320C54x片内外设及其应用
0Ch
DMCTR2
通道2元素数目寄存器
0Dh
DMSFC2
通道2同步事件选择和帧数目
寄存器
0Eh
DMMCR2
通道2传输模式控制寄存器
0Fh
DMSRC3
通道3源地址寄存器
10h
DMDST3
通道3目的地址寄存器
11h
DMCTR3
通道3元素数目寄存器
12h
DMSFC3
通道3同步事件选择和帧数目
寄存器
13h
DMMCR3
通道3传输模式控制寄存器
14h
DMSRC4
通道4源地址寄存器
第7章 TMS320C54x片内外设及其应用
15h
DMDST4
通道4目的地址寄存器
16h
DMCTR4
通道4元素数目寄存器
17h
DMSFC4
通道4同步事件选择和帧数目
寄存器
18h
DMMCR4
通道4传输模式控制寄存器
19h
DMSRC5
通道5源地址寄存器
1Ah
DMDST5
通道5目的地址寄存器
1Bh
DMCTR5
通5元素数目寄存器
1Ch
DMSFC5
通道5同步事件选择和帧数目
寄存器
1Dh
DMMCR5
通道5传输模式控制寄存器
1Eh
DMSRCP
源程序空间页地址
第7章 TMS320C54x片内外设及其应用
1Fh
DMDSTP
目的程序空间页地址
20h
DMIDX0
元素地址索引寄存器0
21h
DMIDX1
元素地址索引寄存器1
22h
DMFRI0
帧地址索引寄存器0
23h
DMFRI1
帧地址索引寄存器1
24h
DMGSA
全局源地址重载寄存器
25h
DMGDA
全局目的地址重载寄存器
26h
DMGCR
全局元素数目重载寄存器
27h
DMGFR
全局帧数目重载寄存器
第7章 TMS320C54x片内外设及其应用
1.寄存器的同址寻址
除了DMPREC、 DMSA、DMSDI、DMSDN以外,
其它40个寄存器均采用同址寻址的方式进行访问 。
同址寄存器的组织结构 :
初始化
数据
自增
复用器
不自增
子区访问寄存器
子区地址寄存器
例7-6 用子地址自动增加功能的同址寻址方式去访问
寄存器,对DMA通道5的有关寄存器进行初始化。
DMSA
.set 55h ;set register locations
DMSDI
.set 56h
DMSRC5 .set 19h ; 子区地址
DMDST5 .set 1Ah
DMCTR5 .set 1Bh
DMSFC5 .set 1Ch
DMMCR5 .set 1Dh
STM DMSRC5, DMSA ;初始化子区地址指向DMSRC5
STM #1000h, DMSDI ;write 1000h to DMSRC5
STM #2000h, DMSDI ;write 2000h to DMDST5
STM #0010h, DMSDI ;write 10h to DMCTR5
STM #0002h, DMSDI ;write 2h to DMSFC5
STM #0000h, DMSDI ;write 0h to DMMCR5
第7章 TMS320C54x片内外设及其应用
2. 通道优先级和使能控制寄存器DMPREC
DMPREC是一个存储器映像寄存器,地址为0054h 。
DMPREC:DMA Channel Priority and Enable
Control Register
控制着DMA系统总体操作的一些功能:
(1)通道选择
(2)复用中断控制
(3)通道优先级控制
DMPREC的结构如下图所示 :
2. 通道优先与使能控制寄存器
FREE:为0(1)时仿真器停止则DMA传输停止(继续)
DPRC[5:0]:DMA通道优先级,1高优先级
DE[5:0]:DMA通道使能位,1使能DMA通道
INTOSEL:中断复用控制位如下表(适用C5402)
:
第7章 TMS320C54x片内外设及其应用
3. 通道寄存器
每个DMA通道都有5个16位的通道寄存器,用来对
本通道的操作进行设置。它们的用途分别如下:
源地址寄存器DMSRCx和目的地址寄存器DMDSTx
指出数据读取或写入的地址,它们中存放的是数据传
输时源或目的地址的低16位。对其修改立即生效。
元素数目寄存器DMCTRx中保存着传输数据的数目。
第7章 TMS320C54x片内外设及其应用
同步事件选择和帧数目寄存器DMSFCx用于确定
数据传输时的同步事件、数据字长和传输帧数。
结构:(C5402的同步事件如表7-7)
例如:DMA和McBSP1接收事件和发送事件同步分别为:
DSYN[3:0]=0101和DSYN[3:0]=0110
帧数目最大255,即传输时每块数据最大256帧。在传
输时,帧计数递减,当递减到0时,由DMA全局帧计数
寄存器DMGFR装载。
第7章 TMS320C54x片内外设及其应用
传输模式控制寄存器DMMCRx控制着通道的传输
模式。结构:
AUTOINIT=1,DMA工作在自动初始化模式,CPU在完成
一个块传输后自动初始化开始另一个块传输。
DINM中断屏蔽位为1时根据IMOD位产生中断,IMOD位
设置DMA中断产生方式(缓冲全满(0)和半满都(1)产
生中断;快结束(0)和帧结束都(1)产生中断)。
CTMOD位设置传输计数方式, 0为多帧模式,1为自
动缓冲ABU模式。SIND位和DIND位用来设置源地址和
目的地址的自动调整方式。
DMMCR功能图—地址更新
DMA传输后的源地址和目的地址还可以更新:
SIND(bit8-10)和DIND(bit2-4)决定源地址和目的地址
更新模式:
(1)传输后地址不更新;
(2)传输后地址加1;
(3)传输后地址减1;
此外还有地址由偏移量更新。
DMMCR功能图—地址选择
DMA传输的源地址和目的地址:
DMS(bit 6-7)和DMD(bit0-1)决定源地址和
目的地址的空间:程序空间、数据空间还是
I/O空间。
(见Table 3–10. DMA Transfer Mode Control (DMMCRn)
Register Bit/Field Descriptions
SPRU302.pdf)
第7章 TMS320C54x片内外设及其应用
4. 全局寄存器
DMA具有10个全局寄存器。
这些全局寄存器并不是专供某一通道
使用的,而是对所有通道都起作用,
它们在DMA传输中发挥着不同的作用。
第7章 TMS320C54x片内外设及其应用
7.4.2 DMA的工作方式
C54x的DMA按照不同寻址方式可分为两种工作方
式:
多帧工作方式(multiframe mode)
ABU(autobuffering mode)工作方式
每个通道可通过自己的传输模式控制位CTMOD
(寄存器DMMCRx.12)进行配置。
第7章 TMS320C54x片内外设及其应用
7.4.3 DMA的中断
在DMA的传输过程中,通道传输模式寄存器
DMMCRx的两个字段(DINM和IMOD)控制着
中断的产生和中断的触发模式。
除需要设置CPU的IMR及INTM外,还需要根
据具体的工作方式来确定中断的触发事件,
如表所示:
第7章 TMS320C54x片内外设及其应用
工作方式
CTMOD
DINM
IMOD
中断产生
事件
ABU
1
1
0
缓冲全满
ABU
1
1
1
缓冲全满
和半满
多帧
0
1
0
块传输完
成
多帧
0
1
1
帧和块结
束
其它
X
0
X
无中断产
生
第7章 TMS320C54x片内外设及其应用
在多帧方式下,当每帧数据传输完成或是
全部块传输结束时将产生DMA中断;
在ABU方式下,需要通过对地址变化的
检测来产生中断。当全部缓冲区或是缓冲
区的一半已经传输完毕时,就会产生中断。
第7章 TMS320C54x片内外设及其应用
DMA的6个通道中断名称和中断地址偏移量如下 :
中断
序号
22
23
26
27
28
29
中断名称
DMAC0/保留
TINT1/DMAC1
BRINT1/DMAC
2
BXINT1/DMAC
3
DMAC4
DMAC5
INTOSEL1,
地址偏移
中断优先级 INTOSEL0控制
量
58H
5CH
9
10
XX
10
68H
13
01 10
6CH
14
01 10
70H
74H
15
16
XX
XX
第7章 TMS320C54x片内外设及其应用
7.5 多通道缓冲串行口(McBSP)
多通道缓冲串行口(multichannel buffered
serial ports,简称McBSP)为C54xDSP与片外
串行设备之间提供了多通道、多缓冲、全双工的
串行接口。
它支持多种数据格式,并具有A律、μ律数据压扩
处理等功能。
第7章 TMS320C54x片内外设及其应用
7.5.1 McBSP的功能及结构
C54x的McBSP具有下列功能:
• 全双工通信
• 双缓冲的发送和三缓冲的接收,采用连续的数据
流进行收发
• 接收和发送具有独立的时钟信号和帧同步信号
• 多达128个发送和接收通道
第7章 TMS320C54x片内外设及其应用
•可直接与各种工业标准的编解码器、模拟接口芯片
(AICs)以及其它串行A/D和D/A芯片接口和通信。
•外部移位时钟发生器或内部频率可编程移位时钟
•可选择多种数据位的大小,包括8、12、16、20、
24和32位
第7章 TMS320C54x片内外设及其应用
•具有A律、μ律数据压扩处理功能
•进行8位数据传输时,可选择低位在前或高位在前
•帧同步信号和时钟信号的极性及速率可编程
•内部时钟和帧的产生可编程
第7章 TMS320C54x片内外设及其应用
McBSP由数据流通道和控制通道两部分组成。
数据流通道包括发送通道和接收通道,用来
完成串行数据的发送和接收;
控制通道分为时钟和帧同步信号产生、多通
道选择及中断和DMA同步事件的产生等三部
分,用于对McBSP进行配置及操作控制。
McBSP的结构框图 :
接收移位寄存器,
并完成串并转换
输入输出
串行数据
发送移
位寄存
器,并
完成并
串转换
接收缓冲
寄存器
数据接收
寄存器
CPU或DMA从
DRR中读走数据
CPU或DMA将要发
送的数据传给DXR
接收完数据的中断
发送完数据的中断
第7章 TMS320C54x片内外设及其应用
McBSP的配置和操作均通过有关寄存器来完成,这
些寄存器如表 :
地址(16位)
子地址
名称缩写
McBSP McBSP McBSP
(16位)
0
1
2
-
-
-
-
-
-
-
-
-
0020
0021
0022
0023
0040
0041
0042
0043
0030
0031
0032
0033
-
寄存器名称
RBR[1,2]McBSP接收缓冲寄存器1
和2
RSR[1,2]McBSP接收移位寄存器1
和2
XSR[1,2] McBSP发送移位寄存器1
和2
DRR2x McBSP数据接收寄存器2
DRR1x McBSP数据接收寄存器1
DXR2x McBSP数据发送寄存器2
DXR1x McBSP数据发送寄存器1
第7章 TMS320C54x片内外设及其应用
0038 0048 0034
-
SPSAx
McBSP子地址寄存器
0039 0049 0035
-
SPSD
McBSP子区数据寄存器
0039 0049 0035 0
SPCR1x McBSP控制寄存器1
0039 0049 0035 1
SPCR2x McBSP控制寄存器2
RCR1x
McBSP接收控制寄存器
1
0039 0049 0035 3
RCR2x
McBSP接收控制寄存器
2
0039 0049 0035 4
XCR1x
McBSP发送控制寄存器
1
XCR2x
McBSP发送控制寄存器
2
0039 0049 0035 2
0039 0049 0035 5
数据
通道
寄存
器
控
制
寄
存
器
第7章 TMS320C54x片内外设及其应用
0039 0049 0035
6 SRGR1x
0039 0049 0035
7 SRGR2x
0039 0049 0035
0039 0049 0035
8
9
0039 0049 0035
A RCERAx
0039 0049 0035
B RCERBx
0039 0049 0035
C XCERAx
0039 0049 0035
D XCERBx
0039 0049 0035
E
MCR1x
MCR2x
PCRx
McBSP采样率发生器寄存器
1
McBSP采样率发生器寄存器
2
McBSP多通道寄存器1
McBSP多通道寄存器2
McBSPA区接收通道使能寄
存器
McBSPB区接收通道使能寄
存器
McBSPA区发送通道使能寄
存器
McBSPB区发送通道使能寄
存器
McBSP引脚控制寄存器
第7章 TMS320C54x片内外设及其应用
7.5.2 McBSP的控制寄存器
1. 串口接收控制寄存器SPCRl
结构 :
2. 串口发送控制寄存器SPCR2
结构:
第7章 TMS320C54x片内外设及其应用
3.串口引脚控制寄存器PCR
4. 接收控制寄存器RCR1
结构 :
结构:
第7章 TMS320C54x片内外设及其应用
5. 接收控制寄存器RCR2
6. 发送控制寄存器XCR1:
结构:
结构:
第7章 TMS320C54x片内外设及其应用
7. 发送控制寄存器XCR2:
结构:
分析P.262,例7-11程序
第7章 TMS320C54x片内外设及其应用
7.5.3 McBSP的串行数据发送和接收
1. McBSP的复位
通过芯片复位引脚RS复位,当RS=0时,
McBSP的发送器、接收器和采样速率发
生器复位。复位完成后, RS=1, 此时GRST
= FRST = RRST = XRST = 0。
通过将SPCR1的RRST清0复位串口接收
器。通过将SPCR2的XRST和GRST清0,
分别复位串口发送器和采样速率发生器。
第7章 TMS320C54x片内外设及其应用
复位后McBSP各引脚的状态 :参P.51芯片引脚图
McBSP
引脚
引脚状态
芯片复
位RS
DR
输入
输入
McBSP复位
接收复位
发送复位
RRST=0
XRST=0
GRST=0
GRST=0
输入
--
如果为输入,状态
CLKR 输入/输出/高阻 输入 已知;如果为输出,
CLKR运行
--
如果为输入,状态
输入/输出/高阻 输入 已知;如果为输出,
FSRP未激活
--
FSR
第7章 TMS320C54x片内外设及其应用
McBSP引 McBSP引
脚
脚
CLKS
DX
输入/输出/
高阻
输出
芯片
复位
RS
接收
复位
McBSP复位
发送复位
XRST=0, GRST=0
输入
输入
--
高阻
高阻
高阻
CLKX
输入/输出/
高阻
FSX
输入/输出/
高阻
输入
--
CLKS
输入
输入
--
输入
--
如果为输入,状态已知;
如果为输出,CLKR运
行
如果为输入,状态已知;
如果为输出,FSRP未
激活
输入
第7章 TMS320C54x片内外设及其应用
2. McBSP复位后的启动步骤
在正常工作情况下,发送器和接收器复位后的启
动步骤如下: 见SPCR1和SPCR2寄存器
1)令RRST=XRST=FRST=0。如果刚复位完毕,则不
必进行该操作;
2)按照表7.21中串口复位要求,对McBSP的寄存
器进行编程配置;
3)等待2个时钟周期,以保证适当的内部同步;
第7章 TMS320C54x片内外设及其应用
4)按照写DXR的要求,给出数据;
5)设定XRST=l,RRST=1,使串口使能;
6)如果要求内部帧同步信号,则设定FRST=1;
7)等待2个时钟周期后,接收器和发送器被激活。
分析程序exp06
第7章 TMS320C54x片内外设及其应用
3. 帧同步信号和时钟信号的配置
一些基本概念和重要术语 :
串行字
时钟
帧
帧同步
第7章 TMS320C54x片内外设及其应用
在McBSP的数据传输中,用户可编程指定帧同步信
号的参数:
FSR、FSX、CLKR和CLKX的极性
选择单相帧或双相帧
各相的帧长和字长
第7章 TMS320C54x片内外设及其应用
从帧同步脉冲到第一个数据位的延迟数
是0、1或2位
选择接收数据是右对齐还是左对齐、符
号扩展或零扩展等
这些参数位于寄存器SPCR1、PCR、
RCR[1,2]和XCR[1,2]中,且发送和接
收参数的配置可独立进行。
第7章 TMS320C54x片内外设及其应用
4. McBSP的数据发送/接收状态检测
在数据发送和接收过程中,McBSP的三种监测串
行口状态的手段:
通过查询RRDY(SPCR1.1)和XRDY(SPCR2.1)
来确定接收器和发送器的当前状态,以实现读/写
控制。
通过DMA事件(在正常模式下的REVT和XEVT,
在A-bis模式下的REVTA和XEVTA)来实现读/写
控制。
通过CPU中断RINT和XINT来实现读/写控制。
分析程序exp06
第7章 TMS320C54x片内外设及其应用
5.u律或A律格式的压缩扩展数据
u律和A律压扩数据是美国电话格式 CCITTG.711
标准的一部分。
McBSP的压缩扩展过程 :
第7章 TMS320C54x片内外设及其应用
当发送器选择了压缩功能时,在DXR1的数据向
XSR1复制的过程中就可进行压缩,此时,对16
位发送数据按照指定格式(u律或A律)进行8位
编码。
u律格式和A律格式发送数据压缩形式:
第7章 TMS320C54x片内外设及其应用
当接收器选择了扩展功能时,来自RBR1
的8位u律或A律压缩数据经扩展后,成为
DRR1内的16位左对齐数据,而RJUST内
的码速调整和扩展标志被忽略。
扩展后的接收数据被编码为16位二进制补
码形式,然后送往CPU或DMA。
McBSP对内部数据的压缩扩展有下列两种方法:
当串行口的发送和接收部件复位时,将DRR1和
DXR1通过压缩扩展逻辑连接在一起。由
XCOMPAND决定来自DXR1的数据被压缩;由
RCOMPAND决定随后的扩展。
McBSP使能,在被XCOMPAND和RCOMPAND
激活的数字环模式中进行压缩扩展,并可以提供
CPU中断或DMA同步事件。压缩扩展的时间取决
于串行口的速率选择。
第7章 TMS320C54x片内外设及其应用
7.5.4 多通道选择及操作
多通道操作:
当采用时分复用(TDM)数据流时,只需
要对其中的部分数据进行处理,因此,为
了节省存储空间和总线宽度,可将McBSP
配置为只对特定通道的数据进行收/发,这
种功能称为多通道操作 。
第7章 TMS320C54x片内外设及其应用
McBSP有多达128路的发送和接收通道。
它们被划分为8个块,0~7块,每个块由16
个连续通道组成;
它们也可划分为A区(偶数块0、2、4、6
组)或B区(奇数块1、3、5、7组成)。
第7章 TMS320C54x片内外设及其应用
在多通道操作中,McBSP必须配置为单相
帧模式,由(R/X)CR1寄存器中的字段
(R/X)FRLEN1指定每帧字数来表明所
选的有效通道数。
在给定时间内,最多允许128个通道中的
32个通道被使能,这32个通道分别由A区
的l6个通道和B区的16个通道组成。
第7章 TMS320C54x片内外设及其应用
控制寄存器MCR1、MCR2对McBSP的多
通道进行块划分、选择及使能;
分区A/B的接收通道使能寄存器RCER(A/B)
和发送通道使能寄存器XCER(A/B),分别
用于使能32个通道的接收和发送;
第7章 TMS320C54x片内外设及其应用
1.多通道接收控制寄存器MCR1
结构:
2. 多通道发送控制寄存器MCR2
结构:
第7章 TMS320C54x片内外设及其应用
3.A区接收通道使能寄存器RCERA
结构:
4.B区接收通道使能寄存器RCERB
结构:
第7章 TMS320C54x片内外设及其应用
5.A区发送通道使能寄存器XCERA
结构:
6.B区发送通道使能寄存器XCERB
结构:
第7章 TMS320C54x片内外设及其应用
7.5.5 可编程时钟和帧同步信号的产生
McBSP提供多种方法为发送器和接收器选择移位
时钟和帧同步信号。
下图是该选择电路的结构图,它包含三部分:
采样速率发生器
数据时钟产生
帧同步信号
第7章 TMS320C54x片内外设及其应用
第7章 TMS320C54x片内外设及其应用
• 采样速率发生器用来产生McBSP的内部数据时钟
CLKG和帧同步FSG,其结构如图:
第7章 TMS320C54x片内外设及其应用
通过控制寄存器SRGR[1,2]可以对采样速率发生器
的工作及3个参数进行配置。
SRGR1寄存器:
SRGR2寄存器:
第7章 TMS320C54x片内外设及其应用
•数据时钟产生电路包括发送和接收两部分。其中,
发送时钟受PCR中的CLKXM字段控制,接收时
钟受SPCR1中的DLB位及PCR中CLKRM字段控
制。
•帧同步信号产生电路也由发送和接收两部分组成。
其中,发送帧同步受PCR中的FSXM位及SRGR2
中的FSGM位控制,接收帧同步受DLB位、PCR中
的FSRM位及SRGR2中的GSYNC位控制。
第7章 TMS320C54x片内外设及其应用
7.5.6 用McBSP实现SPI操作
SPI(Serial Peripheral interface)串行外设接口协
议是指由一个主设备和一个或几个从设备组成的
主—从方式配置。其接口有以下4种信号:
串行数据输入(简称MISO),指主输入Master In从输
出Slave Out
串行数据输出(简称MOSI),指主输出—从输入
移位时钟(SCK): Shift-clock
从设备使能信号(SS): Slave-enable Signal
第7章 TMS320C54x片内外设及其应用
只有一个从设备的典型SPI接口如下图所示:
主设备提供移位时钟SCK,并向从设备发出使能信号
SS来控制通信的进行。
第7章 TMS320C54x片内外设及其应用
1. 时钟停止模式
在时钟停止模式下,McBSP的发送器和接收器在内
部保持同步,使得McBSP可作为SPI的主设备或从
设备。
此时,发送时钟信号(CLKX)对应于SPI协议的串行
时钟信号(SCK),而发送帧同步信号(FSX)用作从设
备的使能信号(SS)。接收时钟信号(CLKR)和接收帧
同步信号(FSR)不用于时钟停止模式,因为它们在内
部已经被连接到发送的对应信号CLKX和FSX上。
第7章 TMS320C54x片内外设及其应用
2. 用于使能和配置时钟停止模式的数据位
将McBSP配置为SPI设备时所需的寄存器位数值:
寄存器
位字段
数值
说明
使能时钟停止模式(有或无
时钟延时)
SPCR1
CLKSTP
1Xb
PCR
CLKXP
0或1
配置BCLKX的信号极性
PCR
CLKXM
0或1
将BCLKX配置为输入(从
设备)或输出(主设备)
RCR1
配置接收长度必须等于
RWDLEN1 000~101b
XWDLEN1
XCR1
XWDLEN1 000~101b
配置发送长度必须等于
RWDLEN1
第7章 TMS320C54x片内外设及其应用
CLKSTP位与CLKXP极性的各种组合产生了4种时
钟停止模式如下:
CLKSTP=10b且CLKXP=0,时钟开始于上升沿,
无延时
CLKSTP=10b且CLKXP=1,时钟开始于下降沿,
无延时
CLKSTP=11b且CLKXP=0,时钟开始于上升沿,
有延时
CLKSTP=11b且CLKXP=1,时钟开始于下降沿,
有延时
第7章 TMS320C54x片内外设及其应用
3. McBSP作为SPI主设备
McBSP作为SPI主设备时与SPI的接口如图:
第7章 TMS320C54x片内外设及其应用
将McBSP配置为SPI主设备时所需的寄存器位数值 :
所需的位设置
CLKSTP = 10b /11b
说明
选择时钟停止模式(有或无时钟延时)
CLKX的极性如同引脚CLKX的正
(PCR)CLKXP = 0 / 1
(CLKXP = 0)和负(CLKXP = 1)
(PCR)CLKRP = 0 / 1
CLKR的极性如同引脚CLKR的正
(CLKRP = 0)和负(CLKRP = 1)
(PCR)CLKXM = 1 CLKX引脚为输出引脚
第7章 TMS320C54x片内外设及其应用
所需的位设置
说明
(PCR)FSXM = 1 FSX引脚为输出引脚
(SRGR2)
FSGM=0
每次数据由DXR1传输到XSR1,发送器
就驱动FSX上的帧同步脉冲
(PCR) FSXP = 1 引脚FSX低有效
(SRGR2)
CLKSM = 1
采样速率发生器产生的时钟(CLKG)来源
于CPU时钟
XDATDLY = 01b
为FSX上的信号提供正确的建立时间
RDATDLY = 01b
第7章 TMS320C54x片内外设及其应用
4. McBSP作为SPI从设备
将McBSP作为SPI从设备时与SPI的接口如图 :
第7章 TMS320C54x片内外设及其应用
将McBSP配置为SPI从设备时所需的寄存器位数值 :
所需的位设置
说明
CLKSTP = 10b
/11b
选择时钟停止模式(有或无时钟延时)
CLKXP = 0 / 1
CLKX的极性如同引脚CLKX的正
(CLKXP = 0)和负(CLKXP = 1)
CLKRP = 0 / 1
CLKR的极性如同引脚CLKR的正
(CLKRP = 0)和负(CLKRP = 1)
CLKXM = 0
CLKX引脚为由SPI主设备驱动的输入引
脚
第7章 TMS320C54x片内外设及其应用
FSXM = 0
FSX引脚为输入引脚,能够被SPI主设备
驱动(使能信号)
FSGM = 0
每次数据由DXR1传输到XSR1,发送器
就驱动FSX上的帧同步脉冲
FSXP = 1
引脚FSX低有效
CLKSM = 1
CLKGDV=1
XDATDLY = 0b
RDATDLY = 0b
产生的主时钟与McBSP逻辑单元保持同
步(来源于CPU时钟)
产生CLKG前,采样率产生器对CPU时
钟二分频
为FSX上的信号提供正确的建立时间
作业
习题7.4,7.6
, 7.9, 7.10, 7.12, 7.13