2.6 ’C54x的片内外设电路
为了满足数据处理的需要,’C54x器件除了提供哈佛结构的总线、功能强大的CPU以及大容量的存储空间外,还提供了必要的片内外部设备。不同型号的’C54x芯片,所配置的片内外设有所不同,这些片内外设主要包括:
● 通用I/O引脚;
● 定时器;
● 时钟发生器;
● 主机接口HPI;
● 串行通信接口;
● 软件可编程等待状态发生器;
● 可编程分区转换逻辑。
1.通用I/O引脚
每种’C54x芯片都为用户提供了两个通用的I/O引脚:和XF。
(Branch I/O)为分支转移控制输入引脚,用来监控外部设备的运行状态。在实时控制系统中,当执行对时间要求很严格的循环程序时,往往不允许外部中断干预。此时,可以用
引脚代替中断与外设连接,通过查询此引脚的状态控制程序的流向,以避免中断引起的失控现象。
例如:

XF 为外部标志输出引脚,主要用于程序向外设传输标志信息。可通过对状态寄存器 ST1中的XF位的置位或复位,使该引脚输出高电平或低电平,从而控制外设工作。
例如:
SSBX XF ;置位XF引脚 RSBX XF ;复位XF引脚
通过指令对XF引脚的置位和复位,CPU可向外部设备发出1和0信号,控制外部设备工作。
2.定时器
TMS320C54x的定时器是一个带有4位预分频器的16位减法计数器。该减法计数器每来1个时钟周期自动减 1,当计数器减到 0 时产生定时中断。通过编程设置特定的状态可使定时器停止、恢复运行、复位或禁止。
’C54x的定时器是一个可软件编程的计数器,主要包括以下3个存储器映像寄存器。
① 定时设定寄存器TIM。它是一个16位减法计数器,映射到数据存储空间的0024H单元。复位或定时器中断(TINT)时,TIM内装入PRD寄存器的值(定时时间),并进行自动减1操作。
② 定时周期寄存器PRD。16位的存储器映像寄存器,位于数据存储空间的0025H单元,用来存放定时时间常数。每次复位或TINT中断时,将定时时间装入TIM寄存器。
③ 定时控制寄存器TCR。16位的存储器映像寄存器,位于数据存储空间的0026H单元,用来存储定时器的控制位和状态位,包括定时器分频系数TDDR、预标定计数器PSC、控制位TRB和TSS等。
定时中断的周期为: CLKOUT×(TDDR+1)×(PRD+1)
其中,CLKOUT为时钟周期,TDDR和PRD分别为定时器的分频系数和时间常数。
若要关闭定时器,只要将TCR的TSS位置1,就能切断时钟输入,定时器停止工作。当不需要定时器时,关闭定时器可以减小器件的功耗。
3.时钟发生器
时钟发生器主要用来为CPU提供时钟信号,由内部振荡器和锁相环(PLL)电路两部分组成。可通过内部的晶振或外部的时钟源驱动。
锁相环电路具有频率放大和信号提纯的功能,利用PLL的特性,可以锁定时钟发生器的振荡频率,为系统提供高稳定的时钟频率。锁相环能使时钟源乘上一个特定的系数,得到一个比内部CPU时钟频率低的时钟源。
4.主机接口HPI
主机接口HPI(Host Port Interface)是’C54x芯片具有的一种8位或16位的并行接口部件,主要用于DSP与其他总线或主处理机进行通信。
HPI接口通过HPI控制寄存器(HPIC)、地址寄存器(HPIA)、数据寄存器(HPID)和HPI内存块实现与主机通信。其主要特点:
① 接口所需要的外部硬件少;
② HPI单元允许芯片直接利用一个或两个数据选通信号;
③ 有一个独立的或复用的地址总线;
④ 一个独立的或复用的数据总线与微控制单元MCU连接;
⑤ 主机和DSP可独立地对HPI接口操作;
⑥ 主机和DSP握手可通过中断方式来完成;
⑦ 主机可以通过HPI直接访问CPU的存储空间,包括存储器映像寄存器。
⑧ 主机还可以通过HPI接口装载DSP的应用程序、接收DSP运行结果或诊断DSP运行状态。
5.串行通信接口
’C54x 内部具有功能很强的高速、全双工串行通信接口,可以和其他串行器件直接接口。不同型号的芯片配有不同的串行口,可分为标准同步串行口SP、带缓冲器的同步串行口BSP、带缓冲器的多通道同步串行McBSP和时分复用串行口TMD。表2.6.1给出了不同型号’C54x芯片的串行口配置。
表2.6.1 TMS320C54x芯片的串行口

