




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章第二章 tms320c54x的结构原理的结构原理 本章主要介绍本章主要介绍tms320c54x dsp的内部结的内部结构和工作原理,包括构和工作原理,包括cpu结构、总线结构、结构、总线结构、存储体结构和外围设备等。存储体结构和外围设备等。重点:重点: cpu和外设的寄存器设置和外设的寄存器设置第二章第二章 tms320c54x的结构原理的结构原理 本章内容:本章内容:1. tms320系列系列dsp概述概述ti市场地位:l1.dsp产品全球第一l2.模拟产品全球第一l3.无线产品全球第一l4.图形计算器全球第一l5.硬盘产品全球第一tms320系列dsp的分类和用途 集成了集成了fla
2、sh存储器、高速存储器、高速a/d转换器以及可靠的转换器以及可靠的can模块及数字马达控制的外围模块,适用于运动控制领模块及数字马达控制的外围模块,适用于运动控制领域。域。 包括包括tms320c5x /c54x/ c55x 成本低,经济性好,成本低,经济性好,主要用于个人电子类产品主要用于个人电子类产品 。 tms320c62x/c67x , c64x,在时钟频率为,在时钟频率为1.1ghz时,时,每秒可执行每秒可执行90亿条指令,适合进行复杂运算处理。亿条指令,适合进行复杂运算处理。 (1)tms320c2000系列系列tms320c20xl20x是2000系列中早期的产品主要特点:主要特
3、点:tms320c24x24x系列在20x的基础上,增加功能: tms320c28x28x系列是目前数字控制领域中性能最好的dsp芯片。与24x相比做了如下的改进:general purpose input output 多通道缓多通道缓冲串行口冲串行口。是在标准是在标准串行接口串行接口的基础之的基础之上对功能上对功能进行扩展,进行扩展,因此,具因此,具有与标准有与标准串行接口串行接口相同的基相同的基本功。本功。sci是用于多是用于多处理器之间处理器之间的异步串行的异步串行通信通信,spi则是用于则是用于cpu与外设与外设之间的同步之间的同步串行通信串行通信 dsessscsip数据暂存器数据
4、暂存器执执 行行 部部 件件控控 制制 电电 路路指令译码器指令译码器总线总线接口接口控制控制电路电路axbxcxdxahbhchdhsidibpspalblcldl寄存器组寄存器组biuabdbcb地地址址加加法法器器指指令令队队列列psw标志寄存器标志寄存器eu运运算算器器dsessscsip数据暂存器数据暂存器执执 行行 部部 件件控控 制制 电电 路路指令译码器指令译码器总线总线接口接口控制控制电路电路axbxcxdxahbhchdhsidibpspalblcldl寄存器组寄存器组abdbcb地地址址加加法法器器指指令令队队列列psw标志寄存器标志寄存器运运算算器器atmppswbsp
5、dptrrampcromp1p2p3p0定时定时中断中断串口串口irplaid振振荡荡x1x2 psen rst ale eap0p1p2p3alu(2)tms320c5000系列系列tms320c55xtms320c55x主要特点主要特点tms320c55x主要特点(续)主要特点(续)l大容量大容量ram(128k)和)和rom(32k););l功耗更低,功耗更低,1.26v的内核工作电压,的内核工作电压,3.3v外设工外设工作电压;作电压;l价格便宜,第一款低于价格便宜,第一款低于5美元的双核美元的双核dsp;l采用新型生产工艺,芯片体积小。采用新型生产工艺,芯片体积小。(3)tms320
6、c6000系列系列(4)tms320c5000+arm7dsp+arm risc多应用于多媒体设备多应用于多媒体设备ti dsp命名方式命名方式dsp常见封装形式常见封装形式dsp常见封装形式(续)常见封装形式(续) dsp常见封装形式(续)常见封装形式(续)2. tms320c54x数字信号处理器数字信号处理器 lc54x数字信号处理器是数字信号处理器是ti公司公司1996年推出的年推出的 新一代定点数字信号处理器。它采用先进的新一代定点数字信号处理器。它采用先进的修修 正哈佛结构正哈佛结构,片内共有,片内共有8条总线(条总线(1条程序总线、条程序总线、 3条数据总线和条数据总线和4条地址总
7、线条地址总线),高度并行的算),高度并行的算 术逻辑单元术逻辑单元alu,专用硬件逻辑,片内存储,专用硬件逻辑,片内存储 器,片内外设,再加上专用的指令系统,使器,片内外设,再加上专用的指令系统,使 c54x芯片速度更高,操作更灵活,非常适用于芯片速度更高,操作更灵活,非常适用于 远程通信等实时嵌入式应用的需要。远程通信等实时嵌入式应用的需要。 c54x的硬件结构框图 c54xdsp特点特点l改进的哈佛结构和改进的哈佛结构和8总线结构总线结构: 使处理器的性能大大提高,实现高度并行操作。使处理器的性能大大提高,实现高度并行操作。例如:可以在一条指令中,同时执行例如:可以在一条指令中,同时执行2
8、次读操作次读操作和和1次写操作。次写操作。c54xdsp特点(续)特点(续)l独立的独立的dma总线和控制器总线和控制器:独立的独立的dma总线,与总线,与cpu的程序、数据总的程序、数据总线并行工作,在不影响线并行工作,在不影响cpu工作的条件工作的条件下,下,dma速度目前已达速度目前已达800mbyte/sc54xdsp特点(续)特点(续)l数据地址发生器(数据地址发生器(dag):v在通用在通用cpu中,数据地址的产生和数据中,数据地址的产生和数据的处理都由的处理都由alu来完成来完成v在在dsp中,设置了专门的数据地址发生中,设置了专门的数据地址发生器(实际上是专门的器(实际上是专门
9、的alu),来产生所),来产生所需要的数据地址,节省公共需要的数据地址,节省公共alu的时间的时间c54xdsp特点(续)特点(续)lpll(phase-locked loop )锁相环)锁相环l定时器定时器(timer)l软件可编程等待状态发生器软件可编程等待状态发生器ljtag(符合(符合ieee1149.1标准)仿真接口标准)仿真接口电气电子工程师协会电气电子工程师协会(institute of electrical and electronics engineers) 3.总线结构总线结构3.总线结构总线结构l八组八组16-bit总线:总线: 程序总线(程序总线(pb)传送从程序存储器
10、来的指令代码和立)传送从程序存储器来的指令代码和立即数。即数。 三组数据总线(三组数据总线(cb,db和和eb)连接各种元器件,如)连接各种元器件,如cpu、数据地址产生逻辑、程序地址产生逻辑,片内、数据地址产生逻辑、程序地址产生逻辑,片内外设和数据存储器。外设和数据存储器。cb和和db总线传送从数据存储器总线传送从数据存储器读读出的操作数。出的操作数。eb总线传送总线传送写写入到存储器中的数据。入到存储器中的数据。 四组地址总线(四组地址总线(pab,cab,dab和和eab)传送执行)传送执行指令和读写数据所需要的地址。指令和读写数据所需要的地址。3.总线结构总线结构 各种读/写方式用到的
11、总线4.存储器与存储空间存储器与存储空间片内存储器介绍片内存储器介绍片内存储器介绍(续)片内存储器介绍(续)片内片内rom空间分配空间分配片内片内rom的分块操作的分块操作片内片内ram的分块操作的分块操作程序存储空间和数据存储空间程序存储空间和数据存储空间pmst和存储空间分配关系和存储空间分配关系数据存储空间分页管理数据存储空间分页管理程序存储空间分页管理程序存储空间分页管理c5402分页扩展程序存储空间图(1)c5402分页扩展程序存储空间图(2)c5402分页扩展程序存储空间图(3)存储器映射存储器映射cpu寄存器寄存器存储器映射存储器映射cpu寄存器功能简介(寄存器功能简介(1)l辅
12、助寄存器(辅助寄存器(ar0ar7):8个个16位的辅助寄位的辅助寄存器可以由中心算术逻辑单元存器可以由中心算术逻辑单元calu访问,也访问,也可以由辅助寄存器算术单元可以由辅助寄存器算术单元arua修改,主要修改,主要功能是产生功能是产生16位的数据地址,也可以作为通用位的数据地址,也可以作为通用寄存器和计数器使用。寄存器和计数器使用。lt寄存器(寄存器(treg):主要用于存放乘法指令:主要用于存放乘法指令的一个乘数,也可以为移位指令存放移位计数,的一个乘数,也可以为移位指令存放移位计数,还可以存放指数运算指令还可以存放指数运算指令exp的指数值等。的指数值等。存储器映射存储器映射cpu寄
13、存器功能简介(寄存器功能简介(2)l状态转移寄存器(状态转移寄存器(trn):在执行比较指令:在执行比较指令cmps时,可以通过该寄存器位值的变化来判时,可以通过该寄存器位值的变化来判断比较结果。断比较结果。l堆栈指针寄存器(堆栈指针寄存器(sp):用于存放栈顶的:用于存放栈顶的16位地址。位地址。l循环缓冲区长度寄存器(循环缓冲区长度寄存器(bk):用来在循环:用来在循环寻址时确定循环缓冲区的大小。寻址时确定循环缓冲区的大小。存储器映射存储器映射cpu寄存器功能简介(寄存器功能简介(3)l块循环寄存器(块循环寄存器(brc,rsa,rea):在执行块:在执行块循环指令时由循环指令时由brc确
14、定一块代码需要循环的确定一块代码需要循环的次数;由次数;由rsa指定需要循环块的起始地址,由指定需要循环块的起始地址,由rea指定循环块的结束地址。指定循环块的结束地址。l中断寄存器(中断寄存器(imr,ifr):中断屏蔽寄存器:中断屏蔽寄存器imr用于屏蔽指定的中断,中断状态寄存器用于屏蔽指定的中断,中断状态寄存器ifr用来表示各个中断的当前状态。用来表示各个中断的当前状态。存储器映射外围电路寄存器存储器映射外围电路寄存器i/o存储空间如:如:portr pa, smem ; pa为端口地址,为端口地址,smem为内存地址为内存地址 portw smem, pa;5.中央处理单元(中央处理单
15、元(cpu)v通用微处理器的通用微处理器的cpu由由alu和和cu组成,其组成,其算术运算和逻辑运算通过软件来实现,如算术运算和逻辑运算通过软件来实现,如加法需要加法需要10个机器周期,乘法是一系列的个机器周期,乘法是一系列的移位和加法,需要数十个机器周期。移位和加法,需要数十个机器周期。vdsp的的cpu设置硬件乘法器,可以在单周设置硬件乘法器,可以在单周期内完成乘法和累加期内完成乘法和累加cpu的基本组成cpu状态和控制寄存器状态和控制寄存器 40位算术逻辑单元(位算术逻辑单元(alu) 40位累加器位累加器a和和b桶形移位寄存器桶形移位寄存器乘法器乘法器/加法器单元加法器单元比较、选择和
16、存储单元(比较、选择和存储单元(cssu)指数编码器指数编码器算术逻辑单元(alu)和累加器ltms320c54x使用使用40位算术逻辑单元(位算术逻辑单元(alu)和两个和两个40位累加器(位累加器(acca和和accb)来完成)来完成算术运算和逻辑运算,且大多数都是单周期指算术运算和逻辑运算,且大多数都是单周期指令。令。alu功能框图16位数据的符号位数据的符号位扩展:位扩展:(1)当)当st1寄存寄存器中的器中的sxm=0时;时;高位全部添高位全部添0(2)当)当st1寄存寄存器中的器中的sxm=1,进行符号位扩展,进行符号位扩展,正数全部添正数全部添0;负;负数全部添数全部添1溢出处理
17、累加器累加器a和和b累加器内容保存累加器内容保存l 例如:累加器例如:累加器a=ff 4321 1234h移位移位vdsp可以在一个机器周期内左移或右移多个可以在一个机器周期内左移或右移多个bit,可以用,可以用来对数字定标,使之放大或缩小,以保证精度和防止溢来对数字定标,使之放大或缩小,以保证精度和防止溢出;还可以用来作定点数和浮点数之间的转换出;还可以用来作定点数和浮点数之间的转换v例:例:vadd a,4,b; 累加器累加器a右移右移4位后加到累加器位后加到累加器bvadd a,asm,b;累加器累加器a按按asm指定的位数移位指定的位数移位 v 后加到累加器后加到累加器b桶形移位寄存器
18、l桶形移位寄存器的输入可以为:桶形移位寄存器的输入可以为:l从从db获得的获得的16位操作数;位操作数;l从从db和和cb获得的获得的32位操作数;位操作数;l从累加器从累加器a或或b获得的获得的40位操作数。位操作数。l桶形移位寄存器的输出连到桶形移位寄存器的输出连到alu或经或经eb总线总线写入指定存储单元。写入指定存储单元。桶型移位器功能框图 乘法器/加法器单元lc54x cpu有一个有一个17x17位的硬件乘法器,与位的硬件乘法器,与40位的专位的专用加法器相连,可以在单周期内完成一次乘法累加运用加法器相连,可以在单周期内完成一次乘法累加运算。乘法器的输出经小数算。乘法器的输出经小数/
19、整数乘法(整数乘法(frct/int)输)输入控制后加到加法器的一个输入端,加法器的另一个入控制后加到加法器的一个输入端,加法器的另一个输入端来自累加器输入端来自累加器a或或b。l加法器还包括零检测器、舍入器(二进制补码)及溢加法器还包括零检测器、舍入器(二进制补码)及溢出出/饱和逻辑电路。饱和逻辑电路。乘法器/加法器单元功能框图 乘/加单元实现xiyi运算过程比较、选择和存储单元功能框图 比较、选择和存储单元功能框图例如,用例如,用cmps指令对累加器指令对累加器a中中ah和和al的内容进行比较,的内容进行比较,并将较大的数存放到指定单元并将较大的数存放到指定单元cmps a,*ar1;(a
20、h)(al),则(),则(ah)*ar1,trn左移左移1位,低位补位,低位补0,tc置置0(ah)a处理器方式状态寄存器处理器方式状态寄存器pmst的位结构的位结构状态寄存器pmst利用辅助寄存器进行间接寻址示意图利用辅助寄存器进行间接寻址示意图影响影响tc位的指令位的指令利用利用dp进行直接寻址进行直接寻址ld #4ld #4,dp dp ;指;指向页向页4 4(0200h-0200h-027fh027fh)add 9hadd 9h,a a ;将;将数据页数据页4 4中地址中地址9h9h的的数据加给数据加给acca利用利用sp进行直接寻址进行直接寻址循环对循环对xf位置位置1和清和清0,
21、控制控制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指令执行时间为一个时钟周期,
22、设指令执行时间为一个时钟周期,设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 #4
23、999, ar2 ;循环次数循环次数5000loop2: banz loop2,*ar2- ;如果如果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.6.程序地址生成器程序地址生成器程
24、序计数器程序计数器pcl 加载地址到加载地址到pc的几种途径的几种途径操操 作作 加加载载到到 pc 的的地地址址 复位 pc=ff80h 顺序执行指令 pc=pc+1 分支转移 用紧跟在分支转移指令后面的 16 位立即数加载 pc 由累加器分支转移 用累加器 a 或 b 的低 16 位加载 pc 块重复循环 假如 braf=1(块重复有效), 当 pc+1 等于块重复结束地址(rea)+1 时,将块重复起始地址(rsa)加载 pc 子程序调用 将 pc+2 压入堆栈, 并用紧跟在调用指令后面的 16 位立即数加载 pc。返回指令将栈顶弹出至 pc,回到原先的程序处继续执行 从累加器调用子程序
25、 将 pc+1 压入堆栈,用累加器 a 或 b 的低 16 位加载 pc。返回指令将栈顶弹出至 pc,回到原先的程序处继续执行 硬件中断或软件中断 将 pc 压人堆栈,用适当的中断向量地址加载 pc。中断返回时,将栈顶弹出至 pc,继续执行被中断了的程序 bacc src b pmad call pmad cala src intr k分支转移操作l (1)无条件分支转移)无条件分支转移;此时;此时pc=pmad,pmad为一个为一个16位位 的地址,程序转移到在此地址处的的地址,程序转移到在此地址处的 指令开始执行。指令开始执行。例如:例如: ;src为累加器(为累加器(a/b);此时把累加
26、);此时把累加 器低器低16位中的值作为指令地址加载位中的值作为指令地址加载 到到pc,程序从此地址处的指令开,程序从此地址处的指令开 始执行。始执行。例如:例如:ld #80h,a bacc a;从;从0 x80起始的内存处开始程序。起始的内存处开始程序。 (2)条件分支转移)条件分支转移;cond作为转移条件,如果作为转移条件,如果 cond成立,则成立,则pc=pmad, 即从此地址处的指令开始执即从此地址处的指令开始执 行。行。;sind为一个操作数,若此为一个操作数,若此 操作数不为操作数不为0,则,则pc=pmad。调用和返回调用和返回l (1)无条件调用返回)无条件调用返回l无条
27、件调用和返回指令有以下几种:无条件调用和返回指令有以下几种:;将返回地址压入堆栈,;将返回地址压入堆栈,pmad加载加载 pc。;将返回地址压入堆栈,累加器低;将返回地址压入堆栈,累加器低 16位加载位加载pc。;用栈顶的返回地址加载;用栈顶的返回地址加载pc。;返回地址加载;返回地址加载pc,并开放中断。,并开放中断。(2)条件调用返回)条件调用返回l条件调用和返回指令有两种:条件调用和返回指令有两种:如果指令规定的条件得到满如果指令规定的条件得到满 足,则先将返回地址压入堆足,则先将返回地址压入堆 栈,然后用所指定的地址加栈,然后用所指定的地址加 载载pc。;如果指令中的条件得到满足,则将
28、;如果指令中的条件得到满足,则将 栈顶的返回地址加载栈顶的返回地址加载pc。条件指令中的条件判断条件指令中的条件判断操操 作作 数数 符符 号号 条条 件件 说说 明明 aeq a=0 累 加 器 a 等 于 0 beq b=0 累 加 器 b 等 于 0 aneq a0 累 加 器 a 不 等 于 0 bneq b0 累 加 器 b 不 等 于 0 alt a0 累 加 器 a 小 于 0 blt b0 累 加 器 b 小 于 0 aleq a0 累 加 器 a 小 于 等 于 0 bleq b0 累 加 器 b 小 于 等 于 0 agt a0 累 加 器 a 大 于 0 bgt b0 累
29、 加 器 b 大 于 0 ageq a0 累 加 器 a 大 于 等 于 0 bgeq b0 累 加 器 b 大 于 等 于 0 见书附录见书附录c条件指令中的条件判断(续)条件指令中的条件判断(续)操作数符号操作数符号 条条 件件 说说 明明 aov aov=1 累加器 a 溢出 bov bov=1 累加器 b 溢出 anov aov=0 累加器 a 不溢出 bnov bov=0 累加器 b 不溢出 c c=1 alu 进位位置 1 nc c=0 alu 进位位清成 0 tc tc=1 测试/控制标志置 1 ntc tc=0 测试/控制标志清成 0 bio bio 低 bio 信号为低电平
30、nbio bio 高 bio 信号为高电平 unc 无 无条件操作 多重条件指令中的条件组合见书见书p214 图图6-1多重条件组合要求多重条件组合要求条件执行指令xcxc 1, blt ;若累加器若累加器b小于小于0则执行下面一条指令则执行下面一条指令neg b ; 累加器累加器b求负求负dst b, data;把累加器把累加器b值存储到一值存储到一data开始开始 的连续两个内存单元的连续两个内存单元条件存储指令条件存储指令条件存储指令条件存储指令 说说 明明 saccd src, xmem, cond 如果条件满足,(src)(asm16)xmem, 否则(xmem) xmem strc
31、d xmem, cond 如果条件满足,(t) xmem, 否则(xmem) xmem srccd xmem, cond 如果条件满足,(brc) xmem, 否则(xmem) xmem 重复操作指令重复操作指令重复操作指令(续)重复操作指令(续)需重复的需重复的内容内容复位操作复位操作l 硬件复位(硬件复位(/rs)是一个不可屏蔽的外部中断,)是一个不可屏蔽的外部中断,正常的复位操作是上电后至少保持正常的复位操作是上电后至少保持5个时钟周个时钟周期的低电平,以确保数据、地址以及控制线的期的低电平,以确保数据、地址以及控制线的正确配置。复位后变高电平,处理器从正确配置。复位后变高电平,处理器从
32、ff80h处取指,即处取指,即pc= ff80h 。l 软件复位(软件复位(reset指令)是一个不可屏蔽的指令)是一个不可屏蔽的软件中断,该指令执行后软件中断,该指令执行后pc= ff80h 。中断操作中断操作l 中断是由硬件驱动或软件驱动的信号。中断使中断是由硬件驱动或软件驱动的信号。中断使dsp暂停正在执行的程序,并进入中断服务程序。暂停正在执行的程序,并进入中断服务程序。软件中断:软件中断:intr、trap、reset硬件中断:硬件中断:l受外部中断口信号触发的外部硬件中断受外部中断口信号触发的外部硬件中断。l受片内外围电路信号触发的内部硬件中断受片内外围电路信号触发的内部硬件中断。
33、中断类型中断类型 :可屏蔽中断可屏蔽中断 、非屏蔽中断非屏蔽中断 中断操作中断操作1. 可屏蔽中断:可屏蔽中断:dsp芯片根据型号不同,所支持的芯片根据型号不同,所支持的可屏蔽中断数目也不尽相同,以可屏蔽中断数目也不尽相同,以c5402为例,其支为例,其支持的可屏蔽中断为:持的可屏蔽中断为:(1)int0int3:四级片外中断四级片外中断(2)rint0、xint0:片内串口片内串口0收、发中断收、发中断(3)rint1、xint1:片内串口片内串口1收、发中断收、发中断(4)tint0、tint1:片内定时器片内定时器0、1的定时中断的定时中断(5)hpint:主机接口中断主机接口中断(6)
34、dmac0dmac5:6通道通道dma中断中断中断操作中断操作可屏蔽中断是否被响应,取决于三要素:可屏蔽中断是否被响应,取决于三要素:对对intm位和位和stm寄存器进行设置,寄存器进行设置,开开指定放对应的可屏蔽中断:指定放对应的可屏蔽中断:stm #0008h,imr ;开放定时开放定时0中断中断rsbx intm ;全局开放中断全局开放中断中断操作中断操作2. 不可屏蔽中断:不可屏蔽中断:dsp总是会响应这些中断,不可总是会响应这些中断,不可屏蔽中断包括:屏蔽中断包括:(1)所有的软件中断)所有的软件中断(2)由)由/rs引脚引入的硬件复位中断引脚引入的硬件复位中断(3)由非屏蔽中断引脚
35、)由非屏蔽中断引脚/nmi引入的外部中断引入的外部中断 不可屏蔽中断不受不可屏蔽中断不受intm和和imr的限制。的限制。中断操作中断操作软件中断:软件中断:(1)软件中断指令:)软件中断指令:intr k; 当当cpu响应响应intr中断时,中断时,intm位被置位被置1,屏蔽其他可屏蔽中,屏蔽其他可屏蔽中断。指令中的操作数断。指令中的操作数k是中断号(是中断号(p109),表示),表示cpu所要转移的所要转移的中断向量的位置。中断向量的位置。(2)软件中断指令:)软件中断指令:trap k; 功能和功能和intr指令相同,区别是执行指令相同,区别是执行trap指令指令不影响不影响intm的
36、的位值。位值。(3)软件复位指令:)软件复位指令:reset; 是一个不可屏蔽的软件中断,该指令是一个不可屏蔽的软件中断,该指令影响状态寄存器影响状态寄存器st0和和st1,但不影响,但不影响pmst寄存器寄存器。中断处理步骤(中断处理步骤(1)c54x中断分为三个阶段:中断分为三个阶段:第一阶段:第一阶段:接受中断请求接受中断请求当硬件或软件指令请求中断时,当硬件或软件指令请求中断时,cpu中的中的ifr相应位置相应位置1。ifr中断标志寄存器,当有中断请求出现时中断标志寄存器,当有中断请求出现时ifr中的对应中的对应中断标志位置中断标志位置1,有四种情况会清除该中断标志位:,有四种情况会清
37、除该中断标志位:(1)该中断得到该中断得到cpu处理;处理;(2)dsp硬件复位;硬件复位;(3)重新将重新将1写入该位,以清除尚未处理完的中断;写入该位,以清除尚未处理完的中断;(4)利用利用intr指令执行该位中断的中断号;指令执行该位中断的中断号;p107stm #0008h,ifr ;清除尚未处理完的定时中断清除尚未处理完的定时中断intr 19 ;利用利用intr指令指令清除尚未处理清除尚未处理;完的定时中断完的定时中断中断处理步骤(中断处理步骤(2)中断处理步骤(中断处理步骤(3)l第三阶段:第三阶段:执行中断服务程序执行中断服务程序(1)pc值入栈,作为中断返回地址;值入栈,作为
38、中断返回地址;(2)将中断向量地址加载)将中断向量地址加载pc;(3)获取位于该向量地址的分支转移指令;)获取位于该向量地址的分支转移指令;(4)执行该转移指令,转到中断服务程序;)执行该转移指令,转到中断服务程序;(5)中断服务程序结束,执行中断返回指令;)中断服务程序结束,执行中断返回指令;(6)从堆栈顶部弹出返回地址;)从堆栈顶部弹出返回地址;(7)回到主程序继续执行。)回到主程序继续执行。中断处理步骤(中断处理步骤(4)l中断向量地址的产生中断向量地址的产生 中断向量的地址(中断向量的地址(16位)由位)由pmst寄存器中的寄存器中的iptr位和左位和左移两位后的中断号共同组成移两位后
39、的中断号共同组成.如:如:iptr=001h;/int0的中断号的中断号=16(10h)则:则:iptr作为中断向量地址的高作为中断向量地址的高9位位 /int0的中断号的中断号10h左移两位后作为中断向量地址低左移两位后作为中断向量地址低7位位故:故:该中断向量地址为:该中断向量地址为:00c0h程序举例程序举例编写计算编写计算 的主要程序的主要程序 .bss x,4 ;为;为x建立建立4个单元,放置个单元,放置x1、x2、x3、x4 .bss y,1 ;为;为y建立一个单元,放置建立一个单元,放置y stm #x,ar1 ;将;将x1的地址传给的地址传给ar1 stm #3,ar2 ;将循
40、环次数;将循环次数3传给传给ar2 ld #0,a ;对累加器;对累加器a清零清零loop:add *ar1+,a ;对;对x1、x2、x3、x4循环累加,结循环累加,结 果放在果放在a中中 banz loop, *ar2- ;检查循环是否结束;检查循环是否结束 stl a,y ;将结果存入;将结果存入y中中41iixy利用单条指令的重复操作对数组进行初始化利用单条指令的重复操作对数组进行初始化x50,0,0,0,0思考:用思考:用rptz指令实现上述功能。指令实现上述功能。利用块重复操作对数组利用块重复操作对数组x5中的每个元素加中的每个元素加1 7.流水线流水线l c54x有一个有一个6级
41、深度的指令流水线。这级深度的指令流水线。这6级流水线级流水线彼此是独立的。在任何一个机器周期内,可以有彼此是独立的。在任何一个机器周期内,可以有1至至6条不同的指令在同时工作,每条指令工作在不同的流条不同的指令在同时工作,每条指令工作在不同的流水线上。这水线上。这6级流水线的功能如下:级流水线的功能如下: l 预取指和取指是指令的取指顺序。第预取指和取指是指令的取指顺序。第3级是对指令进级是对指令进行译码,产生执行指令所需要的一系列控制信号。接行译码,产生执行指令所需要的一系列控制信号。接着的两级是寻址并读出操作数。着的两级是寻址并读出操作数。流水线冲突流水线冲突 解决流水线冲突办法解决流水线
42、冲突办法解决流水线冲突办法解决流水线冲突办法引起流水线冲突的硬件引起流水线冲突的硬件8.在片外围电路在片外围电路通用通用i/o引脚引脚和和xf定时器定时器时钟发生器时钟发生器串行口串行口主机接口主机接口软件可编程等待状态发生器软件可编程等待状态发生器可编程分区转换逻辑可编程分区转换逻辑不同不同子系列子系列器件器件差别差别通用通用i/o引脚引脚bio和和xf定时器定时器时钟发生器时钟发生器串行口串行口8.1 通用通用i/o引脚引脚8.2 定时器定时器l片内定时器是一个软件可编程定时器,可以用片内定时器是一个软件可编程定时器,可以用来周期的产生中断。来周期的产生中断。l片内定时器有三个存储器映像寄
43、存器:片内定时器有三个存储器映像寄存器:l三个映像寄存器在数据存储空间的地址分别为三个映像寄存器在数据存储空间的地址分别为0024h、0025h和和0026h8.2 定时器控制寄存器(定时器控制寄存器(tcr)tcr0026h15 12保留保留 11soft 10free 9 6psc 5trb 4tss 3 0tddr 保留位保留位软件调试控制位软件调试控制位 预定标预定标计数器计数器 重新重新加载位加载位 停止停止状态位状态位 分分 频频系系 数数 8.2 条件定时器控制寄存器(条件定时器控制寄存器(tcr)的功能)的功能8.2 定时器工作原理定时器工作原理8.2 定时中断的周期定时中断的
44、周期8.2 定时中断的周期定时中断的周期 ,要求得到,要求得到2ms定时中断定时中断则:则:200ns*(1+tddr)*(1+prd) =2mstddr可选可选9prd可选可选9998.2 定时器的用法定时器的用法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 ;定时分频系数;定时
45、分频系数tddr初始化为初始化为y ;tss=0,启动定时器工作,启动定时器工作 ;trb=1,当,当tim减到减到0后重新加载后重新加载prd ;soft=1,free=1定时器遇到断点后继续运行定时器遇到断点后继续运行stm #0008h,ifr ;清除尚未处理完的定时中断清除尚未处理完的定时中断stm #0008h,imr ;开放定时中断开放定时中断rsbx intm ;开放中断(状态寄存器;开放中断(状态寄存器st1的的intm位复位)位复位)8.2 定时器应用定时器应用定时器中断定时器中断codestart: ;程序入口程序入口 ssbx xf ;xf置置1 call delay ;
46、调用延时程序调用延时程序 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方波发生器原理;方波发生器原理;软件循环延时,定软件循环延时,定时
47、不准确;且占用时不准确;且占用cpu开销。开销。8.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,imr rsbx intmend:nopb end pshm st0 ;本中断程序影响本中断程序影响tc,位于,位于st0中中;判断当前判断当前xf状态并作
48、电平变化状态并作电平变化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 8.3 时钟发生器时钟发生器l时钟发生器的时钟源由以下两种方式输入:时钟发生器的时钟源由以下两种方式输入:1)晶体振荡器,接在)晶体
49、振荡器,接在x1和和x2之间;之间;2)将外部时钟信号接到)将外部时钟信号接到x2引脚,引脚,x1悬空。悬空。内部晶体振荡电路内部晶体振荡电路外部时钟源电路外部时钟源电路8.3 cpu时钟频率产生时钟频率产生cpucpu时钟频率时钟频率clkout内部晶体振荡频率内部晶体振荡频率外部时钟频率外部时钟频率clkinclkin? ?8.3 硬件配置的硬件配置的pll引脚状态引脚状态时钟方式时钟方式clkmdclkmd1 1clkmdclkmd2 2clkmdclkmd3 3选择方案选择方案1 1选择方案选择方案2 20 00 00 0工作频率工作频率= =外时钟外时钟3 3工作频率工作频率= =外
50、时钟外时钟5 51 11 10 0工作频率工作频率= =外时钟外时钟2 2工作频率工作频率= =外时钟外时钟4 41 10 00 0工作频率工作频率= =内振荡器内振荡器3 3工作频率工作频率= =内振荡器内振荡器5 50 01 10 0工作频率工作频率= =外时钟外时钟1.51.5工作频率工作频率= =外时钟外时钟4.54.50 00 01 1工作频率工作频率= =外时钟外时钟/2/2工作频率工作频率= =外时钟外时钟/2/21 11 11 1工作频率工作频率= =内振荡器内振荡器/2/2工作频率工作频率= =内振荡器内振荡器/2/21 10 01 1工作频率工作频率= =外时钟外时钟1 1
51、工作频率工作频率= =外时钟外时钟1 10 01 11 1停止方式停止方式停止方式停止方式p59 表表2-148.3 软件可编程软件可编程pll8.3 时钟方式寄存器时钟方式寄存器(clkmd)各位的定义各位的定义pllmul15 12plldiv2pllcount11pllon/off10 3pllndiv10pllstatus时钟发生时钟发生器选择位器选择位乘数乘数除数除数计数器计数器通通/ /断位断位 工作工作状态位状态位p 608.3 时钟方式寄存器时钟方式寄存器(clkmd)各位段的功能各位段的功能8.3 pll分频倍频系数表分频倍频系数表pllndiv plldiv pllmul
52、乘 系 数* 0 x 014 0.5 0 x 15 0.25 1 0 014 pllmul+1 1 0 15 1 1 1 0 或偶数 (pllmul+1)2 1 1 奇数 pllmul4 *clkoutclkin乘系数 8.3 软件可编程软件可编程pll的编程考虑的编程考虑8.3设计举例(设计举例(1) stm #0010 0001 0100 1111 b,clkmd8.3设计举例(设计举例(2) 与 例与 例 1 不 同 , 从不 同 , 从 p l l 方 式 变 为方 式 变 为 d i v 方 式 时 没 有方 式 时 没 有 stm #0b,clkmd;切换到;切换到divtest:
53、 ldm clkmd,a and #01b,a;测试;测试status位位 bc test,aneq;若不为;若不为0则等待则等待 stm #0b,clkmd;若为;若为0,关,关pll8.3设计举例(设计举例(3) 8.4 c54串行口串行口l串行口可以与编码解码器串行口可以与编码解码器,串行模数串行模数(a/d)转换器以及其他串行系转换器以及其他串行系统进行通信。统进行通信。8.4 c54串行口串行口带缓冲的串行口(带缓冲的串行口(bsp):):由标准同步串行口和一个自动缓冲单元(由标准同步串行口和一个自动缓冲单元(abu)组成。)组成。abu的功能是控制串行接口与内部的功能是控制串行接口与内部c54x dsp存储器之间的存储器之间的数据传送,且不需要数据传送,且不需要cpu的干预。的干预。时分复用(时分复用(tdm)串行口:)串行口:允许允许c54x dspc54x dsp与与7 7个其他器件进行时分串行通信。个其他器件进行时分串行通信。当缓冲串口和时分串口工作在标准方式下与标准串口功能当缓冲串口和时分串口工作在标准方式下与标准串口功能相同,下面讨论标准串口工作方式。相同,下面讨论标准串口工作方式。 接收通道接收通道发送通道发送通道引引 脚脚说说 明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 隧道机械化施工中的设备管理策略与实施计划制定研究考核试卷
- 铅酸电池的循环利用与环保技术考核试卷
- 货运火车站物流企业绩效管理体系构建与实施考核试卷
- 陶瓷艺术工作室运营与管理考核试卷
- 铜冶炼厂的安全管理体系构建与运行考核试卷
- 小儿常见眼部疾病诊疗与预防
- 食品营养与卫生
- 脑血管疾病的营养管理
- 呼吸科评分量表临床应用与管理规范
- Glisoprenin-A-生命科学试剂-MCE
- 广汽海外新媒体营销策划案
- 《智能仓储解析》课件
- 《典型有毒有害气体》课件
- 造纸术的课件
- 设备维修与保养培训
- 小学生防治碘缺乏病
- 商业街区广告牌更换施工方案
- DB21T 3806-2023 电梯检验检测全程录像工作规范
- 图论及其应用知到智慧树章节测试课后答案2024年秋山东大学
- 图书选品与陈列艺术研究-洞察分析
- 【MOOC】电子技术实验基础一:电路分析-电子科技大学 中国大学慕课MOOC答案
评论
0/150
提交评论