第2章TMS320C54x的硬件结构_第1页
第2章TMS320C54x的硬件结构_第2页
第2章TMS320C54x的硬件结构_第3页
第2章TMS320C54x的硬件结构_第4页
第2章TMS320C54x的硬件结构_第5页
已阅读5页,还剩157页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章TMS320C54x的硬件结构 知识要点: 引脚功能、内外部总线结构、CPU结构、内部存储器结构、片内外设电路、系统控制等。2.1 C54x的基本结构 TMS320C54x是TI公司为实现低功耗、高速实时信号处理而专门设计的16 位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应于远程通信等实时嵌入式应用的需要。 TMS320C54x具有的主要优点如下: 围绕1组程序总线、3组数据总线和4组地址总线而建立的改进哈佛结构,提高了系统的多功能性和操作的灵活性。 具有高度并行性和专用硬件逻辑的CPU设计,提高了芯片的性能。 具有完善的寻址方式和高度专业化指令系统,更

2、适应于快速算法的实现和高级语言编程的优化。 模块化结构设计,使派生器件得到了更快的发展。 采用先进的IC制造工艺,降低了芯片的功耗,提高了芯片的性能。 采用先进的静态设计技术,进一步降低了功耗,提高芯片性能 TMS320C54x系列DSP芯片内部结构由10部分组成如下图所示。 各部分功能如下: 中央处理器(CPU) 它是DSP芯片的核心。采用流水线指令执行结构和相应的并行处理结构,可在一个周期内对数据进行高速的算术运算和逻辑运算。 内部总线结构 有8组16位总线,可在一个指令周期内产生两个数据存储地址,实现流水线并行数据处理。 特殊功能寄存器 C54x系列有26个特殊功能寄存器,用来对片内各功

3、能模块进行管理、控制、监视。它们位于具有特殊功能的RAM区。 数据存储器RAM 双寻址RAM:在一个指令周期内,可对其进行两次存取操作,一次读出和一次写入。 单寻址RAM:在一个指令周期内,只能进行一次存取操作。 程序存储器 ROM 不同的C54x器件ROM的容量配置不同。程序存储器可由ROM和RAM配置而成。 I/O口(扩展功能) C54x系列芯片只有两个通用I/O引脚。BIO主要用来监视外部设备工作状态,XF用来发信号给外部设备。配有HPI和同步串行口和64K字I/O空间, HPI和同步串行口可以通过配置 ,用作通用I/O使用。 串行口 串行口功能不同,可分为4种:单通道同步串行口SP、带

4、缓冲器单通道同步串行口BSP、并行带缓冲器多通道同步串行口McBSP及时分多通道带缓冲器串行口TMD。 主机接口HPI HPI是一个与主机通信的并行接口,主要用于DSP与其他总线或CPU进行通信。信息可通过C54x的片内存储器与主机进行数据交换。分为8位标准HPI接口、8位增强型HPI接口、16位增强型HPI接口。 定时器 定时器是一个软件可编程的计数器,用来产生定时中断。可通过设置特定的状态来控制定时器的停止、恢复、复位和禁止。 中断系统 C54x的中断系统具有硬件中断和软件中断。 硬件中断:由外围设备信号引起的中断。分为: 片外外设引起的硬件中断、片内外设所引起的硬件中断。 软件中断:由程

5、序指令(INTR、TRAP和RESET)所引起的中断。 中断管理的优先级为1116个固定级,有4种工作方式。2.2 C54x的主要特性和外部引脚 2.2.1 C54x的主要特性1. CPU 采用先进的多总线结构 40位算术逻辑运算单元ALU 1717位并行乘法器,与40位专用加法器相连,可用于进行非流水线的单周期乘法-累加运算 比较、选择、存储单元,可用于Viterbi译码器的加法-比较-选择运算 指数编码器,单周期内计算40位累加器的指数 有两个地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元 2. 存储器 可访问最大存储空间为64千字的程序存储器、64千字的数据存储器和64千字的

6、I/O空间 片内ROM,可配置为程序存储器和数据存储器 片内RAM两种类型,即DARAM和SARAM3. 指令系统 支持单指令重复和块指令重复操作 支持存储器块传送指令 支持32位长操作数指令 支持2操作数或3操作数的读指令 具有能并行存储和并行加载的算术指令 支持条件存储指令及中断快速返回指令4. 在片外围电路 具有软件可编程等待状态发生器 设有可编程分区转换逻辑电路 有片内锁相环(PLL)发生器 支持全双工操作的串行口,可进行8位或16位串行通信 带4位预定标器的16位可编程定时器 设有与主机通信的并行接口(HPI) 具有外部总线判断控制,以断开外部总线信号 数据总线具有总线保持器特性5.

7、 电源 具有多种节电模式,可用IDLE13控制功耗 可在软件控制下,禁止CLKOUT输出信号6. 片内仿真接口 具有符合IEEE1149.1标准的片内仿真接口7. 速度 5.0V电压器件,速度40MIPS,指令周期25ns 3.0V电压器件,速度80MIPS,指令周期12.5ns 2.5V电压器件,速度100MIPS,指令周期10ns 1.8V电压器件,速度200MIPS,指令周期10ns2.2.2 C54x的引脚功能 C5402共有144个引脚,引脚分布如下图。按其功能可分为电源引脚、时钟引脚、控制引脚、地址和数据引脚、串行口引脚、主机接口引脚、通用I/O引脚和测试引脚八个部分。 电源引脚

