DSP复习资料精华版ppt课件.ppt
DSP复习资料2009 精华版信息073 荣誉出品121 1TITI公司的公司的DSPDSP芯片芯片 TITI公司常用的公司常用的DSPDSP芯片可以归纳为三大系列芯片可以归纳为三大系列:(1 1)TMS320C2000TMS320C2000系列系列,称为,称为DSPDSP控制器,集成了控制器,集成了flashflash存储器、高速存储器、高速A/DA/D转换器以及可靠的转换器以及可靠的CANCAN模块及数模块及数字马达控制的外围模块,适用于三相电动机、变频器字马达控制的外围模块,适用于三相电动机、变频器等高速实时工控产品等需要数字化的控制领域。等高速实时工控产品等需要数字化的控制领域。(2 2)TMS320C5000TMS320C5000系列系列,这是,这是1616位定点位定点DSPDSP。主要。主要用于通信领域,如用于通信领域,如IPIP电话机和电话机和IPIP电话网关、数字式助电话网关、数字式助听器、便携式声音听器、便携式声音/ /数据数据/ /视频产品、调制解调器、手视频产品、调制解调器、手机和移动电话基站、语音服务器、数字无线电、小型机和移动电话基站、语音服务器、数字无线电、小型办公室和家庭办公室的语音和数据系统。办公室和家庭办公室的语音和数据系统。第一章第一章一、主要的一、主要的DSPDSP芯片种类芯片种类3(3 3)TMS320C6000TMS320C6000系列系列DSPDSP 采用新的超采用新的超长指令字结构设计芯片。其中长指令字结构设计芯片。其中20002000年以后推年以后推出的出的C64xC64x,在时钟频率为,在时钟频率为1.1GHz1.1GHz时,可达到时,可达到8800MIPS8800MIPS以上,即每秒执行以上,即每秒执行9090亿条指令。其亿条指令。其主要应用领域为:主要应用领域为:1 1)数字通信)数字通信 完成完成FFTFFT、信道和噪声估、信道和噪声估计、信道纠错、干扰估计和检测等。计、信道纠错、干扰估计和检测等。2 2)图像处理)图像处理 完成图像压缩、图像传输、完成图像压缩、图像传输、模式及光学特性识别、加密模式及光学特性识别、加密/ /解密、图像增解密、图像增强等。强等。41 1DSPDSP芯片的运算速度芯片的运算速度 MACMAC时间时间:一次乘法和一次加法的时间。大部分:一次乘法和一次加法的时间。大部分DSPDSP芯片可在一个指令周期内完成一次乘法和一次加芯片可在一个指令周期内完成一次乘法和一次加法操作。法操作。FFTFFT执行时间:运行一个执行时间:运行一个N N点点FFTFFT程序所需时间。由程序所需时间。由于于FFTFFT运算在数字信号处理中很有代表性,因此运算在数字信号处理中很有代表性,因此FFTFFT运运算时间常作为衡量算时间常作为衡量DSPDSP芯片运算能力的一个指标。芯片运算能力的一个指标。MIPSMIPS:每秒执行百万条指令。:每秒执行百万条指令。MOPSMOPS:每秒执行百万次操作。:每秒执行百万次操作。MFLOPSMFLOPS:每秒执行百万次浮点操作。:每秒执行百万次浮点操作。BOPSBOPS:每秒执行十亿次操作。:每秒执行十亿次操作。二、选择芯片考虑的因素二、选择芯片考虑的因素5三、系统调试和评价工具三、系统调试和评价工具 : : TMS320TMS320有一系有一系列系统调试工具用于代替或协助目标系统进行列系统调试工具用于代替或协助目标系统进行软件评价和开发。软件评价和开发。现有的产品有:现有的产品有:DSKDSK初学者开发套件初学者开发套件(DSP Starter KitDSP Starter Kit)EVMEVM软件评估模块软件评估模块(Evaluation ModuleEvaluation Module)XDS510XDS510硬件仿真器硬件仿真器(Extend Development Extend Development Support EmulatorsSupport Emulators)。)。TITI公司还提供集成开发工具公司还提供集成开发工具CCSCCS(Code Code Composer StudioComposer Studio),),CCSCCS可从网上下载,可进可从网上下载,可进行软、硬件仿真和系统分析,受到广泛应用。行软、硬件仿真和系统分析,受到广泛应用。6 在通用的微处理器中,乘法指令是由一在通用的微处理器中,乘法指令是由一系列加法来实现的,故需许多个指令周系列加法来实现的,故需许多个指令周期来完成期来完成 DSPDSP具有专用的硬件乘法器,乘法可在一具有专用的硬件乘法器,乘法可在一个指令周期内完成个指令周期内完成 71 1)多总线结构)多总线结构2 2)4040位算术逻辑单元(位算术逻辑单元(ALUALU)3 3)17171717位并行硬件乘法器位并行硬件乘法器4 4)比较、选择和存储单元()比较、选择和存储单元(CSSUCSSU)5 5)指数编码器)指数编码器6 6)两个地址发生器两个地址发生器87)数据总线(具有总线保持特性)数据总线(具有总线保持特性)8)总线寻址空间()总线寻址空间(C548最大可寻址扩最大可寻址扩展程序空间为展程序空间为8M16位)位)9)三种存储器空间三种存储器空间(程序、数据、程序、数据、IO)10)单指令循环和块循环)单指令循环和块循环11)区分的存储块移动指令)区分的存储块移动指令12)32位长操作数指令位长操作数指令 13)可编程等待状态发生器和)可编程等待状态发生器和 可编程的存储单元转换可编程的存储单元转换 914)锁相环(锁相环(PLL)发生器)发生器 15)多通道缓冲串口(多通道缓冲串口(McBSP) 16)直接存储器访问()直接存储器访问(DMA)控制器)控制器 17)主机接口(主机接口(HPI) 18)定时器)定时器 19)多种节电模式)多种节电模式 20)JTAG接口接口 21)低电压工作)低电压工作 10二、C54x芯片的CPU结构1、40位算术逻辑运算单元(ALU)2、2个40位累加器A和B3、移位-1630位的桶形移位寄存器4、乘法器/加法器单元5、比较和选择及存储单元(CSSU)6、指数编码器7、CPU状态和控制寄存器包括11121累加器累加器A和和B 作用作用 结构与位置结构与位置 和的异同和的异同 加载与存储中的移位加载与存储中的移位 AG保护位保护位39 32AH高阶位高阶位31 16AL低阶位低阶位15 0要点89DO页存储器13累加器累加器A和和B都可以配置成乘法器都可以配置成乘法器/加法器或加法器或ALU的目的寄存器。在执行的目的寄存器。在执行MIN和和MAX指令指令或者并行指令或者并行指令LD|MAC时都要用到它们,这时都要用到它们,这时,一个累加器加载数据,另一个完成运算。时,一个累加器加载数据,另一个完成运算。保护位保护位用作计算时的数据位余量,以防止诸用作计算时的数据位余量,以防止诸如自相关那样的迭代运算时溢出。如自相关那样的迭代运算时溢出。累加器累加器A和和B的差别的差别仅在于累加器仅在于累加器A的的3116位可以用作乘法器的一个输入。位可以用作乘法器的一个输入。14在存储前,有时需要对累加器的内容进行移在存储前,有时需要对累加器的内容进行移位操作。位操作。右移时右移时,AG和和BG中的各数据分别移至中的各数据分别移至AH和和BH;左移时左移时,AL和和BL中的各数据分别移至中的各数据分别移至AH和和BH,低位添,低位添0。存储器映像寄存器:存储器映像寄存器:指用指用0页数据存储器来当页数据存储器来当作寄存器用,而不用专门设计制作寄存器作寄存器用,而不用专门设计制作寄存器,从而可简化设计,并增加数据存储器的使用从而可简化设计,并增加数据存储器的使用灵活性。灵活性。152乘法器乘法器/加法器加法器 17X17乘法40位加法检零 饱和 取整16 为了使修正系数的量化误差最小,要为了使修正系数的量化误差最小,要进行舍入处理。进行舍入处理。C54X的的CPU中是一个中是一个1717位的硬件乘位的硬件乘法器,它与一个法器,它与一个40位的专用加法器相连。位的专用加法器相连。因此,乘法器可以在一个时钟周期内完成因此,乘法器可以在一个时钟周期内完成一次乘法累加一次乘法累加(MAC)运算运算。173 CPU状态和控制寄存器状态和控制寄存器 3 3个状态寄存器个状态寄存器 功能功能 位置位置 各各bitbit的作用的作用要点671DO页存储器18ARP15 13TC12C11OVA10OVB9DP8 0(1)状态寄存器状态寄存器0(ST0) (2)状态寄存器状态寄存器1(ST1) BRAF15CPL14XF13HM12INTM11010OVM9SXM8C167FRCT6CMPT5ASM4 0(3)处理器工作方式状态寄存器(处理器工作方式状态寄存器(PMST) IPTR15 7MP/MC6OVLY5AVIS4DROM3CLKOFF2SMUL1SST019第三节第三节 内部总线结构内部总线结构不同总线作用与区别 4 4组组8 8条条程序总线(程序总线(PBPB) 数据总线(数据总线(CBCB、DBDB和和EBEB) 地址总线(地址总线(PABPAB、CABCAB、DABDAB和和EABEAB)在片双向总线在片双向总线 20程序总线程序总线PB 传送取自程序存储器的指令代码传送取自程序存储器的指令代码和立即操作数。和立即操作数。数据总线数据总线CB、DB和和EB这这3条数据总线将内部条数据总线将内部各单元各单元(如如CPU、数据地址生成电路、程、数据地址生成电路、程序地址产生逻辑、在片外围电路以及数据序地址产生逻辑、在片外围电路以及数据存储器存储器)连接在一起,其中连接在一起,其中CB和和DB传送读传送读自数据存储器的操作数,自数据存储器的操作数,EB传送写到存储传送写到存储器的数据。器的数据。*为什么要用为什么要用2条数据线(条数据线(CB、DB)读数?)读数?21C54x利用两个辅助寄存器算术运算单元利用两个辅助寄存器算术运算单元(ARAU0和和ARAU1),在每个时钟周期内可,在每个时钟周期内可以产生两个数据存储器的地址。同时,以产生两个数据存储器的地址。同时,PB能够将存放在程序空间能够将存放在程序空间(如系数表如系数表)中的操中的操作数,传送到乘法器和加法器,以便执作数,传送到乘法器和加法器,以便执行乘法行乘法/累加操作。累加操作。此种功能,此种功能,连同双操作数的特性,可以支连同双操作数的特性,可以支持在一个周期内执行持在一个周期内执行3操作数指令操作数指令。22另外,实际上另外,实际上C54x还有一条还有一条在片双向总在片双向总线,用于寻址在片外围电路。这条总线通线,用于寻址在片外围电路。这条总线通过过CPU接口中的总线交换器连到接口中的总线交换器连到DB和和EB。利用这个总线读利用这个总线读/写,需要写,需要2个或个或2个以上的个以上的周期周期。*什么是在片双向总线?什么是在片双向总线? VC5402采用采用CMOS制造工艺,共有制造工艺,共有144个引脚个引脚。引。引脚按功能分为电源引脚、时钟引脚、控制引脚、脚按功能分为电源引脚、时钟引脚、控制引脚、地址引脚、数据引脚、外部中断引脚、通信端口地址引脚、数据引脚、外部中断引脚、通信端口引脚、通用引脚、通用I/O引脚等部分。引脚等部分。23第四节第四节 C54x芯片的存储器结构芯片的存储器结构 哈佛结构冯诺依结构特点与区别程序/数据存储器CPU24哈佛结构 改善的哈佛结构特点与区别程序存储器CPU数据存储器对存储器空间分配的不同考虑25哈佛结构存储空间分配哈佛结构存储空间分配 64K字程序存储空间字程序存储空间64K字数据存储空间字数据存储空间空间构架DARAMSARAMROM64K字的字的I/O空间空间并行性及RAM双寻址片内/片外存储器特点26 C54x结构上的并行性以及在结构上的并行性以及在RAM的双的双寻址能力,使它能够在任何一个给定的机寻址能力,使它能够在任何一个给定的机器周期内同时执行器周期内同时执行4次存储器操作:次存储器操作:1次取次取值、读值、读2个操作数和写个操作数和写1个操作数个操作数。 与片外的存储器相比,片内存储器具与片外的存储器相比,片内存储器具有不需插入等待状态、成本和功耗低等优有不需插入等待状态、成本和功耗低等优点。点。当然,片外存储器有寻址较大存储空当然,片外存储器有寻址较大存储空间的能力,这是片内存储器无法比拟的。间的能力,这是片内存储器无法比拟的。27存储器空间的划分与交叉存储器空间的划分与交叉 DARAM SARAM ROM片内存储器片内存储器类型类型空间空间交叉交叉的条件的条件MP/MC位位OVLY位位DROM位位使能使能禁止禁止程序程序数据数据片内存储器空间片内存储器空间28MP/MC=0,则片内,则片内ROM安排为程序空间安排为程序空间MP/MC=1,则片内,则片内ROM不安排为程序空间。不安排为程序空间。OVLY1,则片内,则片内RAM安排为程序和数据空间安排为程序和数据空间OVLY0,则片内,则片内RAM只安排为数据存储空间只安排为数据存储空间DROM1,则部分片内,则部分片内ROM安排为数据空间安排为数据空间DROM0,则片内,则片内ROM不安排成数据空间不安排成数据空间 29程序存储器:执行的指令和指令执行中所程序存储器:执行的指令和指令执行中所 用的系数表用的系数表。数据存储器:指令所要用的数据数据存储器:指令所要用的数据。I/O存储空间与存储器映像外围设备相连存储空间与存储器映像外围设备相连接,也可以作为附加的数据存储空间使用接,也可以作为附加的数据存储空间使用。30C54X的外部程序存储器可寻址的外部程序存储器可寻址64K字的存字的存储空间。它们的片内储空间。它们的片内ROM、DARAM、SARAM,都可以通过软件映像到程序空间,都可以通过软件映像到程序空间。如果程序地址生成器如果程序地址生成器(PAGEN)发出的地址处发出的地址处在片内程序存储器地址范围外,处理器就能在片内程序存储器地址范围外,处理器就能自动地对外部寻址。自动地对外部寻址。31当处理器复位时,复位和中断向量都映像当处理器复位时,复位和中断向量都映像到程序空间的到程序空间的FF80h。复位后,这些向量。复位后,这些向量可以被重新映像到程序空间中任何一个可以被重新映像到程序空间中任何一个128字页的开头。这就很容易将中断向量表从字页的开头。这就很容易将中断向量表从引导引导ROM中移出来,然后再根据存储器分中移出来,然后再根据存储器分配图进行安排配图进行安排。片内片内ROM中中(F800hFFFFh)这这2K字是由字是由TI公司定义的。公司定义的。其余的片内其余的片内ROM可以把用户可以把用户的程序代码编写进去。的程序代码编写进去。32数据存储器数据存储器 数据存储器类型RAM(SARAM)RAM(DARAM)片内ROM(软件映像)片内/片外数据存储器的识别33存储器映像存储器映像CPU寄存器寄存器(0000h001Fh)外围电路寄存器外围电路寄存器(0020h005Fh)32字暂存器字暂存器(0060h007Fh)896字字DARAM(0080h03FFh)其中,其中,外围电路寄存器外围电路寄存器 用于对外围电路的用于对外围电路的控制和存放数据,对它们寻址,需要控制和存放数据,对它们寻址,需要2个机个机器周期。器周期。34 *在数据存储空间的第在数据存储空间的第0页被安排成页被安排成CPU和和片内外设的存储器映像寄存器。片内外设的存储器映像寄存器。 这样可以简化对它们的访问,并为保这样可以简化对它们的访问,并为保存和恢复用于内容切换的寄存器,以及在存和恢复用于内容切换的寄存器,以及在累计器和其它寄存器之间传递信息提供了累计器和其它寄存器之间传递信息提供了方便。如在寻址存储器映像方便。如在寻址存储器映像CPU寄存器寄存器时,不需要插入等待周期。时,不需要插入等待周期。35辅助寄存器辅助寄存器(AR0AR7):这:这8个个16位的辅位的辅助寄存器可以由算术逻辑单元助寄存器可以由算术逻辑单元(ALU)访访问,也可以由辅助寄存器算术单元问,也可以由辅助寄存器算术单元(ARAU)进行修改。它们主要的功能是产生进行修改。它们主要的功能是产生16位的位的数据地址,也可以同来作为通用寄存器和数据地址,也可以同来作为通用寄存器和计数器。计数器。 TMS320C54x除了程序和数据存储器空间外,还除了程序和数据存储器空间外,还有一个有一个I/O存储器空间。存储器空间。I/O是一个是一个64KB的地址的地址空间(空间(0000HFFFFH),都在片外),都在片外。可以用两。可以用两条指令条指令(输入指令输入指令PORTR和输出指令和输出指令PORTW)对对I/O空间寻址。空间寻址。36 所有所有TMS320C54x DSP只有两个通用只有两个通用I/O,即,即 BIO和和XF。为了访问更多的通用。为了访问更多的通用I/O,可以对主机,可以对主机通信并行接口和串行接口进行配置,以用作通通信并行接口和串行接口进行配置,以用作通用用I/O。另外还可以扩展外部。另外还可以扩展外部I/O,外部,外部I/O必须必须使用缓冲或锁存电路,配合外部使用缓冲或锁存电路,配合外部I/O读写控制读写控制构成外部构成外部I/O的控制电路。的控制电路。 37第五节第五节 在片外围电路在片外围电路不同子系列器件差别通用通用I/O引脚引脚XF和和BIO定时器定时器时钟发生器时钟发生器主机接口主机接口软件可编程等待状态发生器软件可编程等待状态发生器可编程分区开关可编程分区开关串行口串行口38 C54x在片外围电路有一组控制寄存器在片外围电路有一组控制寄存器和数据寄存器,它们与和数据寄存器,它们与CPU寄存器一样,寄存器一样,也映像到数据存储器也映像到数据存储器0页页(20h5Fh)。 外围电路的工作,受这些存储器映像外围电路的工作,受这些存储器映像寄存器控制,它们也可以用来传送数据。寄存器控制,它们也可以用来传送数据。在寻址存储器映像外围电路寄存器时,需在寻址存储器映像外围电路寄存器时,需要占用要占用2个机器周期个机器周期。39通用通用I/O引脚引脚 BIOXFSSBX XF RSBX XF特点特点发信号发信号收信号收信号 XC 2,BIO XF可以用来向外部器件发信号可以用来向外部器件发信号BIO用来监控外围设备。在时间要求苛刻的循环用来监控外围设备。在时间要求苛刻的循环中,不允许受干扰,此时可以根据中,不允许受干扰,此时可以根据BIO引脚的状引脚的状态态(即外围设备的状态即外围设备的状态)决定分支转移的去向,以决定分支转移的去向,以替代中断。替代中断。如果如果BIO引脚为低电平(条件满足),则执行后面的引脚为低电平(条件满足),则执行后面的1条双条双字或字或2条单字指令;否则,执行条单字指令;否则,执行2条条NOP指令。指令。40定时中断的周期计算定时中断的周期计算 定时中断周期定时中断周期=CLKOUT=CLKOUT(TDDR+1TDDR+1)(PRD+1PRD+1)定时器输出信号定时器输出信号定时器如何节电定时器如何节电TOUTTINT 411 1)将中断标志寄存器)将中断标志寄存器IFRIFR中的中的TINTTINT位置位置1 1,清除,清除尚未处理完的定时器中断。尚未处理完的定时器中断。2 2)将中断屏蔽寄存器)将中断屏蔽寄存器IMRIMR中的中的TINTTINT位置位置1 1,开放,开放定时中断。定时中断。3 3)将)将ST1ST1中的中的INTMINTM位清位清0 0,从整体上开放中断。,从整体上开放中断。 开放定时中断开放定时中断 (假定(假定INTM=1)复位时:复位时:TIM和和PRD(时间常数时间常数)都置成最大值都置成最大值FFFFh;定时器的定时器的分频系数分频系数(TCR的的TDDR位位)清清0,定时器开始工作。定时器开始工作。42编程举例编程举例 STM #0000hSTM #0000h,SWWSR SWWSR ;不插等待周期;不插等待周期 ;(软件等待状态寄存器置;(软件等待状态寄存器置0 0)STM #0010hSTM #0010h,TCR TCR ;TSS=1TSS=1(TCRTCR第第5 5位位TSSTSS置置1 1)STM #0100hSTM #0100h,PRD PRD ;加载定时器周期寄存器(;加载定时器周期寄存器(PRDPRD) ;定时中断周期;定时中断周期=CLKOUT=CLKOUT(TDDR+1TDDR+1)(PRD+1PRD+1)STM #0C20hSTM #0C20h,TCR TCR ;定时分频系数;定时分频系数TDDRTDDR初始化为初始化为0 0 ;TSS=0TSS=0,启动定时器工作,启动定时器工作 ;TRB=1TRB=1,当,当TIMTIM减到减到0 0后重新加载后重新加载PRDPRD ;Soft=1Soft=1,Free=1Free=1定时器遇到断点后继续运行定时器遇到断点后继续运行STM #0008hSTM #0008h,IFR IFR ;清除尚未处理完的定时中断;清除尚未处理完的定时中断STM #0008hSTM #0008h,IMR IMR ;开放定时中断;开放定时中断RSBX INTM RSBX INTM ;开放中断(状态寄存器;开放中断(状态寄存器ST1ST1的的INTMINTM位复位)位复位)431 1时钟发生器时钟发生器 作用作用 组成组成两种参考时钟输入方式两种参考时钟输入方式内部振荡电路晶体振荡电路44时钟发生器为时钟发生器为C54x提供时钟信号。提供时钟信号。时钟发生器由时钟发生器由内部振荡器内部振荡器和和锁相环锁相环(PLL)电电路路两部分组两部分组成。成。时钟发生器要求有一个参考时钟输入时钟发生器要求有一个参考时钟输入方法一:利用方法一:利用DSP芯片内部提供的晶振电芯片内部提供的晶振电路路方法二:将外部时钟源直接输入方法二:将外部时钟源直接输入X245C54x内部的内部的PLL兼有倍频和信号提纯的功兼有倍频和信号提纯的功能,用高稳定的参考振荡器锁定,可以提能,用高稳定的参考振荡器锁定,可以提供高稳定的频率源供高稳定的频率源。所以,所以,C54x的外部频的外部频率源的频率可以比率源的频率可以比CPU的机器周期的机器周期CLKOUT的速率低,这样就能降低因高速的速率低,这样就能降低因高速开关时钟所造成的高频噪声。开关时钟所造成的高频噪声。C54x的的PLL有两种形式:有两种形式:1、硬件配置的、硬件配置的PLL2、软件可编程、软件可编程PLL462 2复位电路复位电路 功能功能简单的复位电路简单的复位电路 有监视功能的复位电路有监视功能的复位电路47在在DSP上电后,系统的晶体振荡器往往需上电后,系统的晶体振荡器往往需要几百毫秒的稳定期,一般为要几百毫秒的稳定期,一般为100200ms。为此,应在。为此,应在DSP的复位引脚的复位引脚RS上加一复上加一复位信号。位信号。为了使芯片初始化正常,一般为了使芯片初始化正常,一般RS至少持续至少持续3个个CLKOUT周期为低电平周期为低电平。 HPI(Host-Port InterfaceHPI),C54x的的HPI是一个是一个8位的并行口,用来与主设备或主处位的并行口,用来与主设备或主处理器接口理器接口。外部主机是。外部主机是HPI的主控者,它可以的主控者,它可以通过通过HPI直接访问直接访问CPU的存储空间,包括存储器的存储空间,包括存储器映像寄存器。映像寄存器。HPI存取的接口是由一套存储器存取的接口是由一套存储器来实现的。来实现的。48 3 3 串行口串行口 标准同步串行口(标准同步串行口(SPSP) 缓冲同步串行口(缓冲同步串行口(BSPBSP) 多路缓冲串口(多路缓冲串口(McBSPMcBSP) 时分多路串行口(时分多路串行口(TDMTDM) 当缓冲串行口和时分多路串行口工作在标准方式时,它们的功能与标准串行口相同 串行口分类49多通道带缓冲串行口多通道带缓冲串行口McBSP特点:特点:双倍的发送缓冲和三倍的接收缓冲双倍的发送缓冲和三倍的接收缓冲数据存储器,允许连续的数据流;独立的数据存储器,允许连续的数据流;独立的接收、发送帧和时钟信号;可直接与工业接收、发送帧和时钟信号;可直接与工业标准的编码器、其它串行标准的编码器、其它串行A/D、D/A器件连器件连接。具有外部移位时钟发生器及内部频率接。具有外部移位时钟发生器及内部频率可编程移位时钟;可直接利用多种串行协可编程移位时钟;可直接利用多种串行协议接口通信。议接口通信。发送和接收通道数最多可以发送和接收通道数最多可以达到达到128路路。504外部总线操作的优先级别外部总线操作的优先级别 单周期内对片内存储器可完成从程序存储单周期内对片内存储器可完成从程序存储器取器取1条指令、从数据存储器读条指令、从数据存储器读2个操作数,共个操作数,共3个操作个操作。(切记:是切记:是CPU有四组、有四组、8条总线条总线)但由于只有一条外部总线,故只能有但由于只有一条外部总线,故只能有1个个操作。在遇到一个机器周期内,操作。在遇到一个机器周期内,CPU寻址外部寻址外部存储器两次,一次取指,一次取操作数时,数存储器两次,一次取指,一次取操作数时,数据寻址比程序存储器取指具有较高的优先权。据寻址比程序存储器取指具有较高的优先权。单周期内对片内存储器操作单周期内对片内存储器操作与片外存储器操作的区别与片外存储器操作的区别51外部数据准备输入信号外部数据准备输入信号(READY)与片内软与片内软件可编程等待状态发生器一道,可以使处件可编程等待状态发生器一道,可以使处理器与各种速度的存储器以及理器与各种速度的存储器以及I/O设备接口设备接口。当与慢速器件通信时,当与慢速器件通信时,CPU处于等待状处于等待状态,直到慢速器件完成了它的操作并发出态,直到慢速器件完成了它的操作并发出READY信号后才继续运行。信号后才继续运行。525 5外设接口的速度配合外设接口的速度配合1)对接口器件的速度要求)对接口器件的速度要求 外部存储器存取时间应小于外部存储器存取时间应小于60%60%的机器周期,的机器周期,否则需通过软件或硬件插入等待状态。否则需通过软件或硬件插入等待状态。 在采用低速器件时,需要用软件或硬件为在采用低速器件时,需要用软件或硬件为DSP插插入等待状态来协调。入等待状态来协调。 对于型号为对于型号为TMS320C54x-40的的DSP芯片,其尾数芯片,其尾数4表表CPU运行的最高频率为运行的最高频率为40MHz,由于大多数指令都,由于大多数指令都是单周期指令,所以这种是单周期指令,所以这种DSP的运行速率也就的运行速率也就40MIPS,即每秒执行即每秒执行4000万条指令,这时它的机器周期为万条指令,这时它的机器周期为25ns。如果不插入等待状态,就要求外部器件的存取时间小如果不插入等待状态,就要求外部器件的存取时间小于于15ns。53插入等待状态数与外部器件的插入等待状态数与外部器件的存取时间的关系存取时间的关系 外部器件的存取时间ta/ ns插入等待状态数ta15015ta40140ta65265ta90390ta1154115ta1405对于型号为TMS320C54x-40的DSP芯片 54软件可编程等待状态发生器可以将外部总软件可编程等待状态发生器可以将外部总线周期延长多达线周期延长多达7个机器周期,这样一来,个机器周期,这样一来,C54x就能很方便地与外部慢速器件相接口就能很方便地与外部慢速器件相接口。如果外部器件要求插入如果外部器件要求插入7个以上的等待周个以上的等待周期,则可以利用硬件期,则可以利用硬件READY线来接口线来接口。 软件等待状态寄存器软件等待状态寄存器(SWWSR),在数据空间,在数据空间的地址为的地址为0028h。程序空间和数据空间都被。程序空间和数据空间都被分成两个分成两个32K的字块,的字块,I/O空间由一个空间由一个64K字字块组成。块组成。55用用STM指令进行修改指令进行修改SWWSR:STM #349B,SWWSR ;SWWSR= 0 011 010 010 011 011 如图进行连接,复位如图进行连接,复位SWWSR=7FFFh,所有的程序、,所有的程序、数据和数据和I/O空间都被插入空间都被插入7个等待状态。个等待状态。工作过程利用利用SWWSR,可以通过软件为以上,可以通过软件为以上5个存储空间分别个存储空间分别插入插入07个软件等待状态,例如:为程序空间和个软件等待状态,例如:为程序空间和I/O空空间插入间插入3个等待状态,为数据空间插入个等待状态,为数据空间插入2个等待状态个等待状态566利用软件等待实现利用软件等待实现接口的速度配合接口的速度配合例例2-1 试为试为TMS320C54x-40TMS320C54x-40作如下外设配置:作如下外设配置:程序存储器程序存储器 EPROM 8KEPROM 8K1616位,位, t ta a=70ns =70ns 数据存储器数据存储器 SRAM 8KSRAM 8K1616位,位, t ta a=12ns =12ns A/DA/D和和D/AD/A变换器变换器 1616位,转换时间位,转换时间=120ns=120ns画出系统的接口连线图。画出系统的接口连线图。57系统接口连线图58本例中本例中C54xC54x的机器周期为的机器周期为25ns25ns(40MIPS40MIPS),),若外部器件的存取时间小于若外部器件的存取时间小于15ns15ns,可以不插入,可以不插入等待状态。因此例中的数据存储器可以不插入等待状态。因此例中的数据存储器可以不插入等待状态,但程序存储器和等待状态,但程序存储器和A/DA/D、D/AD/A外部设备外部设备应分别应分别插入插入3 3个(个(75ns75ns)和)和5 5个(个(125ns125ns)等待)等待状态状态。此时软件等待状态寄存器。此时软件等待状态寄存器SWWSRSWWSR应配置应配置为:为:0101000000011000STM #5018,SWWSR 使使C54x进入一已知状态进入一已知状态 至少保持至少保持5个时钟周期的低电平个时钟周期的低电平 复位后为高电平复位后为高电平 如果如果MP/=0,则处理器从片内,则处理器从片内ROM开始执行程序,否则,它将从片外程序开始执行程序,否则,它将从片外程序存储器开始执行程序。存储器开始执行程序。MC597复位与省电一、复位和一、复位和IDLE3省电工作方式省电工作方式 1复位操作复位操作 60复位操作复位操作(RS)是一个不可屏蔽的中断是一个不可屏蔽的中断,它,它可以在任何时候使可以在任何时候使C54x进入一已知状态。进入一已知状态。正常操作是上电后正常操作是上电后RS应至少保持应至少保持5个时钟个时钟周期的低电平。周期的低电平。复位后复位后RS为高电平,处理器从为高电平,处理器从FF80h处取处取指,并开始执行程序指,并开始执行程序。618 8中断向量地址计算举例中断向量地址计算举例(1 1)复位后的初始地址计算)复位后的初始地址计算 1 1)取)取IPTRIPTR的值的值( (中断向量指针,中断向量指针,9 9位位) ) 2 2)查表得到中断向量序号)查表得到中断向量序号(5(5位位) ) 3 3)将十六进制的中断向量序号左移)将十六进制的中断向量序号左移2 2位位 4 4)将)将1 1)与)与3 3)相加)相加, ,得到中断向量地址得到中断向量地址62IPTR=1 1 1 1 1 1 1 1 1(1FFh)IPTR=1 1 1 1 1 1 1 1 1(1FFh)+ K= 0 0 0 0 0 0 0+ K= 0 0 0 0 0 0 01 1 1 11 1 1 1 1 1 1 11 1 1 1 1 0 0 01 0 0 0 0 0 0 0 0 0 0 0F F 8 0 hF F 8 0 h故硬件复位后的开始地址为故硬件复位后的开始地址为0FF80h0FF80h。IPTR=0 0 0 0 0 0 0 0 1 + K= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 00 0 8 0 h此时中断向量被移到从此时中断向量被移到从0080h单元开始处单元开始处(INTR 0 中断中断)。63(2 2)外部中断响应的时间)外部中断响应的时间 响应的时间采样时间查询时间响应的时间采样时间查询时间1 12323个完整的机器周期个完整的机器周期外部中断的时间基本上在外部中断的时间基本上在3 38 8个机器周个机器周期之间。期之间。(3)外部中断触发方式电平触发边沿触发 64第三章第三章 堆栈寻址堆栈寻址 当进栈操作时,当进栈操作时,SPSP先减小,然后数据进入堆栈;先减小,然后数据进入堆栈;当出栈操作时,数据先出栈,然后当出栈操作时,数据先出栈,然后SPSP增加。增加。65 2 2 程序地址的生成程序地址的生成程序地址生程序地址生成器(成器(PAGENPAGEN)构成构成程序计数器(程序计数器(PCPC)重复计数器(重复计数器(RCRC)块重复计数器(块重复计数器(BRCBRC)块重复起始地址寄存器(块重复起始地址寄存器(RSARSA)块重复结束地址寄存器(块重复结束地址寄存器(REAREA)核心核心1616位程序计数器(位程序计数器(PCPC)内中保存内中保存某个内部或外某个内部或外部程序存储器的地址部程序存储器的地址。地址地址内容为:内容为:1.1.即将取指的某条指令即将取指的某条指令2.2.某个某个1616位立即操作数位立即操作数3.3.系数表在程序存储器系数表在程序存储器中的地址中的地址66663 分支转移操作分支转移操作 通过分支转移指令改写通过分支转移指令改写PCPC,可,可以改变程序的流向。而子程序以改变程序的流向。而子程序调用指令则通过调用指令则通过将一个返回地将一个返回地址压入堆栈,执行返回时恢复址压入堆栈,执行返回时恢复原地址。原地址。可执行可执行: :1.1.分支转移分支转移2.2.循环控制循环控制3.3.子程序操作子程序操作 功能功能方法方法67例例3-3 编写计算编写计算 的主要程序部分。的主要程序部分。 .bss x,4 .bss x,4 ;为;为X X建立建立4 4个单元,个单元, ;放置;放置X1X1、X2X2、X3X3、X4X4 .bss y,1 .bss y,1 ;为;为Y Y建立建立1 1个单元,放置个单元,放置Y Y STM #xSTM #x,AR1 AR1 ;将;将X1X1的地址传给的地址传给AR1AR1 STM #3STM #3,AR2 AR2 ;将循环次数;将循环次数3 3传给传给AR2AR2 LD #0LD #0,A A ;对;对A A清零清零loop:ADD loop:ADD * *AR1+AR1+,A A ;对;对X1X1、X2X2、X3X3、X4X4循环累循环累 ;加,结果放;加,结果放A A中中 BANZ loop,BANZ loop,* *AR2- AR2- ;检查循环是否应结束;检查循环是否应结束 STL ASTL A,y y ;将累加结果存入;将累加结果存入Y Y中中41iixy68例例3-5 利用单条指令的重复操作对数组利用单条指令的重复操作对数组x5=0 x5=0,0 0,0 0,0 0,00进行初始化。进行初始化。.bss x,5 .bss x,5 ;为数组;为数组x x分配分配5 5个存储单元个存储单元STM #x,AR1 STM #x,AR1 ;将;将x x的首地址赋给的首地址赋给AR1AR1LD #0,A LD #0,A ;对;对A A清零清零RPT #4 RPT #4 ;设置重复执行下条指令;设置重复执行下条指令5 5次次STL A,STL A,* *AR1+AR1+;对;对x5x5各单元清零各单元清零或者或者.bss x,5.bss x,5STM #x,AR1STM #x,AR1RPTZ A,#4RPTZ A,#4;对;对A A清零并设置重复执行下条指令清零并设置重复执行下条指令5