第 7 章 TMS320C54x 片内外设及其应用

125
第 7 第 TMS320C54x 第第第第第第第第 C54x 第第第第第第第第第第第 第第 : 第第 I/O 第第 第第第第 第第第 、、 第第第第 第第第第第第第 第第第第第第第第 第第第 、、、、 第第第第第第第第第第第第 TMS320C54x DSP CPU and Peripherals Reference Set Volume 1_spru131g.pdf Volume 5 Enhanced Peripherals Set spru302.pdf

description

第 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 所示 :. - PowerPoint PPT Presentation

Transcript of 第 7 章 TMS320C54x 片内外设及其应用

Page 1: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用 C54x 片内集成了大量外部设备,包括 :通用 I/O 引脚、定时器、主机接 口、串行口、时钟产生逻辑、等待状态产生器、直接存储器访问和外部总线接口等。TMS320C54x DSP CPU and Peripherals

Reference Set Volume 1_spru131g.pdfVolume 5 Enhanced Peripherals Set

spru302.pdf

Page 2: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

其功能结构如图 7-1 所示 :

Page 3: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用 本章主要介绍 GPIO 引脚、定时器、 HPI-

8 、 McBSP 和 DMA 的工作原理。目录: 7.1 通用I/O引脚(GPIO)

7.2 定时器

7.3 主机接口HPI

7.4 直接存储器访问DMA

7.5 多通道缓冲串行口(McBSP)

Page 4: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

在 C54x 芯片中主要提供了两条通用 I/O(General

Purpose I/O ,简称 GPI/O) 引脚:

外部标志输出 XF

跳转控制输入 BIO

7.1 通用 I/O 引脚 (GPIO)

本节将以 TMS320VC5402A 为例介绍这种引脚。

Page 5: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

1. XF 引脚

XF 是一个输出引脚,输出电平可通过对ST1 的 D13 位 (XF) 进行控制。此外, XF

引脚有一定的驱动能力。

7.1.1 XF 和 BIO 引脚

Page 6: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用 例 7-1 采用 XF 引脚组成的告警电路。 告警时,用指令: SSBX XF ,点亮 LED ; 不告警时,用指令: RSBX XF ,熄灭LED 。 采用 XF 引脚组成的告警电路:

Page 7: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

2.BIO 引脚 它是一个输入引脚。 可以作为查询引脚; 也可作为外部中断申请引脚 .

Page 8: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

例 7-2 观察下列指令的执行情况。

BC 1500h, TC, NC, BIO ;当 TC=1 、 C=0 且

; BIO 为低时,程序转移, PC=1500h 。

Page 9: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

以 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.1.2 其它 GPIO 引脚

Page 10: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

当 HPI 被用作 HPI16 模式 (HPI16 =

1) ,或是禁用 HPI(HPIENA = 0) 时, HPI

的数据线可以作为 GPIO 来使用。

通过两个通用 I/O 控制寄存器 (GPIOCR)

和通用 I/O 状态寄存器 (GPIOSR) 来完成操作设置。

2. 主机接口 (HPI) 的数据引脚作为 GPIO

Page 11: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

GPIOCR 用来将 HD0~HD7 配置为输入或者是输出引脚。 DIRx=0 配置输入。

它的结构如图 :

Page 12: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

GPIOSR 用来反映 GPI/O 引脚的输入状态(当HD0~HD7 被配置为输入引脚时),或是用来给出引脚的输出电平(当 HD0~HD7 被配置为输出引脚时)。 结构如图所示 :

Page 13: 第 7 章  TMS320C54x 片内外设及其应用

例 7-3 将 HPI 的 HD0–3 设为输入引脚 , HD4–7 为输出引脚 , HD0–3 的状态存储到 AR3; 设置 HD4–7 为 0101b.

GPIOCR .set 3Ch ;MMR GPIOCR address is 3ChGPIOSR .set 3Dh ;MMR GPIOSR address is 3Dh.textSTM #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.. . .

Page 14: 第 7 章  TMS320C54x 片内外设及其应用

定时器用于定时控制、延时、外部事件的计数等。 C54x 片内集成了 1~4 个可编程的定时器,下图示出了一个片内定时器的结构:

7.2 定时器 7.2.1 定时器的工作原理

定时器控制寄存器TCR

Page 15: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

定时器的组成:

定时寄存器 TIM

周期寄存器 PRD

预分频计数器 PSC

预分频系数 TDDR 及控制逻辑电路等

Page 16: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

它分为两个模块:

主定时模块:包括 TIM 和 PRD ,地址分别是 0024h 和 0025h 。

预分频模块:由 PSC 和 TDDR 组成,它们分别位于定时器控制寄存器 TCR 的D9~D6 、 D3~D0 位。

Page 17: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

TCR 地址为 0026h 。它包含了定时器的控制与状态信息以及预分频计数器 PSC 、预分频系数 TDDR 等。

其结构如下图所示 :

1. 定时器控制寄存器TCR

保留 Soft Free PSC TRB TSS TDDR

15-12 11 10 9-6 5 4 3-0

Page 18: 第 7 章  TMS320C54x 片内外设及其应用

TCR 各位的作用如下表 :

位 名称 复位值

功能

15~12 保留 - 保留:读为 0