8、C5402采用双电源供电,其引脚有: CVDD(16、52、68、91、125、142),电压为+1.8V,为CPU内核提供专用电源 DVDD(4、33、56、75、112、130),电压为+3.3V,为各I/O引脚提供电源 VSS(3、14、34、40、50、57、70、76、93、106、111、128),接地 时钟引脚 C5402的时钟发生器由内部振荡器和锁相环PLL构成,引脚功能如表2.2.1所示 控制引脚 控制引脚用来产生和接收外部器件的各种信号,引脚功能如表2.2.2所示。 地址和数据引脚 C5402芯片共有20个地址引脚,可寻址1兆字的外部程序空间、64K字外部数据空间和64K字

9、的片外I/O空间 在保持方式或EMU1/OFF为低电平时,A15A0呈高阻状态。A19A16用于扩展程序存储器寻址。 C5402芯片共有16条数据引脚,用于在处理器、外部数据存储器、程序存储器和I/O器件之间进行16为数据并行传输。 在下列情况下,D15D0将呈现高阻状态 当没有输出时; 当RS有效时; 当HOLD有效时; 当EMU1/OFF为低电平时。 串行口引脚 C5402器件有两个McBSP串行口,引脚功能如表2.2.3所示 表2.2.3串行口引脚功能 主机接口(HPI)引脚 HPI接口是一个8位并行口,用来与主设备或主处理器接口,实现DSP与主设备或主处理器间的通信。引脚功能如表2.2

10、.4所示。 通用I/O引脚 C5402有2个通用的I/O引脚,分别为: XF(27),外部标志输出信号,用于发送信号给外部设备 BIO(31),控制分支转移的输入信号,用来检测外部设备状态。 当BIO=0时,执行条件转移指令。 测试引脚 其引脚有: TCK TDI TDO TMS TRST EMU0 EMU1/OFF2.3 C54x的内部总线结构 TMS320C54x的结构是以8组16位总线为核心,形成了支持高速指令执行的硬件基础。8组总线分为1组程序总线、3组数据总线和4组地址总线。 程序总线 程序总线PB主要用来传送取自程序存储器的指令代码和立即操作数。 数据总线 在C54x内部结构中,3

11、条数据总线(CB、DB和EB)分别与不同的功能单元相连接。 CB和DB总线用来传送从数据存储器读出的数据,而EB用来传送写入存储器的数据。 地址总线 C54x的地址总线共有4组,分别为PAB、CAB、DAB和EAB,主要用来提供执行指令所需的地址。 C54x可以利用辅助寄存器算术运算单元,在一个周期内产生两个数据存储器的地址。 C54x还为片内通信提供了片内双向总线,用于寻址片内外围电路。 下表列出了各种寻址方式所用到的总线情况:表2.3.1列出了各种寻址方式所用到的总线情况。2.4 C54x的中央处理器 中央处理器CPU是DSP器件的核心部件,它的性能直接关系到DSP器件的性能。 C54x的

12、CPU采用了流水线指令执行结构和相应的并行结构设计,使其能在一个指令周期内,高速地完成多项算术运算。 CPU基本组成如下: 40位算术逻辑运算单元(ALU) 2个40位累加器(ACCA、ACCB) 1个支持1631位移位的桶形移位寄存器 乘法器-加法器单元(MAC) 比较、选择和存储单元(CSSU) 指数编码器 CPU状态和控制寄存器2.4.1 算术逻辑运算单元(ALU) C54x使用40为的算术逻辑运算单元和2个40位累加器,可完成宽范围的算术逻辑运算。功能框图如图2.4.1所示。 图2.4.1 ALU的功能框图 C54x的大多数算术逻辑运算指令都是单周期指令,其运算结果通常自动送入目的累加

13、器A或B。但在执行存储器到存储器的算术逻辑运算指令时(如ADDM等),其运算结构则存入指令指定的目的存储器。 ALU的输入和输出 根据输入源的不同,ALU采用不同的输入方式。 ALU的X输入源 ALU的Y输入源 ALU输入数据的预处理 ALU的输出 溢出处理 ALU的饱和逻辑可以对运算结果进行溢出处理。当发生溢出时,将运算结果调整为最大正数(正向溢出)或最小负数(负向溢出)。这种功能对滤波器计算非常有用。 当运算结果发生溢出时: 若OVM=0,则对ALU的运算结果不进行任何调整,直接送入累加器。 若OVM=1,则需对ALU的运行结果进行调整。 当正向溢出时,将32位最大正数007FFFFFFF

14、H装入累加器; 当负向溢出时,将32位最小负数FF80000000H装入累加器。 状态寄存器ST0中与目标累加器相关的溢出标志OVA/OVB被置1。 进位位C ALU有一个与运算结果有关的进位位C,位于ST0的11位。进位位C受大多数ALU操作指令的影响,包括算术操作、循环操作和移位操作。 进位位C的功能: 1. 用来指明是否有进位发生; 2. 用来支持扩展精度的算术运算; 3. 可作为分支转移、调用、返回和条件操作的执行条件。 进位位C仅用于算术操作的溢出管理。 双16位算术运算 若要将ST1中的C16置位,则ALU进行双16位算术运算,即在一个机器周期内完成两个16位数的算术运算,进行两次

15、16位加法或两次16位减法运算。 双16位算术运算对于Viterbi加法/比较/选择操作特别有用。 其他控制位 TC测试/控制标志,位于ST0的12位; ZA/ZB累加器结果为0标志位2.4.2 累加器A和B C54x芯片有两个独立的40位累加器A和B,可作为ALU或MAC得目标寄存器,存放运算结果,也可以作为ALU或MAC的一个输入。 在执行并行指令和一些特殊指令时,两个累加器中的一个用于装载数据,而另一个用于完成运算。 累加器A和B之间的惟一区别是累加器A的3216位能被用作乘法-累加单元中的乘法器输入,而累加器B不能。 累加器A和B都可以分为三部分,如图2.4.2所示。 使用STH、ST

