TMS320C54x的硬件结构原理.ppt

上传人:牧羊曲112 文档编号:6522018 上传时间:2023-11-08 格式:PPT 页数:178 大小:3.14MB
返回 下载 相关 举报
TMS320C54x的硬件结构原理.ppt_第1页
第1页 / 共178页
TMS320C54x的硬件结构原理.ppt_第2页
第2页 / 共178页
TMS320C54x的硬件结构原理.ppt_第3页
第3页 / 共178页
TMS320C54x的硬件结构原理.ppt_第4页
第4页 / 共178页
TMS320C54x的硬件结构原理.ppt_第5页
第5页 / 共178页
点击查看更多>>
资源描述

《TMS320C54x的硬件结构原理.ppt》由会员分享,可在线阅读,更多相关《TMS320C54x的硬件结构原理.ppt(178页珍藏版)》请在三一办公上搜索。

1、第二章 TMS320C54x的结构原理,本章主要介绍TMS320C54X DSP的内部结构和工作原理,包括CPU结构、总线结构、存储体结构和外围设备等。重点:CPU和外设的寄存器设置,第二章 TMS320C54x的结构原理,本章内容:TMS320系列DSP概述C54x数字信号处理器总线结构存储空间中央处理器程序存储器地址生成方式,流水线外围电路串行口外部总线C54x引脚信号说明,1.TMS320系列DSP概述,TI市场地位:1.DSP产品全球第一2.模拟产品全球第一3.无线产品全球第一4.图形计算器全球第一5.硬盘产品全球第一,TMS320系列DSP的分类和用途,(1)TMS320C2000系

2、列 集成了flash存储器、高速A/D转换器以及可靠的CAN模块及数字马达控制的外围模块,适用于运动控制领域。(2)TMS320C5000系列 包括TMS320C5X/C54X/C55X 成本低,经济性好,主要用于个人电子类产品。(3)TMS320C6000系列 TMS320C62X/C67X,C64x,在时钟频率为1.1GHz时,每秒可执行90亿条指令,适合进行复杂运算处理。,(1)TMS320C2000系列,(包括:C20X,C24X,C28三大类)2000系列,又称为DSP控制器。在一片DSP芯片上集成了FLASH存储器、高速A/D转换器以及数字马达控制模块,所以2000系列特别适用于电

3、动机、变频器等一些高速实时工控产品的数字化控制。,TMS320C20X,20X是2000系列中早期的产品主要特点:处理能力强:指令周期最短为25ns,运算速度达到 40MIPSFlash存储器:是最早使用闪存的DSP芯片低功耗:在5v电压下工作,消耗电流为1.9mA/MIPS;在3.3v电压下工作,消耗电流为1.1mA/MIPS。,TMS320C24X,24X系列在20X的基础上,增加功能:增加16路10位A/D转换器多个通用定时器,和一个监视定时器(Watchdog)16个PWM(脉宽调制)输出通道比较单元、编码电路等,TMS320C28X,28X系列是目前数字控制领域中性能最好的DSP芯片

4、。与24X相比做了如下的改进:32位的数据总线(运算速度可达400MIPS)12位的A/D存储空间增大降低功耗(DSP核工作电压为1.8v;外设工作电压为3.3v),General Purpose Input Output,多通道缓冲串行口。是在标准串行接口的基础之上对功能进行扩展,因此,具有与标准串行接口相同的基本功。,SCI是用于多处理器之间的异步串行通信,SPI则是用于CPU与外设之间的同步串行通信,(2)TMS320C5000系列,(包括:C54X,C55X两大类)这两类芯片完全兼容,所不同的是C55X具有更高的性能和更低的功耗。,TMS320C55X,C55X DSP是一款低功耗、高

5、性能处理器,主要应用领域是3G手机、PDA、MP3、数码相机等手持便携式数字设备。它具有省电、实时性高的优点,同时外部接口丰富,能满足大多数嵌入式应用的要求,TMS320C55X主要特点,16位定点DSP,处理速度为600MIPS片上外设丰富:,实时时钟RTCMcBSP接口USB2.0接口MMC/SD接口I2C接口UART接口,TMS320C55X主要特点(续),大容量RAM(128K)和ROM(32K);功耗更低,1.26v的内核工作电压,3.3v外设工作电压;价格便宜,第一款低于5美元的双核DSP;采用新型生产工艺,芯片体积小。,(3)TMS320C6000系列,(主要包括C62X,C64

6、X,C67X三类)该系列DSP采用了与上述系列DSP不同的内部 结构设计,使得DSP能够获得极高的运行速度:指令周期最小为3.3ns,运算能力为2400MIPS。,(4)TMS320C5000+ARM7,DSP芯片单独支持音视频编解码处理,优势在于编解码能力强,支持的媒体类型非常丰富,提供多种最流行的录制压缩及播放格式,包括MPEG-4、MPEG-1、MPEG-2、DivX、WMV WMA V9、QuickTime 6、H.264、AAC-LC、MP3等等。而ARM处理器负责系统处理及提供外围设备接口。这样设计的好处是,可选择输入设备较多,后期升级潜力大。,DSP+ARM RISC多应用于多媒