11 Soft 0 在用高级语言调试器时用来确定在断点处定时器的状态

10 Free 0

当 Free=0 , Soft=0 时,定时器停止工作当 Free=0 , Soft=1 时,定时器减到0 时停止工作当 Free=1 , Soft=X 时,定时器自由运行,与 Soft 无关

保留 Soft Free PSC TRB TSS TDDR

Page 19: 第 7 章  TMS320C54x 片内外设及其应用

位 名称 复位值 功能

9~6 PSC -

定时器的预分频计数器。 PSC 的计数源为CPU clock , PSC 减 1 计数。当 PSC 减到 0 或定时器复位时, PSC 加载 TDDR 的值且 TIM 减 1

5 TRB -定时器的重载位,用来复位定时器。当TRB=1 时,将 PRD 的值装入 TIM ;将TDDR 的值装入 PSC 。读 PRB 时总是 0

4 TSS -定时器停止状态位,用来启动或停止定时器。TSS=0 ,启动定时器; TSS=1 ,停止定时器。复位时 TSS 为 0 ,启动定时器工作

3~0 TDDR 0000定时器分频值。在 PSC 减到 0 时,将TDDR 值装入 PSC

保留 Soft Free PSC TRB TSS TDDR

Page 20: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

2. 定时器的工作原理

SRESET 是 DSP 的复位信号,

TRB 为定时器的复位信号,两者中有一个为1 ,就可使或门3输出使能信号,并通过或门1

和或门2产生使能信号,将 PRD 的值装入

TIM ;将 TDDR 的值装入 PSC 。这就是计数器的初值装入。

计数器的初值装入:

Page 21: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

在 DSP 复位时 (TSS 为 0) 或将 TSS 清 0 时,与门5被使能, CPU clock 将作为计数源送入PSC 的计数端。

PSC 在计数初值的基础上每来一个计数脉冲就减1 计数,当减至 0 时,在下一个脉冲到来时会产生一个借位,该借位脉冲将作为 TIM 的计数脉冲,使 TIM 减 1 ,同时通过或门2使能,将TDDR 值重新装入 PSC , PSC 在此初值下继续减 1 计数。

Page 22: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

当将 TSS 位置 1 时,与门5关闭,不允许CPU clock 输入,并且停止定时器的工作。TIM 的计数源是 PSC 的溢出借位信号。TIM 在计数初值的基础上每来一个计数脉冲就减 1 计数,当减至 0 时会产生一个借位,并引发下列行为:

1 )向主机发出中断申请信号 TINT ;

Page 23: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

1 )向主机发出中断申请信号 TINT ; 2 )通过驱动门4和引脚 TOUT 输出信号;

3 )通过或门1使能,将 PRD 的值重新装入TIM , 作为 TIM 的计数初值。从而完成定时工作的一个基本过程。

TIM 减至 0 时产生一个借位,并引发下列行为:

• 定时器定时时间的计算公式如下:• 定时周期 =CLKOUT×(TDDR+1)×(PRD+1) • 其中: CLKOUT 是 CPU 的时钟周期。

Page 24: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

7.2.2 定时器的编程

在应用编程中应该掌握的三个关键点:

怎样计算计数初值

怎样对定时器进行初始化

怎样配置定时器的中断

Page 25: 第 7 章  TMS320C54x 片内外设及其应用

第 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 ;

Page 26: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用2.怎样对定时器进行初始化

通过下列步骤对定时器进行初始化:

1 )将 TCR 的 TSS 置 1 ,关闭定时器

2 )装载 PRD

3 )初始化 TDDR :将 TRB 置 1去重新装载定时器的

初值,将 TSS 清 0 以使能定时器。保留 Soft Free PSC TRB TSS TDDR

Page 27: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

保留 Soft Free PSC TRB TSS TDDR

STM #0010H , TCR ; TSS=1 ,关闭定时器

STM #1F3FH , PRD ;加载周期寄存器

STM #0E69H , TCR ; TDDR=9 , TRB=1 ,装载 ; TIM 及 PSC , TSS=0 ,启 ;动定时器15-12 11 10 9-6 5 4 3-0

0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1

例:

Page 28: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

3.怎样配置定时器的中断

假定 INTM=1 ,定时器中断的设置方法如下:1 )给 IFR 的 TINT 位写入 1 ,以清除没有处理完的

定时器中断;

2 )给 IMR 的 TINT 位写入 1 ,以使能定时器的中断;

3 ) INTM 位清 0 ,使能全部可屏蔽中断。

Page 29: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

例:STM #0008H , IFR ;清除没处理完的定时器 1 中断

STM #0008H , IMR ;开放定时器 1 中断

RSBX INTM ;开总中断

IFR 、 IMR

Page 30: 第 7 章  TMS320C54x 片内外设及其应用

第 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

Page 31: 第 7 章  TMS320C54x 片内外设及其应用

7.2.2 定时器的编程( 1 )主程序清单 .file "timer.asm" .mmregs ;54X 存储器影像寄存器定义 .global main ;声明 main 为全局符号 .def timer_iserv TIM0 .set 0x0024 ; 定时器 0 定时寄存器PRD0 .set 0x0025 ; 定时器 0 周期寄存器 0TCR0 .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

Page 32: 第 7 章  TMS320C54x 片内外设及其应用