16、L、STLM和SACCD等指令或并行存储指令,可将累加器的内容存放到数据存储器中。在存储过程中,有时需要对累加器的内容进行移位操作。若右移时,AG和BG中的各数据位分别移至AH和BH;左移时,AL和BL中的各数据分别移至AH和BH,而AL和BL的低位添0。图图2.4.2 累加器累加器A和和B的结构的结构 例2.4.1假设累加器A=FF 0123 4567H,分别执行带移位的 STH和STL指令后,数据存储单元T中的结果如下: STH A,8,T; A内容左移8位后,AH存入T中,T=2345H,A的内容不变 STH A,-8,T; A内容右移8位后,AH存入T中,T=FF01H,A的内容不变

17、STL A,8,T; A内容左移8位后,AH存入T中,T=6700H,A的内容不变 STL A,-8,T; A内容右移8位后,AH存入T中,T=2345H,A的内容不变 2.4.3 桶形移位寄存器 TMS320C54x的40位桶形移位寄存器主要用于累加器或数据区操作数的定标。它能将输入数据进行031位的左移和016位的右移。 所移动的位数可由ST1中的ASM或被指定的暂存器T决定。 桶形移位寄存器由多路选择器MUX、符号控制SC、移位寄存器和写选择电路MSW/LSW等构成,功能框图如图2.4.3所示。 桶形移位寄存器的输入 40位桶形移位寄存器的输入数据为以下数据中的任何一个:图2.4.3桶形

18、移位寄存器的功能 取自DB数据总线的16位输入数据; 取自DB和CB扩展数据总线的32位输入数据; 来自累加器A或B的40位输入数据。 桶形移位寄存器的输出 桶形移位寄存器的输出接至: 算术逻辑运算单元ALU的一个输入端; 经写选择电路输出至EB总线 桶形移位寄存器的功能 主要是为输入的数据定标,功能: 在进行ALU运算之前,对输入数据进行数据定标; 对累加器中的内容进行算术或逻辑移位; 对累加器进行归一化处理; 在累加器的内容存入数据存储器之前,对存储数据进行 定标。 桶形移位寄存器的操作 完成操作数的符号位扩展 根据SXM位控制操作数进行带符号位/不带符号位扩展。 完成操作数的移位 根据指

19、令中的移位数控制操作数的移位。移位数全部用二进制补码表示,正值时完成左移,负值时完成右移。移位数有三种形式: 立即数,取值范围:-1615; 状态寄存器ST1中的移位方式位ASM,共计5位,取值范围:-1615; 数据暂存器T中的低6位数值,取值范围:-1631; 这种移位操作能使CPU完成数据的定标、位提取、扩展算术和溢出保护等操作。 【例2.4.2】对累加器A执行不同的移位操作。 ADDA,-4,B; 累加器A右移4位后加到累加器B中。 ADDA,ASM,B; 累加器A按ASM规定的移位数移位后加到累加器B NORM A; 按T寄存器中的数值对累加器归一化2.4.4 乘法-累加单元(MAC

20、) C54x的乘法-累加单元MAC是由乘法器、加法器、符号控制、小数控制、零检测器、舍入器、饱和逻辑和暂存器等几部分组成,功能框图如图2.4.4所示。 图2.4.4 MAC功能框图 MAC单元可在一个流水线周期内完成1次乘法运算和1次加法运算。 MAC单元包含一个1717位硬件乘法器,可完成有符号数和无符号数的乘法运算。 乘法器的XM输入数据来自T寄存器、累加器A的3216位以及由DB总线提供的数据存储器操作数; YM输入的数据可以取自累加器A的3216位、由DB总线和CB总线提供的数据存储器操作数以及由PB总线传送过来的程序存储器操作数。 MAC单元的乘法器能进行有符号数、无符号数以及有符号

21、数与无符号数的乘法运算。根据操作数的不同情况进行以下处理: 若是两个有符号数相乘,则在进行乘法运算之前,先对两个16位乘数进行符号位扩展,形成17位有符号数后再进行相乘。 若是两个无符号数相乘,则在两个16位乘数的最高位前面添加“0”,扩展为17位乘数后再进行乘运算。 若是有符号数与无符号数相乘,则有符号数在最高位前添加1个符号位,其值由最高位决定,而无符号数在最高位前面添加“0”,然后两个操作数相乘2.4.5 比较、选择和存储单元(CSSU) C54x的比较、选择和存储单元是一个特殊用途的硬件电路,专门用来完成Viterbi算法中的加法/比较/选择操作。功能框图如图2.4.5所示。图2.4.

22、5 比较、选择和存储单元功能框图 CSSU单元主要完成累加器的高阶位与低阶位之间最大值的比较,即选择累加器中较大的字,并存储在数据存储器中。 工作过程如下: 比较电路COMP将累加器A或B的高阶位与低阶位进行比较; 比较结果分别送入状态转移寄存器TRN和状态寄存器TC位中,记录比较结果以便程序调试; 比较结果送入写选择电路,选择较大的数据; 将选择的数据通过总线EB存入指定的存储单元。图图2.4.A Viterbi算法示意图算法示意图2.4.6 指数编码器(EXP) 在数字信号处理中,为了提高计算精度,常采用数值的浮点表示法,即把一个数值分为指数部分和尾数部分。 指数部分为数值的阶次,尾数部分

