已阅读5页,还剩149页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章F240X系列DSP内部资源介绍,CPU功能模块:总线:程序总线和数据总线运算部分:中央算术逻辑单元,乘法器,输入定标器辅助寄存器部分:辅助寄存器,ARAU存储器:FLASH,DARAM控制部分:程序控制,器件状态配置,堆栈等,2.1F240 x系列DSPCPU(CentralProcessingUnit)内部功能模块介绍,2407ACPU功能模块图,注:DataBus和ProgramBus包括地址和数据位。,CPU地址和数据总线结构,data-readaddressbus(DRAB):A16-bitinternalbusthatcarriestheaddressforeachreadfromdatamemory.datareadbus(DRDB):A16-bitinternalbusthatcarriesdatafromdatamemorytotheCALUandtheARAU.data-writeaddressbus(DWAB):A16-bitinternalbusthatcarriestheaddressforeachwritetodatamemory.datawritebus(DWEB):A16-gramaddressbus(PAB):A16-gramreadbus(PRDB):A16-bitinternalbusthatcarriesinstructioncodeandimmediateoperands,aswellastableinformation,fromprogrammemorytotheCPU.,中央处理单元CPU(CentralProcessingUnit),32位中央算术逻辑部分(CentralArithmeticLogicUnitCALU)1616位的并行乘法器(Multiplier)16位输入定标移位器(Inputshifter)辅助寄存器算术单元(ARAU)状态寄存器,关于运算部分输入定标器、中央算术逻辑部分和乘法器,一、中央算术逻辑部分,32位中央算术逻辑单元(CentralArithmeticLogicUnitCALU)32位累加器(AccumulatorACC)32位数据输出移位器(Outputshifter),能实现许多算术和逻辑运算功能,且大多数的运算只需一个时钟周期。,运算功能包括:16位加16位减布尔运算位测试移位功能,1.中央算术逻辑单元(CALU),累加器的高位字和低位字都可进行单独移位和存储输出数据移位过程中ACC中的内容保持不变,CLAU有两个输入,一个:总是由累加器(ACC)提供;另一个:由乘法器的乘积寄存器(PSCALE)或输入数据定标移位器(ISCALE)提供。,CALU的运算结果,一旦CALU完成算术运算或逻辑运算操作,其结果总是送到32位累加器;,由累加器对结果进行附加运算(如移位);累加器的输出连接到32位输出数据定标移位器(OSCALE);经过OSCALE移位,数据的高16位和低16位分别移位或存入数据寄存器。,2.32位累加器ACC,CALU中的32位运算结果送至累加器中执行单一的移位或循环操作。,32位累加器是CLAU的寄存器输出。,通过进位位实现累加器内容的移位和旋转。,累加器的高位字和低位字分别送至输出数据定标移位器,在此定标移位后,再存至数据存储器。,SFL和SFR(左移、右移)指令ROL和ROR(左、右旋转)指令,SFL:溢出最高位到进位位,最低位填0。ROL:溢出最高位到进位位,进位位移至最低位。,SFR:当为逻辑右移,最低位到进位位,最高位填0;当为算术右移,最低位到进位位,最高位31复制30位,进位位不变。ROR:最低位到进位位,进位位移至最高位。,SXM位影响SFR(累加器右移)指令的定义当SXM1,SFR完成一个算术右移且累加器中数据的符号保留;当SXM0,SFR实现一个逻辑右移,最低位溢出,最高位填0。,但,SXM不影响SFL(累加器左移)指令。,ACC的位操作功能,由于CALU的位移动和旋转在累加器中完成,因此CALU可以执行布尔运算,使得DSP具有位操作功能。,进位位C:状态寄存器ST1第9位;溢出方式位OVM:状态寄存器ST0第11位;溢出标志位OV:状态寄存器ST0第12位;测试/控制标志位TC:状态寄存器ST1第11位。,位测试指令:允许测试数据存储器中一个字的特定位,测试操作不影响累加器。,进位位C,影响进位位C的操作:加至ACC或从ACC减;将ACC的数据进行移位或循环移位。,进位位的状态提供两个条件算子C、NC,它们影响分支、调用、返回和条件执行。硬件复位进位位置1。,但,装载累加器、逻辑操作或非算术运算以及控制指令不影响进位位。,溢出方式位OVM,CLAU的溢出方式可以由ST0的OVM位使能。,OVM=0,累加器发生溢出时装载正常溢出值;OVM=1,溢出方式使能,累加器发生溢出时装载以下两个特定值之一:若为正溢出,累加器装载最大正数7FFFFFFFh;若为负溢出,累加器装载最大负数80000000h。,注意:逻辑运算的结果不发生溢出。,溢出标志位OV,当溢出发生时,置OV1(锁存);当未检测到ACC输出时,OV0(不锁存)。,测试/控制标志位TC根据被测试位的值,对该位置0或1。,CLAU可以根据CLAU和累加器的状态执行分支类指令。,分支类指令有:基于状态位OV(溢出标志);EQ(累加器等于0)的值执行条件分支指令;由累加器提供分支地址执行分支指令。,3.32位数据输出移位器(Outputshifter),OSCALE将32位累加器输出左移0到7位,然后用SACH或SACL指令将移位器的高位字(高16位)或低位字(低16位)输出到数据写总线(DWEB)。,数据输出移位器:为1个16到32位的桶型左向移位寄存器。寄存器符号:OSCALE,当数据传送到数据总线上移位就完成,此时累加器中的内容仍保持不变。,输出定标器用于累加器的高字位段时(1631位),最高有效位丢失,最低有效位用移入的低字位段(015位)填写;当输出定标器用于累加器的低字位段时,最低有效位填0。,二、16位输入定标移位器(Inputshifter),输入定标移位器:是1个16到32位的桶型左向移位器。移位器符号:ISCALE,16位输入和数据总线相连;32位输出和CALU单元相连。,输入定标移位器,ISCALE能将输入的16位数据的0到16位在本周期内向左移位,以得到32位的输出。因此,输入定标移位操作不需要额外的周期。左移范围:015左移时的符号扩展方式由ST1中的SXM决定,数据调整时,输入定标移位器将输入的数据左移016位,移位后输出数据的最低有效位段填0,而最高有效位段要根据状态寄存器ST1的符号扩展方式位(SXM)的值来决定。,当SXM1时,高位进行符号扩展;当SXM0时,高位填0。,输入数据的移位量由指令字所包含的常量或临时寄存器(TREG)指定。,基于TREG的移位允许动态调整定标因子,从而使数据适应不同的系统性能。,三、1616位的并行乘法器(Multiplier),乘法器:是1个16X16位的硬件乘法器,它可以在单个机器周期内产生1个32位结果的有符号或无符号数。,乘法器的输入:一个来自16位的暂存器(TREG),另一个通过数据读总线(DRDB)来自数据存储器,或者通过程序读总线(PRDB)来自程序存储器。,两个输入值相乘后,32位的乘积结果存放在32位的乘积寄存器(PREG)中。,PREG的输出:连接到乘积定标移位器,通过乘积定标移位器(PSCALE),乘积结果可以从PREG送到CALU或数据存储器。,乘数和被乘数都视为2的补码,其32位乘积数也是2的补码。,乘积定标移位器PSCALE:对乘积结果采用4种乘积移位方式。,移位方式:由状态寄存器ST1的乘积移位方式位(PM)指定。,注:Q31格式是一种二进制小数格式,该格式在二进制小数点的后面有31个数字。,四、辅助寄存器算术单元(ARAU),ARAU的主要功能:是在CALU操作的同时执行8个辅助寄存器(AR7AR0)上的算术运算。,ARAU:对当前辅助寄存器AR的内容增加、减少或作无符号16位算术运算。,由辅助寄存器指针ARP所指定的寄存器(AR7AR0)被当做当前辅助寄存器AR。,1.数据装载,当ARP装载了新的值后,原来ARP的值就装载到辅助寄存器指针缓冲器ARB中。寄存器中的内容可存贮在数据存储器中或作为ARAU的输入。,2.说明,1.辅助寄存器算术单元(ARAU)完全独立于中央算术逻辑单元(CALU)。,2.利用包含在辅助寄存器中的16位地址可以访问64K数据空间中的任意单元。,这8个辅助寄存器提供了强大而灵活的间接寻址能力。,在一条指令的执行过程中,当前辅助寄存器存放被访问数据存储区的地址。若指令为读数据存储区数据,ARAU就将该地址送至DRAB(数据读地址总线);若指令为向数据存储区写数据,ARAU就将该地址送至DWAB(数据写地址总线)。,3.ARAU执行的操作,通过执行任何一条支持间接寻址的指令将辅助寄存器值增1或减1,或者增一个或减一个变址值。,将一个常数加至辅助寄存器值或从辅助寄存器值减去一个常数。该常数取自指令字的8位最低有效位。,比较AR0和当前AR的内容,然后将比较结果放至状态寄存器ST1中的测试/控制位TC。结果经数据写总线DWEB传送至TC。,4.ARAU执行其算术运算,在流水线的译码阶段(即当指令所指明的操作正被译码时),ARAU执行算术运算。使得在下一条指令的译码阶段之前能够产生本条指令的地址。,但有一种情况例外:在处理NORM异或指令时,是在流水线的执行过程中完成对辅助寄存器的修改。,5.辅助寄存器的其他用途,辅助寄存器除用作数据存储器的地址存储器外,还可用作其他用途。,通过CMPR比较指令,利用辅助寄存器支持条件转移、调用和返回。CMPR指令将AR0的内容和当前AR的内容进行比较,并将比较结果存至状态寄存器ST1中的测试/控制位TC。,将辅助寄存器作为暂存单元。例如,使用LAR指令向辅助寄存器装入数值,以及使用SAR指令将辅助寄存器值存至数据存储器。,将辅助寄存器用作软件计数器,根据需要将其增1或减1。,五、状态寄存器,F240X系列DSP有两个状态寄存器ST0和ST1,是应用中特别重要的两个寄存器。它们含有各种状态和控制位,ST0和ST1的内容可以保存到数据存储器或从数据存储器读出加载到ST0、ST1,从而在子程序调用或进入中断时实现CPU各种状态的保存。,1.状态寄存器ST0、ST1每位字符的含义,2.状态寄存器ST0和ST1的字段定义,2.2存储器和I/O空间,F240X系列DSP的地址映象被组织为3个可独立选择的空间:程序存储器(64K字);数据存储器(64K字);输入/输出(I/O)空间(64K字)。这些空间提供了共192K字的地址范围。,2407A存储器映射图,F240X有3组并行总线,程序地址总线(PAB);数据读地址总线(DRAB);数据写地址总线(DWAB)。,F240X可以通过3组并行总线访问多个存储空间。,由于总线工作是分离的,所以可以同时访问程序和数据空间。,在一个给定的机器周期内,CALU可以执行多达3次的并行存储器操作。,存储模式,TMS320LF240 xA控制器配置了如下存储模式:双口RAM(DARAM)单口RAM(SARAM)FlashEEPROMROMBootROM,(1)双口RAM(DARAM),所有Lx240 xA控制器中有544字16位的片内DARAM。,在流水线操作方式下,CPU一般在第三个周期读数据,第四个周期写数据。而DARAM允许在同一个机器周期读、写DARAM,即CPU在一个周期的主段向DARAM写数据;在从段读取DARAM的数据。,当用作片内RAM时,240 xA全速运行无等待状态。,DARAM被配置成3块:块0(B0);块1(B1);块2(B2)。,1)B0包含256个字,它即可以配置在数据存储器空间也可以配置在程序存储器空间;指令SETCCNF,B0配置为程序存储器;指令CLRCCNF,B0配置为数据存储器。2)B1包含256个字;3)B2包含32个字,它们位于数据存储器空间。指令通过软件动态配置存储器映射图。,(2)单口RAM(SARAM),某些240 xA控制器有2k字16位单口RAM(SARAM)。,由系统控制和状态寄存器SCSR2的PAN、DON位来选择SARAM(2k)是映射成程序空间还是数据空间,或者两者都是。,如果片内SARAM不使能,SARAM(程序存储器的起始地址为8000h)可作为外部存储空间访问(仅用于2407A)。,SARAM程序/数据空间选择位,片内存储器与外部存储器相比具有:更高的执行效率、更低廉的价格、更低的功耗,而外部存储器的优点就是能够具有更大的寻址空间。,(3)FlashEEPROM,LF2407A有32k16位FlashEEPROM的程序存储空间。,Flash不仅用于永久性地保存程序,由于可多次电擦除以进行代码的改进。,Flash模块为多扇区,通过CPU进行编程,在擦除和编程时每个扇区具有独立的保护功能。,每个扇区的大小不一样,分为4k、12k、12k、4k。,(4)ROM,LC240 xA控制器包含了带屏蔽位的可编程的ROM,它位于程序存储空间。,(4)BootROM,仅LF240 xA有一个256字的存储映射区,位于程序空间的000000FFh。,在复位期间,若脚为低电平,则BootROM使能。BootROM还可以通过向SCSR2.3位写0来使能,向SCSR2.3位写1则不使能。,2.程序存储器,程序存储器空间用于保存程序代码以及数据表信息和常量。,程序存储器空间的寻址范围为64K,包括片内DARAM和片内FLASHEEPROM、ROM。,当访问片外程序地址空间时,DSP自动产生一个访问外部程序地址空间的信号PS。,LF2407的程序存储器映射图,程序存储器的配置,CNF位:CNF0时,B0块映射为片外程序空间;CNF1时,B0块映射为片内程序空间。,MP/MC引脚。MP/MC引脚为0时,器件配置为微控制器方式,可以访问片内ROM或FLASH,器件从片内程序存储器中读取复位向量;MP/MC为1时,器件被配置为微处理器方式,器件从外部程序存储器中读取复位向量。,注意,无论MP/MC为何值,F240X系列DSP都从程序存储器的0000h单元读取复位向量。只是具有外部程序存储器接口的器件才有MP/MC引脚。,3.数据存储器,数据存储器空间的寻址范围高达64K字。,每个器件都有3个片内DARAM块:B0、B1和B2块。,B0块既可配置为数据存储器,也可配置为程序存储器。B1和B2块只能配置为数据存储器。,64K的数据存储器包含512个数据页。其标号从0至511。,LF2407数据存储器映射图,寻址方式,存储器可以采用两种寻址方式:直接寻址;间接寻址。,当使用直接寻址时,按128字(称作数据页)的数据块对数据存储器进行寻址。用户必须事先指定数据页,并在访问数据存储器的指令中指定偏移量。,当前页由状态寄存器ST0中的9位数据页指针(DP)的值来确定。,数据存储器页,第0页数据页地址映射,数据存储器中包括寄存器映射,它们位于数据存储器的第0页(地址0000-007Fh)。,(1)可以以零等待状态访问两个映射寄存器:中断屏蔽寄存器(IMR);中断标志寄存器(IFR)。,(2)测试/仿真保留区:测试和仿真系统用于特定信息发送。不能对测试/仿真地址进行写操作,否则可能使器件改变其工作方式,从而影响正常工作。,(3)32个字的B2块用于变量的存储,同时又不会弄碎较大的内部和外部RAM块。此处的RAM支持双口访问操作,且可用任何数据存储器寻址方式寻址。,第0页数据页地址映射,数据存储器配置,CNF位决定数据存储器的配置:CNF0时,B0块被映射为片外程序空间;CNF1时,B0块被映射为片内程序空间。复位时B0块被配置为数据存储空间。,4.I/O空间,I/O空间存储器共可寻址64K字。,LF2407I/O空间地址映射图,2.3系统配置和中断,一、系统配置,DSP用两个系统控制和状态寄存器对系统的运行状态进行设置。,系统控制和状态寄存器1(SCSR1)地址7018h系统控制和状态寄存器2(SCSR2)地址7019h,系统控制和状态寄存器1(SCSR1)地址7018h,注:R=可读,W=可写,C=清除,-0=复位值,位15保留位位14CLKSRC,CLKOUT引脚源选择位。0CLKOUT引脚输出CPU时钟1CLKOUT引脚输出WDCLK时钟位13-12LPM(1:0),低功耗模式选择位。这两位声明了CPU在执行IDLE指令时进入那一种低功耗方式。00CPU进入IDLE1(LMP0)模式01CPU进入IDLE2(LPM1)模式1xCPU进入HALT(LPM2)模式,位11-9PLL时钟预定标选择位。这3位对输入时钟选择PLL倍频系数。,注:Fin为输入时钟频率,位8保留位位7ADCCLKEN,ADC模块时钟使能控制位。0禁止ADC模块的时钟(即:关断ADC模块以节约能量)1使能ADC模块的时钟,正常运行位6SCICLKEN,SCI模块时钟使能控制位。0禁止SCI模块的时钟(即:关断SCI模块以节约能量)1使能SCI模块的时钟,正常运行,位5SPICLKEN,PI模块时钟使能控制位。0禁止SPI模块的时钟(即:关断SPI模块以节约能量)1使能SPI模块的时钟,正常运行位4CANCLKEN,CAN模块时钟使能控制位。0禁止CAN模块的时钟(即:关断CAN模块以节约能量)1使能CAN模块的时钟,正常运行位3EVBCLKEN,EVB模块时钟使能控制位。0禁止EVB模块的时钟(即:关断EVB模块以节约能量)1使能EVB模块的时钟,正常运行,位2EVACLKEN,EVA模块时钟使能控制位。0禁止EVA模块的时钟(即:关断EVA模块以节约能量)1使能EVA模块的时钟,正常运行注意:要修改或读取任何外设寄存器的内容时,必须通过向相应的位写1来使能到外设的时钟。,位1保留位。,位0ILLADR位,无效地址检测位。检测到一个无效的地址时,该位置1。置1后该位需要用户软件清0。向该位写1将其清0。注:在初始化程序中应将该位清0。,无效的地址将会导致非屏蔽中断NMI发生。,系统控制和状态寄存器2(SCSR2)地址7019h,位158保留位,这些位的读出值不确定,而写入则无影响。位6I/PQUAL,输入时钟限定器。输入时钟限定器:限定输入到LF240X器件的CAP1-6,XINT1-2,ADCSOC以及PDPINTA/B引脚上的信号。当这些引脚作I/O功能使用时则不会使用输入时钟限定电路;当这些引脚使用特殊功能时,该位规定了输入到这些引脚上的信号正确锁存时需要的最少脉冲宽度。即脉冲只有达到这个宽度之后内部的输入状态才会改变。0输入时钟限定器锁存脉冲至少5个时钟周期长1输入时钟限定器锁存脉冲至少11个时钟周期长,位5WDOVERRIDE,WD保护位。复位后的缺省值为1,用户可以通过用软件将WDCR寄存器中的WDDIS位置1来禁止WD工作。此位只能清零,通过向这一位写入1来对其清0。位4XMIFHI-Z,XMIF高阻控制位。该位控制外部存储器接口信号(XMIF)。0所有XMIF信号处于正常驱动模式(即非高阻态)1所有XMIF信号处于高阻态位3,BOOT使能位。反映了/XF引脚在复位时的状态,可被软件改变。0使能引导ROM,地址空间0000-00FFh被片内引导ROM块占用。这种方式下,禁止用FLASH存储器。注意:在ROM器件中没有片内引导ROM1禁止引导ROM,对LF2407A和LF2406A片内FALSH程序存储器映射地址范围为:0000-7FFFh,对LF2402A地址范围为:0000-1FFFh,位2MP/,微处理器/微控制器选择位。反映了器件复位时MP/引脚上的状态。复位之后,可通过软件来改变此位。0器件设置为微控制器方式,程序地址范围从0000-7FFFh映射到片内1器件设置为微处理器方式,程序地址范围从0000-7FFFh映射到片外(即用户必须自己提供外部存储器器件)位1-0SARAM程序/数据空间选择位。DONPONSARAM状态00地址空间不被映射,该空间分配到外部存储器01SARAM映射到片内程序空间10SARAM映射到片内数据空间11SARAM即映射到片内程序空间又映射到片内数据空间,二、中断,LF240A器件可编程中断结构支持片内和片外中断。有3类中断源:Reset(硬件或软件初始化);硬件中断;软件中断。,1.中断源,中断源:复位(RESET)优先级最高。复位源有两个:外部复位引脚和看门狗定时器溢出复位。不可屏蔽不被CPU总裁且具有最高优先中断级,在执行复位操作期间所有可屏蔽中断都不使能。硬件中断根据中断源不同可分为两种类型:片外引脚:XINT1,XINT2,PDPINTA,PADINTB可屏蔽外设中断:EVA,EVB,SPI,SCI,CAN,ADC可屏蔽软件中断(通过指令实现)INTR,NMI屏蔽所有可屏蔽中断(即INTM=1);TRAP不可屏蔽,LF240 xA的软件中断,NMI指令:不可屏蔽中断,当访问任何一个无效地址时,一个不可屏蔽中断NMI就会发出请求,当请求被接受,程序转到0024h。,无效地址:系统和外设模块控制寄存器地址映射中包含不可实现单元。,一旦检测到对无效地址的访问,就将系统控制和状态寄存器1(SCSR1)中的无效地址标志位(ILLADR)置1(并保持直到软件将其清除),从而产生一个不可屏蔽中断(NMI)。,F24x器件内核提供了6个中断(INT1INT6),6个中断又被外设中断扩展器(PIE)扩展。,PIE管理所有的来自240 xA的外设中断,将它们分组并共享6个内核级的中断。,2.外设中断扩展控制器PIE,240 xACPU在内核级支持一个非屏蔽中断(NMI)和6个具有优先级的可屏蔽中断。,240 xA器件有许多外设而每个外设都能够产生一个或多个中断以响应外设级的多种事件。由于C240 xACPU没有足够的能力提供所有内核级的外设中断要求,所以器件使用一个外设中断扩展控制器(PIE)来仲裁来自各种中断源如外设和其它外部引脚的中断请求。,外设中断扩展PIE不包括象复位和NMI这样的不可屏蔽中断。,中断请求的结构:,外设中断发生,内核级中断请求,PIE中断允许,PIE中断请求,CPU中断允许,中断请求:,底层中断级:来自几个外设的外设中断请求(PIRQ)。,高层中断级:多个外设请求PIRQ在中断控制器(PIE)处相“或”(OR),产生一个到CPU的内核级的中断请求(INTn)。,到LF240X的中断请求信号是一个为2个CPU时钟脉冲宽的低电平脉冲。,中断响应:,底层中断级和中断标志,如果一个引起中断的外设事件发生且相应的中断使能位被置1,则会产生一个从外设到中断控制器的中断请求。这个中断请求仅影响外设中断标志的状态,然后用中断使能位来打开中断。如果中断标志被清除,则中断请求也被清除。,某些能够设置中断优先级的外设事件发生时,其中断优先级的值也会送入中断控制器,而它们的中断请求一直会保存到中断应答自动清除或由软件清除中断标志。,高层中断级和中断标志,当任何一个控制INTn的外设中断请求PIRQ有效时,PIE都会产生一个INTn脉冲。,如果任一外设中断请求PIRQ在CPU对INTn应答后一个周期内仍有效,此时就会产生另一个INTn脉冲。,CPU总是响应最高优先级的PIRQ。,注意,只有内核级的中断请求会自动清除,而外设中断请求不会被自动清除。,240 xA中断源优先级,3.中断向量,为了让CPU能够区别这些引起中断的外设事件,在每个外设中断请求有效时都会产生一个唯一的外设中断向量。,外设中断向量装载到外设中断向量寄存器(PIVR)里面。,CPU应答外设中断时,从PIVR寄存器中读取相应中断的向量,并产生一个转到该中断服务程序入口的向量。,中断向量表,(1)两个中断向量,(2)两级中断服务程序,通用中断服务程序(GISR):在GISR中保存必要的上下文,从外设中断向量寄存器PIVR中读取外设中断向量,这个向量用来产生转移到SISR的地址入口。,特定中断服务程序(SISR):每一个从外设来的中断都有一个特定的SISR,在SISR中执行对该外设事件的响应。,注意,程序一旦进入中断服务程序后,所有的可屏蔽中断都被屏蔽。,GISR必须在中断被重新使能之前读取PIVR中的值,否则在另一个中断发生请求之后,PIVR中将装入另一个中断请求的向量,这将导致原外设中断向量永久丢失。,(3)假(phantom)中断向量,如果CPU的中断应答已发出,但却没有与之相关的外设中断请求,这时应用假中断向量就可保证系统按照可控的方式运行。,需要假中断向量的情况有:,当外设发出一个中断请求,但它的INTn中断标志却在CPU应答中断请求之前被软件清除。,当上述之一的一个中断被响应,此时却无外设将中断向量地址偏移量装入外设中断向量寄存器PIVR时,CPU就将假中断向量0000h装入PIVR。,这种缺省保证了系统按照可控的方式进行处理。,4.中断响应的流程,在外设事件发生时,,(2)如果外设事件的中断使能位被使能,就向PIE发出外设中断请求;,(3)将外设中断请求位置1,从而引起CPU内核的INT1至INT6中的一个产生中断;,(4)CPU接受中断,将中断寄存器的相应标志位被1;,(1)将其在外设中断控制器中的标志位置1;,(6)CPU应答INT1INT6,则中断入口(中断向量0000h000Ch)转入通用中断服务子程序GISR;,(7)在通用中断服务子程序GISR中保存必要的上下文,并从外设中断向量寄存器PIVR中读取外设中断向量;,(8)转入特定中断服务子程序(SISR),在SISR中执行对应的外设事件响应。,(5)若与INT1INT6对应的中断屏蔽寄存器(IMR)屏蔽位为1,则使能相应的中断;,注意:SISR中断服务子程序返回前必须清中断标志。,CPU中断寄存器,(1)高层中断寄存器包括:中断标志寄存器(IFR);中断屏蔽寄存器(IMR)。,(2)外设中断寄存器包括:,外设中断向量寄存器(PIVR)地址701Eh;外设中断请求寄存器0(PIRQ0)地址7010h;外设中断请求寄存器1(PIRQ1)地址7011h;外设中断请求寄存器2(PIRQ2)地址7012h;外设中断应答寄存器0(PIACKR0)地址7014h;外设中断应答寄存器1(PIACKR1)地址7015h;外设中断应答寄存器2(PIACKR2)地址7016h。,(1)高层中断寄存器,16位的中断标志寄存器(IFR)位于数据存储器空间中的0006h处。它用于识别和清除挂起的中断,IFR包含用于所有可屏蔽的中断的标志位。,1)CPU中断标志寄存器(IFR)地址0006h,注:0=读出为0,R=可读,W1C=写1清除该位,-0=复位值,位15-6保留位,读出时始终为0。位5INT6flag中断6标志位,用作连至第6级中断INT6的所有中断标志。0无INT6级的中断挂起;1至少一个INT6级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。位4INT5flag中断5标志位,用作连至第5级中断INT5的所有中断标志。0无INT5级的中断挂起;1至少一个INT5级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。位3INT4flag中断4标志位,用作连至第4级中断INT4的所有中断标志。0无INT4级的中断挂起;1至少一个INT4级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。,CPU响应中断或者器件复位都能将IFR标志清除。,位2INT3flag中断3标志位,用作连至第3级中断INT3的所有中断标志。0无INT3级的中断挂起;1至少一个INT3级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。位1INT2flag中断2标志位,用作连至第2级中断INT2的所有中断标志。0无INT2级的中断挂起;1至少一个INT2级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。位0INT1flag中断1标志位,用作连至第1级中断INT1的所有中断标志。0无INT1级的中断挂起;1至少一个INT1级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。,2)CPU中断屏蔽寄存器(IMR)地址0004h,IMR中包含所有中断级(INT1INT6)的屏蔽位。为了使能中断,应设置相应的IMR位为1,而屏蔽中断时只需将相应的IMR位设为0。,注:0=读出为0,R=可读,W=可写,该位的值不受器件复位的影响,位15-6保留位位5INT6mask中断6的屏蔽位0中断级INT6被屏蔽1中断级INT6被使能位4INT5mask中断5的屏蔽位0中断级INT5被屏蔽1中断级INT5被使能位3INT4mask中断4的屏蔽位0中断级INT4被屏蔽1中断级INT4被使能位2INT3mask中断3的屏蔽位0中断级INT3被屏蔽1中断级INT3被使能,位1INT2mask中断2的屏蔽位0中断级INT2被屏蔽1中断级INT2被使能位0INT1mask中断1的屏蔽位0中断级INT1被屏蔽1中断级INT1被使能,注:器件复位时IMR位不受影响,注意:1)为清除一个IFR位,必须向其写1,而非是0;2)当响应一个可屏蔽中断时,CPU只清除IFR位,不会清除外设控制寄存器中相应的标志位,如果需要清除这些外设控制寄存器中的标志位,可由应有用户软件来清除;3)IMR中不包含NMI和RS,因此IMR对这两个引脚无影响。4)读IMR寄存器可以识别出已屏蔽或使能的中断级,而向IMR中写则可屏蔽中断或使能所有中断级。5)IMR和IFR寄存器控制内核级的中断,所有的外设在它们各自的配置/控制寄存器中都有相应的中断屏蔽和标志位。,(2)外设中断寄存器,1)外设中断向量寄存器(PIVR)地址701Eh,注:R=可读;-0=复位值位15-0V15-V0,中断向量V15-V0位。该寄存器包含了最近一次应答的外设中断的地址向量。,注意:写1引起相应的外设中断应答被插入,从而将相应的外设中断请求位清0。通过向该寄存器写1来插入的中断应答并不更新PIVR寄存器的内容,读这个寄存器得到的结果通常是0。,6.复位,LF240A器件有两个复位源:一个外部复位引脚;一个程序监视定时器复位。,复位引脚为一个I/O脚,如果有内部复位事件(程序监视定时器复位)发生,则该引脚被设置为输出方式,并且被驱动为低,向外部电路表明LF240X器件正在自己复位。,外部复位引脚和程序监视定时器复位相或后一起驱动CPU的复位信号。,2.4程序控制,TMS320LF2407A是基于C2xx的CPU内核。C2xxDSP的内核有一个内部数据和程序总线结构,此总线结构分为6个16位总线。,这6条总线是:,PAB程序地址总线:提供从程序存储器读数据和向程序存储器写数据的地址;DRAB数据读地址总线:提供从数据存储器读数据的地址;DWAB数据写地址总线:提供向数据存储器写数据的地址;PRDB程序读总线:将指令代码和立即操作数、表信息从程序存储器传送到CPU;DRDB数据读总线:将数据从数据存储器传送到中央算术逻辑单元(CALU)和辅助寄存器算术单元(ARAU);DWER数据写总线:将数据传送到程序存储器和数据存储器。,一、程序地址的产生,程序流要求处理器在执行当前指令的同时产生下一个程序地址(顺序或非顺序)。,程序地址产生逻辑使用16位PC(程序计数器)对内部或外部程序存储器寻址。通过程序地址寄存器PAR驱动PAB(程序地址总线)从程序存储器中取出该地址所指的一个指令,并将该指令装载到指令寄存器中。当装载指令寄存器时,PC保存将要执行的下一条指令的地址。,程序地址产生方框图,TMS320LF240 x采用多种方法装载PC,以适应顺序和非顺序的程序流。,程序地址产生小结,F240X器件程序地址产生逻辑使用的硬件:,(1)程序计数器(PC):LF240X具有16位的程序计数器(PC),在取指时,它对内部或外部程序存储器进行寻址。(2)程序地址寄存器(PAR):PAR驱动程序地址总线(PAB)。PAR是16位总线,它同时为读和写程序提供地址。(3)堆栈:程序堆栈产生逻辑包含用于存储最多8个返回堆栈的16位宽度、8级硬件逻辑堆栈。此外,用户还可将堆栈用于临时存储器。(4)微堆栈(MSTACK):程序地址产生逻辑使用16位宽度、1级微堆栈MSTACK来存储一个返回地址。(5)重复计数器(RPTC):16位RPTC与重复(RPT)指令一起使用,以决定RPT之后的指令重复多少次。,程序计数器(PC),堆栈,LF240 x具有16位宽、8级深度的硬件堆栈。当程序调用或中断发生时,程序地址产生逻辑将返回地址存放在堆栈中。返回地址是被自动装入堆栈顶部(TOS栈顶)的,该事件不需要附加的周期。当执行完子程序或中断服务子程序时,返回指令把返回地址从堆栈顶部传送到PC。,压栈时从栈顶向栈底压入,每一级的内容向下推一级,而堆栈底部(第8个)单元的内容将丢失。弹栈时,弹栈操作把每一级的内容复制到相邻的较高一级,在连续7次弹栈操作后,栈底的内容已被复制到栈顶。因此堆栈的内容是先入后出。堆栈除用于保存地址外,还可用于保存程序调用或中断时的上下文数据保护以及其他存储用途。,用户可以使用两组指令访问堆栈:,(1)PUSH(压入)和POP(弹出):PUSH指令把累加器的低位字复制到堆栈顶部。POP指令把堆栈顶部的数值复制到累加器的低位字。(2)PSHD和POPD:这两条指令允许用户在数据存储器中为超过8级的子程序或中断嵌套建立软件堆栈。PSHD指令把数据存储器的值压入软件堆栈的顶部。POPD指令把数值从软件堆栈顶部弹出至数据存储器。,压栈操作,弹栈操作,微堆栈(MSTACK),在执行某些指令之前,程序地址产生逻辑使用16位宽度,1级深度的MSTACK存储返回地址。,这些指令使用程序地址产生逻辑提供双操作数指令的第2地址。,这些指令是:BLDD、BLPD、MAC、MACD、TBLR以及TBLW。,在重复执行时,这些指令利用PC使第一操作数地址增1,并使用辅助寄存器算术单元(ARAU)产生第2个操作数地址。在使用这些指令时,返回地址(将被取出的下一条指令的地址)被压入MSTACK。重复指令执行完后,MSTACK的值被弹出并送至程序地址产生逻辑。MSTACK操作对用户是不可见的。与堆栈不同,MSATCK只能被程序地址产生逻辑使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 盐城市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(突破训练)
- 信阳市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(a卷)
- 2026年宁德市 农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(b卷)
- 黔南布依族苗族自治州农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(夺分金卷)
- 行政文件归档与存档管理系统
- 2026年安阳市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(新)
- 营口市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(满分必刷)
- 2026年湖州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)(含答案详解)
- 市辖县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)(含答案详解)
- 揭阳市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(真题汇编)
- 清收法律培训课件
- 2025年特种设备压力容器R1证理论考试模拟试题含答案
- DB32T 5192-2025工业园区碳排放核算指南
- 小学武松打虎课件
- 人力资源部安全工作总结
- 屠宰场安全生产制度
- 2025-2030儿童绘本出版行业市场发展与竞争战略研究报告
- 水路运输经济季度波动性分析及预测模型构建
- 医保课件模板
- 呼吸科门诊综合诊疗室
- 企业十一期间安全培训课件
评论
0/150
提交评论