TMS320C54xTMDSP硬件结构.ppt

上传人:max****ui 文档编号:11498083 上传时间:2020-04-25 格式:PPT 页数:229 大小:4.07MB
返回 下载 相关 举报
TMS320C54xTMDSP硬件结构.ppt_第1页
第1页 / 共229页
TMS320C54xTMDSP硬件结构.ppt_第2页
第2页 / 共229页
TMS320C54xTMDSP硬件结构.ppt_第3页
第3页 / 共229页
点击查看更多>>
资源描述
第2章TMS320C54xTMDSP硬件结构,2.1概述2.2基本结构和引脚功能2.3中央处理单元(CPU)2.4存储器和I/O空间2.5流水线2.6片内外设2.7节电模式2.8外部总线及扩展习题,2.1概述,C54xDSP是TMS320C5000TMDSP平台中最为成熟的芯片,已在通信等领域得到了广泛应用。本章介绍C54xDSP芯片的硬件结构。重点介绍其中TMS320VC5402(以下简称VC5402)芯片的一些资源特点。,2.2基本结构和引脚功能,2.2.1基本结构图2.1给出了C54xDSP的结构框图。C54xDSP的基本结构围绕8条总线(4条程序/数据总线和4条地址总线),有中央处理器(CPU)、存储器及片内外设与专用硬件电路三类。CPU包括算术逻辑单元(ALU)、累加器(ACC)、乘累加单元(MAC)、移位寄存器和寻址单元等。存储器包括片内ROM、单访问RAM(SARAM)和双访问RAM(DARAM)。片内外设与专用硬件电路包括片内各种类型的同步串口、主机接口、定时器、时钟发生器、锁相环及各种控制电路。,图2.1C54xDSP方框图,C54xDSP系列芯片种类很多,但体系结构基本一致。不同型号的C54xDSP芯片CPU结构与功能完全相同,其差异主要体现在存储器容量、片内外设、供电电压、速度以及封装上。表2.1列出了不同型号C54xDSP系列芯片的主要特征。其中,“*”表示该芯片有1个时分复用串口(TDM),“!”表示有1个缓冲串口(BSP)(C548/9有2个),“?”代表多通道缓冲串口(MCBSP),“#”代表不同的锁相环(PLL)选项,“”表示每个核有6通道直接存储器访问(DMA)器件。,表2.1C54xDSP芯片的主要特征,表2.1C54xDSP芯片的主要特征,VC5402是目前最流行的低成本DSP芯片型号,其基本结构和主要特点包括:*多总线结构。片内三套16bit数据总线(CB、DB、EB)和一套程序总线(PB)以及对应的4套地址线(CAB、DAB,EAB、PAB(4套总线可同时操作);*40bit算术逻辑单元ALU,包括40bit桶形移位器和2个40bit累加器A和B;*17l7bit乘法器和一个40bit专用加法器,可以在单周期内完成乘、加运算各一次;*比较选择存储单元(CSSU)有助于实现Viterbi算法;,*指数译码功能。单周期内从一个40bit累加器中算出指数;*两个地址产生器,8个辅助寄存器AR0AR7;*程序空间扩展到1M,数据空间和I/O空间各64K,20条地址线,16条数据线;*片内4Kl6bitROM,包含压扩表、256点正弦表、引导程序等;*片内16K16bit的双存取RAM;*单指令重复或指令块重复功能;*程序空间和数据空间的数据块移动指令;*可对32bit的长字操作;*一个指令内可以读23个操作数;,*6级流水完成一条指令操作:预取指、取指、译码、访问、读数、执行;*运算指令和存取指令并行执行;*条件存储指令;*迟延跳转和快速返回;*软件堆栈;*片内设备;*软等待产生器,数据组间切换可编程选项;*片内锁相环,分频和倍频功能;*2个多通道带缓冲同步串口;*增强的8bit主机接口(HPl);,*2个16bit定时器;*6通道DMA控制器;*IDLEl、IDLE2、IDLE3控制的3级低功耗等中断休闲状态,20A电流消耗;*片上JTAG仿真口;*3.3VI/O电压,1.8V核电压,工作电流平均值75mA,其中核45mA,IO约30mA;*100MIPS,指令周期10ns;*144脚PQFP表贴封装或144脚BGA封装,体积小,成本低。,2.2.2引脚功能C54xDSP的制造工艺为CMOS,生产型号不同其引脚个数也不同,下面以VC5402为例介绍其引脚功能,如表2.2所示。VC5402引脚按功能分为电源引脚、时钟引脚、控制引脚、地址引脚、数据引脚、外部中断引脚、通信端口引脚、通用I/O引脚等部分。,表2.2VC5402引脚功能,表2.2VC5402引脚功能,表2.2VC5402引脚功能,表2.2VC5402引脚功能,表2.2VC5402引脚功能,2.3中央处理单元(CPU),C54xDSP系列芯片的CPU主要由控制部件和运算部件组成,其中控制部件是C54xDSP芯片的中枢神经系统。C54xDSP的CPU的基本组成如下:*CPU的状态和控制寄存器;*算术逻辑单元(ALU);*2个40位累加器ACCA、ACCB;*40位桶形移位寄存器;*乘累加单元(MAC);*16位的临时寄存器(T);*16位的状态转移寄存器(TRN);*比较、选择和存储单元(CSSU);*指数编码器。,2.3.1CPU状态和控制寄存器C54xDSP有三个状态和控制寄存器:*状态寄存器0(ST0);*状态寄存器1(ST1);*处理器工作模式状态寄存器(PMST)。这些寄存器都是存储器映射寄存器,所以它们可以存放到数据存储器或者从数据存储器加载它们,ST0和ST1中包含各种工作条件和工作方式的状态,PMST中包含存储器的设置状态及控制信息。,(1)状态寄存器ST0和ST1。ST0和ST1寄存器的各位可以使用SSBX指令进行设置,使用RSBX指令进行清除。ST0的位的详细描述见表2.3所示。,表2.3状态寄存器ST0,表2.4状态寄存器ST1,(2)处理器工作模式状态寄存器(PMST)。PMST寄存器由存储器映射寄存器指令进行加载,例如STM指令。,表2.5状态寄存器PMST,表2.5状态寄存器PMST,表2.5状态寄存器PMST,表2.5状态寄存器PMST,2.3.2算术逻辑单元C54XDSP算术逻辑单元包括1个40位的ALU,1个比较、选择和存储单元CSSU(CompareSelectSaveUnit)和1个指数编码器。40位ALU可以实现绝大多数的算术和逻辑运算功能,且许多运算可以在1个周期内完成。ALU有2个输入端,1个输出端。当ALU进行算术运算时,分为两个16位的ALU使用,此时来自数据存储器、累加器或T寄存器的数据分别进入两个ALU。在这种情况下,1个周期内将同时完成两个16位的操作。ALU的运算结果通常被送往累加器A或累加器B。,CSSU单元是为实现数据通信与模式识别领域常用的快速加法/比较/选择ACS运算而专门设计的专用硬件电路。CSSU中的比较电路将累加器中的高16位与低16位比较,其结果分别送入状态转移寄存器TRN和状态比较寄存器TC,同时,结果也送入选择器,选择较大的数,并存于指令指定的存储单元中。指数编码器是专门为支持单周期EXP指令而设计的硬件电路。在定点运算中,经常涉及到整数的定标问题。将EXP指令与NORM指令配合使用,可以使得累加器数据的标准化操作非常方便快捷。,2.3.3累加器C54xDSP芯片有2个独立的40位累加器ACCA和ACCB可以存放ALU或MAC单元的运算结果,也可以作为ALU的一个输入。累加器结构如图2.2和图2.3所示,其中保护位可以防止迭代运算中(如自相关运算)产生的溢出。,图2.2C54xDSP累加器ACCA结构,图2.3C54xDSP累加器ACCB结构,AG、BG、AH、BH、AL和BL是存储器映射寄存器(MMR),它们的值可以通过压入或弹出堆栈进行保存或恢复。ACCA和ACCB的差别在于ACCA的(3116)位可以用作乘累加单元的一个输入。这些寄存器还可用于寻址操作。,2.3.4移位寄存器40位的桶形移位寄存器主要用于累加器或数据区操作数的定标:(1)在ALU运算前,对来自数据存储器的操作数或者累加器的值进行定标;(2)对累加器的值进行算术或逻辑移位;(3)对累加器归一化处理;(4)对累加器的值存储到数据存储器之前进行定标。移位位数范围为-1631,移位位数为正对应于左移,移位位数为负则对应于右移。40位的输出结果可以送到ALU的输入端。,移位数可以用一个立即数(-1615)形式定义,或者用状态寄存器ST1的累加器移位模式(ASM)字段(共5位)定义,或者用T寄存器中最低6位的值来定义。例如:SFTLA,+2;累加器A(ACCA)中的值逻辑左移2位ADDA,ASM,B;累加器A中的值移位(位数由ASM值确定)后与累加器B的值相加,结果放在累加器B(ACCB)中NORMA;标准化累加器A中的值(移位位数由T寄存器中最低6位的值确定),2.3.5乘累加单元乘累加(MAC)单元包括1个17位17位的乘法器和1个40位的专用加法器。MAC单元具有强大的乘累加功能,在一个流水线周期内可以完成1次乘法运算和1次加法运算。MAC单元中,乘法器能够进行有符号数、无符号数以及有符号数与无符号数的相乘运算,依据不同情况作以下三种处理:(1)如果是两个有符号数相乘,则每个16位操作数先进行符号扩展,在最高位前添加1个符号位(其值由最高位决定),扩展为17位有符号数后再相乘;(2)如果是无符号数乘以无符号数,则在两个操作数的最高位前面添加“0”,扩展为17位的操作数再相乘;,(3)如果是有符号数与无符号数相乘,有符号数在最高位前添加1个符号位(其值由最高位决定),无符号数在最高位前面添加“0”,然后两个操作数相乘。两个16位的二进制补码相乘会产生两个符号位,为了提高计算精度,在状态寄存器ST1中设置小数相乘模式FRCT=1,乘法器结果左移1位以去掉1个多余的符号位。在MAC单元中,加法器的输入一个来自乘法器的输出,另一个来自累加器A或B中的某一个输出。加法器的运算结果输出到累加器A或B中。有关加法器的舍入和饱和逻辑详见第三章MAC等指令详解。,2.4存储器和I/O空间,2.4.1C54xDSP存储器概述C54xDSP总共具有192K字16位的存储器空间。这些空间可分为三种专门的存储器空间,即64K字的程序空间、64K字的数据空间和64K字的I/O空间。一些C54xDSP芯片采用了分页扩展方法可访问8M的程序空间。C54xDSP体系结构的并行特性和片内RAM的双访问功能,允许C54xDSP器件在任何给定的机器周期内执行四个并行存储器操作:一次取指、两次读操作数和一次写操作数。,片外存储器具有寻址较大存储空间的能力,片内存储器寻址空间较小。但片内存储器具有如下优点:不需插入等待状态、低成本和低功耗。C54xDSP包含随机存取存储器(RAM)和只读存储器(ROM)。RAM可分为以下三种类型:双访问RAM(DARAM)、单访问RAM(SARAM)和两种方式共享的RAM。在多CPU核心器件和子系统中,DARAM或SARAM可以被共享。用户可以配置DARAM和SARAM为数据存储器或程序/数据存储器。C54xDSP片内存储器容量见表2.6。C54xDSP片内还有26个映射到数据存储空间的CPU寄存器和外设寄存器。,表2.6各种C54xDSP片内各种存储器的容量(单位:K字),注:用户可以配置双访问RAM(DARAM)和单访问RAM(SARAM)位数据存储器或程序/数据存储器,2.4.2存储器地址空间分配C54xDSP的存储器空间可以分为三个单独选择的空间,即程序、数据和I/O空间。在任何一个存储空间内,RAM、ROM、EPROM、EEPROM或存储器映射外设都可以驻留在片内或者片外。根据芯片的型号不同,C54xDSP包含RAM(DARAM、SARAM和两种方式共享的RAM)和ROM。C54xDSP具有三个CPU状态寄存器位,影响存储器的配置,这三个状态位是处理器模式状态寄存器(PMST)中的位:、OVLY和DROM。,(1)位:若=0,则片内ROM映射到程序存储空间;若=1,则片内ROM不映射到程序存储空间。(2)OVLY位:若OVLY=1,则片内RAM映射到程序和数据存储空间;若OVLY=0,则片内RAM只映射到数据存储空间。(3)DROM位:若DROM=1,则部分片内ROM映射到数据存储空间;若DROM=0,则片内ROM不映射到数据存储空间。,图2.4VC5402的存储器映射,VC5402可以采用分页扩展方法扩展程序存储空间。其程序空间可扩展到1024K(1MB)字。故VC5402有20根地址线,增加了一个额外的存储器映像寄存器程序计数器扩展寄存器(XPC)以及6条寻址扩展程序空间的指令,VC5402的扩展程序空间分成16页,每页64K字,如图2.5所示。,注:当OVLY=0时,115页的低32K字是可以获得的。当OVLY=1时,则片内RAM映射到程序空间页面的低32K字。,图2.5VC5402的扩展程序存储器映射,图2.6C5410的存储器映射,C5410可以扩展程序存储器空间。C5410采用分页扩展方法,使其程序空间扩展到8192K(8M)字。故它有23根地址线。同VC5402一样,它也拥有一个XPC及6条寻址扩展程序空间的指令,C5410中的扩展程序空间分成128页,每页64K字,如图2.7和图2.8所示。根据片内RAM是否映射到程序空间和数据空间以及OVLY的设置,可访问的外部扩展程序存储空间是不同的。,图2.7C5410的扩展程序存储器映射(OVLY=0时,片内RAM不映射到程序空间和数据空间),注:当片内RAM在程序空间有效时,所有对xx0000xx7FFFh区的访问,无论其页面为多少,均被映射到000000007FFFh的片内RAM。,图2.8C5410的扩展程序存储器映射(OVLY=1时,片内RAM映射到程序空间和数据空间),2.4.3程序存储器C54xDSP的外部程序存储器可寻址64K字的存储空间。它们具有片内ROM、DARAM、SARAM和双访问单访问两种方式共享的RAM,这些存储器都是可以通过软件映射到程序空间。当存储单元被映射到程序空间时,并且当地址处于片内存储器的范围之内时,处理器就能自动地对这些存储器单元进行访问。当程序地址产生单元(PAGEN)产生的地址处在片内存储器范围之外,处理器就能自动地对外部寻址。表2.7列出了C54xDSP几种可用的片内程序存储器的容量。,表2.7C54xDSP可用的片内程序存储器的容量(单位:K字),1程序存储器的可配置性MP/和OVLY位决定了哪个片内存储器在程序空间中可用。器件复位时,MP/引脚的逻辑状态被传送到PMST寄存器的MP/MC位。MP/MC位决定了是否使用片内ROM。(1)如果MP/=1,器件配置为微处理器,并且片内的ROM不可用。(2)如果MP/=0,器件被配置为微计算机,并且片内的ROM可用。DSP的MP/引脚仅仅在复位时被采样。用户可以通过软件来设置或清除PMST寄存器的MP/MC位,以便禁止或使能片内ROM。,2片内ROM的组织为了增强处理的性能,片内ROM可以细分和组织为若干块。例如,块组织可以让用户捕获来自于一个ROM块的指令,而不必牺牲来自不同块的数据访问(即可以同时在别的块中读取数据)。图2.9所示为几种C54xDSP的片内ROM的块组织。,图2.9片内ROM的块组织,根据C54xDSP的不同,ROM可以组织成容量为2K字、4K字或8K字的块。,3程序存储器地址映射和片内ROM的内容当DSP复位时,复位和中断向量都映射到起始地址为FF80h的第128页的程序空间首地址。复位后,这些向量可以被重新映射到程序空间中任何一个128字页的开头。这个特征使得很容易地将中断向量表从自举ROM中移出来,然后再从存储器映射中移去ROM。在C54xDSP的片内ROM中,128字被保留用于器件的测试。写到片内ROM并且在片内ROM执行的应用程序代码必须保留128字(FF00hFF7Fh)。,4片内ROM的代码内容和映射C54xDSP提供了各种容量的ROM(2K字、4K字、16K字、28K字或48K字)。容量大的片内ROM可以把用户的程序代码编写进去,然而片内高2K字ROM中的内容是由TI公司定义的。这2K字程序空间(F800hFFFFh)中包含如下内容:(1)自举加载程序。从串行口、外部存储器、I/O端口或者主机接口(如果有的话,自举加载。(2)256字律扩展表。(3)256字A律扩展表。(4)256字正弦函数值查找表。(5)中断向量表。,图2.10片内ROM程序存储器映射(高2K字的地址),2.4.4数据存储器C54xDSP的数据存储器包含多达64K16位字。除了SARAM和DARAM外,C54xDSP还可以通过软件将片内ROM映射为数据存储空间(DROM)。表2.8列出了几种C54xDSP可用的片内数据存储器的容量。,表2.8各种C54xDSP可用的片内数据存储器的容量(单位:K字),1数据存储器的可配置性数据存储器可以驻留在片内或者片外。片内DARAM映射为数据存储空间。对于C54xDSP,用户可以通过设置PMST寄存器的DROM位,将部分片内ROM映射到数据存储空间。这一部分片内ROM既可以在数据存储空间使能(DROM位置1),也可以在程序空间使能(MP/清0)。复位时,处理器将DROM位清0。通过使用单操作数寻址指令,包括32位长字操作数的指令,可以在单周期内完成对数据ROM的访问。而在使用双操作数寻址时,如果两个操作数驻留在同一块内,则需要2个周期才能完成对数据ROM的访问;如果操作数驻留在不同的块内,则只需1个周期就可以了。,2片内的RAM的组织为了提高处理器的性能,片内RAM也可细分成若干块。例如,分块组织可以让用户在同一个周期内从同一块DARAM中取出两个操作数,并将数据写入到另一块DARAM中。几种C54xDSP内的RAM的分块组织见图2.11所示。所有C54xDSP上的DARAM的起始1K字的块包括程序存储器映射CPU和外设寄存器,32位的暂存存储器DARAM和896个字的DARAM。,图2.11C5402/5410/5420的RAM分块组织,3存储器映射寄存器64K字的数据存储器空间包括器件的存储器映射寄存器,这些寄存器驻留在数据页的第0页(数据地址0000h007Fh)。第0页数据存储空间包含如下内容:(1)CPU的寄存器(共26个),可以不需要插入等待周期进行访问,见表2.9。(2)外设寄存器用于对外设电路进行控制和数据存放。这些寄存器驻留在地址0020h005F之间,并且具有一个专用的外设总线结构。对C54xDSP的外设寄存器的讲解,请参见2.6节。(3)暂存存储器RAM块(位于数据存储器的006h007Fh)包括32个字的DARAM,用于存储变量,有助于避免对大RAM块进行分段。,表2.9C54xDSPCPU寄存器,2.4.5I/O空间C54xDSP除了程序和数据存储器空间外,还有一个I/O存储器空间。I/O存储器空间是一个64K的地址空间(0000hFFFFh),并且在器件之外。可以使用两条指令(输入指令PORTR和输出指令PORTW)对I/O空间进行寻址。程序存储器和数据存储器空间的读取时序与I/O空间的读取时序不同,在于访问I/O是对I/O映射的器件进行访问,而不是访问存储器。,所有C54xDSP只有两个通用I/O,即和XF。为了访问更多的I/O,可以对主机通信并行接口和同步串行接口进行配置,以用作通用I/O。另外,还可以扩展外部I/O,C54xDSP可以访问64K字的I/O,外部I/O必须使用缓冲或锁存电路,配合外部I/O读写控制时序构成外部I/O的控制电路。DSP的I/O扩展的内容详见2.7节。,2.5流水线,C54xDSP有一个6级深度的指令流水线。这6级流水线是彼此独立的,允许指令的重叠执行。在任何一个机器周期内,可以有16条不同的指令在同时工作,每条指令可工作在流水线的不同阶段。这6级流水线结构的功能如下:(1)程序预取值加载一条获取的指令地址到程序地址总线(PAB)。(2)程序取值一个指令字从程序总线(PB)获取,并且加载到指令寄存器(IR)。这个过程完成一个由当前周期和上一次周期组成的取指序列。,(3)译码对指令寄存器(IR)的内容进行译码,以确定何种类型的存储器访问操作及数据地址产生单元(DAGEN)和CPU的控制信号。(4)寻址DAGEN输出指令的读操作数地址到数据地址总线(DAB)。如果指令具有第二个操作数,则也将相应的操作数地址加载到另一条数据总线(CAB)。间接寻址模式下的辅助寄存器和堆栈指针(SP)也被更新。这个功能是两阶段操作数读顺序的第一阶段。,(5)读操作数从数据总线(DB和CB)读数据操作数。这个功能完成了两阶段操作数读顺序的第二阶段,即完成了操作数读。同时,两阶段操作数写顺序开始。写操作数的数据地址加载到数据写总线(EAB)。对于存储器映射寄存器,读数据操作数通过DB总线从存储器中读取并写到所选定的存储器映射寄存器中。(6)执行操作数写序列通过使用数据写(EB)总线写数据来完成。指令在该阶段执行。,图2.12流水线的6个阶段,C54xDSP的流水线允许多条指令同时访问CPU资源,但是CPU的资源毕竟是有限的,所以当某个CPU资源被多于1个流水线阶段所占用时,就会产生流水线冲突。其中的一些流水线冲突可以由CPU自动插入延迟来解决,有些则需要程序员调整程序语句的次序或在两条有冲突的指令中间插入一定数量的NOP指令来解决。,2.6片内外设,C54xDSP系列中的外设并不完全相同,C54xDSP完整的片内外设配置包括:*通用输入输出(I/O)引脚;*定时器;*时钟发生器;*主机接口(HPI);*软件可编程的等待状态发生器;*可编程的分区转换模块;,*串行接口,包括标准同步串行接口、带缓冲的串行接口(BSP)、多通道缓冲串行接口(McBSP)和时分复用串行接口(TDM);*直接存储器访问(DMA)控制器。目前只有C5402、C5410,C5420具有DMA控制器模块。,不同类型的C54xDSP芯片具有不同的外设,但若有某种外设,就一定有相应的控制该外设的外设寄存器,这些寄存器可以从外设取数据或者将数据传输到外设,通过访问这些寄存器来操作和控制外设。外设寄存器映射在片内存储器20H5FH地址中。表2.10是VC5402的一些外设寄存器的地址映射表。有关串口、DMA等的映射寄存器数目众多,不一一例举。,表2.10VC5402的部分片内外设映射寄存器,2.6.1通用输入输出(I/O)引脚每种C54xDSP芯片都含有两个通用I/O引脚:XF和。XF是一个由软件控制的外部标志输出引脚。通过对状态寄存器ST1中的XF位清零,可以使XF外部引脚输出低电平,通过对ST1中的XF位置位可以使XF外部引脚输出高电平。为转移控制输入引脚,用于监视外部器件的状态。在汇编指令中,有判断引脚状态并产生相应条件转移的指令。一些C54xDSP芯片的多通道缓冲串口(McBSP)和主机接口(HPI)的一些引脚也可以作为通用I/O引脚。,2.6.2定时器C54xDSP有一个4bit预分频器的16bit的定时电路,可获得较大范围的定时器频率,定时器计数器在每一个时钟周期中减1,每当计数器减至0时产生一个定时中断。通过设置特定的状态,可使定时器停止、恢复运行、复位或禁止。VC5402有两个片内定时器。,1定时器寄存器片内定时器由三个存储器映射寄存器组成,即定时器寄存器(TIM)、定时器周期寄存器(PRD)和定时器控制寄存器(TCR)。(1)定时器寄存器(TIM)16位的存储器映射定时器寄存器(TIM)加载周期寄存器(PRD)的值,并随计数而减少。(2)定时器周期寄存器(PRD)16位的存储器映射定时器周期寄存器(PRD)用于重载定时器寄存器(TIM)。(3)定时器控制寄存器(TCR)16位的存储器映射定时器控制寄存器(TCR)包含定时器的控制和状态位,如图2.13所示。TCR各位的意义描述如表2.11所示。,图2.13TCR的各位,表2.11TCR各位的意义描述,2定时器工作过程C54xDSP定时器结构如图2.14所示。它由两个基本功能块组成,即主定时器模块(PRD和TIM)、预定标器模块(TCR中的TDDR和PSC等)及相应的控制电路。,图2.14C54xDSP定时器结构图,定时器由CPU提供时钟,定时器的工作受三个寄存器(TIM、PRD、TCR)的控制。CLKOUT时钟先经PSC预分频后,用分频的时钟对TIM作减1计数,当TIM减为0时,将产生定时器中断信号(TINT)。TINT被送往CPU,并在定时器输出管脚TOUT上产生一个脉冲,脉宽为一个主时钟周期,同时PSC和TIM重新装入预设的值,即计数器重载周期值。VC5402两个定时器分别有三个寄存器和相应的输出管脚TOUT和TOUT1,其中TOUT1只有当主机接口(HPI-8)被禁止时才有效。TOUT信号可为外设提供时钟。,在正常工作情况下,主定时模块中,当TIM减计数到0后,PRD中的内容自动地加载到TIM。当系统复位(SRESET输入信号有效)或者定时器单独复位(TRB输入信号有效)时,PRD中的内容重新加载到TIM。同样,预定标模块中当PSC减计数到0时,TDDR的内容加载到PSC。当系统复位或者定时器单独复位时,TDDR的内容重新加载到PSC。通过读TCR,可以读取PSC,但是它不能直接被写。每次当定时器计数器减少到0时,会产生一个定时器中断(TINT),定时器中断TINT的速率可由下式计算:,式中,tc为CPU时钟周期。初始化定时器时,采用以下步骤:(1)TSS=1,停止定时器;(2)载入PRD值;(3)重新载入TCR初始化TDDR,设置TSS=0和TRB=1来重载定时器周期,启动定时器。,使能定时器中断的操作步骤如下(ST1的中断模式INTM=1情况下):(1)设置中断标志寄存器(IFR)中的TINT=1,清除定时器中断;(2)设置中断屏蔽寄存器(IMR)中的TINT=1,激活定时器中断;(3)设置INTM=0,激活全部中断。复位时,TIM和PRD被设置为最大值FFFFh,定时器的分频系数(TDDR)清0,并且启动定时器。,2.6.3时钟发生器1时钟发生器时钟发生器为C54xDSP提供时钟信号。时钟发生器由一个内部振荡器和一个锁相环电路组成,可以通过晶振或外部的时钟驱动。锁相环电路能使时钟电源乘上一个特定的系数,得到一个内部CPU时钟,故可以选择一个频率比CPU时钟低的时钟源。时钟发生器可以由两种方法实现:(1)使用具有内部振荡电路的晶体振荡器。如图2.15所示。晶体振荡器电路连接到C54xDSP的X1和X2/CLKIN引脚。另外CLKMD引脚必须配置以使能内部振荡器。,图2.15外部晶体振荡器的连接,图2.16外部参考振荡器的连接,(2)使用外部时钟。如图2.16所示,将一个外部时钟信号直接连接到X2/CLKIN引脚,X1引脚悬空。,2时钟模式C54xDSP内部的锁相环(PLL)具有频率放大和时钟信号提纯作用,因此,PLL的外部频率源可以比CPU机器周期速度要低,这样可以降低因为高速开关时钟引起的高频噪声。有些器件具有硬件可配置的PLL电路,而有些器件具有的是软件可编程的PLL电路。C54xDSP的PLL硬件配置时钟模式是通过配置CLKMD1、CLKMD2和CLKMD3引脚来实现的。对于不使用PLL的器件,其CPU时钟频率为晶体振荡频率(或外部时钟频率)的一半。,软件可编程PLL具有高度的灵活性,并且包括提供各种时钟乘法器系数的时钟定标器、直接使能或禁止PLL的功能、用于延迟转换PLL时钟模式(直到锁定为止)的PLL锁定定时器。具有软件可编程PLL的DSP器件可以选用以下两种时钟方式之一来配置:(1)PLL模式输入时钟(CLKIN)乘以从0.2515共31个系数之一。这些系数通过使用PLL电路来获得。(2)DIV(分频器)模式输入时钟(CLKIN)除以2或4。当使用DIV方式时,所有的模拟电路,包括PLL电路都被禁止,以使功耗最小。紧接着复位后,时钟模式由3个外部引脚(CLKMD1、CLKMD2和CLKMD3)的状态所决定。与CLKMD引脚有关的模式见表2.12和表2.13。C5420没有CLKMD引脚,复位后C5420工作在旁路模式(PLL关)。,表2.12复位时时钟模式设置(C541B/C545A/C546A/C548/C549/C5410),表2.13复位时时钟模式设置(VC5402),复位后,软件可编程PLL可以编程为任何期望的配置。复位时,下面的始终模式引脚组合使能PLL:对于C5402,CLKMD(31)由000b变为110b,而对于其他C54xDSP,则变为101b。当使用这些时钟模式引脚组合时,内部PLL锁定定时器不工作,因此系统必须延迟释放复位,以便允许PLL锁定时间的延迟。复位后,可以对16位存储器映射时钟模式寄存器(CLKMD,地址为58h)编程加载PLL,以配置所要求的时钟方式。CLKMD是用来定义PLL时钟模块中的时钟配置,它的各位的功能见表2.14。由CLKMD的PLLNDIV、PLLDIV和PLLMUL位所确定的PLL的乘法系数见表2.15。,表2.14CLKMD寄存器各位的意义描述,续表,表2.15CLKMD寄存器的PLLNDIV、PLLDIV和PLLMUL位所确定的PLL的乘法系数,(3)时钟模式寄存器(CLKMD),如图2.17所示。16位存储器映射时钟模式寄存器(CLKMD)包含定时器的控制和状态位。CLKMD各位的意义描述如表2.14所示。,注:当工作在DIV模式时(PLLSTATUS为低),PLLMUL、PLLDIV、PLLCOUNT和PLLON/OFF是无关的,并且它们的内容是不确定的。,图2.17CLKMD的各位,2.6.4串行口1.串行口概述各种C54xDSP的芯片有不同的串口,但主要有以下4种:(1)标准同步串行口(SP)是高速、全双工串口,提供与编码器、A/D转换器等串行设备之间的通信。当一个C54xDSP芯片有多个同步串口时,它们是相互独立的。同步串口为收发双向缓冲的,单独由可屏蔽的外部中断信号控制,数据可由字节或字传送。(2)缓冲同步串口(BSP)在标准同步串行口的基础上增加了一个自动缓冲单元,并以整CLKOUT频率计时。它也是全双工和双缓冲的,能提供灵活的数据串长度,自动缓冲单元支持高速传送并降低服务中断开销。,(3)时分多路同步串口(TDM)是一个允许数据时分多路的同步串口,既能工作在普通同步串行口(SP)方式,也能工作在TDM方式下,在多处理器中得到广泛的应用。(4)多通道带缓冲同步串行口(McBSP)该种串行口具有通道数多,数据格式范围宽等特点。目前C54xDSP系列中只有VC5402、C5410和C5420有此串口。下面以VC5402为例详细介绍其串口的特性、结构、功能和工作原理。,2.VC5402串口VC5402有两个高速多通道带缓冲串行接口McBSP。1)McBSP特点多通道带缓冲的串口McBSP的硬件部分是基于标准串口的引脚连接界面,具有如下特点:*充分的双向通信;*双缓冲的发送和三缓冲的接收数据存储器,允许连续的数据流;*独立的接收、发送帧和时钟信号;*可以直接与工业标准的编码器,模拟界面芯片(AICS),其他串行AD,DA器件连接与通信;,*具有外部移位时钟发生器及内部频率可编程移位时钟;*可以直接利用多种串行协议接口通信,例如,T1E1,MVIP,H100,SCSA,IOM-2,AC97,IIS,SPI等;*发送和接收通道数多达128路;*宽范围的数据格式选择,包括8,12,16,20,24,32位字长;*利用律或A律的压缩扩展通信;*8位数据发送,其高位、低位先发送可选;*帧同步和时钟信号的极性可编程;*可编程内部时钟和帧同步信号发生器。,2)McBSP结构及工作原理McBSP结构如图2.18所示,包括数据通路和控制通路两部分,并且通过7个引脚与外部器件相连。DX数据发送引脚。DR数据接收引脚。CLKX发送时钟引脚。CLKR接收时钟引脚。FSX发送帧同步引脚。FSR接收帧同步引脚。,图2.18McBSP内部结构,在时钟信号和帧同步信号控制下,接收和发送通过DR和DX引脚与外部器件直接通信。C54xDSP内部CPU对McBSP的操作,利用16位控制寄存器,通过片内外设总线进行存取控制。数据发送过程为:写数据与数据发送寄存器DXR1,2;通过发送移位寄存器XSR1,2,将数据经引脚DX移出发送。,数据接收过程为:通过引脚DR接收的数据移入接收移位寄存器RSR1,2,复制这些数据到接收缓冲寄存器RBR1,2;复制数据到DRRl,2;由CPU或DMA控制器读出。这个过程允许内部和外部数据通信同时进行。如果接收或发送字长RXWDLEN被指定为8,12或16模式时,DRR2、RBR2、RSR2、DXR2、XSR2等寄存器不能进行写、读、移位操作。CPU或DMA控制器可对其余的寄存器进行操作,这些寄存器列于表2.16。,表2.16McBSP寄存器列表,McBSP的控制模块由内部时钟发生器、帧同步信号发生器、控制电路和多通道选择四部分构成。两个中断和四个同步事件信号控制CPU和DMA控制器的中断,CPU和DMA事件同步。图2.18中RINT、XINT分别为触发CPU的接收和发送中断;REVT、XEVT分别为触发DMA接收和发送同步事件;REVTA、XEVTA分别为触发DMA接收和发送同步事件A。,3)McBSP串口配置通过3个16位寄存器SPCR1,2和PCR进行McBSP串口配置。串口接收控制寄存器SPCRl结构如图2.19所示。,图2.19串口接收控制寄存器SPCR1结构,图中,R为读,W为写,+0表示为复位值为0。,SPCR1的位详细描述如下:第15位:DLB数字循环返回模式。DLB=0,废除;DLB=1,使能。第1413位:RJUST接收符号扩展和判别模式。RJUST=00,右位判DRR1,2最高位为0;RJUST=01,右位判DRRl,2最高位为符号扩展位;RJUST=10,左位判DRRl,2最低位为0;RJUST=11,保留。,第1211位:CLKSTP时钟停止模式。CLKSTP=0X,废除时钟停止模式,对于非SPI模式为正常时钟。SPI模式包括CLKSTP=10,CLKXP=0,时钟开始于上升沿,无延时;CLKSTP=10,CLKXP=1,时钟开始于下降沿,无延时;CLKSTP=11,CLKXP=0,时钟开始于上升沿,有延时;CLKSTP=11,CLKXP=1,时钟开始于下降沿,有延时。第108位:保留。,第7位:DXENA为DX使能位。DXENA=0,关断;DXENA=l,打开。第6位:ABIS模式。ABIS=0废除;ABIS=1使能。第54位:RINTM接收中断模式。RINTM=00,接收中断RINT由RRDY(字结束)驱动,在A-bis模式下由帧结束驱动;RINTM=01,多通道操作中,由块结束或帧结束产生接收中断RINT;RINTM=10,一个新的帧同步产生接收中断RINT;RINTM=11,由接收同步错误RSYNCERR产生中断RINT。,第3位:RSYNCERR接收同步错误。RSYNCERR=0,无接收同步错误;RSYNCERR=1,探测到接收同步错误。第2位:RFULL接收移位寄存器RSRl,2满。RFULL=0,接收缓冲寄存器RBRl,2未越限;RFULL=1,接收缓冲寄存器RBRl,2满,接收移位寄存器RSR1,2移入新字满,而数据接收DRR1,1未读。第1位:RRDY接收准备位。,RRDY=0,接收器未准备好;RRDY=1,接收器准备好从DRR1,2读数据。第0位:接收器复位,可以复位和使能接收器。=0,串口接收器被废除,并处于复位状态;=1串口接收器使能。注意:所有的保留位都读为0。如果写1到RSYNCERR就会设置一个错误状态,因此这位只能用于测试。,图2.20为串口发送控制寄存器SPCR2的结构。,图2.20串口发送控制寄存器SPCR2的结构,SPCR2的位详细描述如下:第1510位:保留。第9位:free全速运行模式。free=0,废除;free=1,使能。第8位:soft软件模式。soft=0,废除软件模式;soft=1,使能软件模式。,第7位:帧同步发送器复位。=0,帧同步逻辑电路复位,采样率发生器不会产生帧同步信号FSG;=1,在时钟发生器CLKG产生了(FPER+1)个脉冲后,发出帧同步信号FSG,例如,所有的帧同步计数器由它们的编程值装载。第6位:采样率发生器复位。=0,采样率发生器复位;GRST=1,采样率发生器启动。CLKG按照采样率发生器中的编程值产生时钟信号。,第54位:XINTM发送中断模式。XINTM=00,由发送准备好位XRDY驱动发送中断;XINTM=01,块结束或多通道操作时的帧同步结束,驱动发送中断请求XINT;XINTM=10,新的帧同步信号产生XINT;XINTM=11,发送同步错误位XSYNCERR,产生中断。第3位:XSYNCERR发送同步错误位。XSYNCERR=0,无同步错误;XSYNCERR=1,探测到同步错误。,第2位:发送移位寄存器XSR1,2空。=0,空;=1,不空。第1位:XRDY发送器准备。XRDY=0,发送器未准备好;XRDY=1,发送器准备好发送DXRl,2中的数据。第0位:发送器复位和使能位。=0,串口发送器废除,且处于复位状态;=1,串口发送器使能。,图2.21串口引脚控制寄存器PRC的结构,第1514位:保留。第13位:XIOEN发送通用I/O模式,只有SPCR1,2中的=0时才有效。XIOEN=0,DX,FSX,CLKX引脚配置为串口;XIOEN=1,引脚DX配置为通用输出,FSX,CLKX引脚配置为通用I/O。此时,这些引脚不能用于串口操作。第12位:RIOEN接收通用I/O模式,只有SPCRl,2中的=0时才有效。RIOEN=0,DR,FSR,CLKR,CLKS引脚配置为串口;,XIOEN=0,DX,FSX,CLKX引脚配置为串口;XIOEN=1,引脚DX配置为通用输出,FSX,CLKX引脚配置为通用I/O。此时,这些引脚不能用于串口操作。第12位:RIOEN接收通用I/O模式,只有SPCRl,2中的=0时才有效。RIOEN=0,DR,FSR,CLKR,CLKS引脚配置为串口;RIOEN=1,引脚DR和CLKS配置为通用IO。CLKS受接收器信号和RIOEN组合状态影响。第11位:FSXM帧同步模式。,FSXM=0,帧同步信号由外部器件产生;FSXM=1,采样率发生器中的帧同步位FSGM决定帧同步信号。第10位:FSRM接收帧同步模式。FSRM=0,帧同步脉冲由外部器件产生,FSR为输入引脚;FSRM=1,帧同步由片内采样率发生器产生。除SRGR中的GSYNC=1情况外,FSR为输出引脚。第9位:CLKXM发送器时钟模式。CLKXM=0,CLKX作为输入引脚输入外部时钟信号驱动发送器时钟;CLKXM=1,片上采样率发生器驱动CLKX引脚,此时,CLKX为输出引脚。,在SPI模式下(为非0值),CLKXM=0,McBSP为从器件,时钟CLKX由系统中的SPI主器件驱动,CLKR由内部CLKX驱动;CLKXM=1,McBSP为主器件,产生时钟CLKX驱动它的接收时钟CLKR。第8位:CLKRM接收时钟模式。SPCRl中DLB=0时,数字循环返回模式不设置。CLKRM=0,外部时钟驱动接收时钟;CLKRM=1,内部采样发生器驱动接收时钟CLKR。SPCRl中DLB=1时,数字循环返回模式设置。CLKRM=0,由PCR中CLKXM确定的发送时钟驱动接收时钟(不是CLKR),CLKR为高阻。CLKRM=1,CLKR设定为输出引脚,由发送时钟驱动,发送时钟由PCR中的CLKM位定义驱动。,第7位:保留。第6位:CLKS-STAT为CLKS引脚状态。当被选作为通用I/O输入时,反映CLKS引脚的电平值。第5位:DX-STAT为DX引脚状态。作为通用I/O输出时,DX的值。第4位:DR-STAT为DR引脚状态。作为通用I/O输入时,DR的值。第3位:FSXP发送帧同步信号极性。FSXP=0,帧同步脉冲上升沿触发;FSXP=1,帧同步脉冲下降沿触发。第2位:FSRP接收帧同步极性。,FSRP=0,帧同步脉冲上升沿触发;FSRP=1,帧同步脉冲下降沿触发。第1位:CLKXP发送时钟极性。CLKXP=0,发送数据在CLKX的上升沿采样;CLKXP=1,发送数据在CLKX的下降沿采样。第0位:CLKRP发送时钟极性。CLKRP=0,接收数据在CLKR的下降沿采样;CLKRP=1,接收数据在CLKR的上升沿采样。,4)接收和发送控制寄存器RCR1,2,XCR1,2接收和发送寄存器RCR1,2,XCR1,2分别配置接收和发送操作的各种参数。接收控制寄存器RCRl如图2.22所示。,图2.22接收控制寄存器RCR1,RCR1的位详细描述如下:第15位:保留。第148位:RFRLENl接收帧长度为1。RFRLEN1=0000000,每帧1个字;RFRLEN1=0000001,每帧2个字;RFRLENl=1111111,每帧128个字。第75位:RWDLENl接收字长为1。RWDLEN1=000,8位;RWDLEN1=001,12位;RWDLEN1=010,16位;,RWDLEN1=011,20位;RWDLEN1=100,24位;RWDLEN1=101,32位;RWDLEN1=11X,保留。第40位:保留。接收控制寄存器RCR2如图2.23所示。,图2.23接收控制寄存器RCR2,RCR2的位详细描述如下:第15位:RPHASE接收相位。RPHASE=0,单相帧;RPHASE=1,双相帧。第148位:RFRLEN2接收帧长度为2。RFRLEN2=0000000,每帧1个字;RFRLEN2=0000001,每帧2个字;RFRLEN2=1111111,每帧128个字。第75位:RWDLEN2接收字长为2。RWDLEN2=000,8位;,RWDLEN2=001,12位;RWDLEN2=010,16位;RWDLEN2=011,20位;RWDLEN2=100,24位;RWDLEN2=101,32位;RWDLEN2=11X,保留。第43位:RCOMPAND接收扩展模式。除了00模式外,当相应的RWDLEN=000时,这些模式被使能,8位数据。RCOMPAND=00,无扩展,数据转换开始于最高位MSB;RCOMPAND=01,8位数据,数据转换开始于最低位LSB;,RCOMPAND=10,接收数据利用率扩展;RCOMPAND=11,接收数据利用A率扩展。第2位:RFIG接收帧忽略。RFIG=0,第一个帧同步接收脉冲之后重新开始转换;RFIG=1,第一个帧同步脉冲之后,忽略帧同步信号(连续模式)。第10位:RDATDLY接收数据延时。RDATDLY=00,0位数据延时;RDATDLY=01,1位数据延时;RDATDLY=10,2位数据延时;RDATDLY=11,保留。,图2.24发送控制寄存器XCR1,XCR1的位详细描述如下:第15位:保留。第148位:XFRLEN1发送帧长度为1。XFRLEN1=0000000,每帧1个字;XFRLEN1=0000001,每帧2个字;XFRLEN1=1111111,每帧128个字。,第75位:XWDLENl接收字长为1。XWDLEN1=000,8位;XWDLEN1=001,12位;XWDLEN1=010,16位;XWDLEN1=01l,20位;XWDLEN1=100,24位;XWDLEN1=101,32位;XWDLEN1=11X,保留。第40位:保留。,发送控制寄存器XCR2如图2.25所示。,图2.25发送控制寄存器XCR2,XCR2的位详细描述如下:第15位:XPHASE发送相位。XPHASE=0,单相帧;XPHASE=1,双相帧。第148位:XFRLEN2发送帧长度为2。XFRLEN2=0000000,每帧1个字;XFRLEN2=0000001,每帧2个字;XFRLEN2=1111111,每帧128个字。第75位:XWDLEN2发送字长为2。XWDLEN2=000,8位;XWDLEN2=001,12位;,XWDLEN2=010,16位;XWDLEN2=01l,20位;XWDLEN2=100,24位;XWDLEN2=101,32位;XWDLEN2=11X,保留。第43位:XCOMPAND发送扩展模式。除了00模式外,当相应的XWDLEN=000时,这些模式被使能,8位数据。XCOMPAND=00,无扩展,数据转换开始于最高位MSB;XCOMPAND=01,8位数据,数据转换开始于最低位LSB;XCOMPAND=10,发送数据利用率扩展;XCOMPAND=11,发送数据利用A率扩展。,第2位:XFIG发送帧忽略。XFlG=0,第一个帧同步发送脉冲之后重新开始转换;XFIG=1,第一个帧同步发送脉冲之后,忽略帧同步信号(连续模式)。第10位:XDATDLY发送数据延时。XDATDLY=00,0位数据延时;XDATDLY=01,1位数据延时;XDATDLY=10,2位数据延时;XDATDLY=11,保留。,5)发送和接收工作步骤(1)复位McBSP串口。芯片复位=0引发的串口发送器、接收器、采样率发生器复位。当芯片复位完成后,串口仍然处于复位状态,。串口的发送器和接收器可用串口控制寄存器中和位分别独立复位。采样率发生器可用SPCR2中的位复位。,表2.17McBSP引脚复位状态,(2)复位完成后,串口初始化。设定串口控制寄存器SPCRl,2中的。如果刚刚复位完毕,不必进行这一步操作。按照表2.17中串口复位要求,编成特定的McBSP寄存器配置。等待两个时钟周期,以保证适当的内部同步。按照写DXR的要求,给出数据。设定=1,=1以使能串口。注意此时对SPCRl,2所写的值应该仅将复位改变到1,寄存器中的其余位与步骤相同。如果要求内部帧同步信号,则设定=1。等待两个时钟周期后,接收器和发送器被激活。,6)律/A律压缩扩展硬件操作压缩和扩展硬件允许使用律和A律格式进行数据的压缩及扩展。律和A律格式编码为8位码的字。压缩扩展的数据总是8位宽,因此相应的(R/X)WDLEN1,2必须设置为0,表示8位宽的串行数据流。如果压缩扩展功能被使能,而帧的任一相没有8位字长,然后就进行压缩扩展继续工作,字长如同为8位。,当使用压缩扩展时,发送数据按照指定的压缩扩展律进行编码,而接收数据被解码为2补码格式。为了使能压缩扩展和选择期望的格式,可以通过设置(R/X)CR2的(R/X)COMPAND位来实现(参见前面所述有关接收和发送控制寄存器RCR1,2和XCR1,2内容)。压缩数据发生在将数据从DXR1复制到XSR1的过程(发送数据的过程)。扩展数据发生在将数据从RBR1复制到DRR1的过程(接收数据的过程)。,7)可编程的时钟和帧McBSP有多种为接收器和发送器选择时钟及帧的模式。时钟及帧可以通过采样率发生器送到接收器和发送器。接收器和发送器可以独立选择外部时钟或帧。有关采样率发生寄存器SRGR1,2等的描述与设置,可从有关数据手册/文件或从CCS5000环境下的在线帮助中获得使用说明。,8)多通道选择配置用单相帧同步配置McBSP可以选择多通道独立的发送器和接收器工作模式,每一个帧代表一个时分多路(TDM)数据流,由(R/X)FRLENl指定的每帧的字数指明所选的有效通道数。当用TDM数据流时,CPU仅需要处理少数通道。为了节省内存和总线带宽,多通道选择总是独立地使能所选定的发送器和接收器。,图2.26McBSP多通道寄存器MCR1,MCR1的位详细描述如下:第159位:保留。第87位:RPBBLK接收区域B块划分。RPBBLK=00,块1,对应通道1631;RPBBLK=01,块3,对应通道4863;RPBBLK=10,块5,对应通道8095;RPBBLK=11,块7,对应通道112127。第65位:RPABLK接收区域A块划分。RPABLK=00,块0,对应通道015;RPABLK=01,块
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!