23、为数值的有效值。 指数编码器如图2.4.6所示。 累加器A累加器BT寄存器EXP图2.4.6 指数编码器 指数编码器 它是一个用于支持指数运算指令的专用硬件,可以在单周期内执行EXP指令,求累加器中数的指数值。该指数值以二进制补码形式存入T寄存器中,范围为831位。 有了指数编码器,可以使用EXP和NORM指令对累加器的数值进行归一化处理。 【例2.4.3】完成对累加器A的归一化处理 EXPA;(多余符号位-8)T寄存器 STT,EXPONENT; 将保存在T寄存器中的指数存入指定的数据存储器中 NORM A; 对累加器A进行归一化处理,即A按T中的内容移位2.4.7 CPU状态和控制寄存器

24、C54x提供三个16位寄存器来作为CPU状态和控制寄存器,它们分别为: 状态寄存器0(ST0); 状态寄存器1(ST1); 处理器工作方式状态寄存器(PMST)。 ST0和ST1中包含各种工作条件和工作方式的状态,PMST中包含存储器的设置状态和其他控制信息。由于这些寄存器都是存储器映像寄存器,因此可以进行如下操作: 将它们快速地存放到数据存储器; 由数据存储器对它们进行加载; 用子程序或中断服务程序保存和恢复处理器的状态 状态寄存器0(ST0) ST0主要用于反映处理器的寻址要求和计算的中间运行状态,结构图如图2.4.7所示。 ARPTCCOVAOVBDPST01513121110980图2

25、.4.7 状态寄存器0 状态寄存器ST0各状态位的功能见表2.4.1。表2.4.1 状态寄存器ST0各状态位的功能 状态寄存器1(ST1) ST1主要用于反映处理器的寻址要求、设置计算的初始状态、I/O及中断控制,其各位的定义如图2.4.8所示。ASM ST1BRAF CPL XF HM INTM OOVMSXMC16FRCTCMPT1514131211109876540图2.4.8 状态寄存器1ASM状态寄存器ST1各状态位的功能见表2.4.2。表2.4.2 状态寄存器ST1各状态位的功能 处理器工作方式状态寄存器(PMST) PMST主要用来设置和控制处理器的工作方式,反映处理器的工作状态

26、,结构如图2.4.9所示。 IPTRMP/MC OVLYAVISDROMCLKOFFSMULSSTPMST1576543210图2.4.9处理器工作方式状态寄存器PMSTPMST寄存器各状态位的功能见表2.4.3表2.4.3 PMST寄存器各状态位的功能2.5 C54x的存储空间结构 TMS320C54x共有192千字的可寻址存储空间。这192千字的存储空间分成3个独立的可选择空间,分别为: 64千字的程序存储空间 64千字的数据存储空间 64千字的I/O空间 C54x芯片都包括内部随机存储器和只读存储器。 内部RAM又分为单寻址RAM和双寻址RAM。 双寻址RAM在同一个周期内,CPU可对D

27、ARAM进行读和写操作。 单寻址RAM在同一个周期内,只能进行一次读或写操作。 C54x的并行结构和内部RAM的双寻址能力,可使CPU在任何一个给定的机器周期内同时执行4次存储器操作,包括1次取指、2次读操作数和1次写操作数。 与外部存储器相比,内部存储器有以下优点: 不需要插入等待状态; 成本低; 功耗小。 在C54想x系列芯片中,不同型号的芯片其内部存储器的配置有所不同。表2.5.1列出了各种C54x内部内部存储器的配置。表2.5.1 各种C54x内部内部存储器的配置2.5.1 存储空间结构 C54x所有内部和外部程序存储器及内部和外部数据存储器分别统一编址。内部RAM总是映射到数据存储空

28、间,但也可映射到程序存储空间。根据用户的设置,ROM可以灵活地映射到程序存储空间,同时也可以部分地映射到数据存储空间。 从图2.5.1可以看出,C54x的存储器结构与处理器工作方式状态寄存器(PMST)的设置有关,用户可以通过PMST的3个控制位(MP/MC、OVLY和DROM)来配置存储器空间。 存储器配置结构如图2.5.1所示。 图2.5.1 C5402存储器配置结构2.5.2 程序存储空间 程序存储空间用来存放要执行的指令和执行中所需的系数表。 C5402共有20条地址线,可寻址1MB外部程序存储器。 内部ROM和DARAM可通过软件映射到程序空间。 程序存储空间的配置 程序存储空间的配

29、置 程序存储空间可通过PMST寄存器的MP/MC和OVLY控制位来设置内部存储器的映射地址。 MP/MC控制位用来决定程序存储空间是否使用内部存储器。 MP/MC工作方式工作方式 0 1微型计算机模式微型计算机模式微处理器模式微处理器模式OVLY =1, 片内RAM映像到程序和数据存储空间;OVLY =0, 片内RAM只映像在数据存储空间 程序存储空间的分页扩展 在TMS320C54x系列芯片中,有些芯片采用分页扩展的方法,使程序存储空间可扩展到1MB8MB,如TMS320V5409和TMS320VC5416可扩展到8MB,而TMS320VC5402只有20条外部程序地址总线,其程序空间只能扩

30、展到1MB。 从图2.5.2可以看出,在第115页中,每一页分为两部分,低32K字和高32K字。如果MP/MC=0,内部ROM只能在第0页寻址,不能映射到程序空间的其他页。Page 064KPage1:低16K外部Page1:高48K外部1 0000H1 3FFFH1 4000H0 0000H0 FFFFH1 FFFFHPage2:低16K外部Page2:高48K外部2 0000H2 3FFFH2 4000H2 FFFFH.Page15:低16K外部Page15:高48K外部F 0000HF 3FFFHF 4000HF FFFFHXPC=0XPC=1XPC=2XPC=15图2.5.2 C540