7、体设备,TI DSP命名方式,DSP常见封装形式,DIP(Double In-Line Package)-双列直插式封装。,DSP常见封装形式(续),PGA(Pin Grid Array Package)-插针网格阵列封装。芯片封装形式在芯片的内外有多个方阵形的插针,每个方阵形插针沿芯片的四周间隔一定距离排列。,DSP常见封装形式(续),QFP(Quad Flat Package)-扁平式封装的芯片引脚之间距离很小,管脚很细,一般大规模或超大型集成电路都采用这种封装形式。,2.TMS320C54x数字信号处理器,C54x数字信号处理器是TI公司1996年推出的 新一代定点数字信号处理器。它采用

8、先进的修 正哈佛结构,片内共有8条总线(1条程序总线、3条数据总线和4条地址总线),高度并行的算 术逻辑单元ALU,专用硬件逻辑,片内存储 器,片内外设,再加上专用的指令系统,使 C54x芯片速度更高,操作更灵活,非常适用于 远程通信等实时嵌入式应用的需要。,C54x的硬件结构框图,C54xDSP特点,改进的哈佛结构和8总线结构:使处理器的性能大大提高,实现高度并行操作。例如:可以在一条指令中,同时执行2次读操作和1次写操作。,C54xDSP特点(续),独立的DMA总线和控制器:独立的DMA总线,与CPU的程序、数据总线并行工作,在不影响CPU工作的条件下,DMA速度目前已达800Mbyte/

9、s,C54xDSP特点(续),数据地址发生器(DAG):在通用CPU中,数据地址的产生和数据的处理都由ALU来完成在DSP中,设置了专门的数据地址发生器(实际上是专门的ALU),来产生所需要的数据地址,节省公共ALU的时间,C54xDSP特点(续),PLL(phase-locked loop)锁相环定时器(Timer)软件可编程等待状态发生器JTAG(符合IEEE1149.1标准)仿真接口,电气电子工程师协会(InstituteofElectricalandElectronicsEngineers),3.总线结构,TMS320C54x DSP采用该进的哈佛结构:具有八组总线;其中独立的程序总线

10、和数据总线允许同时读取指令和操作数,实现高度的并行操作。采用各自分开的数据总线分别用于读数据和写数据,允许CPU在同一个机器周期内进行两次读操作数和一次写操作数。,3.总线结构,八组16-bit总线:程序总线(PB)传送从程序存储器来的指令代码和立即数。三组数据总线(CB,DB和EB)连接各种元器件,如CPU、数据地址产生逻辑、程序地址产生逻辑,片内外设和数据存储器。CB和DB总线传送从数据存储器读出的操作数。EB总线传送写入到存储器中的数据。四组地址总线(PAB,CAB,DAB和EAB)传送执行指令和读写数据所需要的地址。,3.总线结构,C54X利用数据地址发生器可在每个周期产生两个数据的存

11、储地址。PB总线可将程序空间的操作数据送至乘法器加法器,以进行乘法累加操作;或送至数据空间的目的地址以执行数据移动指令。这一特性与一个机器周期可实现寻址两次的存储器双操作存储器(DARAM)相结合,支持单周期、3操作数指令的执行。,各种读/写方式用到的总线,4.存储器与存储空间,C54x存储空间为192k,由3个独立的可选择空间组成:程序存储空间(64k)、数据存储空间(64k)和I/O空间(64k)。C54x的存储空间可以在片内也可以在片外,在片内可由片内存储器提供;片外由扩展存储器提供。片内存储器形式分为两类:ROM和RAM。片内RAM也分为两类:单寻址RAM(SARAM)、双寻址RAM(

12、DARAM),片内存储器介绍,(1)片内ROMC54x系列DSP按照款式不同,片内ROM大小也不同:对于较小的ROM(2k)一般只在ROM里面存放一个引导程序,用来将程序引导至片内或片外的快速RAM中。对于较大的ROM,既可以把ROM安排为程序存储空间,又可以安排为数据存储空间。,片内存储器介绍(续),(2)片内RAM(SARAM,DARAM)SARAM(single access RAM)单操作RAM,由若干块组成,每个块在一个机器周期只能被访问一次(读/写),常被安排为数据存储空间,也能被安排为程序存储空间。DARAM(double access RAM)双操作RAM,由若干块组成,每个块