7.2.2 定时器的编程( 1 )主程序清单;SWWSR .set 0x0028 ; software wait-state registerSWWSR_VAL .set 0x36DB ; (0011011011011011b)三

个空间都插入了 3 个等待周期SWCR .set 0x002B ; 软件等待状态控制寄存器SWCR_VAL .set 0x0001 ; 三个空间都插入的 3 个等待周

期都乘以 2TINT0_ENBL .set 0x0008 ;开放 TIMER0 中断;CLKMD .set 0x0058 ;锁相环 PLL软件控制时钟

方式寄存器PLLX5 .set 0x43EF ;锁相环 PLL软件控制时钟

方式寄存器 CLKMD 的; 设置字; 0100 0011 1110 1111 ,外部时钟 16MHz, 5倍频

到 80MHz, PLLCOUNT=125

Page 33: 第 7 章  TMS320C54x 片内外设及其应用

7.2.2 定时器的编程OVLY_1 .set 0x00A0 ;PMST 中 : 0000 0000 1010 0000 IPTR OVLYstack_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 等

Page 34: 第 7 章  TMS320C54x 片内外设及其应用

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 ,则已切换到倍频方

Page 35: 第 7 章  TMS320C54x 片内外设及其应用

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

Page 36: 第 7 章  TMS320C54x 片内外设及其应用

7.2.2 定时器的编程* ; 中断服务程序timer_iserv: BANZ EXIT_ISERV, *AR2- STM #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 清 0EXIT_ISERV: RETE .end

Page 37: 第 7 章  TMS320C54x 片内外设及其应用

7.2.2 定时器的编程( 2 )中断向量程序清单 VECTORS.ASM .mmregs ;54X 存储器影像寄存器定义 .ref main ;声明 main 为其他函数定义符号 .ref timer_iserv .sect ".vectors"IV_RESET: BD main ; 复位中断,跳转到主程序入口 nop nopIV_NMI: rete ;NMI 中断,开中断返回 nop nop nop SINT17: rete ;SINT17 中断,开中断返回 nop nop nop

Page 38: 第 7 章  TMS320C54x 片内外设及其应用

7.2.2 定时器的编程

SINT26: rete nop nop nopSINT27: rete nop nop nopSINT28: rete nop nop nopSINT29: rete nop nop nop

( 2 )中断向量程序清单SINT18: rete nop nop nopSINT19: rete nop nop nop SINT20: rete nop nop nopSINT21: rete nop nop nop

SINT22: rete nop nop nopSINT23: rete nop nop nopSINT24: rete nop nop nopSINT25: rete nop nop nop

Page 39: 第 7 章  TMS320C54x 片内外设及其应用

7.2.2 定时器的编程SINT30: rete nop nop nopINT0: rete nop nop nopINT1: rete nop nop

nop

INT2: rete nop nop nop

TINT0: b timer_iserv nop nopBRINT0: rete nop nop nop BXINT0: rete nop nop nopDMAC0: rete nop nop nop

Page 40: 第 7 章  TMS320C54x 片内外设及其应用

7.2.2 定时器的编程TINT1: rete nop nop nop INT3: rete nop nop

nopHPINT: rete nop nop nop BRINT1: rete nop nop nop

BXINT1: rete nop nop nopDMAC4: rete nop nop nopDMAC5: rete nop nop nopRESERVED .space 8*16 .end

Page 41: 第 7 章  TMS320C54x 片内外设及其应用

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

}

Page 42: 第 7 章  TMS320C54x 片内外设及其应用

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

}

Page 43: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

7.3 主机接口 HPI

C54x 的主机接口 HPI ( Host Port Interface )是一个并行接口,用来实现 DSP 与外部主机芯片或其它微处理器的并行通信。

根据数据线的宽度不同, HPI又分为 8 位的或者16 位的;根据功能的不同,又分为标准型 HPI 或是增强型 HPI 。

标准型 HPI :主机访问片内 2kRAM ,异步; 增强型 HPI :主机和 DSP都能访问片内 RAM ,

同步

Page 44: 第 7 章  TMS320C54x 片内外设及其应用

7.3.1 HPI-8 的结构 8 位的主机接口 HPI-8 主要由三个寄存器

HPIC 、 HPID 和 HPIA 以及 HPI 控制逻辑组成。其结构如下图所示 :

Page 45: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

1. 有关引脚( 20PIN )及信号

• HD0~HD7 :输入 / 输出 / 高阻,双向并行数据总线

• HCNTL0 、 HCNTL1 :输入,主机通过这两个引 脚来选择要访问的 HPI 寄存 器• HBIL :输入,字节 ( 第一、二字节 )识别信号。• HCS :输入,片选信号输入端。• HDS1 、 HDS2 :输入,数据选通信号。

Page 46: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

• HAS :输入,地址选通信号。• HR/W :输入, HPI 的读 /写信号。• HINT :输出 / 高阻,中断输出信号。• HRDY :输出 / 高阻, HPI准备好信号。• HPIENA :输入, HPI 模式选择信号。• HPI16 :输入, HPI16 模式选择信号。

Page 47: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

2. HPI 的寄存器 HPI 有三个寄存器 :

地址寄存器 HPIA

数据寄存器 HPID

16 位控制寄存器 HPIC