31、2 扩展程序存储空间结构 如果OVLY=1,程序存储空间使用内部RAM。此时,不论XPC为何值,扩展程序存储空间的所有低32KB(x0000Hx7FFFH)都被映射到内部RAM(0000H7FFFH)中。 扩展程序存储器的页号由XPC寄存器设定,XPC映射到数据存储器的001EH单元。硬件复位时,XPC被置0。 内部ROM C5402有4KB的内部ROM。当MP/MC=0,这4KB的ROM被映射到程序空间的地址范围F000HFFFFH,其中高2KB ROM中的内容由TI公司定义,如图2.5.3。 这2KB程序存储空间包含如下内容:图2.5.3 C5402内部ROM的内容 引导程序 256律扩展

32、表 256A律扩展表 256字正弦函数值查找表 中断向量表 处理器复位时,复位、中断及陷阱向量被映射到程序空间的FF80H。复位后,这些向量可以被重新映射到程序存储空间的任何一页开头。2.5.3 数据存储空间 数据存储空间用来存放执行指令所使用的数据,包括需要处理的数据或数据处理的中间结果。 数据存储空间的配置 C54x数据存储空间共有64KB,采用片内和片外存储器统一编址。 若DROM=0,内部ROM不映射到数据空间; 若DROM=1,部分内部ROM映射到数据存储空间,并且当MP/MC=0时,内部ROM同时映射到数据空间和程序空间。 每次复位时,处理器将对DROM位清零。图2.5.4 为TM

33、S320VC5402数据存储空间的结构。 当DROM=0时,F000HFEFFH定义为外部ROM,FF00FFFFH为外部数据存储空间,此时数据存储空间不使用内部ROM; 当DROM=1时,F000FEFFH定义内部ROM,FF00FFFFH保留。 存储器映像寄存器 在C54x的数据存储空间中,前80H个单元包含的CPU寄存器和片内外设寄存器。 这些寄存器全部映射到数据存储空间,所以也称做存储器映像寄存器MMR。 采用寄存器映射的方法,可以简化CPU和片内外设的访问方式。 C5402的CPU寄存器共有27个,映射到数据存储空间的地址为 : 0 x0000H0 x001FH。 主要用于程序的运算

34、处理和寻访方式的选择及设定。 CPU访问这些寄存器时,不需要插入等待时间。 表2.5.2列出了27个CPU寄存器的名称和地址。 片内外设寄存器映射在数据存储空间的20H5FH,主要用来控制片内外设电路的状态,可作为外设电路的数据存储器。 包括串行口通信控制寄存器组、定时器定时控制寄存器组、时钟周期设定寄存器组。 对它们寻址需要2个机器周期。 片内外设寄存器存在于一个专用的外设总线结构中,它可以发送数据至外设总线或者从外设中接受数据。 设置或清除寄存器的控制位可以激活、屏蔽或者重新配置外设状态。 表2.5.3列出了TMS320C549的片内外设寄存器。 2.5.4 I/O空间 C54x提供了一个

35、具有64K的I/O空间,主要用于对片外设备的访问。 可以用指令PORTR和PORTW对I/O空间寻址。 所用到的总线除数据和地址总线,还要用到IOTRB、IS、R/W控制线。2.6 C54x的片内外设电路 片内外设主要包括:通用I/O引脚;定时器; 时钟发生器; 串行通信接口;主机接口HPI;软件可编程等待状态发生器;可编程分区转换逻辑。 通用I/O引脚 每一种C54x芯片提供了两个通用的I/O引脚:BIO和XF。 BIO为分支转移控制输入引脚,用来监控外部设备的运行状态。 在实时控制系统中,对时间严格的循环程序中,可以用BIO引脚代替中断与外设连接,查询引脚状态,避免中断引起的失控。 XF位

36、外部标志输出引脚,主要用于程序向外设传输标志信息。可通过对状态寄存器ST1中的XF位的置位或复位,使该引脚输出高电平或低电平,从而控制外设。 例如: SSBXXF;置位XF引脚RSBXXF;复位XF引脚 定时器 TMS320C54x的定时器是一个带有4位预分频器的16位减法器。 这个减法计数器每来1个时钟周期自动减1,当计数器减到0时产生定时中断。 通过编程设置特定状态可使定时器停止、恢复运行、复位或禁止。 C54x的定时器是一个可软件编程的计数器,包括以下3个存储器映像寄存器: 定时设定寄存器TM,它是16位减法计数器 定时周期寄存器PRD,16位寄存器(定时常数) 定时控制寄存器TCR,包

37、括分频系数TDDR,预 标定计数器PSC、控制位TRB和TSS等。 定时中断的周期: CLKOUTC(TDDR+1)(PRD+1) 其中:CLKOUT为时钟周期,TDDR和PRD分别为定时器的分频系数和时间常数。 若要关闭定时器,只要将TCR的TSS位置1,就能切断时钟输入,定时器停止工作。 时钟发生器 时钟发生器为CPU提供时钟信号,由内部振荡器和锁相环(PLL)电路两部分组成。可通过内部的晶振或外部的时钟源驱动。 主机接口HPI 主要用于DSP与其他总线或主处理机进行通信。 HPI接口通过HPI控制器、地址寄存器、数据锁存器和HPI内存块实现与主机通信。 主要特点如下: 接口所需要的外部硬

38、件比较少; HPI单元允许芯片直接利用一个或两个数据选通信号; 有一个独立的或复用的地址总线 一个独立的或复用的数据总线与微控制单元MCU连接; 主机和DSP可独立地对HPI接口操作; 主机和DSP握手可通过中断方式完成; 主机可通过HPI直接访问CPU的存储空间,包括存储器映像寄存器; 主机可通过HPI接口装载DSP的应用程序、接收DSP运行结果或诊断DSP运行状态。 串行通信接口 C54x内部有高速的、全双工串行通信接口,可以和其他串行器件直接接口。 分类如下: 同步串行口 SP 缓冲同步串行口 BSP 时分多路同步串行口 TDM 多通道缓冲串行口McBSP 软件可编程等待状态发生器 它能