13、在一个机器周期可以被访问两次读或者写操作。常被安排为数据存储空间,也能被安排为程序存储空间。,片内ROM空间分配,片内ROM既可以作为程序存储空间又可以作为数据存储空间,但是在ROM的高2K字空间中,厂家事先固化了相关内容,对这部分空间用户不能随意存储其他内容。,片内ROM的分块操作,为了增强处理器的性能,可以对片内ROM进行分块,这样就能在片内ROM的一个块内取指的同时又能在另一个块内取数。根据不同DSP的片内ROM容量不同,片内ROM可以分为2k字、4k字或8k的块。,片内RAM的分块操作,片内RAM也可以分为若干块,分块后,用户可以在一个周期内从一个DARAM块中取出两个操作数,同时可在

14、另一个RAM块中存数。根据不同DSP的片内RAM容量不同,片内RAM可以分为1k字、2k字或8k的块。,程序存储空间和数据存储空间,程序存储空间:存放要执行的指令和执行指令时要用的系数表。数据存储空间:存放执行指令所要用的数据。通过“处理器工作方式状态寄存器”(PMST)来设定程序/数据存储空间的分配情况(片外、ROM和RAM),PMST和存储空间分配关系,PMST中相关位:MP/MC,OVLY,DROM,数据存储空间分页管理,数据空间的分页管理:所谓分页就是把64k字的存储空间分为512页(0页511页)每页128字空间在数据存储空间的第0页上(0000H007FH)固定存放的是存储器映射寄

15、存器和暂存器的内容,程序存储空间分页管理,如果程序存储空间只需要64k的空间,则不分页。如果需要扩展程序存储空间,则采用分页扩展的方法:比如C5402可以将程序存储空间扩展至1M(1024k)字,扩展后的程序存储空间被分为16页(0页15页),每页64k字的空间。,C5402分页扩展程序存储空间图(1),当OVLY=0时(RAM不安排作为程序存储空间),程序存储空间被分为16页,每页64k空间,按页号寻址。页号由“程序计数器扩展寄存器”XPC提供:XPC=0表示选中第0页,XPC=1表示选中第1页,C5402分页扩展程序存储空间图(2),当OVLY=1时(RAM安排作为程序存储空间)每页被分为

16、两部分:公共32k字(低32k字)和独立32k字(高32k字)。对于每页的公共32k字,全部映射到片内RAM中;对于独立32k字仍然按页寻址,页号由XPC指定。,C5402分页扩展程序存储空间图(3),当MP/MC=0时(片内ROM被安排作为程序存储空间)存储空间的第0页必须被安排在片内ROM中。XPC(程序计数器扩展寄存器)映射在数据存储空间的001E单元中,每次机器复位时,XPC都初始化为0。,存储器映射CPU寄存器,把CPU寄存器映射到存储空间的好处是:在对CPU寄存器寻址时不需要插入等待周期,直接在存储器内部就可以完成,提高了运行速度。存储器映射CPU寄存器的名称及地址见书P38表2-

17、6,存储器映射CPU寄存器功能简介(1),辅助寄存器(AR0AR7):8个16位的辅助寄存器可以由中心算术逻辑单元CALU访问,也可以由辅助寄存器算术单元ARUA修改,主要功能是产生16位的数据地址,也可以作为通用寄存器和计数器使用。T寄存器(TREG):主要用于存放乘法指令的一个乘数,也可以为移位指令存放移位计数,还可以存放指数运算指令EXP的指数值等。,存储器映射CPU寄存器功能简介(2),状态转移寄存器(TRN):在执行比较指令CMPS时,可以通过该寄存器位值的变化来判断比较结果。堆栈指针寄存器(SP):用于存放栈顶的16位地址。循环缓冲区长度寄存器(BK):用来在循环寻址时确定循环缓冲

18、区的大小。,存储器映射CPU寄存器功能简介(3),块循环寄存器(BRC,RSA,REA):在执行块循环指令时由BRC确定一块代码需要循环的次数;由RSA指定需要循环块的起始地址,由REA指定循环块的结束地址。中断寄存器(IMR,IFR):中断屏蔽寄存器IMR用于屏蔽指定的中断,中断状态寄存器IFR用来表示各个中断的当前状态。,存储器映射外围电路寄存器,外围电路寄存器用于对外围电路的控制和存放数据,对它们寻址需要两个机器周期。,I/O存储空间,除程序存储器空间和数据存储器空间外,C54x系列器件还提供了I/O存储空间(64k字),这个空间在DSP外部,里面存放的是外部设备的端口地址,访问I/O存