Page 48: 第 7 章  TMS320C54x 片内外设及其应用

• 注意:

第 7 章 TMS320C54x 片内外设及其应用

1) 对主机来说, HPIC 的高 8 位和低 8 位内容相同。而对 DSP 来说,只使用 HPIC 的低 8 位,不使用高 8 位。

2)DSP 可以写HINT 位,而主机读 HPIC 要分两次字节读完成。

3) 主机对 HPIC 的读 /写和 DSP 对 HPIC 的读 /写会有不同的位定义。这反映在下图中:

Page 49: 第 7 章  TMS320C54x 片内外设及其应用

主机或 C54x 读 /写 HPIC 的字段情况 :第 7 章 TMS320C54x 片内外设及其应用

Page 50: 第 7 章  TMS320C54x 片内外设及其应用

第 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 时,主机写入页地址。只有主机可以访问该位

HPIENA XHPI 使能状态位。反映在复位时引脚 HPIENA 的状态。

只有 C54x 可读该位

Page 51: 第 7 章  TMS320C54x 片内外设及其应用

7.3.2 HPI-8 与主机的接口

HPI-8 有多种选通方式,可以方便的与许多种微处理器(即主机)实现无缝连接。 HPI-8 与主机的典型接口如图所示:

Page 52: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

在 HPI-8 的内部有一套选通和选择逻辑,用来产生片内选通信号,以便对 HBIL 、 HCNTL0/1 和 HR/W 引脚的信号进行采样的,其结构如图所示 :

异或非

不能同时为高或低

Page 53: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

7.3.3 主机与 HPI-8 的数据传输

主机与 HPI-8 的数据传输过程包括下列两部分 :

• 片外传输:主机与 HPI-8 寄存器之间的数据

传输 • 片内传输 : HPI-8 与片内 RAM之间的数

据 传输

Page 54: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

HPI-8 的时序示意图 :

Page 55: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

7.4 直接存储器访问 DMA

DMA 可以独立完成与片内存储器、片内外设及外部设备的数据传输,而不需要 CPU 的干预。

7.4.1 DMA 的寄存器

DMA 的控制寄存器分为两种类型:可直接访问的存储器映像寄存器( 4 个)通过同址寻址的控制寄存器( 40 个)

Page 56: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

DMA 寄存器的地址信息及其功能 :

地址 子地址 名称 功能

0054h DMPREC 通道优先级使能控制寄存器

0055h DMSA 子区地址寄存器

0056h DMSDI子区访问寄存器(地址自动增加)

0057h DMSDN子区访问寄存器(地址不自

动增加)

00h DMSRC0 通道 0 源地址寄存器

01h DMDST0 通道 0 目的地址寄存器

Page 57: 第 7 章  TMS320C54x 片内外设及其应用

第 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 目的地址寄存器

Page 58: 第 7 章  TMS320C54x 片内外设及其应用

第 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 源地址寄存器

Page 59: 第 7 章  TMS320C54x 片内外设及其应用

第 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 源程序空间页地址

Page 60: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

1Fh DMDSTP 目的程序空间页地址

20h DMIDX0 元素地址索引寄存器 0

21h DMIDX1 元素地址索引寄存器 1

22h DMFRI0 帧地址索引寄存器 0

23h DMFRI1 帧地址索引寄存器 1

24h DMGSA 全局源地址重载寄存器

25h DMGDA 全局目的地址重载寄存器

26h DMGCR 全局元素数目重载寄存器

27h DMGFR 全局帧数目重载寄存器

Page 61: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用1. 寄存器的同址寻址除了 DMPREC 、 DMSA 、 DMSDI 、 DMSDN 以外, 其它 40 个寄存器均采用同址寻址的方式进行访问 。 同址寄存器的组织结构 :

子区访问寄存器

初始化数据

子区地址寄存器

复用器自增

不自增

Page 62: 第 7 章  TMS320C54x 片内外设及其应用

例 7-6 用子地址自动增加功能的同址寻址方式去访问寄存器,对 DMA 通道 5 的有关寄存器进行初始化。DMSA .set 55h ;set register locations

DMSDI .set 56hDMSRC5 .set 19h ; 子区地址DMDST5 .set 1AhDMCTR5 .set 1BhDMSFC5 .set 1ChDMMCR5 .set 1DhSTM DMSRC5, DMSA ; 初始化子区地址指向

DMSRC5STM #1000h, DMSDI ;write 1000h to DMSRC5STM #2000h, DMSDI ;write 2000h to DMDST5STM #0010h, DMSDI ;write 10h to DMCTR5STM #0002h, DMSDI ;write 2h to DMSFC5STM #0000h, DMSDI ;write 0h to DMMCR5

Page 63: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

2. 通道优先级和使能控制寄存器 DMPRECDMPREC 是一个存储器映像寄存器,地址为

0054h 。DMPREC : DMA Channel Priority and Enable

Control Register 控制着 DMA 系统总体操作的一些功能:

(1) 通道选择(2) 复用中断控制(3) 通道优先级控制

DMPREC 的结构如下图所示 :

Page 64: 第 7 章  TMS320C54x 片内外设及其应用

2. 通道优先与使能控制寄存器

