




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 TMS320C54x的结构原理 本章主要介绍TMS320C54X DSP的内部结构和工作原理,包括CPU结构、总线结构、存储体结构和外围设备等。重点: CPU和外设的寄存器设置编辑ppt第二章 TMS320C54x的结构原理 本章内容:TMS320系列DSP概述C54x数字信号处理器总线结构存储空间中央处理器程序存储器地址生成方式流水线外围电路串行口外部总线C54x引脚信号说明编辑ppt1. TMS320系列DSP概述TI市场地位:1.DSP产品全球第一2.模拟产品全球第一3.无线产品全球第一4.图形计算器全球第一5.硬盘产品全球第一编辑pptTMS320系列DSP的分类和用途(1)T
2、MS320C2000系列 集成了flash存储器、高速A/D转换器以及可靠的CAN模块及数字马达控制的外围模块,适用于运动控制领域。(2)TMS320C5000系列 包括TMS320C5X /C54X/ C55X 成本低,经济性好,主要用于个人电子类产品 。(3)TMS320C6000系列 TMS320C62X/C67X , C64x,在时钟频率为1.1GHz时,每秒可执行90亿条指令,适合进行复杂运算处理。 编辑ppt(1)TMS320C2000系列(包括:C20X,C24X,C28三大类)2000系列,又称为DSP控制器。在一片DSP芯片上集成了FLASH存储器、高速A/D转换器以及数字马
3、达控制模块,所以2000系列特别适用于电动机、变频器等一些高速实时工控产品的数字化控制。编辑pptTMS320C20X20X是2000系列中早期的产品主要特点:处理能力强:指令周期最短为25ns,运算速度达到 40MIPSFlash存储器:是最早使用闪存的DSP芯片低功耗:在5v电压下工作,消耗电流为1.9mA/MIPS; 在3.3v电压下工作,消耗电流为1.1mA/MIPS。编辑pptTMS320C24X24X系列在20X的基础上,增加功能:增加16路10位A/D转换器多个通用定时器,和一个监视定时器(Watchdog)16个PWM(脉宽调制)输出通道比较单元、编码电路等编辑ppt TMS3
4、20C28X28X系列是目前数字控制领域中性能最好的DSP芯片。与24X相比做了如下的改进:32位的数据总线(运算速度可达400MIPS)12位的A/D存储空间增大降低功耗(DSP核工作电压为1.8v;外设工作电压为3.3v)编辑pptGeneral Purpose Input Output 多通道缓冲串行口。是在标准串行接口的基础之上对功能进行扩展,因此,具有与标准串行接口相同的基本功。SCI是用于多处理器之间的异步串行通信,SPI则是用于CPU与外设之间的同步串行通信 编辑pptDSESSSCSIP数据暂存器执 行 部 件控 制 电 路指令译码器总线接口控制电路AXBXCXDXAHBHCH
5、DHSIDIBPSPALBLCLDL寄存器组BIUABDBCB地址加法器指令队列PSW标志寄存器EU运算器DSESSSCSIP数据暂存器执 行 部 件控 制 电 路指令译码器总线接口控制电路AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器组ABDBCB地址加法器指令队列PSW标志寄存器运算器编辑pptATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P3ALU编辑ppt(2)TMS320C5000系列(包括:C54X,C55X两大类)这两类芯片完全兼容,所不同的是C55X具有更高的
6、性能和更低的功耗。编辑pptTMS320C55XC55X DSP是一款低功耗、高性能处理器,主要应用领域是3G手机、PDA、MP3、数码相机等手持便携式数字设备。它具有省电、实时性高的优点,同时外部接口丰富,能满足大多数嵌入式应用的要求编辑ppt编辑pptTMS320C55X主要特点16位定点DSP,处理速度为600MIPS片上外设丰富: 实时时钟RTCMcBSP接口USB2.0接口MMC/SD接口I2C接口UART接口编辑pptTMS320C55X主要特点(续)大容量RAM(128K)和ROM(32K);功耗更低,1.26v的内核工作电压,3.3v外设工作电压;价格便宜,第一款低于5美元的双
7、核DSP;采用新型生产工艺,芯片体积小。编辑ppt编辑ppt(3)TMS320C6000系列(主要包括C62X,C64X,C67X三类)该系列DSP采用了与上述系列DSP不同的内部 结构设计,使得DSP能够获得极高的运行速度: 指令周期最小为3.3ns,运算能力为2400MIPS。编辑ppt编辑ppt(4)TMS320C5000+ARM7DSP芯片单独支持音视频编解码处理,优势在于编解码能力强,支持的媒体类型非常丰富,提供多种最流行的录制压缩及播放格式,包括MPEG-4、MPEG-1、MPEG-2、DivX、WMV WMA V9、QuickTime 6、H.264、AAC-LC、MP3等等。
8、而ARM处理器负责系统处理及提供外围设备接口。这样设计的好处是,可选择输入设备较多,后期升级潜力大。 编辑ppt编辑pptDSP+ARM RISC多应用于多媒体设备编辑pptTI DSP命名方式编辑pptDSP常见封装形式DIP(Double In-Line Package)-双列直插式封装。编辑pptDSP常见封装形式(续)PGA(Pin Grid Array Package)-插针网格阵列封装 。芯片封装形式在芯片的内外有多个方阵形的插针,每个方阵形插针沿芯片的四周间隔一定距离排列。 编辑pptDSP常见封装形式(续)QFP( Quad Flat Package )-扁平式封装的芯片引脚之
9、间距离很小,管脚很细,一般大规模或超大型集成电路都采用这种封装形式。 编辑ppt2. TMS320C54x数字信号处理器 C54x数字信号处理器是TI公司1996年推出的 新一代定点数字信号处理器。它采用先进的修 正哈佛结构,片内共有8条总线(1条程序总线、 3条数据总线和4条地址总线),高度并行的算 术逻辑单元ALU,专用硬件逻辑,片内存储 器,片内外设,再加上专用的指令系统,使 C54x芯片速度更高,操作更灵活,非常适用于 远程通信等实时嵌入式应用的需要。 编辑pptC54x的硬件结构框图 编辑pptC54xDSP特点改进的哈佛结构和8总线结构: 使处理器的性能大大提高,实现高度并行操作。
10、例如:可以在一条指令中,同时执行2次读操作和1次写操作。编辑pptC54xDSP特点(续)独立的DMA总线和控制器:独立的DMA总线,与CPU的程序、数据总线并行工作,在不影响CPU工作的条件下,DMA速度目前已达800Mbyte/s编辑pptC54xDSP特点(续)数据地址发生器(DAG):在通用CPU中,数据地址的产生和数据的处理都由ALU来完成在DSP中,设置了专门的数据地址发生器(实际上是专门的ALU),来产生所需要的数据地址,节省公共ALU的时间编辑pptC54xDSP特点(续)PLL(phase-locked loop )锁相环定时器(Timer)软件可编程等待状态发生器JTAG(
11、符合IEEE1149.1标准)仿真接口电气电子工程师协会(InstituteofElectricalandElectronicsEngineers) 编辑ppt3.总线结构TMS320C54x DSP采用该进的哈佛结构:具有八组总线;其中独立的程序总线和数据总线允许同时读取指令和操作数,实现高度的并行操作。采用各自分开的数据总线分别用于读数据和写数据,允许CPU在同一个机器周期内进行两次读操作数和一次写操作数。编辑ppt编辑ppt3.总线结构八组16-bit总线: 程序总线(PB)传送从程序存储器来的指令代码和立即数。 三组数据总线(CB,DB和EB)连接各种元器件,如CPU、数据地址产生逻辑
12、、程序地址产生逻辑,片内外设和数据存储器。CB和DB总线传送从数据存储器读出的操作数。EB总线传送写入到存储器中的数据。 四组地址总线(PAB,CAB,DAB和EAB)传送执行指令和读写数据所需要的地址。编辑ppt3.总线结构C54X利用数据地址发生器可在每个周期产生两个数据的存储地址。PB总线可将程序空间的操作数据送至乘法器加法器,以进行乘法累加操作;或送至数据空间的目的地址以执行数据移动指令。这一特性与一个机器周期可实现寻址两次的存储器双操作存储器(DARAM)相结合,支持单周期、3操作数指令的执行。 编辑ppt各种读/写方式用到的总线编辑ppt4.存储器与存储空间C54x存储空间为192
13、k,由3个独立的可选择空间组成:程序存储空间(64k)、数据存储空间(64k)和I/O空间(64k)。C54x的存储空间可以在片内也可以在片外,在片内可由片内存储器提供;片外由扩展存储器提供。片内存储器形式分为两类:ROM和RAM。片内RAM也分为两类: 单寻址RAM(SARAM)、双寻址RAM(DARAM)编辑ppt片内存储器介绍(1)片内ROMC54x系列DSP按照款式不同,片内ROM大小也不同: 对于较小的ROM(2k)一般只在ROM里面存放一个引导程序,用来将程序引导至片内或片外的快速RAM中 。 对于较大的ROM,既可以把ROM安排为程序存储空间,又可以安排为数据存储空间。编辑ppt
14、片内存储器介绍(续)(2)片内RAM(SARAM,DARAM)SARAM(single access RAM)单操作RAM, 由若干块组成,每个块在一个机器周期只能被访问一次(读/写),常被安排为数据存储空间,也能被安排为程序存储空间。DARAM(double access RAM)双操作RAM, 由若干块组成,每个块在一个机器周期可以被访问两次读或者写操作。常被安排为数据存储空间,也能被安排为程序存储空间。编辑ppt片内ROM空间分配片内ROM既可以作为程序存储空间又可以作为数据存储空间,但是在ROM的高2K字空间中,厂家事先固化了相关内容,对这部分空间用户不能随意存储其他内容。编辑ppt片
15、内ROM的分块操作为了增强处理器的性能,可以对片内ROM进行分块,这样就能在片内ROM的一个块内取指的同时又能在另一个块内取数。根据不同DSP的片内ROM容量不同,片内ROM可以分为2k字、4k字或8k的块。编辑ppt片内RAM的分块操作片内RAM也可以分为若干块,分块后,用户可以在一个周期内从一个DARAM块中取出两个操作数,同时可在另一个RAM块中存数。根据不同DSP的片内RAM容量不同,片内RAM可以分为1k字、2k字或8k的块。编辑ppt程序存储空间和数据存储空间程序存储空间:存放要执行的指令和执行指令时要用的系数表。数据存储空间:存放执行指令所要用的数据。通过“处理器工作方式状态寄存
16、器”(PMST)来设定程序/数据存储空间的分配情况(片外、ROM和RAM)编辑pptPMST和存储空间分配关系PMST中相关位:MP/MC,OVLY,DROM编辑ppt数据存储空间分页管理数据空间的分页管理: 所谓分页就是把64k字的存储空间分为512页(0页511页)每页128字空间在数据存储空间的第0页上(0000H007FH)固定存放的是存储器映射寄存器和暂存器的内容编辑ppt程序存储空间分页管理如果程序存储空间只需要64k的空间,则不分页。如果需要扩展程序存储空间,则采用分页扩展的方法:比如C5402可以将程序存储空间扩展至1M(1024k)字,扩展后的程序存储空间被分为16页(0页1
17、5页),每页64k字的空间。编辑pptC5402分页扩展程序存储空间图(1)当OVLY=0时(RAM不安排作为程序存储空间),程序存储空间被分为16页,每页64k空间,按页号寻址。页号由“程序计数器扩展寄存器”XPC提供:XPC=0表示选中第0页, XPC=1表示选中第1页编辑pptC5402分页扩展程序存储空间图(2)当OVLY=1时(RAM安排作为程序存储空间)每页被分为两部分:公共32k字(低32k字)和独立32k字(高32k字)。对于每页的公共32k字,全部映射到片内RAM中; 对于独立32k字仍然按页寻址,页号由XPC指定。编辑pptC5402分页扩展程序存储空间图(3)当MP/MC
18、=0时(片内ROM被安排作为程序存储空间)存储空间的第0页必须被安排在片内ROM中。XPC(程序计数器扩展寄存器)映射在数据存储空间的001E单元中,每次机器复位时,XPC都初始化为0。编辑ppt存储器映射CPU寄存器把CPU寄存器映射到存储空间的好处是:在对CPU寄存器寻址时不需要插入等待周期,直接在存储器内部就可以完成,提高了运行速度。存储器映射CPU寄存器的名称及地址见书P38表2-6编辑ppt存储器映射CPU寄存器功能简介(1)辅助寄存器(AR0AR7):8个16位的辅助寄存器可以由中心算术逻辑单元CALU访问,也可以由辅助寄存器算术单元ARUA修改,主要功能是产生16位的数据地址,也
19、可以作为通用寄存器和计数器使用。T寄存器(TREG):主要用于存放乘法指令的一个乘数,也可以为移位指令存放移位计数,还可以存放指数运算指令EXP的指数值等。编辑ppt存储器映射CPU寄存器功能简介(2)状态转移寄存器(TRN):在执行比较指令CMPS时,可以通过该寄存器位值的变化来判断比较结果。堆栈指针寄存器(SP):用于存放栈顶的16位地址。循环缓冲区长度寄存器(BK):用来在循环寻址时确定循环缓冲区的大小。编辑ppt存储器映射CPU寄存器功能简介(3)块循环寄存器(BRC,RSA,REA):在执行块循环指令时由BRC确定一块代码需要循环的次数;由RSA指定需要循环块的起始地址,由REA指定
20、循环块的结束地址。中断寄存器(IMR,IFR):中断屏蔽寄存器IMR用于屏蔽指定的中断,中断状态寄存器IFR用来表示各个中断的当前状态。编辑ppt存储器映射外围电路寄存器外围电路寄存器用于对外围电路的控制和存放数据,对它们寻址需要两个机器周期。编辑pptI/O存储空间除程序存储器空间和数据存储器空间外,C54x系列器件还提供了I/O存储空间(64k字),这个空间在DSP外部,里面存放的是外部设备的端口地址,访问I/O存储空间就是通过I/O空间中存放的端口地址去访问对应的外设。有两条指令PORTR和PORTW可以对I/O存储器空间操作。如:PORTR PA, SMEM ; PA为端口地址,SME
21、M为内存地址 PORTW SMEM, PA;编辑ppt5.中央处理单元(CPU)通用微处理器的CPU由ALU和CU组成,其算术运算和逻辑运算通过软件来实现,如加法需要10个机器周期,乘法是一系列的移位和加法,需要数十个机器周期。DSP的CPU设置硬件乘法器,可以在单周期内完成乘法和累加编辑ppt编辑pptCPU的基本组成CPU状态和控制寄存器 40位算术逻辑单元(ALU) 40位累加器A和B桶形移位寄存器乘法器/加法器单元比较、选择和存储单元(CSSU)指数编码器编辑ppt算术逻辑单元(ALU)和累加器TMS320C54x使用40位算术逻辑单元(ALU)和两个40位累加器(ACCA和ACCB)
22、来完成算术运算和逻辑运算,且大多数都是单周期指令。编辑pptALU功能框图16位数据的符号位扩展:(1)当ST1寄存器中的SXM=0时;高位全部添0(2)当ST1寄存器中的SXM=1,进行符号位扩展,正数全部添0;负数全部添1编辑ppt溢出处理由状态寄存器ST1中的OVM位值来判断是否使能饱和逻辑OVM=0,不启动溢出处理功能,ALU的实际结果直接送累加器OVM=1,启动溢出处理功能,此时根据溢出方向来确定送入累加器的数值:(1)正向溢出:将最大的正数007FFFFFFF送累加器(2)负向溢出:将最大的负数FF80000000送累加器 出现溢出后,相应的溢出标志位OVA或OVB被置1,直到复位
23、或在溢出状态下执行条件指令后,OVA或OVB才重新被置0编辑ppt累加器A和B累加器A和B被分成三段: AG、AH、AL(BG、BH、BL)可用堆栈指令将各部分进行进栈和出栈操作,以保存或恢复累加器数据累加器A的3116位可以作为乘法器的一个输入编辑ppt累加器内容保存 用户可以使用STH、STL等指令将累加器中的内容放到数据存储器中保存,在存储前有时需要对累加器中的内容进行移位操作。 右移:AG(BG)AH(BH) AL(BL) AG(BG)不变 左移: AH(BH) AL(BL)低位补0 编辑ppt例如:累加器A=FF 4321 1234HSTH A,8,T;累加器A左移8位后,高位存 在
24、存储单元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编辑ppt移位DSP可以在一个机器周期内左移或右移多个bit,可以用来对数字定标,使之放大或缩小,以保证精度和防止溢出;还可以用来作定点数和浮点数之间的转换例:ADD A,4,B; 累加器A右移4位后加到累加器BADD A,ASM,B;累加器A按ASM指定的位数移位 后加到累加器B编辑ppt桶形移位寄存器桶形移位寄存器的输入可以为:从D
25、B获得的16位操作数;从DB和CB获得的32位操作数;从累加器A或B获得的40位操作数。桶形移位寄存器的输出连到ALU或经EB总线写入指定存储单元。编辑ppt桶型移位器功能框图编辑ppt乘法器/加法器单元C54x CPU有一个17x17位的硬件乘法器,与40位的专用加法器相连,可以在单周期内完成一次乘法累加运算。乘法器的输出经小数/整数乘法(FRCT/INT)输入控制后加到加法器的一个输入端,加法器的另一个输入端来自累加器A或B。加法器还包括零检测器、舍入器(二进制补码)及溢出/饱和逻辑电路。编辑ppt乘法器/加法器单元功能框图(1)有符号数乘法:对16位操作数的扩展符号位至17位(2)无符号
26、数乘法:16位数前加0,变为17位(3)无符号数数与有符号数相乘:无符号数17位添0;有符号数17位扩展符号位编辑ppt 乘/加单元实现XiYi运算过程编辑ppt比较、选择和存储单元功能框图编辑ppt比较、选择和存储单元功能框图例如,用CMPS指令对累加器A中AH和AL的内容进行比较,并将较大的数存放到指定单元CMPS A,*AR1;(AH)(AL),则(AH)*AR1,TRN左移1位,低位补0,TC置0(AH)A编辑ppt处理器方式状态寄存器PMST的位结构编辑ppt状态寄存器PMST编辑ppt利用辅助寄存器进行间接寻址示意图编辑ppt影响TC位的指令BIT Xmem,BITC;测试指定位,
27、由BITC指定要测 试的位BITT Smem;测试指定位,由T寄存器指定要测试的 位(测试位为1,则TC=1)CMPM Smem ,#lk;存储器操作数和立即数比较CMPR CC,ARx;辅助寄存器ARx和AR0比较 (=,则TC=1)SFTC src;测试指定累加器的第31位和第30位是否 相同,不同TC=1编辑ppt利用DP进行直接寻址LD #4,DP ;指向页4(0200h-027Fh)ADD 9h,A ;将数据页4中地址9h的数据加给AccA编辑ppt利用SP进行直接寻址例:SSBX CPL ;对状态寄存器ST1的CPL位置1 (选择利用SP进行直接寻址)LD X1,A ;SP指针加X
28、1所形成的地址中的内 容送累加器AADD Y1,A;SP指针加Y2所形成的地址中的内 容与累加器A中的值相加 由于DP与SP两种直接寻址方式是相互排斥的,所以当采用SP寻址后再次使用DP寻址前,必须用RSBX CPL 指令对CPL清零编辑ppt循环对XF位置1和清0, 控制LED亮灭*循环对XF位置1和清0,用示波器可以在XF脚检测到电平高低周期性变化,常用于检测DSP是否工作*CodeStart: ;程序入口SSBX XF ;XF置1RPT #999 ;重复执行下面一条指令1000次NOP ;空指令产生延时RSBX XF ;XF清0RPT #999 ;重复执行1000次空指令产生延时NOP
29、B CodeStart ;跳转到程序开头循环执行.end NOP指令执行时间为一个时钟周期,设DSP工作频率是50MHz,可以估算出XF引脚电平的变化频率约为:50M/2000=25kHz 编辑ppt用两级减一计数器来增长延时时间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,*A
30、R2- ;如果AR2不等于0,AR2减1,再判断 BANZ LOOP1,*AR1- ;如果AR1不等于0,AR1减1,跳转到LOOP1 RET按此法延时的近似公式为:4*(AR2+1)*(AR1+1)时钟周期,当DSP工作在50MHz(时钟周期20ns),AR1=999, AR2=4999时,延时约为400ms,则LED闪烁的周期为800ms,频率1.25Hz.编辑ppt6.程序地址生成器 由程序地址生成器(PAGEN)生成程序地址,并加载到程序地址总线(PAB)上。 程序地址指出程序存储器的位置,程序存储器中存放着程序代码、系数表以及立即操作数。程序地址生成器(PAGEN)的组成包括: 程序
31、计数器(PC) 重复计数器(RC) 块重复计数器(BRC) 块重复起始地址寄存器(RSA) 块重复结束地址寄存器(REA)编辑ppt程序计数器PC 程序计数器(PC)是一个16位计数器,其中保存的是某个内部或者外部程序存储器的地址,这个地址中存放的则是即将取指的某条指令。(或者是即将访问的某个16位的立即操作数或系数表。)编辑ppt加载地址到PC的几种途径BACC src B pmad CALL pmad CALA src INTR KPC中的地址是如何得到的编辑ppt分支转移操作 利用程序的分支和转移可执行:分支转移、循环控制和子程序操作;通过分支转移指令改写PC,可以改变程序的流向。 对C
32、54X而言,有两种分支转移形式:条件分支转移、无条件分支转移。编辑ppt(1)无条件分支转移B pmad;此时PC=pmad,pmad为一个16位 的地址,程序转移到在此地址处的 指令开始执行。例如: B start;start为符号地址BACC src;src为累加器(A/B);此时把累加 器低16位中的值作为指令地址加载 到PC,程序从此地址处的指令开 始执行。例如:ld #80h,a bacc a;从0 x80起始的内存处开始程序。 编辑ppt(2)条件分支转移BC pmad,cond;cond作为转移条件,如果 cond成立,则PC=pmad, 即从此地址处的指令开始执 行。BANZ
33、pmad,sind;sind为一个操作数,若此 操作数不为0,则PC=pmad。编辑ppt调用和返回 当采用调用指令进行子程序或函数调用时,DSP会中断当前运行的程序,转移到程序存储器的其它地址继续运行。转移前,原程序的下一条指令的地址被压入堆栈,而返回时则将这个地址弹出至PC,使被中断的原程序能继续执行。 对C54X而言,分无条件调用返回和有条件调用返回。 编辑ppt(1)无条件调用返回无条件调用和返回指令有以下几种:CALL pmad;将返回地址压入堆栈,pmad加载 PC。CALA src;将返回地址压入堆栈,累加器低 16位加载PC。RET;用栈顶的返回地址加载PC。RETF;返回地址
34、加载PC,并开放中断。编辑ppt(2)条件调用返回条件调用和返回指令有两种:CC pmad,cond;如果指令规定的条件得到满 足,则先将返回地址压入堆 栈,然后用所指定的地址加 载PC。RC cond;如果指令中的条件得到满足,则将 栈顶的返回地址加载PC。编辑ppt条件指令中的条件判断条件分支转移和条件调用返回指令中,所涉及的条件如下表所示:见书附录C编辑ppt条件指令中的条件判断(续)编辑ppt多重条件指令中的条件组合当指令需要多重条件判断时,如:BC pmad,cond,condcond 必须所有的条件都得到满足,程序才能转移到pmad。由于有的条件是相互排斥的,因此在一条多重条件指令
35、中,不是所有的条件都能用,只能进行部分组合。如下表所示。见书P214 图6-1编辑ppt多重条件组合要求第一组:可以从A类中选用一个条件,同时从B类中选择一个条件,但是不能从一类中选择两个条件。另外两个条件测试的累加器必须是同一个,例如:可以同时测试AGT和AOV,但是不能同时测试AGT和BGT。第二组:可以在A、B、C三类中各选择一个条件,但是不能从同一类中选择两个条件。编辑ppt条件执行指令XC如果条件分支转移指令要转移去的地方只有12个字的程序段,则可以用一条单周期的条件执行指令来代替条件分支转移指令。 XC n,cond,cond,cond;其中n1或2(1)当n1时,如果条件都成立,
36、则执行紧跟在此条指令后的1条单字指令。(2)当n2时,如果条件都成立,则执行紧跟在此条指令后的2条单字指令,或1条双字指令。(3)当条件不被满足时,就依照n的值,执行1或2条NOP指令。XC 1, BLT ;若累加器B小于0则执行下面一条指令NEG B ; 累加器B求负DST B, DATA;把累加器B值存储到一DATA开始 的连续两个内存单元编辑ppt条件存储指令编辑ppt重复操作指令C54X具有重复执行下一条指令或重复执行一个程序块的功能。(1)单条指令的重复操作重复操作指令RPT和RPTZRPT n;(RC)n,将RPT指令后面的一条指令重复 执行(RC)1次。RPTZ A,n;将累加器
37、A清零,(RC)n,将RPTZ 指令后面的一条指令重复执行(RC)1 次。编辑ppt重复操作指令(续)(2)块重复操作块重复操作指令RPTB利用块重复计数器BRC设置重复次数,由块重复起始地址寄存器RSA和块重复结束地址寄存器REA提供待重复的程序块的地址范围。例: STM #99,BRC ;(BRC)=99 RPTB NEXT1 ;对从下一条指令开始至标号为NEXT前 ;的一段程序执行(BRC)1 次重复操作NEXT: ;重复程序以外的指令需重复的内容编辑ppt复位操作 硬件复位(/RS)是一个不可屏蔽的外部中断,正常的复位操作是上电后至少保持5个时钟周期的低电平,以确保数据、地址以及控制线
38、的正确配置。复位后变高电平,处理器从FF80H处取指,即PC= FF80H 。 软件复位(RESET指令)是一个不可屏蔽的软件中断,该指令执行后PC= FF80H 。编辑ppt中断操作 中断是由硬件驱动或软件驱动的信号。中断使DSP暂停正在执行的程序,并进入中断服务程序。软件中断:INTR、TRAP、RESET硬件中断:受外部中断口信号触发的外部硬件中断。受片内外围电路信号触发的内部硬件中断。中断类型 :可屏蔽中断 、非屏蔽中断 编辑ppt中断操作1. 可屏蔽中断:DSP芯片根据型号不同,所支持的可屏蔽中断数目也不尽相同,以C5402为例,其支持的可屏蔽中断为:(1)INT0INT3:四级片外
39、中断(2)RINT0、XINT0:片内串口0收、发中断(3)RINT1、XINT1:片内串口1收、发中断(4)TINT0、TINT1:片内定时器0、1的定时中断(5)HPINT:主机接口中断(6)DMAC0DMAC5:6通道DMA中断编辑ppt中断操作可屏蔽中断是否被响应,取决于三要素:(1)优先级别最高中断优先级表 P109。(2)ST1中的INTM位为0中断方式位。(3)IMR中的相应位为1中断屏蔽寄存器 P107。对INTM位和STM寄存器进行设置,开指定放对应的可屏蔽中断:STM #0008h,IMR ;开放定时0中断RSBX INTM ;全局开放中断编辑ppt中断操作2. 不可屏蔽中
40、断:DSP总是会响应这些中断,不可屏蔽中断包括:(1)所有的软件中断(2)由/RS引脚引入的硬件复位中断(3)由非屏蔽中断引脚/NMI引入的外部中断 不可屏蔽中断不受INTM和IMR的限制。编辑ppt中断操作软件中断:(1)软件中断指令:INTR k; 当CPU响应INTR中断时,INTM位被置1,屏蔽其他可屏蔽中断。指令中的操作数k是中断号(P109),表示CPU所要转移的中断向量的位置。(2)软件中断指令:TRAP k; 功能和INTR指令相同,区别是执行TRAP指令不影响INTM的位值。(3)软件复位指令:RESET; 是一个不可屏蔽的软件中断,该指令影响状态寄存器ST0和ST1,但不影
41、响PMST寄存器。编辑ppt中断处理步骤(1)C54X中断分为三个阶段:第一阶段:接受中断请求当硬件或软件指令请求中断时,CPU中的IFR相应位置1。IFR中断标志寄存器,当有中断请求出现时IFR中的对应中断标志位置1,有四种情况会清除该中断标志位:(1)该中断得到CPU处理;(2)DSP硬件复位;(3)重新将1写入该位,以清除尚未处理完的中断;(4)利用INTR指令执行该位中断的中断号;P107STM #0008h,IFR ;清除尚未处理完的定时中断INTR 19 ;利用INTR指令清除尚未处理;完的定时中断编辑ppt中断处理步骤(2)第二阶段:中断响应对于软件中断和非屏蔽中断,CPU立即响
42、应,对于可屏蔽中断只有满 足一定条件才能响应。 当CPU响应了某中断后,INTM被自动置1(屏蔽其它可屏蔽中断)。如果该中断返回采用的是RETE指令,则在该中断返回后, INTM被重新使能。CPU做出中断响应后,会发出/IACA(中断应答)信号。然后在下一 个时钟周期的上升沿,由地址线A6A2指出中断号。编辑ppt中断处理步骤(3)第三阶段:执行中断服务程序(1)PC值入栈,作为中断返回地址;(2)将中断向量地址加载PC;(3)获取位于该向量地址的分支转移指令;(4)执行该转移指令,转到中断服务程序;(5)中断服务程序结束,执行中断返回指令;(6)从堆栈顶部弹出返回地址;(7)回到主程序继续执
43、行。编辑ppt中断处理步骤(4)中断向量地址的产生 中断向量的地址(16位)由PMST寄存器中的IPTR位和左移两位后的中断号共同组成.如:IPTR=001H;/INT0的中断号=16(10H)则:IPTR作为中断向量地址的高9位 /INT0的中断号10H左移两位后作为中断向量地址低7位故:该中断向量地址为:00C0H编辑ppt程序举例分支转移指令;BC new,AGT,AOV;若累加器A0,且溢出,则转 至new,否则接着往下执行。 该指令中的两个条件是“与”的关系,如果需要两个条件相“或”,就只能写成两条指令。 比如:“若累加器A大于0或溢出,则转移至new” BC new,AGT BC
44、new,AOV编辑ppt编写计算 的主要程序 .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中编辑ppt利用单条指令的重复操作对数组进行初始化x50,0,0,0,0.bss x,5 ;为数组x分配5个存储单元STM #x,AR1 ;将x
45、的首址赋给AR1LD #0,A ;对累加器A清零RPT #4 ;设置重复执行下条指令5次STL A,*AR1+ ;对x5各单元清零思考:用RPTZ指令实现上述功能。编辑ppt利用块重复操作对数组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所指地址的内容左移16位加到B 的高端字上,结果放入A STH A
46、,*AR4+ ;将A的高端字存入x单元,完成加1操作next:LD #0,B ;对B清零编辑ppt7.流水线 C54X有一个6级深度的指令流水线。这6级流水线彼此是独立的。在任何一个机器周期内,可以有1至6条不同的指令在同时工作,每条指令工作在不同的流水线上。这6级流水线的功能如下: 预取指和取指是指令的取指顺序。第3级是对指令进行译码,产生执行指令所需要的一系列控制信号。接着的两级是寻址并读出操作数。编辑ppt流水线冲突 由于CPU的资源是有限的,当一个CPU资源同时被一个以上流水线访问时,就有可能发生时序上的冲突。编辑ppt解决流水线冲突办法例:解决对辅助寄存器执行标准的写操作引起的时间等
47、待 这两条指令的流水线图中,W表示把值写到AR1中,N表示取出AR1中的值,由图上可见,STLM指令是在流水线执行阶段进行写操作的,而LD指令需要在寻址阶段获得写入AR1中的值作为寻址地址,所以当第二条指令到AR1中取数的时候,第一条指令还没有把数写到AR1中。编辑ppt解决流水线冲突办法解决办法:插入NOP指令编辑ppt引起流水线冲突的硬件辅助寄存器(AR0-AR7) 重复块长度寄存器(BK) 堆栈指针(SP) 暂存器(T) 处理器工作方式状态寄存器(PMST) 状态寄存器(ST0和ST1) 块重复计数器(BRC) 累加器(AG,AH,AL,BG,BH,BL) 编辑ppt8.在片外围电路通用
48、I/O引脚BIO和XF定时器时钟发生器串行口主机接口软件可编程等待状态发生器可编程分区转换逻辑不同子系列器件差别通用I/O引脚BIO和XF定时器时钟发生器串行口编辑ppt8.1 通用I/O引脚受软件控制的专用引脚: 跳转控制输入引脚BIO、外部标志输出引脚XFBIO引脚用法举例: XC 2,BIO;BIO为低,则执行后面一条双字或2条单字指令XF引脚用法举例:SSBXXF;XF=1;即CPU通过XF引脚发出一个高电平RSBXXF;XF=0;即CPU通过XF引脚发出一个低电平编辑ppt8.2 定时器片内定时器是一个软件可编程定时器,可以用来周期的产生中断。片内定时器有三个存储器映像寄存器: TI
49、M :定时寄存器(-1计数器) PRD :周期寄存器(存放时间常数,工作时向TIM加载它的值) TCR :定时器控制寄存器(包含定时器的控制位和状态位)三个映像寄存器在数据存储空间的地址分别为0024h、0025h和0026h编辑ppt8.2 定时器控制寄存器(TCR)15 1211109 6543 0TCR0026h保留 Soft Free PSC TRB TSS TDDR 保留位软件调试控制位 预定标计数器 重新加载位 停止状态位 分 频系 数 编辑ppt8.2 条件定时器控制寄存器(TCR)的功能编辑ppt8.2 定时器工作原理编辑ppt8.2 定时中断的周期定时中断周期=CLKOUT(
50、TDDR1)(PRD1)其中:CLKOUT时钟周期TDDR定时器分频系数PRD定时器时间常数编辑ppt8.2 定时中断的周期设:CLKOUT主频f=5MHz ,要求得到2ms定时中断则:200ns*(1+TDDR)*(1+PRD) =2msTDDR可选9PRD可选999编辑ppt8.2 定时器的用法关闭定时器: 只要将TCR的TSS位置1,切断时钟输入,定时器停止工作,减小功耗定时器初始化:(1) 将TCR的TSS位置1(关闭定时器)(2) 加载PRD(3)加载TCR(使TDDR初始化,令TSS位为0,TRB位置1),启动 定时器开放定时中断:(1) 将IFR中的TINT位置1,清除尚未处理完
51、的定时器中断(2) 将IMR中的TINT位置1,开放定时中断(3) 将ST1中的INTM位清0,从整体上开放中断复位时: TIM和PRD都置成FFFF,定时器的分频系数(TCR的TDDR位)清0,定时器开始工作编辑ppt8.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减到
52、0后重新加载PRD ;Soft=1,Free=1定时器遇到断点后继续运行STM #0008h,IFR ;清除尚未处理完的定时中断STM #0008h,IMR ;开放定时中断RSBX INTM ;开放中断(状态寄存器ST1的INTM位复位)编辑ppt8.2 定时器应用定时器中断CodeStart: ;程序入口 SSBX XF ;XF置1 CALL Delay;调用延时程序 RSBX XF ;XF清0 CALL Delay;调用延时程序 B CodeStart ;跳转到程序开头循环执行Delay: STM #999,AR1 ;循环次数1000LOOP1: STM #4999, AR2 ;循环次数5
53、000LOOP2: BANZ LOOP2,*AR2- ;如果AR2不等于0,AR2减1,再判断 BANZ LOOP1,*AR1- ;如果AR1不等于0,AR1减1,跳转到LOOP1 RET方波发生器原理;软件循环延时,定时不准确;且占用CPU开销。编辑ppt8.2 定时器应用定时器中断XF_Flag .word 1 ;当前XF的电平标志,;如果XF_Flag=1,则XF=1 STM #XF_Flag,AR2 ;AR指向XF标志 STM #0000h,SWWSRSTM #0010h,TCR STM #79,PRD STM #0C29h,TCR STM #0008h,IFR STM #0008h,
54、IMR RSBX INTMend:NOPB end PSHM ST0 ;本中断程序影响TC,位于ST0中;判断当前XF状态并作电平变化BITF *AR2,#1 ;IF XF_Flag=1 then TC=1 else TC=0BC ResetXF,TC ;IF TC=1 then XF=0 else XF=1setXF: SSBX XF ;置XF为高电平ST #1,*AR2 ;相应修改标志B NextResetXF:RSBX XF ;置XF为低电平ST #0,*AR2 ;相应修改标志Next:POPM ST0RETE .end 编辑ppt8.3 时钟发生器时钟发生器的时钟源由以下两种方式输入:
55、1)晶体振荡器,接在X1和X2之间;2)将外部时钟信号接到X2引脚,X1悬空。内部晶体振荡电路外部时钟源电路编辑ppt8.3 CPU时钟频率产生CPU时钟频率CLKOUT内部晶体振荡频率外部时钟频率CLKIN?编辑ppt8.3 硬件配置的PLL引脚状态时钟方式CLKMD1CLKMD2CLKMD3选择方案1选择方案2000工作频率=外时钟3工作频率=外时钟5110工作频率=外时钟2工作频率=外时钟4100工作频率=内振荡器3工作频率=内振荡器5010工作频率=外时钟1.5工作频率=外时钟4.5001工作频率=外时钟/2工作频率=外时钟/2111工作频率=内振荡器/2工作频率=内振荡器/2101工
56、作频率=外时钟1工作频率=外时钟1011停止方式停止方式P59 表2-14编辑ppt8.3 软件可编程PLL对PLL编程实际上是对16位的存储器映射寄存器CLKMD(时钟方式寄存器)进行编程。 CLKMD地址为0058H。对时钟方式寄存器(CLKMD)进行编程,可以:(1) 控制PLL的通和断(2) 控制时钟发生器的工作方式(3) 提供各种时钟的乘法系数(4) 自动延迟定时,直到PLL锁定(稳定)软件可编程PLL的工作方式:(1) PLL方式(倍频):输入时钟(CLKIN)(0.2515)(2) DIV方式 (分频) :输入时钟(CLKIN)(2或4)编辑ppt8.3 时钟方式寄存器(CLKM
57、D)各位的定义时钟方式寄存器(CLKMD)各位段的功能PLLMUL15 12PLLDIV2PLLCOUNT11PLLON/OFF10 3PLLNDIV10PLLSTATUS时钟发生器选择位乘数除数计数器通/断位 工作状态位P 60编辑ppt8.3 时钟方式寄存器(CLKMD)各位段的功能编辑ppt8.3 PLL分频倍频系数表编辑ppt8.3 软件可编程PLL的编程考虑(1)对PLL计数器设置初值在PLL稳定之前,CLKOUT是不能用作DSP时钟的,从启动到PLL完全稳定,这段时间称为“牵引时间”。可以通过对CLKMD寄存器中的PLLCOUNT位编程,使CLKOUT延迟一段时间,等PLL完全稳定
58、后才把CLKOUT输入到DSP。编辑ppt8.3设计举例(1) 从DIV方式转为PLL3方式 已知CLKIN的频率为13MHz,要求PLLCOUNT=41(十进制数),只要在程序中加入如下指令即可: STM #0010 0001 0100 1111 b,CLKMD其中,PLLMUL=0010(2),PLLDIV=0,PLLNDIV=1,故由PLL分频倍频系数表可得乘系数为3;PLLON/OFF=1,表示PLL处于工作状态;PLLCOUNT=00101001,十进制计数值为41。编辑ppt8.3设计举例(2) 从PLL3方式转为二分频DIV方式, 与例1不同,从PLL方式变为DIV方式时没有PL
59、LCOUNT的延时,所以,要通过检测PLLSTATUS位来确定是否已转换为DIV方式。 STM #0B,CLKMD;切换到DIVtest: LDM CLKMD,A AND #01B,A;测试STATUS位 BC test,ANEQ;若不为0则等待 STM #0B,CLKMD;若为0,关PLL编辑ppt8.3设计举例(3) 注意:(1)倍频之间不能直接互相切换,必须先把某一倍频切换到分频模式;然后再切换到新的倍频模式。P64 2-2(2)2分频和4分频之间不能直接切换;必须先转换为倍频,切换到分频。编辑ppt8.4 C54串行口串行口可以与编码解码器,串行模数(A/D)转换器以及其他串行系统进行
60、通信。C54x为用户提供了丰富的同步串行口,可与双向串口器件实现高效的串行通信。C54x的串行口有四种类型: 标准串口SP 缓冲串口BSP 多路缓冲串口McBSP 时分多路同步串口TMD编辑ppt8.4 C54串行口带缓冲的串行口(BSP):由标准同步串行口和一个自动缓冲单元(ABU)组成。ABU的功能是控制串行接口与内部C54x DSP存储器之间的数据传送,且不需要CPU的干预。时分复用(TDM)串行口:允许C54x DSP与7个其他器件进行时分串行通信。当缓冲串口和时分串口工作在标准方式下与标准串口功能相同,下面讨论标准串口工作方式。编辑ppt标准串行口SP 1.SP串口结构 结构组成:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 村里租赁土地合同范本
- 20251月份版实验室设备销售协议检测数据隔离条款
- 药企现场QA培训
- 社区工作者考试基础知识
- 出差协议合同二零二五年
- 二零二五版兼职出纳聘用协议书
- 全新在职员工分红协议
- 班组劳务合同范例
- 二零二五版劳务服务外包合同
- 安防项目合同范本
- 产品研发部门的工作总结
- 四年级小数简便运算100道
- 【辽海版】《综合实践活动》八年级下册4.2畅想智能新生活·设计智能电器
- “互联网+”大学生创新创业大赛计划书一等奖
- 【MOOC】传感技术及应用-哈尔滨工业大学 中国大学慕课MOOC答案
- 水土保持方案投标文件技术部分
- 《园林植物病虫害》课件
- 2024年人力资源服务项目立项申请报告
- 结核分枝杆菌(MTB)异质性耐药研究进展
- 2022年春季鄂东南省级示范高中教育教学改革联盟学校期中联考高一化学试卷
- 螺杆泵培训课件
评论
0/150
提交评论