39、把外部总线周期扩展到最多14个机器周期,这样可以方便地与慢速的外部存储器和I/O设备接口。 它不需要任何外部硬件,只由软件完成。 可编程分区转换逻辑 当访问过程跨越程序或数据存储器边界时,可编程分区转换逻辑会自动插入一个周期。 当存储过程由程序转向数据存储器时,也会插入一个周期。 这一附加周期可以使存储器在其他器件驱动总线之前允许存储器释放总线,避免总线竞争。2.7 C54x的系统控制 TMS320C54x芯片的系统控制是由程序计数器(PC)、硬件堆栈、PC相关的硬件、外部复位信号、中断、状态寄存器和循环计数器(RC)等组成。2.7.1 程序地址的产生 C54x的程序存储器用来存放应用程序的代

40、码、系数表和立即数。 CPU取指操作时,首先由程序地址生成器(PAGEN)产生地址,再将地址加载到程序地址总线PAB,由PAB寻址存放程序存储器中的指令、系数表和立即数。 程序存储器地址生成器程序存储器地址生成器PAGEN 它通常是由程序计数器它通常是由程序计数器PC、重复计数器、重复计数器RC、块重复计数、块重复计数器器BRC、块重复起始地址寄存器、块重复起始地址寄存器RSA,块重复结束地址,块重复结束地址寄存器寄存器REA等等5个寄存器组成。组成框图如图个寄存器组成。组成框图如图2.7.1所示。所示。 程序地址生成器程序地址生成器PAGEN程序计数器程序计数器PC 重复操作寄存器重复操作寄

41、存器重复计数器重复计数器PC块重复计数器块重复计数器BRC块重复起始地址寄存器块重复起始地址寄存器RSA块重复结束地址寄存器块重复结束地址寄存器REA 程序计数器 C54x的程序计数器PC是一个16位计数器,用来保存某个内部或外部程序存储器的地址。这个地址就是即将取指的某条指令、即将访问的某个16位立即操作数或系数表在程序存储器中的地址。 对PC加载有以下几种方法: 当进行复位操作时,用地址FF80H加载PC; 当程序是顺序执行时,则PC被增量加载,即 PC=PC+1; 当分支转移发生时,用紧跟在分支转移指令后面的16位立即数加载PC。若由累加器分支转移,则用累加器的低阶位内容加载PC; 当执

42、行块重复指令时,若PC+1等于块重复结束地址REA+1,则用块重复起始地址RSA加载PC; 当执行子程序调用时,将PC+2的值压入堆栈,然后调用指令下一个长立即数加载至PC。若是累加器调用子程序,则保护现场后,用累加器的低阶位内容加载PC。 当执行返回指令时,将压入堆栈的值从栈顶取出,加载到PC,回到原来的程序处继续执行; 当进行硬件中断或软件中断时,将PC值压入堆栈,并将适当的中断向量地址加载PC; 当执行中断返回时,将压入堆栈的值从栈顶取出,加载到PC,继续执行被中断的程序。2.7.2 流水线操作 流水线操作是DSP芯片不同于一般单片机的主要硬件工作机制。流水线操作可以减少指令的执行时间,

43、提高DSP的运行速度,增强DSP的处理能力。 流水线操作是指各条指令以机器周期为单位,工作原理:将指令分成几个子操作,每个子操作有不同的操作阶段完成。 流水线操作概念 C54x的流水线操作是由6个操作阶段或操作周期组成。流水线结构如图2.7.2所示。 P(预取指预取指)F(取指取指)D(译码译码)A(寻址寻址)R(读数读数)X(执行执行) T1 T2 T3 T4 T5 T6图2.7.2 流水线结构 示意图 一条指令分为预取指、取指、译码、寻址、读数和执行6个操作阶段。 各操作功能如下: 预取指P:在T1机器周期内,CPU将PC中的内容加载到程序地址总线PAB,找到指令代码的存储单元。 取指F:

44、在T2机器周期内,CPU从选中的程序存储单元中,取出指令代码加载到程序总线PB。 译码D:在T3机器周期内,CPU将PB中的指令代码加载到指令译码器IR,并对IR中的内容进行译码,产生执行指令所需要的一系列控制信号。 寻址A:即寻址操作数。 读数R:CPU在T5机器周期内,将读出的数据1和数据2分别加载到数据总线DB和CB中。 执行X:在T6机器周期内,CPU按照操作码要求执行指令,并将写数据3加载到EB中,写入指定的存储单元。 在C54x的流水线操作中,存储器的存取操作要占用两个阶段。第1阶段,用存储单元的地址加载地址总线;第2阶段,对存储单元进行读/写操作。各种情况如下: 取指(单周期)取

45、指(单周期)加载加载PAB从从PB读读预取指预取指P 取指取指F 译码译码D 寻址寻址A 读数读数R 执行执行/写数写数X 执行读单操作指令执行读单操作指令例如:例如:LD *AR1, A;单周期指令,读单操作数;单周期指令,读单操作数 加载加载DAB 从从DB读读预取指预取指P 取指取指F 译码译码D 寻址寻址A 读数读数R 执行执行/写数写数X 执行读双操作数指令执行读双操作数指令例如:例如:MAC *AR2+, *AR3, A;单周期指令,读双操作数;单周期指令,读双操作数加载加载DAB和和CAB从从DB和和CB读读预取指预取指P 取指取指F 译码译码D 寻址寻址A 读数读数R 执行执行