FREE :为 0(1) 时仿真器停止则 DMA传输停止( 继续 )DPRC[5:0] : DMA 通道优先级, 1 高优先级DE[5:0] : DMA 通道使能位 ,1 使能 DMA 通道INTOSEL :中断复用控制位如下表(适用C5402 ):

Page 65: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

3. 通道寄存器每个 DMA 通道都有 5 个 16 位的通道寄存器,用来对 本通道的操作进行设置。它们的用途分别如下:

源地址寄存器 DMSRCx 和目的地址寄存器DMDSTx 指出数据读取或写入的地址,它们中存放的是数据传输时源或目的地址的低 16 位。对其修改立即生效。

元素数目寄存器 DMCTRx 中保存着传输数据的数目。

Page 66: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

同步事件选择和帧数目寄存器 DMSFCx 用于确定数据传输时的同步事件、数据字长和传输帧数。

结构:( C5402 的同步事件如表 7-7 )

例如: DMA 和 McBSP1 接收事件和发送事件同步分别为: DSYN[3:0]=0101 和 DSYN[3:0]=0110

帧数目最大 255 ,即传输时每块数据最大 256 帧。在传输时,帧计数递减,当递减到 0 时,由 DMA 全局帧计数寄存器 DMGFR 装载。

Page 67: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用传输模式控制寄存器 DMMCRx 控制着通道的传输

模式。结构:

AUTOINIT=1,DMA 工作在自动初始化模式, CPU在完成一个块传输后自动初始化开始另一个块传输。

DINM 中断屏蔽位为 1 时根据 IMOD 位产生中断, IMOD 位设置 DMA 中断产生方式(缓冲全满(0) 和半满都 (1) 产生中断;快结束 (0) 和帧结束都 (1) 产生中断)。

CTMOD 位设置传输计数方式, 0 为多帧模式, 1为自动缓冲 ABU 模式。 SIND 位和 DIND 位用来设置源地址和目的地址的自动调整方式。

Page 68: 第 7 章  TMS320C54x 片内外设及其应用

DMMCR 功能图—地址更新

DMA 传输后的源地址和目的地址还可以更新:SIND(bit8-10) 和 DIND(bit2-4) 决定源地址和目的地址更新模式:(1) 传输后地址不更新 ;

(2) 传输后地址加 1;

(3) 传输后地址减 1;

此外还有地址由偏移量更新。

Page 69: 第 7 章  TMS320C54x 片内外设及其应用

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)

Page 70: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

4. 全局寄存器DMA具有 10 个全局寄存器。

这些全局寄存器并不是专供某一通道使用的,而是对所有通道都起作用,它们在 DMA传输中发挥着不同的作用。

Page 71: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

7.4.2 DMA 的工作方式 C54x 的 DMA按照不同寻址方式可分为两种工作方式:

多帧工作方式 (multiframe mode)

ABU(autobuffering mode) 工作方式

每个通道可通过自己的传输模式控制位 CTMOD ( 寄存器 DMMCRx.12) 进行配置。

Page 72: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

在 DMA 的传输过程中,通道传输模式寄存器 DMMCRx 的两个字段 (DINM 和 IMOD)控制着中断的产生和中断的触发模式。

除需要设置 CPU 的 IMR 及 INTM 外,还需要根据具体的工作方式来确定中断的触发事件,如表所示 :

7.4.3 DMA 的中断

Page 73: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

工作方式 CTMOD DINM IMOD中断产生事件

ABU 1 1 0 缓冲全满

ABU 1 1 1缓冲全满和半满

多帧 0 1 0块传输完成

多帧 0 1 1帧和块结束

其它 X 0 X无中断产生

Page 74: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

在多帧方式下,当每帧数据传输完成或是全部块传输结束时将产生 DMA 中断;

在 ABU方式下,需要通过对地址变化的检测来产生中断。当全部缓冲区或是缓冲区的一半已经传输完毕时,就会产生中断。

Page 75: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

DMA 的 6 个通道中断名称和中断地址偏移量如下 :

中断序号

中断名称地址偏移

量中断优先级 INTOSEL1 ,

INTOSEL0 控制22 DMAC0/ 保留 58H 9 XX23 TINT1/DMAC1 5CH 10 10

26 BRINT1/DMAC2 68H 13 01 10

27 BXINT1/DMAC3 6CH 14 01 10

28 DMAC4 70H 15 XX29 DMAC5 74H 16 XX

Page 76: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

7.5 多通道缓冲串行口 (McBSP)

多通道缓冲串行口( multichannel buffered

serial ports ,简称 McBSP )为 C54xDSP 与片外串行设备之间提供了多通道、多缓冲、全双工的串行接口。

 它支持多种数据格式,并具有 A律、 μ律数据压扩处理等功能。

Page 77: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

7.5.1 McBSP 的功能及结构

• 全双工通信

• 双缓冲的发送和三缓冲的接收,采用连续的数据流进行收发

• 接收和发送具有独立的时钟信号和帧同步信号

• 多达 128 个发送和接收通道

C54x 的 McBSP具有下列功能 :

Page 78: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

• 可直接与各种工业标准的编解码器、模拟接口芯片(AICs) 以及其它串行 A/D 和 D/A 芯片接口和通信。

• 外部移位时钟发生器或内部频率可编程移位时钟