19、储空间就是通过I/O空间中存放的端口地址去访问对应的外设。有两条指令PORTR和PORTW可以对I/O存储器空间操作。,如:PORTR PA,SMEM;PA为端口地址,SMEM为内存地址 PORTW SMEM,PA;,5.中央处理单元(CPU),通用微处理器的CPU由ALU和CU组成,其算术运算和逻辑运算通过软件来实现,如加法需要10个机器周期,乘法是一系列的移位和加法,需要数十个机器周期。DSP的CPU设置硬件乘法器,可以在单周期内完成乘法和累加,CPU的基本组成,CPU状态和控制寄存器 40位算术逻辑单元(ALU)40位累加器A和B桶形移位寄存器乘法器/加法器单元比较、选择和存储单元(CS

20、SU)指数编码器,算术逻辑单元(ALU)和累加器,TMS320C54x使用40位算术逻辑单元(ALU)和两个40位累加器(ACCA和ACCB)来完成算术运算和逻辑运算,且大多数都是单周期指令。,ALU功能框图,16位数据的符号位扩展:(1)当ST1寄存器中的SXM=0时;高位全部添0(2)当ST1寄存器中的SXM=1,进行符号位扩展,正数全部添0;负数全部添1,溢出处理,由状态寄存器ST1中的OVM位值来判断是否使能饱和逻辑OVM=0,不启动溢出处理功能,ALU的实际结果直接送累加器OVM=1,启动溢出处理功能,此时根据溢出方向来确定送入累加器的数值:(1)正向溢出:将最大的正数007FFFF

21、FFF送累加器(2)负向溢出:将最大的负数FF80000000送累加器 出现溢出后,相应的溢出标志位OVA或OVB被置1,直到复位或在溢出状态下执行条件指令后,OVA或OVB才重新被置0,累加器A和B,累加器A和B被分成三段:AG、AH、AL(BG、BH、BL)可用堆栈指令将各部分进行进栈和出栈操作,以保存或恢复累加器数据累加器A的3116位可以作为乘法器的一个输入,累加器内容保存,用户可以使用STH、STL等指令将累加器中的内容放到数据存储器中保存,在存储前有时需要对累加器中的内容进行移位操作。右移:AG(BG)AH(BH)AL(BL)AG(BG)不变 左移:AH(BH)AL(BL)低位补0

22、,例如:累加器A=FF 4321 1234H,STH A,8,T;累加器A左移8位后,高位存 在存储单元T中,T=2112HSTH A,8,T;累加器A右移8位后,高位存 在存储单元T中,T=FF43HSTL A,8,T;累加器A左移8位后,低位存 在存储单元T中,T=3400HSTL A,8,T;累加器A右移8位后,低位存 在存储单元T中,T=2112H,移位,DSP可以在一个机器周期内左移或右移多个bit,可以用来对数字定标,使之放大或缩小,以保证精度和防止溢出;还可以用来作定点数和浮点数之间的转换例:ADD A,4,B;累加器A右移4位后加到累加器BADD A,ASM,B;累加器A按AS

23、M指定的位数移位 后加到累加器B,桶形移位寄存器,桶形移位寄存器的输入可以为:从DB获得的16位操作数;从DB和CB获得的32位操作数;从累加器A或B获得的40位操作数。桶形移位寄存器的输出连到ALU或经EB总线写入指定存储单元。,桶型移位器功能框图,乘法器/加法器单元,C54x CPU有一个17x17位的硬件乘法器,与40位的专用加法器相连,可以在单周期内完成一次乘法累加运算。乘法器的输出经小数/整数乘法(FRCT/INT)输入控制后加到加法器的一个输入端,加法器的另一个输入端来自累加器A或B。加法器还包括零检测器、舍入器(二进制补码)及溢出/饱和逻辑电路。,乘法器/加法器单元功能框图,(1

24、)有符号数乘法:对16位操作数的扩展符号位至17位(2)无符号数乘法:16位数前加0,变为17位(3)无符号数数与有符号数相乘:无符号数17位添0;有符号数17位扩展符号位,乘/加单元实现XiYi运算过程,比较、选择和存储单元功能框图,比较、选择和存储单元功能框图,例如,用CMPS指令对累加器A中AH和AL的内容进行比较,并将较大的数存放到指定单元CMPS A,*AR1;(AH)(AL),则(AH)*AR1,TRN左移1位,低位补0,TC置0(AH)(AL),则(AL)*AR1,TRN左移1位,低位补1,TC置1,指数编码器,指数编码器用于支持单周期指令EXP的专用硬件。有了指数编码器就可以用

