《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定时器遇到断点
26、后继续运行STM#0008h,IFR;清除尚未处理完的定时中断STM#0008h,IMR;开放定时中断RSBX INTM;开放中断(状态寄存器ST1的INTM位复位),75,三、时钟发生器,两种参考时钟输入方式,作用为C54x提供时钟信号组成,内部振荡器锁相环(PLL),76,时钟频率,晶体振荡频率外部时钟频率CLKIN,内部PLL功能倍频和信号提纯,CPU时钟频率CLKOUT,等于外部时钟源或内部振荡频率乘以系数N(PLLN),77,(1)硬件配置的PLL,78,(2)软件可编程PLL,时钟工作方式寄存器(CLKMD),作用,用来定义PLL时钟模块中的时钟配置,每16个时钟减1,控制PLL通
27、断,79,时钟方式寄存器各位域的功能,80,时钟方式寄存器各位域的功能,81,PLL分频及倍频系数配置表,82,软件编程时钟方式,工作时钟 CLKOUT=CLKIN乘系数,第一:PLL方式 第二:DIV方式,输入时钟CLKIN乘以从0.2515共31个系数中的一个系数,输入时钟CLKIN除以2或4,83,84,四、复位电路,功能,简单的复位电路 有监视功能的复位电路,在DSP上电后,系统的晶体振荡器需100ms200ms的稳定期,应在复位引脚上加一复位信号。,具有监视(Watchdog)功能的自动复位电路。它除了具有上电复位功能外,还具有监视系统运行并在系统发生故障或死机时再次进行复位的能力。
28、,85,五、主机接口,功能用来与主设备或主处理器接口。,(1)HPI存储器(DARAM)(2)HPI地址寄存器(HPIA)(3)HPI数据锁存器(HPID)(4)HPI控制寄存器(HPIC)(5)HPI控制逻辑,86,HPIC,HPIA,HPID,87,HPI存储器(DARAM)。HPI RAM 主要用于C54x与主机之间传送数据,也可以用作通用的双寻址数据RAM或程序RAM。HPI地址寄存器(HPIA)。它只能由主机对其直接访问。寄存器中存放当前寻址的HPI存储单元的地址。HPI数据锁存器(HPID)。它也只能由主机对其直接访问。如果当前进行的是读操作,则HPID中存放的是要从HPI存储器中
29、读出的数据;如果当前进行的是写操作,则HPID中存放的是将要写到HPI存储器的数据。,88,HPI控制寄存器(HPIC)。C54x和主机都能对它直接访问。HPI控制逻辑。用于处理PHI与主机之间的接口信号。当C54x与主机(或主设备)交换信息时,HPI是主机的一个外围设备。HPI的外部数据线是8根,HD(70),在C54x与主机传送数据时,HPI能自动地将外部接口传来的连续的8位数据组合成16位数后传送给C54x。,89,HPI两种工作方式,(1)共用寻址方式(SAM),(2)仅主机寻址方式(HOM),异步工作的主机的寻址可以在HPI内部重新得到同步。如果C54x与主机的周期发生冲突,则主机具
30、有寻址优先权,C54x等待一个周期。,C54x处于复位状态或者处在所有内部和外部时钟都停止的IDLE2空转状态。,90,HPI存储器与DARAM存储器的关系HPIA寄存器对寻址的影响 HPIC控制寄存器各位设置,C54x的HPI存储器是一个2K16位字的DARAM。它在数据存储空间的地址为1000h17FFh。(这一存储空间也可以用作程序存储空间,条件是PMST寄存器的OVLY位为1。),91,HPID与DARAM存储器的关系HPIA寄存器对寻址的影响 HPIC控制寄存器各位设置,HPIA寄存器是16位,由它指向2K字空间,地址为07FFh。HPI存储器地址的自动增量特性可以用来连续寻址HPI
31、存储器。在自动增量方式,每进行一次读操作,都会使HPIA事后增1;每进行一次写操作,都会使HPIA事先增1。HPIA寄存器的每一位都可以读出和写入。尽管寻址2K字的HPI存储器只要11位最低有效位地位,但HPIA的增/减对HPIA寄存器所有16位都会产生影响。,92,HPID与DARAM存储器的关系HPIA寄存器对寻址的影响 HPIC控制寄存器各位设置,HPI控制寄存器为16位寄存器,用来控制HPI的操作。其高8位与低8位完全相同,提供了4个控制位,分别为BOB、SMOD、DSPINT和HINT位。,93,由于主机接口总是传送8位字节,而HPIC是16位的,在主机这边就以相同内容的高字节和低字
32、节来管理HPIC,而在C54x这一边高位是不用的,控制/状态位都处在最低4位。,95,主机读HPIC寄存器,DSPINT=0,主机写HPIC寄存器,SMOD=X,96,C54x读HPIC寄存器,高12位为任意值X,DSIPNT=0,BOB=0,C54x写HPIC寄存器,任意值X,97,HPI与主机的连接,C54x的HPI与主机设备相连时,除了8位HPI数据总线以及控制信号线外,不需要附加其它的逻辑电路。,98,HD0-HD7:进行数据传输,HBIL:字节识别。HBIL=0 第1个字节 HBIL=1 第2个字节,HCT0 HCT1:主机控制线。0 0 主机可以读写HPIC寄存器 0 1 主机可以
33、读写HPID锁存器。每读一次,HPIA事后增一;每写一次,HPIA事先增一 1 0 主机可以读写HPIA寄存器。这个寄存器指 向HPI存储器 1 1 主机可以读写HPID锁存器。HPIA不受影响,99,HR/W:读写信号,=0表示写HPI,=1表示主机读HPI,HCS:片选信号,每次寻址期间必须为低电平,两次寻址期间可以停留在低电平。,HRDY:HPI准备好端。高电平时表示已准备好执行一次数据传送。,100,对HPI的寻址过程,主机先通过HCNTL0、HCNTL1决定将数据总线HD0HD7上的数据送HPIA还是HPID或HPIC。最初由HCNTL0、HCNTL1=00确定将数据送HPIC,以便
34、确定对HPI的控制与传送方式;然后设HCNTL0、HCNTL1=10,将数据送HPIA确定对HPI存储器寻址的首地址。,101,对HPI的寻址过程,再将HCNTL0、HCNTL1=11,然后将数据经HPID送往由HPIA指定的在DARAM首地址,通过HBIL=0地址线确定传送的是1字节,或由HBIL=1确定是2字节。再由HPIC中的BOB=0位确定当前传送的是高字节,或由BOB=1确定是低字节。由HR/W=1控制对HPI读后地址加1,HR/W=0写前加1。由于开始传送数据后不用再传地址,传送数据速度可以快,即实现DMA传送。,102,HPI的中断过程,103,HPI的中断过程可描述如下:主机向
35、C54x的HPI发中断:填写主机中HPIC寄存器的DSPHINT位,由HCNTL0、HCNTL1=00确定将该数据送C54x的HPIC 由HCNTL0、HCNTL1=10确定将002Ch(HPIC地址)送C54x的HPIA,再由HCNTL0、HCNTL1=11确定将填写好的数据送C54X的HPIC,C54x收到该中断信号后,产生中断。,104,HPI的中断过程可描述如下:C54x向主机发中断:填写C54x中的HPIC寄存器的HINT位,C54x的HINT引脚为低电平,向主机发中断信号。主机响应中断后,填写主机中HPIC寄存器的HINT位,将其复位,由HCNTL0、HCNTL1=00确定将该数据
36、送C54x的HPIC,使C54x的HINT引脚为高电平无效,结束中断。,105,第六节 串行口,当缓冲串行口和时分多路串行口工作在标准方式时,它们的功能与标准串行口相同,串行口分类,标准同步串行口(SP)缓冲同步串行口(BSP)多路缓冲串口(McBSP)时分多路串行口(TDM),106,C54xDSP芯片的串行口,107,一、标准串口SP,1.串行口组成,16位数据接收寄存器(DRR)16位数据发送寄存器(DXR)接收移位寄存器(RSR)发送移位寄存器(XSR)控制电路,108,109,标准串口SP特点,可有多个相互独立的标准同步串口发送和接收是双向缓冲的2个存储器映像寄存器用于传送数据每个口
37、有时钟、帧同步脉冲以及串行移位寄存器可以按8位字节或16位字节转换可以产生自己的可屏蔽收发中断可以工作在任意的时钟频率上标准串行口的最高工作频率是CLKOUT的1/4。,110,串行口连接方法,数据发送工作过程 数据接收工作过程,111,在发送数据时,先将要发送的数写到DXR。若XSR是空的(上一字已串行传送到DX引脚),则将DXR中的数据复制到XSR。在FSX和CLKX的作用下,将XSR中的数据移到DX引脚输出。一旦DXR中的数据复制到XSR后,就可以立即将另一个数据写到DXR。在发送期间,DXR中的数据刚刚复制到XSR后,串行口控制寄存器(SPC)中的发送准备好(XRDY)位立即由0转变为
38、1,随后产生一个串行口发送中断(XINT)信号,通知CPU可以对DXR重新加载。,数据发送工作过程,112,数据接收工作过程,接收数据的过程有些类似。来自DR引脚的数据在FSR和CLKR的作用下,移位至RSR,然后复制到DRR,CPU从DRR中读出数据。一旦RSR的数据复制到DRR,SPC中的接收数据准备好(RRDY)位立即由0转变为1,随后产生一个串行口接收中断(RINT)信号,通知CPU可以从DRR中读取数据。,113,由此可见,串行口是双缓冲的,因为当串行发送或接收数据的操作正在执行时,可以将另一个数据传送到DXR或从DRR获得。,114,2串行口控制寄存器,功能控制位作用,控制串行口的
39、工作,115,接收复位 和发送复位,发送方式位。设定帧同步脉冲FSX的来源:为1时,将FSX设置成输出。为0时,将FSX设置成输入。FSR引脚总是配置成输入。,时钟方式位。设定CLKX的时钟源。为0时,CLKX配置成输入,采用外部时钟;为1时,CLKX配置成输出,采用内部时钟。,116,帧同步方式位。0时,串行口工作在连续方式。时,串行口工作在字符组方式。每发送/接收一个字都要求一个帧同步脉冲SX/FSR。,数据格式位,规定串行口发送/接收数据的字长。0为16,1为8位。,数字返回方式位。用于测试串行口,117,3.标准串口SP的使用,STM#0038H,SPC;串口初始化STM#00C0H,
40、IFR;清除挂起的串口中断AND#00C0H,IMR;使能中断 RSBX INTM;使能全局中断STM#00F8H,SPC;开始串口传输STM DATA1,DXR;写第一个数据到DXR,118,第七节 外设接口,数据总线地址总线一组控制信号,一、外设接口的时序关系,1外设接口引线,片外存储器I/O口,作用,寻址,119,1外部总线,120,2外部总线操作的优先级别,由于只有一条外部总线,故在一个机器周期内,CPU只能有1个操作。数据寻址比程序存储器取指具有较高的优先权。,对片外存储器操作,对片内存储器操作,单周期内对片内存储器可完成从程序存储器取1条指令、从数据存储器读2个操作数,向数据存储器
41、写1个操作数。,C54x所有的外部总线寻址都是在整数个CLKOUT周期内完成的。某些不插等待状态的外部总线寻址,例如存储器写操作或I/O读写操作,都是两个机器周期。存储器读操作只需一个机器周期;但如果存储器读操作后紧跟着一次存储器写操作,或者反过来,那么需要多花费半个周期。,3外部接口定时图,122,存储器读一读一写操作定时图,注意下面信号变化:,读操作1个机器周期,123,存储器写一写一读操作定时图,写操作要用2个机器周期,124,并行I/O读一写一读定时图,I/O设备读/写操作要持续2个机器周期,125,二、外设接口的速度配合,1对接口器件的速度要求 外部存储器存取时间应小于60%的机器周
42、期,否则需通过软件或硬件插入等待状态。,C54x读操作定时简图,126,插入等待状态数与外部器件的存取时间的关系,对于型号为TMS320C54x-40的DSP芯片,127,2软件等待状态发生器,软件等待状态寄存器(SWWSR),为什么要对外部存储器分块,功能,协调不同速度的外存器件,将外部总线周期延长多达7个机器周期,方便地与外部慢速器件相接口,128,等待应用举例,为程序空间和I/O空间插入3个等待状态,STM#349B,SWWSR,SWWSR=0 011 010 010 011 011,129,将SWWSR中相应的字段值加载到计数器。等待状态计数器减1计数。当计数器减到0且外部READY线
43、置高电平,经或门加到CPU的WAIT端,结束等待状态。,130,3.利用软件等待实现接口的速度配合,例2-1 试为TMS320C54x-40作如下外设配置:程序存储器 EPROM 8K16位,ta=70ns 数据存储器 SRAM 8K16位,ta=12ns A/D和D/A变换器 16位,转换时间=120ns画出系统的接口连线图。,131,本例中C54x的机器周期为25ns(40MHz),若外部器件的存取时间小于15ns,可以不插入等待状态。因此例中的数据存储器可以不插入等待状态,但程序存储器和A/D、D/A外部设备应分别插入3个(75ns)和5个(125ns)等待状态。此时软件等待状态寄存器S
44、WWSR应配置为:,STM#5018,SWWSR,132,系统接口连线图,133,4利用硬件等待实现接口的速度配合,什么情况下需插入硬件等待状态,当需要插入7个以上的等待状态,或在一个存储区中有两种以上的存取速度,利用MSC引脚的输出信号变为低电平状态和READY线置高电平,怎样用硬件插入等待应,134,5利用混合等待实现接口的速度配合,C54x-40与低地址程序存储器(SRAM,12 ns)以及高地址程序存储器(EPROM,200 ns)相接口。,135,C54x-40与低地址程序存储器(SRAM,12 ns)以及高地址程序存储器(EPROM,200 ns)相接口。前者不需要插入等待状态,后
45、者应插入8个(825=200 ns)等待状态。考虑到软件最多等待7个状态,因此还必须增加一个硬件等待状态。,R I/O Hi Data Low Data Hi Prog Low Prog,STM#1278,SWWSR,136,三、分区转换逻辑,可编程分区转换逻辑的功能 分区转换由分区转换控制寄存器(BSCR)定义,当跨越外部存储器分区界线寻址时,自动地插入一个周期。在这个附加的周期内,让地址总线转到一个新的地址。,BXIO:关断外部总线接口,用来控制外部总线。=0时,外部总线接口处于接通状态。=1时,关断总线接口。BH:总线保持器位,用来控制总线保持器。=0时,关断总线保持器。=1时,接通总线
46、保持器。数据总线保持在原先的逻辑电平。EXIO和BH位可以用来控制外部地址和数据总线。正常操作情况下,这两位都应当置0.,138,外部存储器的分区,139,第八节 复位,复位操作,141,处理器复位操作包括,将下列状态置成初始值:,ARP=0 CLKOFF=0 HM=0 SXM=1 ASM=0 CMPT=0 INTM=1 TC=1 AVIS=0 CPL=0 OVA=0 XF=1 BRAF=0 DP=0 OVB=0 C=1 DROM=0 OVLY=0 C16=0 FRCT=0 OVM=0,143,第九节 中断处理,程序指令INTRTRAPRESET,一、中断类型,受外部中断口信号触发的外部硬件中
47、断受片内外围电路信号触发的内部硬件中断,144,2中断分类,可以用软件屏蔽或开放,145,中断系统是DSP应用系统实现实时操作和多任务多进程操作的关键部分。C54x的中断系统根据芯片型号的不同,提供了2430个硬件及软件中断源,分为1117个中断优先级,可实现多层任务嵌套。,2023年11月7日,DSP原理及应用,146,VC5402中断源和优先级,2023年11月7日,DSP原理及应用,147,VC5402中断源和优先级,2023年11月7日,DSP原理及应用,148,VC5402中断源和优先级,2023年11月7日,DSP原理及应用,149,VC5402中断源和优先级,150,VC5402
48、中断源和优先级,151,二、中断标志寄存器(IFR),中断标志寄存器IFR是一个存储器映像寄存器,当一个中断出现时,IFR中的相应的中断标志位置1,直到CPU识别该中断为止。,152,中断标志寄存器IFR各位的功能。,153,在C54x系列芯片中,IFR中5 0位对应的中断源完全相同,分别为外部中断和通信中断标志寄存位,而156位中断源根据芯片的不同,定义的中断源类型不同。有三种情况将清除中断标志:,相应的IFR标志位置1;使用相应的中断号响应该中断,,154,三、中断屏蔽寄存器(IMR),中断屏蔽寄存器是一个存储器映像寄存器,主要用于控制中断源的屏蔽和开放。,155,中断屏蔽寄存器IMR各位
49、的功能:,156,四、中断处理过程,(1)接受中断请求(2)响应中断(3)执行中断服务程序,157,对于软件中断和非屏蔽中断,CPU将立即响应,进入相应中断服务程序。对于硬件可屏蔽中断,只要满足以下3种条件后CPU才能响应中断。,响应中断,当前中断优先级最高。,C54x按照中断优先级响应中断请求。,INTM位清0。,当INTM=0,所有可屏蔽中断被使能。当INTM=1,所有可屏蔽中断被禁止。,IMR屏蔽位为1。在IMR中,中断的相应位为1,表明允许该中断。,158,复位后的初始地址计算(1)取IPTR的值(2)查表225得中断向量序号(3)将十六进制的中断向量序号左移2位(4)将(1)与(3)
50、结合得中断向量地址,四、实现中断的相关问题,1.中断向量地址的计算,159,左移2位=40H,160,2.外部中断响应的时间,响应的时间查询时间转移时间123个完整的机器周期外部中断的时间基本上在38个机器周期之间。,3.外部中断触发方式,电平触发边沿触发,采样查询转移,CPU硬件信号电平响应中断申请,但中断信号应在中断服务程序返回前拆除,以免造成重复中断。,外部中断输入线上的负跳变首先被CPU的外部中断申请触发器锁存。,161,第十节 自举加载,任务,完成上电时从外部加载并执行用户的程序代码,加载途径:,从一个外部8位或16位EPROM加载;由主处理器通过以下途经加载:,HPI总线、8位或1