46、/写数写数X 执行写单操作数指令执行写单操作数指令例如:例如:STH A, *AR1;单周期指令,写单操作数单周期指令,写单操作数预取指预取指P 取指取指F 译码译码D 寻址寻址A 读数读数R 执行执行/写数写数X 加载加载EAB写至写至EB 执行写双操作数指令执行写双操作数指令例如:例如:DST A, *AR1;双周期指令,写两个操作数双周期指令,写两个操作数 加载加载EAB写至写至EB 加载加载EAB写至写至EB预取指预取指P 取指取指F 译码译码D 寻址寻址A 读数读数R 执行执行/写数写数X预取指预取指P 取指取指F 译码译码D 寻址寻址A 读数读数R 执行执行/写数写数X 执行读单操

47、作数和写单操作数指令执行读单操作数和写单操作数指令例如:例如:ST A, *AR2 |LD *AR3, B;单周期并行加载存储指令,读单操作数和写;单周期并行加载存储指令,读单操作数和写 单操作数单操作数预取指预取指P 取指取指F 译码译码D 寻址寻址A 读数读数R 执行执行/写数写数X 加载加载DAB写至写至EB 从从DB读出并加载读出并加载EAB 分支转移流水线操作 根据是否使用延时指令,分为无延时分支转移和延时分支转移。 无延时分支转移例如:无延时分支转移程序地址 指令代码 注释a1,a2 B b1 ;4机器周期,两字的无延时转移指令 a3 i3 ;任意单周期,单字指令 a4 i4 ;任

48、意单周期,单字指令 .b1 j1对应流水线工作情况如图2.7.3所示。 PAB=a1 PB=B IR=B B预取指预取指 取指取指 译码译码 寻址寻址 读数读数 执行执行 PAB=a2 PB=b1 IR=b1 b1预取指预取指 取指取指 译码译码 寻址寻址 读数读数 执行执行PAB=a3 PB=i3预取指预取指 取指取指 译码译码 寻址寻址 读数读数 执行执行PAB=a4 PB=i4 预取指预取指 取指取指 译码译码 寻址寻址 读数读数 执行执行PAB=b1 PB=j1 IR=j1 j1预取指预取指 取指取指 译码译码 寻址寻址 读数读数 执行执行 1 2 3 4 5 6 7 8 9 10 B

49、b1流水线刷新流水线刷新j1图图2.7.3 无延时分支转移指令流水线无延时分支转移指令流水线 周期1:将分支转移指令地址a1加载至PAB; 周期2、3:取出转移指令的两个指令字; 周期4、5:对i3和i4指令取指; 周期6、7:分支转移指令的两个字进入执行阶段; 周期8、9:由于i3和i4指令不被执行,因此在周期8和9中,转移指令的执行阶段无任何操作,这两个周期会被消耗掉; 周期10:执行j1指令。 延迟分支转移 延迟分支转移指令允许其后面的两个单周期指令(i3和i4)执行完毕,因此采用延迟分支转移指令可以节省2个机器周期。例如:延时分支转移程序地址 指令代码 注释a1,a2 BD b1 ;4

50、机器周期,两字的延时转移 a3 i3 ;任意单周期,单字指令 a4 i4 ;任意单周期,单字指令 .对应流水线工作情况如图2.7.4所示。 PAB=a1 PB=B IR=BD BD预取指预取指 取指取指 译码译码 寻址寻址 读数读数 执行执行 PAB=a2 PB=b1 IR=b1 b1预取指预取指 取指取指 译码译码 寻址寻址 读数读数 执行执行PAB=a3 PB=i3 IR =i3 i3预取指预取指 取指取指 译码译码 寻址寻址 读数读数 执行执行PAB=a4 PB=i4 IR=i4 i4预取指预取指 取指取指 译码译码 寻址寻址 读数读数 执行执行PAB=b1 PB=j1 IR=j1 j1

51、预取指预取指 取指取指 译码译码 寻址寻址 读数读数 执行执行BDb1i3i4j1图图2.7.4 延时分支转移指令流水线延时分支转移指令流水线 1 2 3 4 5 6 7 8 9 10 周期6、7:执行延迟分支转移指令,需2个周期; 周期8、9:执行i3和i4指令,需2个周期。 【例2.7.1】分别用分支转移指令B和BD编写程序如下,试分析各程序所需要的周期。 利用分支转移指令B编程LDx,AADD x,ASTL A,sLD s,TMPY z,ASTL A,rB next利用分支转移指令BD编程LDx,AADD y,ASTL A,sLD s,TBD nextMPY z,ASTL A,r 采用具

52、有延时指令功能的指令,只要合理安排前后指令的顺序,可以节省机器周期。具有延迟功能的指令如表2.7.1 表2.7.1 具有延迟功能的指令 条件执行的流水线操作 C54x只有一条条件执行指令,且为单字单周期指令。 条件执行指令格式: XCn,cond,cond,cond 功能:执行指令时,先判断给定条件cond是否满足。若满足,则连续执行紧随其后的n条指令;若不满足,则连续执行n条NOP指令 例如:采用条件执行指令的程序如下 地址指令代码 注释 a1i1 a2i2 a3XC n, cond a4i4 a5i5任意单周期,单字指令任意单周期,单字指令任意单周期,单字指令任意单周期,单字指令单周期,单