• 可选择多种数据位的大小,包括8 、 12 、 16 、 20 、 24 和 32 位

Page 79: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

•具有 A律、 μ律数据压扩处理功能

• 进行 8 位数据传输时,可选择低位在前或高位在前

•帧同步信号和时钟信号的极性及速率可编程

• 内部时钟和帧的产生可编程

Page 80: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

McBSP 由数据流通道和控制通道两部分组成。数据流通道包括发送通道和接收通道,用来

完成串行数据的发送和接收;

控制通道分为时钟和帧同步信号产生、多通道选择及中断和 DMA 同步事件的产生等三部分,用于对 McBSP 进行配置及操作控制。

Page 81: 第 7 章  TMS320C54x 片内外设及其应用

McBSP 的结构框图 :

输入输出串行数据

接收移位寄存器,并完成串并转换 CPU 或 DMA 从

DRR 中读走数据

CPU 或 DMA 将要发送的数据传给DXR

发送移位寄存器,并完成并串转换

接收完数据的中断

发送完数据的中断

接收缓冲寄存器

数据接收寄存器

Page 82: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

McBSP 的配置和操作均通过有关寄存器来完成,这些寄存器如表 :

地址( 16 位) 子地址(16 位 )

名称缩写 寄存器名称McBSP0

McBSP1

McBSP2

- - - RBR[1,2]McBSP 接收缓冲寄存器1 和 2

- - - RSR[1,2]McBSP 接收移位寄存器1 和 2

- - - XSR[1,2] McBSP 发送移位寄存器1 和 2

0020 0040 0030 - DRR2x McBSP 数据接收寄存器2

0021 0041 0031 - DRR1x McBSP 数据接收寄存器1

0022 0042 0032 - DXR2x McBSP 数据发送寄存器2

0023 0043 0033 - DXR1x McBSP 数据发送寄存器1

Page 83: 第 7 章  TMS320C54x 片内外设及其应用

第 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

0039 0049 0035 2 RCR1x McBSP 接收控制寄存器1

0039 0049 0035 3 RCR2x McBSP 接收控制寄存器2

0039 0049 0035 4 XCR1x McBSP 发送控制寄存器1

0039 0049 0035 5 XCR2x McBSP 发送控制寄存器2

数据通道寄存器

控制寄存器

Page 84: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

0039 0049 0035 6 SRGR1xMcBSP 采样率发生器寄存

器 1

0039 0049 0035 7 SRGR2xMcBSP 采样率发生器寄存

器 20039 0049 0035 8 MCR1x McBSP 多通道寄存器 10039 0049 0035 9 MCR2x McBSP 多通道寄存器 2

0039 0049 0035 A RCERAxMcBSPA区接收通道使能寄

存器

0039 0049 0035 B RCERBxMcBSPB区接收通道使能寄

存器

0039 0049 0035 C XCERAxMcBSPA区发送通道使能寄

存器

0039 0049 0035 D XCERBxMcBSPB区发送通道使能寄

存器0039 0049 0035 E PCRx McBSP 引脚控制寄存器

Page 85: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

7.5.2 McBSP 的控制寄存器

1. 串口接收控制寄存器 SPCRl

结构 :

2. 串口发送控制寄存器 SPCR2结构 :

Page 86: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用3. 串口引脚控制寄存器 PCR 结

构 :

4. 接收控制寄存器 RCR1 结构 :

Page 87: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用5. 接收控制寄存器 RCR2 结

构 :

6. 发送控制寄存器 XCR1: 结构:

Page 88: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

7. 发送控制寄存器 XCR2:

结构:

分析 P.262, 例 7-11 程序

Page 89: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

1. McBSP 的复位7.5.3 McBSP 的串行数据发送和接收

通过芯片复位引脚 RS 复位,当 RS=0时, McBSP 的发送器、接收器和采样速率发生器复位。复位完成后 , RS=1, 此时GRST = FRST = RRST = XRST = 0 。

通过将 SPCR1 的 RRST 清 0 复位串口接收器。通过将 SPCR2 的 XRST 和GRST 清 0 ,分别复位串口发送器和采样速率发生器。

Page 90: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

复位后McBSP 各引脚的状态 :参 P.51 芯片引脚图

McBSP引脚 引脚状态

芯片复位 RS

McBSP 复位接收复位RRST=0GRST=0

发送复位XRST=0GRST=0

DR 输入 输入 输入 --

CLKR输入 / 输出 / 高

阻输入

如果为输入,状态已知;如果为输出,CLKR 运行

--

FSR输入 / 输出 / 高

阻输入

如果为输入,状态已知;如果为输出,FSRP未激活

--

Page 91: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

McBSP引脚

McBSP 引脚

芯片复位RS

McBSP 复位

接收复位

发送复位XRST=0, GRST=0

CLKS输入 / 输出

/ 高阻输入 输入 --

DX 输出 高阻 高阻 高阻

CLKX输入 / 输出

/ 高阻输入 --

如果为输入,状态已知;如果为输出, CLKR

运行

FSX输入 / 输出

/ 高阻输入 --

如果为输入,状态已知;如果为输出, FSRP

未激活CLKS 输入 输入 -- 输入

Page 92: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

