存储器和空间优秀PPT.ppt
存储器和空间第1页,本讲稿共33页“LFLF”-片内有片内有FlashFlash存储器;存储器;“LCLC”-片内有片内有CMOSCMOS工艺的程序存储器,工艺的程序存储器,LF2407/LF2407ALF2407/LF2407A片内片内:2K2K字字的的单访问单访问RAMRAM(SARAMSARAM)544544字字的的双访问双访问RAM-RAM-DARAMDARAM(B0B0块块-256-256字;字;B1B1块块-256-256字;字;B2B2块块-32-32字)字)5.1 5.1 片内存储器片内存储器5.1.1 5.1.1 双访问双访问RAM(DARAM)RAM(DARAM)一个机器周期内可被访问一个机器周期内可被访问2 2次次:主相主相写数据到写数据到DARAMDARAM;而;而从相从相从从DARAMDARAM读出数据。从而大大提高运行速度。读出数据。从而大大提高运行速度。第2页,本讲稿共33页544544字字DARAMDARAM分为三块分为三块:B0B0、B1B1和和B2B2该存储器空间主要用来保存数据,但是该存储器空间主要用来保存数据,但是B0B0块也可以用来保存程块也可以用来保存程序序。B0B0块块配置成数据存储器空间还是程序存储器空间,要配置成数据存储器空间还是程序存储器空间,要由状态寄存器由状态寄存器ST1ST1的的CNFCNF位位来决定:来决定:(1 1)CNF=1CNF=1,B0B0映射到映射到程序程序存储器空间;存储器空间;(2 2)CNF=0CNF=0,B0B0映射到映射到数据数据存储器空间。存储器空间。5.1.2 5.1.2 单访问单访问RAM(SARAM)RAM(SARAM)片内有片内有2K2K字字的的单访问单访问RAMRAM(SARAMSARAM),在一个机器周期在一个机器周期第3页,本讲稿共33页内只能被访问内只能被访问1 1次。次。例如例如,如果要将累加器的值保存,且装载一个新值到累加如果要将累加器的值保存,且装载一个新值到累加器器,在,在SARAMSARAM中,完成这个任务需要两个时钟周期,而中,完成这个任务需要两个时钟周期,而在在DARAMDARAM中只需要一个时钟周期。中只需要一个时钟周期。利用软件利用软件可将可将SARAMSARAM配置配置成外部存储器或内部成外部存储器或内部SARAMSARAM。5.1.3 Flash5.1.3 Flash程序存储器程序存储器片内的片内的FlashFlash存储器映射到程序存储器空间。存储器映射到程序存储器空间。MP/MCMP/MC*引脚引脚决定是访问片内的程序存储器(决定是访问片内的程序存储器(FlashFlash)还是访)还是访问片外的程序存储器。问片外的程序存储器。第4页,本讲稿共33页1.1.FlashFlash程序存储器程序存储器使用电擦除的方式,进行程序的修改和开发。使用电擦除的方式,进行程序的修改和开发。FlashFlash模块模块特点:特点:运行运行在在3.3V3.3V电压模式。电压模式。对对FlashFlash编程编程时需要在时需要在VCCPVCCP上上有有5V5V(55)电压供)电压供电。电。FlashFlash有多个向量,用来保护它,有多个向量,用来保护它,防止被擦除防止被擦除。FlashFlash的的编程是由编程是由CPUCPU来实现来实现的。的。2.Flash2.Flash控制方式寄存器(控制方式寄存器(FCMRFCMR)FlashFlash模块有模块有4 4个个寄存器。寄存器。控制对控制对FlashFlash的操作的操作。在任意时刻,。在任意时刻,用户可以访问用户可以访问FlashFlash模块中的存储器阵模块中的存储器阵第5页,本讲稿共33页列,也可以访问控制寄存器,但不能同时访问。模块有列,也可以访问控制寄存器,但不能同时访问。模块有一个一个FlashFlash控制方式寄存器控制方式寄存器来选择两种访问模式来选择两种访问模式。该寄。该寄存器存器映射在映射在内部内部I/OI/O空间空间的的FF0FhFF0Fh,这是一个不能读的特,这是一个不能读的特殊功能寄存器,它可在殊功能寄存器,它可在FlashFlash的存储器阵列方式下使能的存储器阵列方式下使能FlashFlash,用来对用来对FlashFlash阵列编程阵列编程。该寄存器的功能如下:。该寄存器的功能如下:使用使用OUTOUT指令,可以指令,可以将将FlashFlash模块置于模块置于寄存器访问寄存器访问模式模式,被,被使用的数据操作数是无意义的。例如:使用的数据操作数是无意义的。例如:OUT dummy,0FF0Fh OUT dummy,0FF0Fh ;选择寄存器访问方式;选择寄存器访问方式第6页,本讲稿共33页使用使用ININ指令,可指令,可将将FlashFlash模块置于模块置于存储器阵列访问存储器阵列访问模式模式,被使用的数据操作数是无意义的。例如:,被使用的数据操作数是无意义的。例如:IN dummy,0FF0Fh IN dummy,0FF0Fh;选择存储器阵列访问方式选择存储器阵列访问方式5.2 5.2 程序存储器程序存储器程序存储器空间程序存储器空间寻址范围为寻址范围为64K64K,包括了片内,包括了片内DARAMDARAM和片内和片内FlashFlash。图图5-15-1所示为所示为LF2407ALF2407A的程序存储器空间的映射。的程序存储器空间的映射。第7页,本讲稿共33页第8页,本讲稿共33页有有两个因素两个因素决定程序存储器的配置:决定程序存储器的配置:(1 1)CNFCNF位位。CNFCNF位是状态寄存器位是状态寄存器ST1ST1的的第第1212位位,决定,决定DARAMDARAM中的中的B0B0块块配置在数据存储器空间,还是配置在程序存配置在数据存储器空间,还是配置在程序存储器空间。储器空间。0:0:256256字的字的B0B0块块被映射到被映射到数据数据存储器空间。存储器空间。1:1:256256字的字的B0B0块块被映射到被映射到程序程序存储器空间。存储器空间。复位复位时,时,CNFCNF0 0,B0B0块被映射到数据存储器空间。块被映射到数据存储器空间。(2 2)MP/MCMP/MC*引脚引脚。该引脚决定是从片内。该引脚决定是从片内FlashFlash读取指令。读取指令。还是从外部程序存储器读取指令。还是从外部程序存储器读取指令。第9页,本讲稿共33页0:0:微控制器微控制器方式。方式。此时访问的是此时访问的是片内片内程序存储器(片内程序存储器(片内FlashFlash)0000h-7FFFh0000h-7FFFh空间。空间。1:1:微处理器微处理器方式。方式。此时访问的是此时访问的是片外片外程序存储器的程序存储器的0000h-7FFFh0000h-7FFFh空间。空间。无论无论MP/MCMP/MC*引脚为何值,引脚为何值,LF240 xDSPLF240 xDSP都是从程序存储器空都是从程序存储器空间的间的0000h0000h单元单元开始执行程序。开始执行程序。5.3 5.3 数据存储器数据存储器寻址范围高达寻址范围高达64K64K字字:第10页,本讲稿共33页前前32K32K字字(0000h-7FFFh0000h-7FFFh)是内部数据存储器空间)是内部数据存储器空间,包括了包括了DARAMDARAM和片内外设的映射寄存器。和片内外设的映射寄存器。后后32K32K字字(8000h-FFFFh8000h-FFFFh)空间的存储器为外部数据存储器)空间的存储器为外部数据存储器。1.1.数据存储器映射数据存储器映射片内有片内有3 3个个DARAMDARAM块:块:B0B0、B1B1和和B2B2块。块。B0B0块块:即可为数据存储器,也可配置为程序存储器。即可为数据存储器,也可配置为程序存储器。B1B1、B2B2块块:只能配置为数据存储器。只能配置为数据存储器。图图5-25-2为数据存储器空间的映射。为数据存储器空间的映射。第11页,本讲稿共33页第12页,本讲稿共33页两种寻址方式:两种寻址方式:直接寻址直接寻址和和间接寻址间接寻址。直接寻址时,直接寻址时,128128字为一页字为一页的数据块来对数据存储器进行的数据块来对数据存储器进行寻址。寻址。图图5-35-3显示了这些块是如何被寻址的。显示了这些块是如何被寻址的。全部全部64K64K的数据存储器分为的数据存储器分为512512个数据页个数据页,其标号从,其标号从0 0511511。当前页当前页由状态寄存器由状态寄存器ST0ST0中的中的9 9位位数据页指针数据页指针(DPDP)值来确)值来确定。定。因此,当使用因此,当使用直接寻址直接寻址指令时,指令时,用户必须事先指定用户必须事先指定数据页数据页,并在访问数据存储器的指令中指定并在访问数据存储器的指令中指定偏移量偏移量,偏移量为,偏移量为7 7位位。第13页,本讲稿共33页第14页,本讲稿共33页编程时要注意编程时要注意,访问下面的数据存储器的地址空间是非法访问下面的数据存储器的地址空间是非法的,的,并并会对会对NMINMI置位置位。除了以下地址,任何对外设寄存。除了以下地址,任何对外设寄存器映射中的器映射中的保留地址保留地址的访问的访问也是非法也是非法的。的。0080h-00FFh0080h-00FFh701Fh-71FFh(CAN701Fh-71FFh(CAN内部的内部的)0500h-07FFh0500h-07FFh7230h-73FFh(7230h-73FFh(部分在部分在CANCAN内部内部)1000h-700Fh1000h-700Fh7440h-74FFh7440h-74FFh7030h-703Fh7030h-703Fh7540h-75FFh7540h-75FFh7060h-706Fh7060h-706Fh7600h-77EFh7600h-77EFh77F4h-7FFFh77F4h-7FFFh7080h-708Fh7080h-708Fh 第15页,本讲稿共33页3.3.第第0 0页数据地址映射页数据地址映射数据存储器中包括数据存储器中包括存储器映射寄存器存储器映射寄存器,它们位于数据存储器,它们位于数据存储器的的第第0 0页页(地址(地址0000h-007Fh0000h-007Fh),),表表5-15-1对第对第0 0页数据地址映页数据地址映射进行详细说明。应用中必须射进行详细说明。应用中必须注意以下几点注意以下几点:(1 1)以零等待状态访问)以零等待状态访问两个映射寄存器两个映射寄存器:中断屏蔽寄存中断屏蔽寄存器器(IMRIMR)和)和中断标志寄存器中断标志寄存器(IFRIFR)(2 2)测试测试/仿真保留区仿真保留区被测试和仿真系统用于特定信息发被测试和仿真系统用于特定信息发送。因此送。因此不能对测试不能对测试/仿真地址进行操作。仿真地址进行操作。第16页,本讲稿共33页表表5-1 5-1 第第0 0页数据地址映射页数据地址映射 地址地址 名称名称说明说明0000h-0003h0000h-0003h保留保留0004h0004hIMRIMR中断屏蔽寄存器中断屏蔽寄存器0005h0005h保留保留0006h0006hIFRIFR中断标志寄存器中断标志寄存器0023h-0023h-0027h0027h保留保留002Bh-002Fh002Bh-002Fh保留用作测试和仿真保留用作测试和仿真0060h-0060h-007Fh007FhB2B2双访问双访问RAMRAM的的B2B2块块第17页,本讲稿共33页4.4.配置数据存储器配置数据存储器CNFCNF位位决定决定B0B0块的配置块的配置,CNFCNF位是状态寄存器位是状态寄存器ST1ST1的第的第1212位。位。CNFCNF0 0,B0B0块被映射为块被映射为数据数据存储器空间。复位时,存储器空间。复位时,CNF CNF0 0 CNFCNF1 1,B0B0块被映射到块被映射到程序程序存储器空间。存储器空间。5.4 I/O5.4 I/O空间空间I/OI/O空间的寻址可达空间的寻址可达64K64K字,字,图图5-45-4 为为LF2407ALF2407A的的I/OI/O空间映空间映射。射。第18页,本讲稿共33页第19页,本讲稿共33页I/OI/O空间访问的空间访问的控制信号为控制信号为ISIS*。所有所有64K64K的的I/OI/O空间均可以用空间均可以用ININ和和OUTOUT指令来访问指令来访问。当执行。当执行ININ或或OUTOUT指令时,指令时,信号信号ISIS*变为有效变为有效,可作为外部可作为外部I/OI/O设备的设备的片选信号。片选信号。访问外部访问外部I/OI/O端口与访问程序存储器、数据存储器端口与访问程序存储器、数据存储器复用相同的复用相同的的地址总线和数据总线的地址总线和数据总线。数据总线的宽度为数据总线的宽度为1616位,位,若使用若使用8 8位的外设位的外设,即可使用,即可使用高高8 8位位数据总线,也可使用数据总线,也可使用低低8 8位位数据总线,以适应特定应用数据总线,以适应特定应用的需要。的需要。第20页,本讲稿共33页当访问当访问片内片内的的I/OI/O空间时,信号空间时,信号ISIS*和和STRBSTRB*变成无效,外部变成无效,外部地址和数据总线仅仅当访问外部地址和数据总线仅仅当访问外部I/OI/O地址时有效。地址时有效。下面是使用汇编语言的直接访问下面是使用汇编语言的直接访问I/OI/O空间的实际例子。空间的实际例子。ININDAT2,0AFEEhDAT2,0AFEEh;从端口地址为;从端口地址为AFEEhAFEEh的外设的外设 ;读数据,并;读数据,并存入存入DAT2DAT2寄存器寄存器OUTOUTDAT2,0CFEFhDAT2,0CFEFh;输出数据存储器;输出数据存储器DAT2DAT2的内容的内容 ;到端口地址为;到端口地址为CFEFhCFEFh的的外设外设 第21页,本讲稿共33页下面是访问等待状态发生器的寄存器的实例:下面是访问等待状态发生器的寄存器的实例:ININDAT2,0FFFFhDAT2,0FFFFh;从等待状态发生器读取数;从等待状态发生器读取数据到据到DAT2DAT2寄存器寄存器OUTOUTDAT2,0FFFFhDAT2,0FFFFh;将;将DAT2DAT2寄存器的数据写入寄存器的数据写入等待状态发生器,使用等待状态发生器等待状态发生器,使用等待状态发生器5.5 5.5 外部存储器接口选通信号说明外部存储器接口选通信号说明LF240 x DSPLF240 x DSP可以访问如表可以访问如表5-25-2所列出的外部存储器和所列出的外部存储器和I/OI/O空间。空间。当当DSPDSP外扩存储器和外扩存储器和I/OI/O时,需要将选通信号与外部存储器和时,需要将选通信号与外部存储器和I/OI/O的使能引脚相连。的使能引脚相连。第22页,本讲稿共33页表表5-25-2 外部存储器空间访问及片选信号外部存储器空间访问及片选信号外部存储空间外部存储空间空间大小(字)空间大小(字)选通信号选通信号 程序空间程序空间 64K64KPSPS*数据空间数据空间 64K64KDSDS*I/O I/O空间空间 64K64KISIS*LF240 x DSPLF240 x DSP的外部存储器和的外部存储器和I/OI/O空间接口信号的功能描述如空间接口信号的功能描述如表表5-35-3(P60P60)所示。所示。第23页,本讲稿共33页5.6 5.6 等待状态发生器等待状态发生器当访问速度较慢的外部存储器或外设时,当访问速度较慢的外部存储器或外设时,CPUCPU需要产生等需要产生等待状态。待状态。等待状态等待状态是以是以机器周期机器周期为单位,为单位,CPUCPU通过通过READYREADY引脚可产生任意数目的等待状态引脚可产生任意数目的等待状态(延长访问时间)延长访问时间),可使,可使快速的快速的CPUCPU访问慢速的外部存储器或外设访问慢速的外部存储器或外设。5.6.1 5.6.1 用用READYREADY信号产生等待状态信号信号产生等待状态信号若若CPUCPU所访问的外设所访问的外设没有准备好没有准备好,则外设应保持则外设应保持READYREADY引引脚为低脚为低,此时,此时LF240 xLF240 x等待一个等待一个CLKOUTCLKOUT周期,并再次检查周期,并再次检查READYREADY脚。若脚。若READYREADY信号没有被使用,信号没有被使用,LF240 xLF240 x将在外部访将在外部访问时把问时把READYREADY信号拉高。信号拉高。READYREADY引脚引脚可可第24页,本讲稿共33页用来产生任意数目的等待状态用来产生任意数目的等待状态。但是,但是,当当LF240 xLF240 x全速运行时,它不能对第一个周期作出快速全速运行时,它不能对第一个周期作出快速响应来产生一个基于响应来产生一个基于READYREADY的等待状态。的等待状态。为立即得到等待为立即得到等待状态,状态,应先使用片内等待状态发生器,应先使用片内等待状态发生器,然后用然后用READYREADY信号信号产生其余的等待状态。产生其余的等待状态。5.6.2 5.6.2 用等待状态发生器产生等待状态用等待状态发生器产生等待状态等待状态发生器可编程为指定的片外空间(数据、程序或等待状态发生器可编程为指定的片外空间(数据、程序或I/OI/O)产生第一个等待状态,产生第一个等待状态,而与而与READYREADY信号的状态无关。信号的状态无关。为了控制等待状态发生器,就必须对映射到为了控制等待状态发生器,就必须对映射到I/OI/O空间的空间的等待状态控制寄存器等待状态控制寄存器(WSGRWSGR,地址为,地址为FFFFhFFFFh)访问。访问。第25页,本讲稿共33页等待状态控制寄存器的格式如下:等待状态控制寄存器的格式如下:位位15-1115-11:保留,读出的值永远为:保留,读出的值永远为0 0位位10-910-9:BVISBVIS,总线可视模式。总线可视模式。提供了一种提供了一种跟踪内部总线跟踪内部总线活动的方式。活动的方式。当运行片内的程序或数据存储器时,位当运行片内的程序或数据存储器时,位10-910-9允许各种总线的可视模式。允许各种总线的可视模式。00-00-总线可视模式关(降低功耗和噪声);总线可视模式关(降低功耗和噪声);01-01-总线可视模式开(降低功耗和噪声);总线可视模式开(降低功耗和噪声);10-10-数据到地址总线输出到外部地址总线数据到地址总线输出到外部地址总线 数据到数据总线输出到外部数据总线数据到数据总线输出到外部数据总线第26页,本讲稿共33页11-11-程序到地址总线输出到外部地址总线程序到地址总线输出到外部地址总线 程序到数据总线输出到外部数据总线程序到数据总线输出到外部数据总线位位8-68-6:ISWSISWS,I/OI/O空间等待状态位空间等待状态位。这三位决定了片外。这三位决定了片外I/OI/O空间等待状态(空间等待状态(0-70-7)的数目。)的数目。复位时,复位时,这三位置为这三位置为111111,为片外,为片外I/OI/O空间空间的读写设定了的读写设定了7 7个等待状态。个等待状态。位位5-35-3:DSWSDSWS,数据空间等待状态位数据空间等待状态位。这三位决定了片外数。这三位决定了片外数据空间等待状态(据空间等待状态(0-70-7)的数目。)的数目。复位时,复位时,这三位置为这三位置为111111,为,为片外数据空间片外数据空间的读写设定了的读写设定了7 7个等待状态。个等待状态。第27页,本讲稿共33页位位2-02-0:PSWSPSWS,程序空间等待状态位程序空间等待状态位。这三位决定了片外程。这三位决定了片外程序空间等待状态(序空间等待状态(0-70-7)的数目。)的数目。复位时,复位时,这三位置为这三位置为111111,为,为片外程序空间片外程序空间的读写设定了的读写设定了7 7个等待状态。个等待状态。总之,不管总之,不管READYREADY信号的状态如何,等待状态发生器都将信号的状态如何,等待状态发生器都将向给定的空间(数据、程序或向给定的空间(数据、程序或I/OI/O)插入)插入0-70-7个等待状个等待状态态,等待状态的,等待状态的数目由软件来确定数目由软件来确定。然后。然后READYREADY信号信号可以变为低电平,产生附加的等待状态。可以变为低电平,产生附加的等待状态。第28页,本讲稿共33页如果如果m m是一个特定的读写操作的所要求的时钟周期(是一个特定的读写操作的所要求的时钟周期(CLKOUTCLKOUT)的数目,)的数目,w w是附加的等待状态数目,那么操作将会花费是附加的等待状态数目,那么操作将会花费(m mw w)个周期。)个周期。复位时复位时,WSGRWSGR各位均置各位均置1 1,且,且默认每个外部空间(数据、默认每个外部空间(数据、程序或程序或I/OI/O)均产生)均产生7 7个等待状态个等待状态。5.7 5.7 外部存储器接口外部存储器接口LF240 x/240 xALF240 x/240 xA程序存储器有程序存储器有64K 64K 空间的寻址空间,当空间的寻址空间,当LF240 x/240 xALF240 x/240 xA访问片内访问片内程序存储器块时,外部存储器访问程序存储器块时,外部存储器访问信号信号PSPS*和和STRBSTRB*无效。仅当无效。仅当LF240 x/240 xALF240 x/240 xA访访第29页,本讲稿共33页问映射到外部存储器地址范围的位置时,外部数据和地址总问映射到外部存储器地址范围的位置时,外部数据和地址总线才有效。线才有效。表表5-4(P62)5-4(P62)列出了外部存储器接口中的控制信列出了外部存储器接口中的控制信号。号。图图5-55-5 为一个外部程序存储器接口的实例。图中为一个外部程序存储器接口的实例。图中LF240 x/240 xALF240 x/240 xA连接两个连接两个16k8 16k8 位位SRAMSRAM。第30页,本讲稿共33页第31页,本讲稿共33页两个两个8 8位宽的存储器级连来实现所需的位宽的存储器级连来实现所需的1616位字宽,虽然位字宽,虽然图图5-5-5 5中显示的是中显示的是SRAMSRAM,但是,但是该接口同样适用于该接口同样适用于EPROMEPROM,只需,只需将写有效(将写有效(WEWE*)信号去掉。)信号去掉。图图5-55-5所示的接口是一个所示的接口是一个零等待零等待状态读状态读/写周期的,即写周期的,即存储存储器的访问时间是与器的访问时间是与DSPDSP相匹配的相匹配的,是经过专门挑选的。,是经过专门挑选的。如用如用慢速存储器慢速存储器,则片内等待状态发生器将向访问周期插,则片内等待状态发生器将向访问周期插入一个等待状态,若需要不止一个等待状态,则需要入一个等待状态,若需要不止一个等待状态,则需要用用READYREADY信号。信号。第32页,本讲稿共33页程序存储器空间选择程序存储器空间选择PSPS*信号信号可以直接连接到外部存储器芯片可以直接连接到外部存储器芯片的片选引脚的片选引脚CECE*,以便对外部程序存储器访问时选择程,以便对外部程序存储器访问时选择程序存储器。序存储器。若若多片多片存储器与程序空间接口,那么由存储器与程序空间接口,那么由PSPS*和适当的地址位来和适当的地址位来组成译码电路来组成译码电路来进行存储器块的片选进行存储器块的片选。第33页,本讲稿共33页