25、EXP和NORM指令对累加器内容进行归一化处理,CPU状态和控制寄存器,TMS320C54x有三个状态和控制寄存器,分别为状态寄存器ST0、状态寄存器ST1和处理器方式状态寄存器PMST。ST0和ST1包括各种工作条件和工作方式的状态,PMST包括存储器配置状态和控制信息。,状态寄存器ST0位结构,状态寄存器ST0,状态寄存器ST1的位结构,状态寄存器ST1(1),状态寄存器ST1(2),ADD*AR3,A;*AR3+A-A,处理器方式状态寄存器PMST的位结构,状态寄存器PMST,利用辅助寄存器进行间接寻址示意图,影响TC位的指令,BIT Xmem,BITC;测试指定位,由BITC指定要测

26、试的位BITT Smem;测试指定位,由T寄存器指定要测试的 位(测试位为1,则TC=1)CMPM Smem,#lk;存储器操作数和立即数比较CMPR CC,ARx;辅助寄存器ARx和AR0比较(=,则TC=1)SFTC src;测试指定累加器的第31位和第30位是否 相同,不同TC=1,利用DP进行直接寻址,LD#4,DP;指向页4(0200h-027Fh)ADD 9h,A;将数据页4中地址9h的数据加给AccA,利用SP进行直接寻址,例:SSBX CPL;对状态寄存器ST1的CPL位置1(选择利用SP进行直接寻址)LD X1,A;SP指针加X1所形成的地址中的内 容送累加器AADD Y1,

27、A;SP指针加Y2所形成的地址中的内 容与累加器A中的值相加 由于DP与SP两种直接寻址方式是相互排斥的,所以当采用SP寻址后再次使用DP寻址前,必须用RSBX CPL 指令对CPL清零,循环对XF位置1和清0,控制LED亮灭,*循环对XF位置1和清0,用示波器可以在XF脚检测到电平高低周期性变化,常用于检测DSP是否工作*CodeStart:;程序入口SSBX XF;XF置1RPT#999;重复执行下面一条指令1000次NOP;空指令产生延时RSBX XF;XF清0RPT#999;重复执行1000次空指令产生延时NOP B CodeStart;跳转到程序开头循环执行.end,NOP指令执行时

28、间为一个时钟周期,设DSP工作频率是50MHz,可以估算出XF引脚电平的变化频率约为:50M/2000=25kHz,用两级减一计数器来增长延时时间,CodeStart:;程序入口 SSBX XF;XF置1 CALL Delay;调用延时程序 RSBX XF;XF清0 CALL Delay;调用延时程序 B CodeStart;跳转到程序开头循环执行Delay:STM#999,AR1;循环次数1000LOOP1:STM#4999,AR2;循环次数5000LOOP2:BANZ LOOP2,*AR2-;如果AR2不等于0,AR2减1,再判断 BANZ LOOP1,*AR1-;如果AR1不等于0,AR

29、1减1,跳转到LOOP1 RET,按此法延时的近似公式为:4*(AR2+1)*(AR1+1)时钟周期,当DSP工作在50MHz(时钟周期20ns),AR1=999,AR2=4999时,延时约为400ms,则LED闪烁的周期为800ms,频率1.25Hz.,6.程序地址生成器,由程序地址生成器(PAGEN)生成程序地址,并加载到程序地址总线(PAB)上。程序地址指出程序存储器的位置,程序存储器中存放着程序代码、系数表以及立即操作数。程序地址生成器(PAGEN)的组成包括:程序计数器(PC)重复计数器(RC)块重复计数器(BRC)块重复起始地址寄存器(RSA)块重复结束地址寄存器(REA),程序计

30、数器PC,程序计数器(PC)是一个16位计数器,其中保存的是某个内部或者外部程序存储器的地址,这个地址中存放的则是即将取指的某条指令。(或者是即将访问的某个16位的立即操作数或系数表。),加载地址到PC的几种途径,INTR K,PC中的地址是如何得到的,分支转移操作,利用程序的分支和转移可执行:分支转移、循环控制和子程序操作;通过分支转移指令改写PC,可以改变程序的流向。对C54X而言,有两种分支转移形式:条件分支转移、无条件分支转移。,(1)无条件分支转移,B pmad;此时PC=pmad,pmad为一个16位 的地址,程序转移到在此地址处的 指令开始执行。例如:B start;start为

31、符号地址BACC src;src为累加器(A/B);此时把累加 器低16位中的值作为指令地址加载 到PC,程序从此地址处的指令开 始执行。例如:ld#80h,a bacc a;从0 x80起始的内存处开始程序。,(2)条件分支转移,BC pmad,cond;cond作为转移条件,如果 cond成立,则PC=pmad,即从此地址处的指令开始执 行。BANZ pmad,sind;sind为一个操作数,若此 操作数不为0,则PC=pmad。,调用和返回,当采用调用指令进行子程序或函数调用时,DSP会中断当前运行的程序,转移到程序存储器的其它地址继续运行。转移前,原程序的下一条指令的地址被压入堆栈,而

