DSP原理及应用第二章.ppt
《DSP原理及应用第二章.ppt》由会员分享,可在线阅读,更多相关《DSP原理及应用第二章.ppt(182页珍藏版)》请在三一办公上搜索。
1、1,第二章 DSP芯片结构介绍,2,1)多总线结构2)40位算术逻辑单元(ALU)3)1717位并行乘法器4)比较、选择和存储单元(CSSU)5)指数编码器6)两个地址发生器,第一节 C54x芯片的基本性能,3,7)数据总线具有总线保持特性8)三种存储器空间9)支持单指令循环和块循环10)具有存储块移动指令11)支持32位长操作数指令 12)可编程等待状态发生器13)锁相环(PLL)发生器 14)多通道缓冲串口(McBSP)15)直接存储器访问(DMA)控制器,4,16)主机接口(HPI)17)定时器 18)多种节电模式 19)JTAG接口 20)工作电压低,5,TMS320C54x DSP的
2、内部硬件组成图,6,第三节 内部总线结构,不同总线作用与区别,程序总线(PB)数据总线(CB、DB和EB)地址总线(PAB、CAB、DAB和EAB)在片双向总线,传送取自程序存储器的指令代码和立即操作数。,CB和DB传送读自数据存储器的操作数,EB传送写到存储器的数据。,用来提供执行指令所需的地址。,用于寻址在片外围电路。,7,8,9,为何要设置多内部总线 一个机器周期内可完成的存取操作为何要用两个辅助寄存器算术运算单元 一个周期内如何执行3操作数指令,要点,并行处理和流水线工作,取1指、读2字、写1字。,双字寻址取双操作数,用C、D、P总线取操作数,10,第二节 C54x芯片的CPU结构,4
3、0位算术逻辑运算单元(ALU)2个40位累加器A和B移位-1630位的桶形移位寄存器乘法器/加法器单元比较和选择及存储单元(CSSU)指数编码器CPU状态和控制寄存器,包括,11,CPU结构,12,1.算术逻辑运算单元,ALU如何获取数据 ALU输出送往何方 溢出怎么办 进位位的作用 什么是双16位算术运算,要点,13,当一个16位数据存储器操作数加到40位ALU的输入端时,若状态寄存器ST1的SXM=0,则高位添0,若SXM=1,则符号位扩展,14,ALU如何获取数据 ALU输出送往何方 溢出怎么办 进位位的作用 什么是双16位算术运算,要点,根据ST1的OVM位进行处理,15,溢出处理:A
4、LU的饱和逻辑可以处理溢出。当发生溢出、且状态寄存器ST1的OVM=1时,则用32位最大正数00 7FFFFFFFh(正向溢出)或最大负数FF 80000000h(负向溢出)加载累加器。溢出发生后,相应的溢出标志位(OVA或OVB)置1,直到复位或执行溢出条件指令。也可用SAT指令对累加器进行饱和处理而不必考虑OVM值。若OVM=0,直接将结果回到累加器。,16,ALU如何获取数据 ALU输出送往何方 溢出怎么办 进位位的作用 什么是双16位算术运算,要点,可以用来支持扩展精度的算术运算,利用两个条件操作数C和NC,可以根据进位位的状态,进行分支转移、调用与返回操作。,17,ALU如何获取数据
5、 ALU输出送往何方 溢出怎么办 进位位的作用 什么是双16位算术运算,要点,只要置位ST1的C16状态位,就可让ALU在单个周期内进行特殊的双16位算术运算,亦即进行两次16位加法或两次16位减法。,18,2.累加器A和B,作用 结构与位置 和的异同 加载与存储中的移位,要点,存放运算前后数据,19,作用 结构与位置 和的异同 加载与存储中的移位,要点,累加器和的差别仅在于累加器的3116位可以用作乘法器的一个输入。,依指令而定,20,【例】累加器A=FF 0123 4567H,执行带移位的STH和STL指令后,求暂存器T和A的内容。,STH A,8,T;A的内容左移8位,AH存入T,0 1
6、,2 3,4 5,6 7,0 0,2 3 4 5,T=2345H,A=FF 0123 4567H,STH A,-8,T;A的内容右移8位,AH存入T,4 5,2 3,0 1,F F,F F,F F 0 1,T=FF01H,A=FF 0123 4567H,STL A,8,T;A的内容左移8位,AL存入T,0 1,2 3,4 5,6 7,0 0,6 7 0 0,T=6700H,A=FF 0123 4567H,STL A,-8,T;A的内容右移8位,AL存入T,4 5,2 3,0 1,F F,F F,2 3 4 5,T=2345H,A=FF 0123 4567H,在存储前,有时需要对累加器的内容进行
7、移位操作。,21,3桶形移位器,什么是定标功能归一化的作用 为何要扩展符号位,要点,22,什么是定标功能 归一化的作用 为何要扩展符号位,要点,将输入数据进行031位的左移和016位的右移,23,什么是定标功能 归一化的作用 为何要扩展符号位,要点,对来自数据存储器的操作数或者累加器的值进行定标;对累加器的值进行算术或逻辑移位;对累加器归一化处理;对累加器的值存储到数据存储器之前进行定标。,24,什么是定标功能 归一化的作用 为何要扩展符号位,要点,方便指数运算,进行符号位保护,25,例如:ADD A,-4,B;累加器A右移4位;后加到累加器B ADD A,ASM,B;累加器A按ASM规;定的
8、移位数移位后加到累加器B NORM A;按T寄存器中的数值对累加器归一化,26,4乘法器/加法器,功能结构数据流向 什么是舍入处理,要点,27,功能 结构数据流向 什么是舍入处理,要点,乘法器/加法器单元可以在一个流水线状态周期内完成一次乘法累加(MAC)运算。,28,第2章 TMS320C54x的硬件结构,29,乘法器能够执行:无符号数乘法(每个16位操作数前面加一个0);有符号数乘法(每个16位操作数都符号位扩展成17位有符号数);无符号数(16位操作数前面加一个0)与有符号数(16位操作数符号扩展成17位有符号数)相乘运算。乘法器工作在小数相乘方式(ST1中的FRCT位=1)时,乘法结果
9、左移1位,消除多余的符号位。,30,要点,有些乘法指令,如MAC、MAS等指令,如果带后缀R,就对结果进行舍入处理,即加215至结果,并将目的累加器的低16位清0。当执行LMS指令时,为了修正系数的量化误差最小,也要进行舍入处理。,功能 结构数据流向 什么是舍入处理,31,5比较、选择和存储单元,结构 功能,CSSU是专为Viterbi算法设计的进行加法/比较/选择(ACS)运算的硬件单元。,32,CMPS A,*AR1;如果A(3116)A(150);则A(3116)-*AR1,;TRN左移1位,0-TRN(0),0-TC;否则A(150)-*AR1,TRN左移1位,;1-TRN(0),1-
10、TC,33,指数编码器是一个专用硬件。有了它,可以在单个周期内执行EXP指令,求得累加器中数的指数值,并以2的补码形式(-831)存放到T寄存器中。累加器的指数值=冗余符号位-8,也就是为消去多余符号位而将累加器中的数值左移的位数。当累加器数值超过32位时,指数是个负值。,6指数编码器,34,例如:对累加器的内容求指数 A=FF FFFF FFCB,T=33位-8=25,EXP A,35,桶形移位寄存器和指数译码器可以将累加器中的数值在一个周期内进行归一化处理。,例如,40位累加器A中的定点数为FF FFFF F001。,先用EXPA指令,求得它的指数为13H,存放在T寄存器中。然后再执行NO
11、RMA指令,可在单个周期内将原来的定点数分成尾数FF 8008 0000和指数13H两个部分。,36,7CPU状态和控制寄存器,3个状态寄存器 功能 位置各bit的作用,要点,ST0和ST1中包含有各种工作条件和工作方式的状态;PMST中包含存储器的设置状态及其它控制信息,37,(1)状态寄存器0(ST0),ARP:辅助寄存器指针。在间接寻址单操作数时,用来选择辅助寄存器。,测试/控制标志位。保存ALU测试位操作的结果。可以由TC的状态决定条件分支转移指令、子程序调用以及返回指令是否执行。,38,进位位。执行加法产生进位置1,减法产生借位则清0。,数据存储器页指针。这9位字段与指令字中的低7位
12、结合在一起,形成一个16位直接寻址存储器的地址,对数据存储器的一个操作数寻址。,累加器溢出标志位。,39,(2)状态寄存器1(ST1),块重复操作标志位,指示当前是(1)否(0)在执行块重复操作。,直接寻址编辑方式位。指示直接寻址时采用何种指针。DP的直接寻址方式(0)或SP的直接寻址方式(1)。,XF引脚状态位。XF引脚是一个通用输出引脚。,40,中断方式位。从整体上屏蔽(1)或开放(0)中断。,溢出方式位。确定发生溢出时以正常(0)或饱和(1)方式加载目的累加器。,符号位扩展方式位。确定符号位是(1)否(0)扩展。,41,双16位(1)/双精度(0)算术运算方式位。决定ALU的算术运算方式
13、,小数方式位。当为1,乘法器输出左移1位,以消去多余的符号位。,修正方式位,CMPT决定ARP是(1)否(0)可以修正。,累加器移位方式位。规定一个从-1615的移位值(2的补码)。,42,(3)处理器工作方式状态寄存器(PMST),中断向量指针。指示中断向量所住留的128字程序存储器的位置。,微处理器/微型计算机工作方式位。该引脚为0允许使能并寻址片内ROM;为1不能利用片内ROM。,为1时允许片内双寻址数据RAM块映射到程序空间。,允许(1)/禁止(0)在地址引脚上看到内部程序空间的地址线。,43,为0时DROM可让片内ROM映象到数据空间。,CLKOUT时钟输出关断位。为1时,CLKOU
14、T的输出被禁止,且保持为高电平。,乘法饱和方式位。为1时,在用MAC或MAS指令进行累加以前,对乘法结果作饱和处理。,存储饱和位。当为1时,对存储前的累加器值进行饱和处理。,44,第四节 C54x芯片的存储器结构,一、哈佛结构,冯诺依曼结构,特点与区别,程序空间和数据空间是分开的,而且各有自己的地址总线和数据总线。,两种结构的目的旨在从存储器存取数据。区别在于程序/数据总线和空间是否分开。,程序空间和数据空间是在一起的的,而且采用单一的地址总线和数据总线。,45,哈佛结构 改善的哈佛结构,特点与区别,对存储器空间分配的不同考虑,部分程序/数据空间可交叉,46,二、C54x存储空间的划分与交叉,
15、64K字程序存储空间64K字数据存储空间,空间构架,64K字的I/O空间,程序存储空间:用来存放要执行的指令和指令执行中所需要的系数表(数学用表);数据存储空间:用来存放执行指令所需要的数据;I/O存储空间:用来提供与外部存储器映射的接口,可以作为外部数据存储空间使用。,47,空间交叉的条件,MP/MC位OVLY位DROM位,使能,禁止,程序和数据空间中的片内存储器,PMST,C54x芯片,都具有片内的ROM和RAM存储器。RAM总是安排到数据存储空间,但也可以构成程序存储空间。ROM一般构成程序存储空间,也可以部分地安排到数据存储空间。,48,MP/MC位:若MP/MC=0,则片内ROM安排
16、为程序空间;若MP/MC=1,则片内ROM不安排为程序空间。OVLY位:若OVLY=0,则片内RAM只安排为数据存储空间;若OVLY=1,则片内RAM安排为程序和数据空间。DROM位:若DROM=0,则片内ROM不安排成数据空间;若DROM=1,则部分片内ROM安排为数据空间。不同的 C54x的数据和程序存储区分配略有不同,下图给出了TMS320C549存储器空间分配图。,49,TMS320C549存储器空间分配图,50,多款C54芯片可进行页扩展,以增加程序空间容量。如C548和C549其程序空间可扩展到8192K字。为此,它们有23根地址线,并增加了程序计数器扩展寄存器(XPC),以及6条
17、寻址扩展程序空间的指令。C548和C549中的程序空间分成128页,每页64K。,51,C548和C549页扩展方法对程序空间扩展,程序计数器扩展寄存器XPC,52,当片内RAM安排到程序空间时,每页程序存储器分成两部分:一部分是公共的32K字;一部分是各自独立的32K字。公共存储区为所有页共享,而每页独立的32K字存储区只能按指定的页号寻址。如果片内ROM被寻址(MP/MC=0),它只能在0页,不能映象到程序存储器的其它页。,53,三、存储器,所有C54x芯片都含有片内RAM和ROM。,片内RAM,SARAM,DARAM,单寻址RAM,双寻址RAM,DARAM:由存储器内的一些分块组成。每个
18、DARAM块在单周期内能被访问2次。,SARAM:由存储器分块组成。每个SARAM块在单周期内只能被访问1次。,DARAM和SARAM既可以被映射到数据存储空间用来存储数据,也可以映射到程序空间用来存储程序代码。,片内ROM:主要存放固化程序和系数表。一般构成程序存储空间,也可以部分地映射在数据存储空间。,54,1程序存储器,C5402共有4K字的内部ROM。,C54x的片内ROM容量有大(28K或48K字)有小(2K字),容量大的片内ROM可以把用户的程序代码编写进去,然而片内高2K字ROM中的内容是由TI公司定义的。,55,TI公司定义的内容:,引导程序。,从串行口、外部存储器、I/O口、
19、主机接口进行自动加载引导程序。,256字律扩展表。256字A律扩展表。256字正弦函数值查找表。保留 中断向量表。,F800H FBFFHFC00HFCFFHFD00HFDFFHFE00HFEFFHFF00HFF7FHFF80HFFFFH,F000HF7FFH:用户专用程序,由TI公司固化;F800HFFFFH:TI公司定义。,56,2数据存储器,数据存储器类型,RAM(SARAM)RAM(DARAM),数据存储器可以驻留在片内或者片外。当处理器发出的地址处在片内存储器的范围时,就对片内的RAM寻址。当数据存储器地址产生器发出的地址不在片内存储器的范围内时,处理器就会自动地对外部数据存储器寻址
20、。,57,表2-4,58,为了便于CPU的并行操作,提高芯片的高速处理能力,从0080H开始,按每80H(128)个存储单元为一个块,将DARAM分成若干个数据块。分块以后,用户可以在同一个周期内从同一块DARAM中取出两个操作数,并将数据写入到另一块DARAM中。,59,内部RAM前1K的配置:,存储器映像的CPU寄存器,特殊功能寄存器,0000001FH:,特殊功能寄存器,存储器映像的外设寄存器,0020005FH:,外设寄存器,暂存寄存器SPRAM,0060007FH:,暂存寄存器,008003FFH:,7个DARAM数据块。,60,存储器映像寄存器,特殊功能寄存器 功能:主要用于程序的
21、运算处理和寻址方式的选 择和设定。地址范围:0000H001FH。,C5402的CPU寄存器共有27个,CPU访问这些寄存器时,不需要插入等待时间。,外设寄存器 功能:用来控制片内外设电路的状态和存放数据。地址范围:0020H005FH。,包括串行口通信控制寄存器组、定时器定时控制寄存器组、时钟周期设定寄存器组等。,暂存器SPRAM 功能:用来暂存变量。地址范围:0060H007FH。,61,特殊功能寄存器,62,存储器映像在片外围寄存器,63,四、I/O空间,C54x除了程序和数据存储空间外,还提供了一个具有64K字的I/O空间。主要用于对片外设备的访问。可以使用输入指令PORTR和输出指令
22、PORTW对I/O空间寻址。,在对I/O空间访问时,除了使用数据总线和地址总线外,还要用到IOTRB、IS和I/W控制线。,IOTRB和IS:用于选通I/O空间;,I/W:用于控制访问方向。,64,第五节 在片外围电路,通用I/O引脚定时器时钟发生器主机接口软件可编程等待状态发生器可编程分区开关串行口,C54x的x反映不同子系列器件差别,65,一、通用I/O引脚,66,二、定时器,67,定时寄存器(TIM)周期寄存器(PRD)定时器控制器寄存器(TCR),主要部件,TCR中的控制位和状态位,1用PRD加载TIM,TDDR加载PSC,为0启动定时器,为1关,定时器分步系数,减1计数器,存放时间常
23、数,预定标计数器,减到0从TDDR加载PSC,68,在正常工作情况下,当TIM减到0后,PRD中的时间常数自动地加载到TIM。当系统复位(SRESET置1)或者定时器单独复位(TRB置1)时,PRD中的时间常数重新加载到TIM。复位后,定时器控制寄存器(TCR)的停止状态位TSS=0,定时器启动工作,时钟信号CLKOUT加到预定标计数器PSC。PSC也是一个减1计数器,每当复位或其减到0后,自动地将定时器分频系数TDDR加载到PSC。PSC在CLKOUT作用下,作减1计数。当PSC减到0后,产生一个借位信号,令TIM作减1计数。TIM减到0后,产生定时中断信号TINT,传送至CPU和定时器输出
24、引脚TOUT。,69,定时分频系数和周期数分别装入TCD和PRC寄存器中;,每来一个定时脉冲CLKOUT,计数器PSC减1;,当PSC减至0时,PSC产生借位信号;,在PSC的借位信号作用下,TIM减1计数,同时将分频系数装入PSC,重新计数;,当TIM减到0时,定时时间到,产生定时中断TINT和定时输出TOUT,并将PRD中的时间常数重新装入TIM。,定时器的工作过程:,70,71,定时器的定时时间,定时周期=CLKOUT(TDDR+1)(PRD+1),72,1)TCR中的TSS位置1,关闭定时器。2)加载PRD。3)重新加载TCR,定时器初始化的步骤,使TDDR初始化令TSS位为0TRB位
25、置1,73,开放定时中断(假定INTM=1),1)将中断标志寄存器IFR中的TINT位置1,清除尚未处理完的定时器中断。2)将中断屏蔽寄存器IMR中的TINT位置1,开放定时中断。3)将ST1中的INTM位清0,从整体上开放中断。,74,编程举例,STM#0010h,TCR;TSS=1(TCR第5位TSS置1)STM#0100h,PRD;加载定时器周期寄存器(PRD);定时中断周期=CLKOUT(TDDR+1)(PRD+1)STM#0C20h,TCR;定时分频系数TDDR初始化为0;TSS=0,启动定时器工作;TRB=1,当TIM减到0后重新加载PRD;Soft=1,Free=1定时器遇到断点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 原理 应用 第二

链接地址:https://www.31ppt.com/p-6504741.html