2. McBSP 复位后的启动步骤在正常工作情况下,发送器和接收器复位后的启动步骤如下:1 )令 RRST=XRST=FRST=0 。如果刚复位完毕,则不 必进行该操作;2 )按照表 7.21 中串口复位要求,对 McBSP的寄存 器进行编程配置;3 )等待 2 个时钟周期,以保证适当的内部同步;

见 SPCR1 和 SPCR2 寄存器

Page 93: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

4 )按照写 DXR 的要求,给出数据;

5 )设定 XRST=l , RRST=1 ,使串口使能;

6 )如果要求内部帧同步信号,则设定 FRST=1 ;

7 )等待 2 个时钟周期后,接收器和发送器被激活。分析程序 exp06

Page 94: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

3. 帧同步信号和时钟信号的配置

串行字

时钟

帧同步

一些基本概念和重要术语 :

Page 95: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

在 McBSP 的数据传输中,用户可编程指定帧同步信号的参数:

FSR 、 FSX 、 CLKR 和 CLKX 的极性

选择单相帧或双相帧

各相的帧长和字长

Page 96: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

这些参数位于寄存器SPCR1 、 PCR 、 RCR[1 , 2] 和XCR[1 , 2] 中,且发送和接收参数的配置可独立进行。

从帧同步脉冲到第一个数据位的延迟数是 0 、 1 或 2 位

选择接收数据是右对齐还是左对齐、符号扩展或零扩展等

Page 97: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

4. McBSP 的数据发送 / 接收状态检测 在数据发送和接收过程中, McBSP 的三种监测串

行口状态的手段: 通过查询 RRDY(SPCR1.1) 和 XRDY(SPCR2.1)

来确定接收器和发送器的当前状态,以实现读 /写控制。

通过 DMA 事件(在正常模式下的 REVT 和XEVT ,在 A-bis 模式下的 REVTA 和 XEVTA )来实现读 /写控制。

通过 CPU 中断 RINT 和 XINT 来实现读 /写控制。

分析程序 exp06

Page 98: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

5.u律或 A律格式的压缩扩展数据 u律和 A律压扩数据是美国电话格式

CCITTG.711 标准的一部分。

McBSP 的压缩扩展过程 :

Page 99: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

u律格式和 A律格式发送数据压缩形式:

当发送器选择了压缩功能时,在 DXR1 的数据向 XSR1 复制的过程中就可进行压缩,此时,对 16 位发送数据按照指定格式 (u律或 A律 )

进行 8 位编码。

Page 100: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

当接收器选择了扩展功能时,来自 RBR1

的 8 位u律或 A律压缩数据经扩展后,成为 DRR1 内的 16 位左对齐数据,而RJUST 内的码速调整和扩展标志被忽略。

扩展后的接收数据被编码为 16 位二进制补码形式,然后送往 CPU 或 DMA 。

Page 101: 第 7 章  TMS320C54x 片内外设及其应用

McBSP 对内部数据的压缩扩展有下列两种方法:

当串行口的发送和接收部件复位时,将 DRR1 和DXR1 通过压缩扩展逻辑连接在一起。由XCOMPAND决定来自 DXR1 的数据被压缩;由RCOMPAND决定随后的扩展。

McBSP 使能,在被 XCOMPAND 和 RCOMPAND激活的数字环模式中进行压缩扩展,并可以提供CPU 中断或 DMA 同步事件。压缩扩展的时间取决于串行口的速率选择。

Page 102: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

7.5.4 多通道选择及操作

当采用时分复用( TDM )数据流时,只需要对其中的部分数据进行处理,因此,为了节省存储空间和总线宽度,可将 McBSP

配置为只对特定通道的数据进行收 / 发,这种功能称为多通道操作 。

多通道操作:

Page 103: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

McBSP 有多达 128 路的发送和接收通道。

它们被划分为 8 个块, 0~7 块,每个块由16 个连续通道组成;

它们也可划分为 A区(偶数块0 、 2 、 4 、 6 组)或 B区(奇数块1 、 3 、 5 、 7 组成)。

Page 104: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

在多通道操作中, McBSP必须配置为单相帧模式,由( R/X ) CR1 寄存器中的字段( R/X ) FRLEN1 指定每帧字数来表明所选的有效通道数。

在给定时间内,最多允许 128 个通道中的32 个通道被使能,这 32 个通道分别由 A

区的 l6 个通道和 B区的 16 个通道组成。

Page 105: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

控制寄存器 MCR1 、 MCR2 对 McBSP 的多通道进行块划分、选择及使能 ;

分区 A/B 的接收通道使能寄存器RCER(A/B) 和发送通道使能寄存器XCER(A/B) ,分别用于使能 32 个通道的接收和发送 ;

Page 106: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

1. 多通道接收控制寄存器 MCR1

结构:

2. 多通道发送控制寄存器 MCR2 结构:

Page 107: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

3.A区接收通道使能寄存器 RCERA

结构:

4.B区接收通道使能寄存器 RCERB

结构:

Page 108: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

5.A区发送通道使能寄存器 XCERA结构:

6.B区发送通道使能寄存器 XCERB

结构:

Page 109: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

7.5.5 可编程时钟和帧同步信号的产生

McBSP 提供多种方法为发送器和接收器选择移位时钟和帧同步信号。

下图是该选择电路的结构图,它包含三部分:采样速率发生器数据时钟产生帧同步信号