32、返回时则将这个地址弹出至PC,使被中断的原程序能继续执行。对C54X而言,分无条件调用返回和有条件调用返回。,(1)无条件调用返回,无条件调用和返回指令有以下几种:CALL pmad;将返回地址压入堆栈,pmad加载 PC。CALA src;将返回地址压入堆栈,累加器低 16位加载PC。RET;用栈顶的返回地址加载PC。RETF;返回地址加载PC,并开放中断。,(2)条件调用返回,条件调用和返回指令有两种:CC pmad,cond;如果指令规定的条件得到满 足,则先将返回地址压入堆 栈,然后用所指定的地址加 载PC。RC cond;如果指令中的条件得到满足,则将 栈顶的返回地址加载PC。,条件

33、指令中的条件判断,条件分支转移和条件调用返回指令中,所涉及的条件如下表所示:,见书附录C,条件指令中的条件判断(续),多重条件指令中的条件组合,当指令需要多重条件判断时,如:BC pmad,cond,condcond 必须所有的条件都得到满足,程序才能转移到pmad。由于有的条件是相互排斥的,因此在一条多重条件指令中,不是所有的条件都能用,只能进行部分组合。如下表所示。,见书P214 图6-1,多重条件组合要求,第一组:可以从A类中选用一个条件,同时从B类中选择一个条件,但是不能从一类中选择两个条件。另外两个条件测试的累加器必须是同一个,例如:可以同时测试AGT和AOV,但是不能同时测试AGT

34、和BGT。第二组:可以在A、B、C三类中各选择一个条件,但是不能从同一类中选择两个条件。,条件执行指令XC,如果条件分支转移指令要转移去的地方只有12个字的程序段,则可以用一条单周期的条件执行指令来代替条件分支转移指令。XC n,cond,cond,cond;其中n1或2(1)当n1时,如果条件都成立,则执行紧跟在此条指令后的1条单字指令。(2)当n2时,如果条件都成立,则执行紧跟在此条指令后的2条单字指令,或1条双字指令。(3)当条件不被满足时,就依照n的值,执行1或2条NOP指令。,XC 1,BLT;若累加器B小于0则执行下面一条指令NEG B;累加器B求负DST B,DATA;把累加器B

35、值存储到一DATA开始 的连续两个内存单元,条件存储指令,重复操作指令,C54X具有重复执行下一条指令或重复执行一个程序块的功能。(1)单条指令的重复操作重复操作指令RPT和RPTZRPT n;(RC)n,将RPT指令后面的一条指令重复 执行(RC)1次。RPTZ A,n;将累加器A清零,(RC)n,将RPTZ 指令后面的一条指令重复执行(RC)1 次。,重复操作指令(续),(2)块重复操作块重复操作指令RPTB利用块重复计数器BRC设置重复次数,由块重复起始地址寄存器RSA和块重复结束地址寄存器REA提供待重复的程序块的地址范围。例:STM#99,BRC;(BRC)=99 RPTB NEXT

36、1;对从下一条指令开始至标号为NEXT前;的一段程序执行(BRC)1 次重复操作NEXT:;重复程序以外的指令,复位操作,硬件复位(/RS)是一个不可屏蔽的外部中断,正常的复位操作是上电后至少保持5个时钟周期的低电平,以确保数据、地址以及控制线的正确配置。复位后变高电平,处理器从FF80H处取指,即PC=FF80H。软件复位(RESET指令)是一个不可屏蔽的软件中断,该指令执行后PC=FF80H。,中断操作,中断是由硬件驱动或软件驱动的信号。中断使DSP暂停正在执行的程序,并进入中断服务程序。软件中断:INTR、TRAP、RESET硬件中断:受外部中断口信号触发的外部硬件中断。受片内外围电路信

37、号触发的内部硬件中断。中断类型:可屏蔽中断、非屏蔽中断,中断操作,1.可屏蔽中断:DSP芯片根据型号不同,所支持的可屏蔽中断数目也不尽相同,以C5402为例,其支持的可屏蔽中断为:(1)INT0INT3:四级片外中断(2)RINT0、XINT0:片内串口0收、发中断(3)RINT1、XINT1:片内串口1收、发中断(4)TINT0、TINT1:片内定时器0、1的定时中断(5)HPINT:主机接口中断(6)DMAC0DMAC5:6通道DMA中断,中断操作,可屏蔽中断是否被响应,取决于三要素:(1)优先级别最高中断优先级表 P109。(2)ST1中的INTM位为0中断方式位。(3)IMR中的相应位

