第二章DSP芯片结构和CPU外围电路讲课内容:1)TMS320C55x处理器的特点2)TMS320C55x处理器的CPU结构3)TMS320C55x处理器的CPU外围电路2.1DSP芯片结构第二章DSP芯片结构和CPU外围电路第二章DSP芯片结构和CPU外围电路2.1DSP芯片结构2.1.1TMS320C55x处理器的特点采用改进的哈佛结构。1条读程序数据总线(PB),5条数据总线(BB,CB,DB,EB,FB),和他们对应的6条地址总线(PAB,BAB,CAB,DAB,EAB,FAB)40位和16位的算术逻辑单元(ALU)各1个,1个40位的移位器4个40位的累加器(AC0,AC1,AC2,AC3)和(T0,T1,T2,T3)17×17比特的硬件乘法器和一个40比特专用加法器的组合(MAC)比较、选择和存储单元数据地址产生单元(DAGEN)和程序地址产生单元(PAGEN)数据空间和和程序空间位同一物理空间,采用统一编址第二章DSP芯片结构和CPU外围电路2.1.2TMS320C55xCPUCPU有4个功能单元:指令缓冲单元(I单元),程序流程单元(P单元),地址数据流程单元(A单元)和数据计算单元(D单元)CPU结构示意图第二章DSP芯片结构和CPU外围电路1、指令缓冲单元(IUnit)由指令缓冲队列(IBQ)和指令译码器构成。I单元从程序数据总线接收程序指令代码(每次接收32比特程序代码)放到IBQ(最多可存放64字节的未译码指令)中。指令译码器从指令缓冲队列中取指令(每次取6字节的程序代码)进行变长8/16/24/32/48位)指令译码。译码后的数据分别送到P单元,A单元,D单元处理。指令缓冲单元(I单元)图第二章DSP芯片结构和CPU外围电路2、程序流程单元(PUnit)组成:P单元由程序地址产生逻辑电路和一组寄存器组构成。主要功能产生所有I单元读取指令所需的24比特程序地址、控制指令读取顺序。一般情况下,产生的都是(连续)顺序地址。在遇到指令要求读取非连续地址程序代码时,也可以根据来自I单元的立即数和D单元的寄存器值产生所需的地址,并将产生地址送到PAB。程序流程P单元结构图第二章DSP芯片结构和CPU外围电路在程序流程单元中,控制和影响程序地址的寄存器有5类:1)程序流程寄存器,包括:PC—程序计数器,RETA—返回地址寄存器,CFCT—控制流程关系寄存器;2)块重复寄存器,包括:BRC0、BRC1—块重复寄存器0和1、RSA0、RSA1—块重复起始地址寄存器,REA0、REA1—块重复结束地址寄存器0和1;3)单重复寄存器,包括:RPTC—单重复计数器,CSR—计算单重复寄存器;4)中断寄存器,包括:IFR0、IFR1(标志),IER0、IER1(使能),DBIER0、DBIER1(调试中断使能);5)状态寄存器:ST0_55、ST1_55、ST2_55、ST3_55第二章DSP芯片结构和CPU外围电路3、地址流程单元(AUnit)功能和组成:产生读写数据空间的地址。由数据地址产生电路(DAGEN),16比特的算术逻辑ALU电路和一组寄存器构成。DAGEN可以根据I单元的立即数和本A单元的寄存器数据产生读写数据空间的所有地址。在间接寻址中,还需要有P单元来指示采用那种寻址模式。地址流程单元结构图第二章DSP芯片结构和CPU外围电路A单元16位ALU的功能能接收I单元数据,又能够和存储器、I/O空间、A单元寄存器、D单元寄存器和P单元寄存器进行数据交换,完成算术、逻辑、位操作、移位、测试、旋转等操作。A单元包括的寄存器有下列4种类型:1)数据页寄存器(DataPageRegister):DPH、DP、(接口数据页)PDP2)指针寄存器(Pointers):CDPH、CDP—系数数据、SPH、SP、SSP—栈、XAR0~XAR7—辅助3)循环缓冲寄存器(CircularBufferRegisters):BK03、BK47、BKC—大小,BSA01、BSA23、BSA45、BSA67、BSAC—起始地址4)临时寄存器(TemporaryRegisters):T0~T3第二章DSP芯片结构和CPU外围电路4、数据计算单元(DUnit)D单元包括了CPU的主要计算部件,能够完成高效的计算功能。组成:移位器、40比特算术逻辑ALU电路、两个乘累加器(MAC)和若干寄存器组构成。移位器D单元移位器能够接收来自I单元的立即数,与存储器、I/O空间、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信。此外,还向D单元的ALU和A单元的ALU提供移位后的数据。数据计算单元结构图第二章DSP芯片结构和CPU外围电路2.1.3CPU外围电路:除CPU以外的一些功能单元和外部接口。时钟发生器(Clock)定时器(Timer)多通道缓冲串口(McBSP)主机接口(EHPI)外部存储器接口(EMIF)通用输入/输出口(GPIO)片内存储区(Momery)DMA控制器高速指令缓冲存储器(Instructioncache)第二章DSP芯片结构和CPU外围电路2.2时钟发生器1、工作模式(1)功能将输入时钟CLKIN变为CPU及外围电路所需要的工作时钟。通过时钟输出脚CLKOUT输出,供其它器件使用。(2)组成时钟发生器由一个数字锁相环(DPLL)和一个模式控制寄存器(CLKMD)组成。DPLLCLKMD寄存器CLKINpinCLKOUTpinCLKMDpin第二章DSP芯片结构和CPU外围电路(3)两种工作模式(模式控制寄存器标志位的定义)若PLL_ENABLE=0,DPLL工作于旁路(BYPASS)模式。若PLL_ENABLE=1,DPLL工作于锁定(LOCK)模式。旁路模式中:DPLL只对输入时钟CLKIN作简单的分频,分频次数由BYPASS_DIV字段确定。若BYPASS_DIV=00,为一分频,即CLKOUT等于CLKIN。若BYPASS_DIV=01,为二分频,即CLKOUT等于CLKIN的一半。若BYPASS_DIV=1x,为四分频,即CLKOUT等于CLKIN的四分之一。第二章DSP芯片结构和CPU外围电路锁定模式中DPLL锁相环对输入时钟CKLIN进行跟踪锁定,可得到如下输出的时钟频率:PLL_MULT:锁定模式下的倍频次数,取值0到31PLL_DIV:锁定模式下的分频次数,取值0到3。CLKOUT=PLL_MULTPLL_DIV+1×CLKIN1PLL_MULT≤31时CLKOUT=1PLL_DIV+1×CLKINPLL_MULT=0或1时5比特2比特第二章DSP芯片结构和CPU外围电路4、使用方法(1)DSP复位对时钟发生器的影响在DSP复位期间和复位后,DPLL工作于旁路模式,此时的分频次数(BYPASS_DIV)由CLKMD管脚上的电平确定,从而确定了它的输出时钟频率。若CLKMD管脚为低电平,则BYPASS_DIV=00,CLKOUT等于CLKIN。若CLKMD管脚为高电平,则BYPASS_DIV=01,CLKOUT等于CLKIN的一半。第二章DSP芯片结构和CPU外围电路(2)失锁对时钟发生器的影响锁相环是通过对输入基准时钟进行跟踪锁定来稳定其输出时钟的,在锁定之后,由于某些因素使其输出时钟发生偏移,即失锁。发生失锁时,DPLL的动作由IOB字段控制:若IOB=1,时钟电路会自动切换到旁路模式,并重新开始跟踪锁定过程,在锁定后又自动切换回锁定模式。若IOB=0,DPLL会继续输出时钟,而不管锁相环是否失锁第二章DSP芯片结构和CPU外围电路(3)省电状态对时钟发生器的影响当时钟发生器退出省电(IDLE)状态时,不管进入省电状态之前工作于什么模式,DPLL都会切换到旁路模式,并由IAI字段确定进一步操作:若IAI=1,DPLL将重新开始整个跟踪锁定过程。若IAI=0,DPLL将使用与进入省电模式之前相同的设置进行跟踪锁定第二章DSP芯片结构和CPU外围电路5、DPLL模式控制寄存器CLKMD(1)BREAKLN为失锁指示(只读)0:表示由于某种原因引起PLL失锁;1:表示处于锁定状态,或发生对CLKMD寄存器的写操作。(2)LOCK为锁定模式指示(只读)0:表示DPLL处于旁路模式1:表示DPLL处于锁定模式第二章DSP芯片结构和CPU外围电路6、时钟发生器应用举例问题:假定输入时钟频率CLKIN为20MHz,而DSP需要的工作时钟为160MHz。解:(1)需要将时钟发生电路设为锁定模式;(2)根据倍频次数PLL_MULT与分频次数PLL_DIV的关系CLKOUT=PLL_MULTPLL_DIV+1×CLKIN1PLL_MULT≤31时PLL_MULT=8×(PLL_DIV+1)PLL_DIV和PLL_MULT为(0,8),(1,16),(2,24)或(3,32)第二章DSP芯片结构和CPU外围电路(3)取PLL_DIV和PLL_MULT为(0,8),要求DPLL失锁或退出省电状态后重新锁定,即IOB=IAI=1。例程如下:MOV#0X6413,PORT(#CLKMD)01100100000100111000100011第二章DSP芯片结构和CPU外围电路2.3通用定时器一、组成和框图C5509DSP片内有两个定时器:Timer0,Timer1;具有定时或计数功能。计数器在每个时钟周期减1,当减到0就产生一个输出信号。该输出信号可用于中断CPU或触发DMA传输(称为定时器事件)。定时器由时钟、控制寄存器、计数器和定时器事件等部分构成。第二章DSP芯片结构和CPU外围电路4比特预定标器TIN/TOUT16比特主计数器CPU中断DMA同步事件CPU时钟1、时钟部分可采用内部CPU时钟;也可采用来自TIN/TOUT管脚的外部输入时钟。2、两个定时器一个用于定时器工作(递减方式)一个用于CPU读写(设置定时长度)3、定时器事件产生三个输出信号:CPU中断、DMA同步事件、TIN/TOUT管脚输出信号。第六章DSP芯片内的CPU外围电路二、时钟部分定时器的工作时钟可来自DSP内部的CPU时钟,也可来自TIN/TOUT管脚输入的外部时钟。具体时钟源的选择和TIN/OUT管脚的功能由控制寄存器TCR中的FUNC字段确定。FUNC=00时,TIN/TOUT为高阻态,时钟源为CPU时钟。该模式为复位后的缺省模式。FUNC=01时,TIN/TOUT为定时器输出,时钟源为CPU时钟,可以输出时钟信号或脉冲信号。FUNC=10时,TIN/TOUT为通用输出,时钟源为CPU时钟。此时,TIN/OUT作为通用输出,其电平由控制寄存器TCR中的DATOUT字段确定。FUNC=11时,TIN/TOUT为时钟源输入,定时计数器将在其上升沿递减。第二章DSP芯片结构和CPU外围电路三、计数器部分C5509定时器的计数器分为两类:一类用于定时器工作,一类用于CPU设置定时长度。定时长度为20比特:4比特的预定标器和16比特的主计数器。其中,4比特的预定标值由预定标寄存器PRSC定义:16比特主定时器的值由定时周期寄存器PRD定义。第二章DSP芯片结构和CPU外围电路定时器的工作方式设定时器的工作时钟周期为Tclock,则定时长度T可用下式计算:定时器的设置步骤CPU将定时长度的预定标值和周期值分别写入TDDR和PRD将控制寄存器TCR中的TLB设为1,使定时器把PRD值和TDDR值分别拷贝到它的工作寄存器TIM和PSC中。把控制寄存器TCR中的TSS字段设为0启动定时器。T=Tclock×(PRD+1)×(TDDR+1)第二章DSP芯片结构和CPU外围电路四、定时器控制寄存器TCRIDLE_EN:省电控制使能位,0:禁止省电模式,1:允许省电模式INT/EXT:时钟源从内部切换到外部的指示标志,当时钟源从内部切换到外部要检测此位来决定是否准备好使用外部时钟。0:定时器没准备好使用外部时钟,1:定时器准备好使用外