53、字指令单周期,单字指令任意单周期,单字指令任意单周期,单字指令任意单周期,单字指令任意单周期,单字指令 对应流水框图如图2.7.5所示。 周期3:XC指令地址a3加载到PAB; 周期4:对XC指令取指; 周期5:对XC指令寻址,求解XC条件。 若满足条件,i4和i5进入译码并执行; 若不满足,执行空操作。 存储器的流水操作 C54x片内存储器分为双寻址存储器和单寻址存储器。 双寻址存储器的流水线操作 C54x的内部双寻址存储器DARAM分成若干独立的块,CPU可在单个周期内对其访问2次,如: 在单个周期内允许同时访问不同的DARAM块; CPU同时处理两条指令访问不同的存储块; 处于流水线不同

54、阶段的两条指令,可以同时访问同一个存储块。 上述三种存储器的操作,均不会发生时序冲突,因为两次访问分别发生在机器周期的前半周期和后半周期。 例如:当执行下列程序发生时序冲突时, CPU 能对取指自动延迟一个周期。 LD*AR2+,A ;AR2指向程序驻留 的DARAM i2;假定i2指令不访问DARAM i3;假定i3指令不访问DARAM i4 当第1条指令读操作数,i4指令正在取指,故发生时序冲突。此时,CPU对i4的取指延迟一个周期来解决时序冲突。 对应流水线工作图如图2.7.7所示。 单寻址存储器的流水线操作 C54x的单寻址存储器包括单寻址读写存储器SARAM、单寻址只读存储器ROM和

55、DROM。 这两类存储器在流水线中的操作基本相同,只是ROM和DROM不能进行写操作。 对于单寻址存储器,当指令有两个存储器操作数进行读或写时,若两个操作数指向同一个单寻址存储块,则在流水线上会发生时序冲突。在这种情况下,CPU先在原来的周期上执行一次寻址操作,并将另一次寻址操作自动地延迟一个周期。如: MAC*AR2+,*AR3+%,A,B 在这条指令中,若AR2和AR3指向同一单寻址存储器块,则该指令需要两个时钟周期。 流水线的等待周期 C54x的流水线结构,允许多条指令同时利用CPU的内部资源。由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。 流水线冲

56、突 可能产生未保护性流水线冲突的硬件资源: 辅助寄存器 重复块长度寄存器 堆栈指针 暂存器 状态寄存器 块重复计数器 存储器映像累加器 处理器工作方式寄存器 对上述的存储器映像寄存器,如果在流水线中同时对它们进行寻址,就有可能发生未保护性流水冲突。冲突分析情况如图2.7.8所示。 TMS320C54xC语言程序不会产生冲突汇编语言程序CALU运算不会产生冲突MMR寄存器写操作早安排写操作不会发生冲突其他MMR写操作要用等待周期表图2.7.8 流水线冲突分析示意图 等待周期表 当指令对MMR、ST0、ST1和PMST等硬件资源进行写操作时,有可能造成流水线冲突。 解决的办法是在写操作指令的后面插

57、入若干条NOP指令。 等待周期表给出了对MMR以及控制字段进行写操作的各种指令所需插入的等待周期数。为了避免流水线冲突,可根据等待周期表来选择插入的NOP指令的数量。 流水线等待周期表如表2.7.3所示。见P572.7.3 系统的复位 TMS320C54x芯片设有复位输入引脚RS。 当引脚上的电平发生变化时,程序将从指定的存储地址FF80H单元开始执行。 当时钟电路工作后,只要在RS引脚上出现2个周期以上的低电平,芯片内部所有寄存器都被初始化复位。 若RS保持低电平,则芯片始终处于复位状态。只有到高电平时,才可以从FF80H执行。 当芯片处于复位期间,处理器进行如下操作: 将工作方式寄存器PM

58、ST中的中断向量指针IPTR置成1FFH,MP/MC位置成与MP/MC引脚相同的状态; 状态寄存器ST0=1800H; 将状态寄存器ST1中的中断方式位INTM置1,关闭所有可屏蔽中断; 使程序计数器PC=FF80H; 使扩展程序计数器XPC=0000H; 使中断标志寄存器IFR=0000H; 使数据总线处于高阻状态; 控制吸纳均处于无效状态; 将地址总线置为FF80H; 使IACK引脚产生中断响应信号; 产生同步复位信号,对外围电路初始化; 将下列状态位置为初值: ARP = 0 CLKOFF = 0 HM = 0 SXM = 1 ASM = 0CMPT = 0 INTM = 1TC = 1

59、 AVIS = 0CPL = 0 OVA = 0XF = 1 BRAF = 0 DP = 0 OVB = 0 C =1DROM = 0 OVLY = 0 C16 = 0FRCT = 0 OVM = 0 如果MP/MC=0,程序从片内ROM开始执行,否则,从片外程序存储器开始执行。2.7.4 中断操作 中断系统是为计算机系统提供实时操作、多任务和多进程操作的关键部件。 C54x的中断系统既支持软件中断,也支持硬件中断。 软件中断是由程序指令产生的中断; 硬件中断是由外围设备信号产生的中断。 当同时多个硬件中断出现时, C54x将按照中断优先级别的高低对它们进行中断响应,其中1为最高优先级。 VC

60、5402中断源和中断优先级见表2.7.4。P60 C54x中断可分为两大类: 可屏蔽中断。 可用软件设置来屏蔽或开放的中断。 非屏蔽中断。 这些中断都是不能屏蔽的中断。 2.7.5 省电和保持方式 C54x有多种省电工作方式,可以使CPU暂时处于休眠状态。此时,CPU进入暂停工作状态,功耗减小,但保持CPU中的内容。 表2.7.5列出了4种省电工作方式: 用指令IDLE1、IDLE2、IDLE3进入3种省电工作方式,保持方式是另一种省电工作方式。2.8 C54x的外部总线 C54x与外部存储器以及I/O设备相连,能对64K的数据存储空间,64K的程序存储空间,以及64K的I/O空间寻址。 独立的空间选

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论