1、第二章:TMS320C54x的硬件结构2.1 TMS320C54x硬件结构框图 2.2 总 线 结 构 2.3 中央处理单元(CPU) 2.4 存储器和I/O空间 2.5 中 断 系 统,2.1 TMS320C54x硬件结构框图 1. TMS320C54x内部结构(3大块)(1)CPU:包括算术逻辑运算单元(ALU)、乘法器、累加器、移位寄存器、各种专门用途的寄存器、地址生成器及内部总线。(2)存储器系统:包括片内程序ROM、片内单访问的数据RAM和双访问的数据RAM、外接存储器接口。(3)片内外设与专用硬件电路:包括片内定时器、各种类型的串口、主机接口、片内锁相环(PLL)、时钟发生器及各种
2、控制电路。,2. TMS320C54x主要特性C54x是一款低功耗、高性能的定点DSP芯片(1)CPU部分 先进的多总线结构(1条程序总线、3条数据总线和4条地址总线)。 40位算术逻辑运算单元(ALU),包括1个40位桶形移位寄存器和2个独立的40位累加器。 17位并行乘法器,与40位专用加法器相连,用于非流水线式单周期乘法/累加(MAC)运算。,(1)CPU部分(续) 比较、选择、存储单元(CSSU):用于加法/比较选择。 指数编码器:可以在单个周期内计算40位累加器中数值的指数。 双地址生成器:包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU)。,(2)存储器系统 192 K字可
3、寻址存储空间:64 K字程序存储空间、64 K字数据存储空间及64 K字I/O空间,对于C548、C549、C5402、C5410和C5416等可将其程序空间扩展至8M。 SARAM与DARAM :,(3)片内外设 软件可编程等待状态发生器。 可编程分区转换逻辑电路。 片内锁相环(PLL)和时钟发生器。 可编程串行接口(4种) 可编程定时器16位(12个) 8位或16位主机接口(HPI)。 多种节电模式:软件控制片外总线、CLKOUT、器件电压等。,(4)指令系统 单指令重复和块指令重复操作。 用于程序和数据管理的块存储器传送指令。 32位长操作数指令。 同时读入2或3个操作数的指令。 可以并
4、行存储和并行加载的算术指令。 条件存储指令。 从中断快速返回的指令。,2.2 总 线 结 构 (片内总线) TMS320C54X总线结构是围绕8组16bit总线建立的。一组程序总线PB:传送从程序存储器来的指令代码和立即数;三组数据总线 (CB、DB):传送从数据存储器读出的操作数; ( EB):传送写入到数据存储器中的数据; 四组地址总线(PAB、CAB、DAB、EAB):传送执行指令所需的地址;,2.3 中央处理单元(CPU) C54X的CPU由运算部件、控制部件和各种寄存器组成。 1 . CPU状态和控制寄存器C54x DSP有三个状态和控制寄存器:(1) 状态寄存器0(ST0);(2)
5、 状态寄存器1(ST1);(3) 处理器工作模式状态寄存器(PMST)。 ST0和ST1中包含各种工作条件和工作方式的状态 PMST中包含存储器的设置状态及其他控制信息,(1)状态寄存器(ST0)功能:反映寻址要求和计算中的状态;ST0的结构图:,含义:ARP 辅助寄存器指针,用来选择辅助寄存器 TC 测试/控制标志位,保存ALU测试位操作结果C进位位。 OVA /OVB 累加器A/B的溢出标志位DP数据存储器页指针,(2)状态寄存器(ST1)功能:反映寻址要求、计算初始状态、I/O终端控制,含义:BRAF 块重复操作标志位。 CPL 直接寻址编辑方式位 XF XF引脚状态位。 HM 保持方式
6、位 INTM 中断方式位 。 OVM 溢出方式位 SXM 符号位扩展方式位。 C16 双16位/双精度算术运算方式位 FRCT 小数方式位。 CMPT 修正方式位 ASM 累加器移位方式位,BRAF 块重复操作标志位 指示当前是否在执行块重复操作 BRAF=0:不在进行块重复操作 BRAF=1:进行块重复操作 当块重复计数器(BRC)减到低于0时,BRAF被清0。INTM 中断方式位 INTM=0:开放全部可屏蔽中断 INTM=1:关闭所有可屏蔽中断,(3)工作方式寄存器(PMSTProcessor Mode Status)功能:设定并控制处理器的工作方式,反映处理器工作状态;,含义: IPT
7、R 中断向量指针。 微处理器/微型计算机工作方式位 OVLY RAM重复占位位 DROM数据ROM位,2.其他特殊功能寄存器(SFR) 第一类(26个) 功能:主要用于程序的运算处理和寻址方式的选择及设定 第二类(17个) 功能:用于控制片内外设(串口、定时器、机器周期设定等)注意:CPU中的寄存器都是存储器映射寄存器(MMR-memory mapped register ),MMR-memory mapped register-存储器映射的寄存器首先是寄存器的概念,寄存器是有专门用途的RAM。存储器映射,就是把存储器的地址给寄存器用。物理上这个寄存器不属于内存(memory),但在逻辑地址上
8、它属于内存。这样做的好处应该是能够用要使用访问内存的指令访问寄存器,使操作方式多样化,同时整个存储系统的地址也相对统一。,3.运算部件 (1)算术逻辑单元(ALU)功能: C54X使用40bit的ALU和2个40bit累加器(A、B)完成二进制补码的算术运算: ALU可完成布尔运算; 同时完成两个16bit运算组成:ALU组成框图见下图,ALU组成框图,DB15DB0,(2)累加器功能:存放参加运算的数据或运算结果组成:三个部分(保护位作用:数据位余量,防止溢出,迭代运算),累加器A和B的差别仅在于累加器A的3116位可以作为乘法器的一个输入。,其他处理单元 (3)桶形移位器 (4)乘/加单元
9、 (5)比较、选择和存储单元 (6)指数编码器,2.4 存储器和I/O空间 C54x的总存储空间为192K字C54x DSP的存储器空间可以分为三个单独选择的空间,即64K字的程序空间、64K字的数据空间和64K字的I/O空间。程序空间和数据空间可以驻留在片内或者片外,而I/O空间全部在片外。,1. 存储空间的分配 在C54x中,片内存储器的形式有DARAM、SARAM和ROM 3种,取决于芯片的型号。RAM一般安排到数据存储空间,但也可以构成程序存储空间,ROM一般构成程序存储空间,也可以部分地安排到数据存储空间。C54x DSP具有三个CPU状态寄存器位,影响存储器的配置,这三个状态位是处
10、理器模式状态寄存器(PMST)中的位:MP/ MC、OVLY和DROM。,(1) 位: 若 =0,则片内ROM映射到程序存储空间; 若 =1,则片内ROM不映射到程序存储空间。(2) OVLY位: 若OVLY=1,则片内RAM映射到程序和数据存储空间; 若OVLY=0,则片内RAM只映射到数据存储空间。(3) DROM位: 若DROM=1,则部分片内ROM映射到数据存储空间; 若DROM=0,则片内ROM不映射到数据存储空间。,C5402片内存储器:ROM(4K),DARAM(16K),4K,16K,说明:(1)DSP的工作方式控制寄存器中的OVLY(D5)位控制00003FFFH存储空间的片
11、内/片外分配;(2)DSP的工作方式控制寄存器中的MP/MC(D6)位控制F000FFFFH存储空间的片内/片外分配;(3)TMS320C5402的20条程序地址线可扩展外部程序储存器到1M字。共16页,每页64k字。,2.程序存储器多数C54x DSP的外部程序存储器可寻址64 K字的存储空间。它们的片内ROM、双寻址DARAM以及单寻址SARAM,都可以通过软件映像到程序空间。当存储单元映像到程序空间时,处理器就能自动地对它们所处的地址范围寻址。如果程序地址生成器(PAGEN)发出的地址处在片内存储器地址范围以外,处理器就能自动地对外部寻址。,(1)程序存储器-片内程序存储器片内存储器是否
12、作为程序存储器,取决于软件对PMST的状态位 MP/MC和OVLY的编程。TMS320C54X片内ROM容量范围2K48K字; 为了增强处理器的性能,对片内ROM再细分为若干块,这样就可以在片内ROM的一个块内取指的同时,又在别的块中读取数据。,片内高2 K字ROM中的内容是由TI公司定义的,这2K字程序空间(F800hFFFFh)中包含的内容:自举加载程序(从串行口、外部存储器、I/接口自举加载)256字A律压扩表256字律压扩表256字正弦函数值查找表中断向量表 自举加载程序,可以将用户代码调入到程序存储器的任何一个位置。MP/MC硬件复位时=0,CPU从FF80H单元(通常存放转移指令自
13、举加载程序)开始执行。,图2.9 TMS320C54x片内高2K字地址ROM的分块图,(2)程序存储器-片外程序存储器最多可扩展到1M, 分为015页,C5402访问程序存储器时,20位地址线代替16位的地址线,扩展程序存储器的页号由XPC寄存器设定。为了通过软件切换程序存储器的页面,有6条专用的影响XPC值的指令。,3. 数据存储器TMS320C54X片内外数据存储器容量最多达64K.(1) 片内数据存储器C54X片内数据存储器容量范围10K200K字节组成:片上ROM、DARAM、SARAM(表28)空间分配:,为了提高处理器的性能,片内RAM也细分为若干块。分块以后,用户可以在同一周期内
14、从同一DARAM中取出两个操作数,将数据写入另一块DARAM中。,(2)片外数据存储器TMS320C54X片外数据存储器容量范围最大为48K根据CPU产生的地址自动寻址,4I/O空间C54X器件除了程序和数据存储空间外,还提供了64K字的I/O空间,位于器件外部:有两条指令用来访问此空间(输入指令PORTR和输出指令PORTW)对I/O空间寻址;访问I/O空间是对I/O映射的外部器件进行访问,而不是访问存储器;所有C54x DSP只有两个通用I/O,即 和XF。为了访问更多的通用I/O,可以对主机通信并行接口和同步串行接口进行配置,以用作通用I/O。,2.5 中 断 系 统 2.5.1 中断系
15、统概述中断:CPU终止正在执行的程序,转去执行一个请求中断的内部或外部的中断服务程序,待处理完毕后,又返回到被终止的源程序处继续执行。这一过程称为中断;中断系统:为实现中断功能而设置的各种硬件和软件。,软件中断由程序指令(INTR,TRAP,RESET)请求的中断。 (2) 硬件中断由外围设备信号请求的中断。 受外部中断信号口触发的外部硬件中断 受片内外围电路信号触发的内部硬件中断,1. 中断分类从中断源分类:, 非屏蔽中断:不能由用户用软件来屏蔽的中断。特点:一旦有非屏蔽中断请求,CPU必须予以响应。用途:用于某些十分重要的事件发生,如:掉电;可屏蔽中断:用户根据需要可用软件开放或禁止CPU
16、响应中断。特点:软件指令控制,灵活方便。用途:一般事件处理。软件中断都是非屏蔽中断,可屏蔽中断可以通过ST1寄存器的INTM位和IMR寄存器来屏蔽。,从中断是否可屏蔽分类:,可屏蔽中断: (外部硬件中断)。 BRINT0、BXINT0、BRINT1和BXINT2(串行口中断)。 TINT0、TINT1(定时器中断)。 HPINT(主机接口)和DMAC0DMAC5。非屏蔽中断:所有的软件中断两个外部硬件中断: (复位)和 。,2.5.2 中断标志寄存器(IFR)和中断屏蔽寄存器(IMR) 1.中断标志寄存器(IFR)当一个中断出现的时候,IFR中相应的中断标志位置1,直到中断得到处理为止。,(1
17、) 共14个有效标志位(可屏蔽中断):外部中断4个(INT0-INT3)定时器中断2个(TINT0-TINT1)串口定时器4个(两发/两收)DMA中断3个(DMAC0. 4. 5)HPINT中断1个 ;,(2) IFR的操作 置位:当硬件或软件中断发生时,相应位置“1”(挂起)。 识别:CPU通过读IFR来识别挂起的中断。 清除:,可通过将IFR的当前内容回写到IFR的方法来清除所有未处理的中断。,2.中断屏蔽寄存器(IMR)是一个存储器映像的CPU寄存器,主要用来屏蔽外部和内部中断。,说明:(1) 共14个有效位(与IFR对应)(2) 当IMRi=0 屏蔽该中断;IMRi =1 不屏蔽该中断
18、,(3) IMR的操作,3.中断方式控制位(INTM)说明:a) INTM是CPU状态寄存器ST1中的一位(第11位),b) 功能:,c) 操作:,d) 该控制位不影响不可屏蔽中断 RS , NMI。,2.5.3 接收、应答及处理中断 1. 接收中断请求产生一个中断请求时,IFR中相应的中断标志位被置位。不管中断是否被处理器应答,该标志位都会被置位。当相应的中断响应后,该标志位自动被清除。一个中断源由硬件器件或软件指令请求。(中断源说明如P44表2-10所示.) (1) 硬件中断请求硬件中断有外部和内部两种。,(2) 软件中断请求软件中断都是由程序中的指令INTR、TRAP和 RESET产生的
19、。,注: PC=中断向量地址指针+中断向量地址 该指令允许执行任何可屏蔽中断 该指令不受ST1中INTM的影响 CPU执行INTR指令时,INTM=1,屏蔽其他可屏蔽中断,a) INTR K;,b) TRAP K;除INTM不变外,其它同INTR。注: 可实现中断嵌套 可用软件指令在TRAP中服中置位INTMc) RESET注: 功能:使处理器返回一个预定状态; 复位指令:可在程序的任何时候产生;该指令影响ST0, ST1,不影响PMST,2. 应答中断硬件或软件中断发送了一个中断请求后,CPU必须决定是否应答中断请求。软件中断和非屏蔽硬件中断会立刻被应答;屏蔽中断仅仅在如下条件被满足后才被应
20、答。(1) 优先级别最高(当同时出现一个以上中断时)。(2) 状态寄存器 ST1中的INTM位为0。(3) 中断屏蔽寄存器IMR中的相应位为1。CPU响应中断时,让PC转到适当的地址取出中断向量,并发出中断响应信号,清除IFR中相应的中断标志位。,3. 执行中断服务程序(ISR)(1) 将PC值(返回地址)存到数据存储器堆栈的栈顶;(2) 将中断向量的地址加载到PC;(3) 在中断向量地址上取指令;(4) 执行分支转移指令,转至中断服务程序(如果延迟分支转移,则在转移前先执行附加的指令);(5) 执行中断服务程序;(6) 中断返回,从堆栈弹出返回地址加到PC中;(7) 继续执行被中断了的程序。
21、,中断操作流程,(2.5.4),2.5.5 中断向量(地址) 组成:IPTR + 中断向量序号 2(9位) (5位)(7位) 注: 中断向量地址指针IPTR位于PMST的高9位 (D15D7),可用程序设置; 中断向量序号由相应的中断源提供。中断向量产生过程举例,例1:软硬件复位 分析: 复位时:IPTR全为“1” 软硬件复位中断号为0,用5bit表示 中断向量=1111,1111,1000,0000B=FF80H 中断服务程序:从FF80H单元开始存放 (通常放一条转移指令,转到应用程序的入口处),例2:已知外部中断1的中断服务入口地址为2500H,中断 向量指针IPTR为1F0H,试述向量中断实现过程。分析:INTI中断向量序号为17(11H)-教材P45,中断向量=1111,1000,0 100,0100B=F844H,B,本章学习要点回顾:,C54x 总线结构及中央处理单元的组成 存储器空间的分配 中断系统的工作原理,作业: p48 1. (5), 2,