(1)标准同步串行口SP
它是一个高速、全双工、双缓冲的串行口,提供了与编码器、A/D转换器等串行设备之间的通信,可实现数据的同步发送和接收,能完成8位字或16位字的串行通信。如果一个芯片有多个同步串行口,则它们具有相同的结构和特性,彼此相互独立。
每个串行口都带有用于发送数据的发送数据寄存器DXR和发送移位寄存器XSR以及用于接收数据的接收数据寄存器DRR和接收移位寄存器RSR,并能以1/4机器周期频率(CLKOUT)工作。在进行数据的接收和发送时,串行口能产生可屏蔽的收、发中断(RINT 和 XINT),通过软件来管理数据的接收和发送。整个过程由串行口控制寄存器SPC控制。
(2)缓冲同步串行口BSP
这是一种增强型同步串行口,是在同步串行口的基础上增加了一个自动缓冲单元 ABU。ABU的功能是利用专用总线,控制串行口直接与’C54x的内部存储器进行数据交换,节省了串行通信时间,提高了数据传输速率。
BSP有非缓冲方式和自动缓冲方式两种工作模式。这两种工作模式都提供了包括可编程控制的串口时钟、帧同步信号、可选择时钟和帧同步信号的正负极性等增强功能,能以每帧8位、10位、12位和16位传输数据,最大操作频率为CLKOUT。
(3)时分复用同步串行口TDM
TDM是一个允许数据时分多路的同步串行接口。既能工作在同步方式,也能工作在TDM方式。TDM可以与外部多个应用接口实现方便灵活的数据交换,最多可与8个外部器件接口通信,这种接口在多处理器应用中得到了广泛的使用。
(4)多通道缓冲同步串行口McBSP
McBSP 是一个高速、全双工、多通道缓冲串行接口,可以直接与其他’C54x、编码器以及系统中的其他串口器件通信。它可以提供全双工通信、连续数据流的双缓冲数据寄存器、接收和发送独立的帧和时钟信号。可以直接与T1/E1帧接口。
McBSP在外部通道选择电路的控制下,采用分时的方式实现多通道串行通信,与以前的串行口相比,具有很大的灵活性:
① 串行口的接收、发送时钟既可由外部设备提供,也可由内部时钟提供;
② 帧同步信号和时钟信号的极性可编程;
③ 信号的发送和接收既可单独运行,也可结合在一起配合工作;
④ McBSP的串行口可由CPU控制运行,也可以脱离CPU通过直接内存的读取操作来单独运行;
⑤ 具有多通道通信能力,可达128个通道;
⑥ 数据的宽度可在8、12、16、20、24和32位中选择,并可对数据进行A律和μ律压缩和扩展。
6.软件可编程等待状态发生器
软件可编程等待状态发生器能把外部总线周期扩展到最多14个机器周期,这样可以方便地与慢速的外部存储器和I/O设备接口。它不需要任何外部硬件,只由软件完成。在访问外部存储器时,软件等待状态寄存器(SWWSR)可为每 32 千字的程序、数据存储单元块和 64 千字的I/O空间确定0~14个等待状态。
7.可编程分区转换逻辑
可编程分区转换逻辑也称为可编程存储器(段)转换逻辑。当访问过程跨越程序或数据存储器边界时,可编程分区转换逻辑会自动插入一个周期。当存储过程由程序存储器转向数据存储器时,也会插入一个周期。这一附加周期可以使存储器在其他器件驱动总线之前允许存储器释放总线,以避免总线竞争。转换的存储块的大小由存储器转换寄存器(BSCR)确定。