38、为1中断屏蔽寄存器 P107。,对INTM位和STM寄存器进行设置,开指定放对应的可屏蔽中断:STM#0008h,IMR;开放定时0中断RSBX INTM;全局开放中断,中断操作,2.不可屏蔽中断:DSP总是会响应这些中断,不可屏蔽中断包括:(1)所有的软件中断(2)由/RS引脚引入的硬件复位中断(3)由非屏蔽中断引脚/NMI引入的外部中断 不可屏蔽中断不受INTM和IMR的限制。,中断操作,软件中断:(1)软件中断指令:INTR k;当CPU响应INTR中断时,INTM位被置1,屏蔽其他可屏蔽中断。指令中的操作数k是中断号(P109),表示CPU所要转移的中断向量的位置。(2)软件中断指令:

39、TRAP k;功能和INTR指令相同,区别是执行TRAP指令不影响INTM的位值。(3)软件复位指令:RESET;是一个不可屏蔽的软件中断,该指令影响状态寄存器ST0和ST1,但不影响PMST寄存器。,中断处理步骤(1),C54X中断分为三个阶段:第一阶段:接受中断请求当硬件或软件指令请求中断时,CPU中的IFR相应位置1。IFR中断标志寄存器,当有中断请求出现时IFR中的对应中断标志位置1,有四种情况会清除该中断标志位:(1)该中断得到CPU处理;(2)DSP硬件复位;(3)重新将1写入该位,以清除尚未处理完的中断;(4)利用INTR指令执行该位中断的中断号;,P107,STM#0008h,

40、IFR;清除尚未处理完的定时中断,INTR 19;利用INTR指令清除尚未处理;完的定时中断,中断处理步骤(2),第二阶段:中断响应对于软件中断和非屏蔽中断,CPU立即响应,对于可屏蔽中断只有满 足一定条件才能响应。当CPU响应了某中断后,INTM被自动置1(屏蔽其它可屏蔽中断)。如果该中断返回采用的是RETE指令,则在该中断返回后,INTM被重新使能。CPU做出中断响应后,会发出/IACA(中断应答)信号。然后在下一 个时钟周期的上升沿,由地址线A6A2指出中断号。,中断处理步骤(3),第三阶段:执行中断服务程序(1)PC值入栈,作为中断返回地址;(2)将中断向量地址加载PC;(3)获取位于

41、该向量地址的分支转移指令;(4)执行该转移指令,转到中断服务程序;(5)中断服务程序结束,执行中断返回指令;(6)从堆栈顶部弹出返回地址;(7)回到主程序继续执行。,中断处理步骤(4),中断向量地址的产生 中断向量的地址(16位)由PMST寄存器中的IPTR位和左移两位后的中断号共同组成.如:IPTR=001H;/INT0的中断号=16(10H)则:IPTR作为中断向量地址的高9位/INT0的中断号10H左移两位后作为中断向量地址低7位故:该中断向量地址为:00C0H,程序举例,分支转移指令;BC new,AGT,AOV;若累加器A0,且溢出,则转 至new,否则接着往下执行。该指令中的两个条

42、件是“与”的关系,如果需要两个条件相“或”,就只能写成两条指令。比如:“若累加器A大于0或溢出,则转移至new”BC new,AGT BC new,AOV,编写计算 的主要程序,.bss x,4;为x建立4个单元,放置x1、x2、x3、x4.bss y,1;为y建立一个单元,放置y STM#x,AR1;将x1的地址传给AR1 STM#3,AR2;将循环次数3传给AR2 LD#0,A;对累加器A清零loop:ADD*AR1+,A;对x1、x2、x3、x4循环累加,结 果放在A中 BANZ loop,*AR2-;检查循环是否结束 STL A,y;将结果存入y中,利用单条指令的重复操作对数组进行初始

43、化x50,0,0,0,0,.bss x,5;为数组x分配5个存储单元STM#x,AR1;将x的首址赋给AR1LD#0,A;对累加器A清零RPT#4;设置重复执行下条指令5次STL A,*AR1+;对x5各单元清零思考:用RPTZ指令实现上述功能。,利用块重复操作对数组x5中的每个元素加1,.bss x,5;为数组x分配5个单元Begin:LD#1,16,B;将1左移16位放入B的高端字的最 低位 STM#4,BRC;为块重复计数器设置初值4 STM#x,AR4;将x的首址赋给AR4 RPTB next1;重复执行下条指令到next1之间 的指令 ADD*AR4,16,B,A;将AR4所指地址的

44、内容左移16位加到B 的高端字上,结果放入A STH A,*AR4+;将A的高端字存入x单元,完成加1操作next:LD#0,B;对B清零,7.流水线,C54X有一个6级深度的指令流水线。这6级流水线彼此是独立的。在任何一个机器周期内,可以有1至6条不同的指令在同时工作,每条指令工作在不同的流水线上。这6级流水线的功能如下:预取指和取指是指令的取指顺序。第3级是对指令进行译码,产生执行指令所需要的一系列控制信号。接着的两级是寻址并读出操作数。,流水线冲突,由于CPU的资源是有限的,当一个CPU资源同时被一个以上流水线访问时,就有可能发生时序上的冲突。,解决流水线冲突办法,例:解决对辅助寄存器执