Page 110: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

Page 111: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

• 采样速率发生器用来产生 McBSP 的内部数据时钟CLKG 和帧同步 FSG ,其结构如图:

Page 112: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

通过控制寄存器 SRGR[1,2] 可以对采样速率发生器的工作及 3 个参数进行配置。

SRGR1 寄存器:

SRGR2 寄存器:

Page 113: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

• 数据时钟产生电路包括发送和接收两部分。其中,发送时钟受 PCR 中的 CLKXM字段控制,接收时钟受 SPCR1 中的 DLB 位及 PCR 中CLKRM字段控制。

•帧同步信号产生电路也由发送和接收两部分组成。其中,发送帧同步受 PCR 中的 FSXM 位及SRGR2 中的 FSGM 位控制,接收帧同步受 DLB

位、 PCR 中的 FSRM 位及 SRGR2 中的 GSYNC

位控制。

Page 114: 第 7 章  TMS320C54x 片内外设及其应用

第 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

Page 115: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

只有一个从设备的典型 SPI 接口如下图所示:

主设备提供移位时钟 SCK ,并向从设备发出使能信号SS 来控制通信的进行。

Page 116: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

1. 时钟停止模式在时钟停止模式下, McBSP 的发送器和接收器在内部保持同步,使得McBSP 可作为 SPI 的主设备或从设备。 此时,发送时钟信号 (CLKX) 对应于 SPI协议的串行时钟信号 (SCK) ,而发送帧同步信号 (FSX) 用作从设备的使能信号 (SS) 。接收时钟信号 (CLKR) 和接收帧同步信号 (FSR) 不用于时钟停止模式,因为它们在内部已经被连接到发送的对应信号 CLKX 和FSX 上。

Page 117: 第 7 章  TMS320C54x 片内外设及其应用

第 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

Page 118: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

CLKSTP=10b 且 CLKXP=0 ,时钟开始于上升沿,无延时

CLKSTP=10b 且 CLKXP=1 ,时钟开始于下降沿,无延时

CLKSTP 位与 CLKXP极性的各种组合产生了 4 种时钟停止模式如下:

CLKSTP=11b 且 CLKXP=0 ,时钟开始于上升沿,有延时

CLKSTP=11b 且 CLKXP=1 ,时钟开始于下降沿,有延时

Page 119: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

3. McBSP 作为 SPI 主设备McBSP 作为 SPI 主设备时与 SPI 的接口如图 :

Page 120: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用将 McBSP 配置为 SPI 主设备时所需的寄存器位数值

:所需的位设置 说明

CLKSTP = 10b /11b 选择时钟停止模式 ( 有或无时钟延时 )

( PCR ) CLKXP = 0 / 1

CLKX 的极性如同引脚 CLKX 的正(CLKXP = 0) 和负 (CLKXP = 1)

( PCR ) CLKRP = 0 / 1

CLKR 的极性如同引脚 CLKR 的正(CLKRP = 0) 和负 (CLKRP = 1)

( PCR ) CLKXM = 1 CLKX 引脚为输出引脚

Page 121: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

所需的位设置 说明

( PCR ) FSXM = 1

FSX 引脚为输出引脚

( SRGR2 ) FSGM=0

每次数据由 DXR1传输到 XSR1 ,发送器就驱动 FSX 上的帧同步脉冲

( PCR ) FSXP = 1

引脚 FSX 低有效

( SRGR2 ) CLKSM = 1

采样速率发生器产生的时钟 (CLKG) 来源于 CPU 时钟

XDATDLY = 01b RDATDLY = 01b 为 FSX 上的信号提供正确的建立时间

Page 122: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

4. McBSP 作为 SPI 从设备将 McBSP 作为 SPI 从设备时与 SPI 的接口如图 :

Page 123: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用将 McBSP 配置为 SPI 从设备时所需的寄存器位数值

:所需的位设置 说明

CLKSTP = 10b /11b 选择时钟停止模式 ( 有或无时钟延时 )

CLKXP = 0 / 1CLKX 的极性如同引脚 CLKX 的正(CLKXP = 0) 和负 (CLKXP = 1)

CLKRP = 0 / 1CLKR 的极性如同引脚 CLKR 的正(CLKRP = 0) 和负 (CLKRP = 1)

CLKXM = 0CLKX 引脚为由 SPI 主设备驱动的输入引脚

Page 124: 第 7 章  TMS320C54x 片内外设及其应用

第 7 章 TMS320C54x 片内外设及其应用

FSXM = 0FSX 引脚为输入引脚,能够被 SPI 主设备驱动 ( 使能信号 )

FSGM = 0每次数据由 DXR1传输到 XSR1 ,发送器就驱动 FSX 上的帧同步脉冲

FSXP = 1 引脚 FSX 低有效

CLKSM = 1产生的主时钟与 McBSP 逻辑单元保持同步(来源于 CPU 时钟)

CLKGDV=1产生 CLKG前,采样率产生器对 CPU

时钟二分频XDATDLY = 0b RDATDLY = 0b 为 FSX 上的信号提供正确的建立时间

Page 125: 第 7 章  TMS320C54x 片内外设及其应用

作业习题 7.4 , 7.6

, 7.9, 7.10, 7.12, 7.13