45、行标准的写操作引起的时间等待 这两条指令的流水线图中,W表示把值写到AR1中,N表示取出AR1中的值,由图上可见,STLM指令是在流水线执行阶段进行写操作的,而LD指令需要在寻址阶段获得写入AR1中的值作为寻址地址,所以当第二条指令到AR1中取数的时候,第一条指令还没有把数写到AR1中。,解决流水线冲突办法,解决办法:插入NOP指令,引起流水线冲突的硬件,辅助寄存器(AR0-AR7)重复块长度寄存器(BK)堆栈指针(SP)暂存器(T)处理器工作方式状态寄存器(PMST)状态寄存器(ST0和ST1)块重复计数器(BRC)累加器(AG,AH,AL,BG,BH,BL),8.在片外围电路,通用I/O引

46、脚BIO和XF定时器时钟发生器串行口主机接口软件可编程等待状态发生器可编程分区转换逻辑,不同子系列器件差别,通用I/O引脚BIO和XF定时器时钟发生器串行口,8.1 通用I/O引脚,受软件控制的专用引脚:跳转控制输入引脚BIO、外部标志输出引脚XFBIO引脚用法举例:XC 2,BIO;BIO为低,则执行后面一条双字或2条单字指令XF引脚用法举例:SSBXXF;XF=1;即CPU通过XF引脚发出一个高电平RSBXXF;XF=0;即CPU通过XF引脚发出一个低电平,8.2 定时器,片内定时器是一个软件可编程定时器,可以用来周期的产生中断。片内定时器有三个存储器映像寄存器:TIM:定时寄存器(-1计

47、数器)PRD:周期寄存器(存放时间常数,工作时向TIM加载它的值)TCR:定时器控制寄存器(包含定时器的控制位和状态位)三个映像寄存器在数据存储空间的地址分别为0024h、0025h和0026h,8.2 定时器控制寄存器(TCR),保留位,软件调试控制位,预定标计数器,重新加载位,停止状态位,分 频系 数,8.2 条件定时器控制寄存器(TCR)的功能,8.2 定时器工作原理,8.2 定时中断的周期,定时中断周期=CLKOUT(TDDR1)(PRD1)其中:CLKOUT时钟周期TDDR定时器分频系数PRD定时器时间常数,8.2 定时中断的周期,设:CLKOUT主频f=5MHz,要求得到2ms定时

48、中断则:200ns*(1+TDDR)*(1+PRD)=2msTDDR可选9PRD可选999,8.2 定时器的用法,关闭定时器:只要将TCR的TSS位置1,切断时钟输入,定时器停止工作,减小功耗定时器初始化:(1)将TCR的TSS位置1(关闭定时器)(2)加载PRD(3)加载TCR(使TDDR初始化,令TSS位为0,TRB位置1),启动 定时器开放定时中断:(1)将IFR中的TINT位置1,清除尚未处理完的定时器中断(2)将IMR中的TINT位置1,开放定时中断(3)将ST1中的INTM位清0,从整体上开放中断复位时:TIM和PRD都置成FFFF,定时器的分频系数(TCR的TDDR位)清0,定时

49、器开始工作,8.2 定时器初始化程序实现,STM#0000h,SWWSR;不插等待周期STM#0010h,TCR;TSS=1(TCR第4位TSS置1)STM#X,PRD;加载定时器周期寄存器(PRD=X);定时中断周期=CLKOUT(TDDR+1)(PRD+1)STM#0C2Yh,TCR;定时分频系数TDDR初始化为Y;TSS=0,启动定时器工作;TRB=1,当TIM减到0后重新加载PRD;Soft=1,Free=1定时器遇到断点后继续运行STM#0008h,IFR;清除尚未处理完的定时中断STM#0008h,IMR;开放定时中断RSBX INTM;开放中断(状态寄存器ST1的INTM位复位)

50、,8.2 定时器应用定时器中断,CodeStart:;程序入口 SSBX XF;XF置1 CALL Delay;调用延时程序 RSBX XF;XF清0 CALL Delay;调用延时程序 B CodeStart;跳转到程序开头循环执行Delay:STM#999,AR1;循环次数1000LOOP1:STM#4999,AR2;循环次数5000LOOP2:BANZ LOOP2,*AR2-;如果AR2不等于0,AR2减1,再判断 BANZ LOOP1,*AR1-;如果AR1不等于0,AR1减1,跳转到LOOP1 RET,方波发生器原理;软件循环延时,定时不准确;且占用CPU开销。,8.2 定时器应用定

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号