1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,5,章 存储器和,I/O,空间,TMSLF240 x DSP,具有,16,位,地址线,可访问分别访问这,三个,独立的地址空间,,每个空间的容量,均为,64K,字,:,(,1,)程序存储器空间,64K,字;,(,2,)数据存储器空间,64K,字;,(,3,),I/O,空间,64K,字。,注意,:,LF240 x DSP,的所有片内外设的寄存器,均映射在数据存储器,空间,。,“,LF”,-,片内有,Flash,存储器;,“,LC,”,-,片内有,CMOS,工艺的程序存储器,,LF2407/LF2407A,片
2、内,:,2K,字,的,单访问,RAM,(,SARAM,),544,字,的,双访问,RAM-,DARAM,(,B0,块,-256,字;,B1,块,-256,字;,B2,块,-32,字),5.1,片内存储器,5.1.1,双访问,RAM(DARAM),一个机器周期内可被访问,2,次,:,主相,写数据到,DARAM,;而,从相,从,DARAM,读出数据。从而大大提高运行速度。,544,字,DARAM,分为三块,:,B0,、,B1,和,B2,该存储器空间主要用来保存数据,但是,B0,块也可以用来保存程序,。,B0,块,配置成数据存储器空间还是程序存储器空间,要由状态寄存器,ST1,的,CNF,位,来决定
3、1,),CNF=1,,,B0,映射到,程序,存储器空间;,(,2,),CNF=0,,,B0,映射到,数据,存储器空间。,5.1.2,单访问,RAM(SARAM),片内有,2K,字,的,单访问,RAM,(,SARAM,),在一个机器周期,内只能被访问,1,次。,例如,,,如果要将累加器的值保存,且装载一个新值到累加器,,在,SARAM,中,完成这个任务需要两个时钟周期,而在,DARAM,中只需要一个时钟周期。,利用软件,可将,SARAM,配置,成外部存储器或内部,SARAM,。,5.1.3 Flash,程序存储器,片内的,Flash,存储器映射到程序存储器空间。,MP/MC,*,引脚,决
4、定是访问片内的程序存储器(,Flash,)还是访问片外的程序存储器。,1.,Flash,程序存储器,使用电擦除的方式,进行程序的修改和开发。,Flash,模块特点:,运行,在,3.3V,电压模式。,对,Flash,编程,时需要在,VCCP,上,有,5V,(,5,)电压供电。,Flash,有多个向量,用来保护它,,防止被擦除,。,Flash,的,编程是由,CPU,来实现,的。,2.Flash,控制方式寄存器(,FCMR,),Flash,模块有,4,个,寄存器。,控制对,Flash,的操作,。在任意时刻,用户可以访问,Flash,模块中的存储器阵,列,也可以访问控制寄存器,但不能同时访问。模块有一
5、个,Flash,控制方式寄存器,来选择两种访问模式,。该寄存器,映射在,内部,I/O,空间,的,FF0Fh,,这是一个不能读的特殊功能寄存器,它可在,Flash,的存储器阵列方式下使能,Flash,,,用来对,Flash,阵列编程,。该寄存器的功能如下:,使用,OUT,指令,可以,将,Flash,模块置于,寄存器访问,模式,,被使用的数据操作数是无意义的。例如:,OUT dummy,0FF0Fh,;选择寄存器访问方式,使用,IN,指令,可,将,Flash,模块置于,存储器阵列访问,模式,,被使用的数据操作数是无意义的。例如:,IN dummy,0FF0Fh,;,选择存储器阵列访问方式,5.2,
6、程序存储器,程序存储器空间,寻址范围为,64K,,包括了片内,DARAM,和片内,Flash,。,图,5-1,所示为,LF2407A,的程序存储器空间的映射。,有,两个因素,决定程序存储器的配置:,(,1,),CNF,位,。,CNF,位是状态寄存器,ST1,的,第,12,位,,决定,DARAM,中的,B0,块,配置在数据存储器空间,还是配置在程序存储器空间。,0:,256,字的,B0,块,被映射到,数据,存储器空间。,1:,256,字的,B0,块,被映射到,程序,存储器空间。,复位,时,,CNF,0,,,B0,块被映射到数据存储器空间。,(,2,),MP/MC,*,引脚,。该引脚决定是从片内,
7、Flash,读取指令。还是从外部程序存储器读取指令。,0:,微控制器,方式。,此时访问的是,片内,程序存储器(片内,Flash,),0000h-7FFFh,空间。,1:,微处理器,方式。,此时访问的是,片外,程序存储器的,0000h-7FFFh,空间。,无论,MP/MC,*,引脚为何值,,LF240 xDSP,都是从程序存储器空间的,0000h,单元,开始执行程序。,5.3,数据存储器,寻址范围高达,64K,字,:,前,32K,字,(,0000h-7FFFh,)是内部数据存储器空间,包括了,DARAM,和片内外设的映射寄存器。,后,32K,字,(,8000h-FFFFh,)空间的存储器为外部数
8、据存储器,。,1.,数据存储器映射,片内有,3,个,DARAM,块:,B0,、,B1,和,B2,块。,B0,块,:,即可为数据存储器,也可配置为程序存储器。,B1,、,B2,块,:,只能配置为数据存储器。,图,5-2,为数据存储器空间的映射。,两种寻址方式:,直接寻址,和,间接寻址,。,直接寻址时,,128,字为一页,的数据块来对数据存储器进行寻址。,图,5-3,显示了这些块是如何被寻址的。,全部,64K,的数据存储器分为,512,个数据页,,其标号从,0,511,。,当前页,由状态寄存器,ST0,中的,9,位,数据页指针,(,DP,)值来确定。,因此,当使用,直接寻址,指令时,,用户必须事先
9、指定,数据页,,并在访问数据存储器的指令中指定,偏移量,,偏移量为,7,位,。,编程时要注意,,,访问下面的数据存储器的地址空间是非法的,,并,会对,NMI,置位,。除了以下地址,任何对外设寄存器映射中的,保留地址,的访问,也是非法,的。,0080h-00FFh701Fh-71FFh(CAN,内部的,),0500h-07FFh7230h-73FFh(,部分在,CAN,内部,),1000h-700Fh7440h-74FFh,7030h-703Fh7540h-75FFh,7060h-706Fh7600h-77EFh,77F4h-7FFFh7080h-708Fh,3.,第,0,页数据地址映射,数据存
10、储器中包括,存储器映射寄存器,,它们位于数据存储器的,第,0,页,(地址,0000h-007Fh,),,表,5-1,对第,0,页数据地址映射进行详细说明。应用中必须,注意以下几点,:,(,1,)以零等待状态访问,两个映射寄存器,:,中断屏蔽寄存器,(,IMR,)和,中断标志寄存器,(,IFR,),(,2,),测试,/,仿真保留区,被测试和仿真系统用于特定信息发送。因此,不能对测试,/,仿真地址进行操作。,表,5-1,第,0,页数据地址映射,地址 名称说明,0000h-0003h,保留,0004h,IMR,中断屏蔽寄存器,0005h,保留,0006h,IFR,中断标志寄存器,0023h-0027
11、h,保留,002Bh-002Fh,保留用作测试和仿真,0060h-007FhB2,双访问,RAM,的,B2,块,4.,配置数据存储器,CNF,位,决定,B0,块的配置,,,CNF,位是状态寄存器,ST1,的第,12,位。,CNF,0,,,B0,块被映射为,数据,存储器空间。复位时,,CNF,0,CNF,1,,,B0,块被映射到,程序,存储器空间。,5.4 I/O,空间,I/O,空间的寻址可达,64K,字,,图,5-4,为,LF2407A,的,I/O,空间映射。,I/O,空间访问的,控制信号为,IS,*,。,所有,64K,的,I/O,空间均可以用,IN,和,OUT,指令来访问,。当执行,IN,或
12、OUT,指令时,,信号,IS,*,变为有效,可作为外部,I/O,设备的片选信号。,访问外部,I/O,端口与访问程序存储器、数据存储器,复用相同的的地址总线和数据总线,。,数据总线的宽度为,16,位,,若使用,8,位的外设,,即可使用,高,8,位,数据总线,也可使用,低,8,位,数据总线,以适应特定应用的需要。,当访问,片内,的,I/O,空间时,信号,IS,*,和,STRB,*,变成无效,外部地址和数据总线仅仅当访问外部,I/O,地址时有效。,下面是使用汇编语言的直接访问,I/O,空间的实际例子。,INDAT2,0AFEEh,;从端口地址为,AFEEh,的外设,;读数据,并,存入,DAT2,寄
13、存器,OUTDAT2,0CFEFh,;输出数据存储器,DAT2,的内容,;到端口地址为,CFEFh,的,外设,下面是访问等待状态发生器的寄存器的实例:,INDAT2,0FFFFh,;从等待状态发生器读取数据到,DAT2,寄存器,OUTDAT2,0FFFFh,;将,DAT2,寄存器的数据写入等待状态发生器,使用等待状态发生器,5.5,外部存储器接口选通信号说明,LF240 x DSP,可以访问如表,5-2,所列出的外部存储器和,I/O,空间。当,DSP,外扩存储器和,I/O,时,需要将选通信号与外部存储器和,I/O,的使能引脚相连。,表,5-2,外部存储器空间访问及片选信号,外部存储空间空间大小
14、字)选通信号,程序空间,64K,PS,*,数据空间,64K,DS,*,I/O,空间,64K,IS,*,LF240 x DSP,的外部存储器和,I/O,空间接口信号的功能描述如,表,5-3,(,P60,),所示。,5.6,等待状态发生器,当访问速度较慢的外部存储器或外设时,,CPU,需要产生等待状态。,等待状态,是以,机器周期,为单位,,CPU,通过,READY,引脚可产生任意数目的等待状态,(,延长访问时间),,可使,快速的,CPU,访问慢速的外部存储器或外设,。,5.6.1,用,READY,信号产生等待状态信号,若,CPU,所访问的外设,没有准备好,,,则外设应保持,READY,引脚为低,
15、此时,LF240 x,等待一个,CLKOUT,周期,并再次检查,READY,脚。若,READY,信号没有被使用,,LF240 x,将在外部访问时把,READY,信号拉高。,READY,引脚,可,用来产生任意数目的等待状态,。,但是,,当,LF240 x,全速运行时,它不能对第一个周期作出快速响应来产生一个基于,READY,的等待状态。,为立即得到等待状态,,应先使用片内等待状态发生器,,然后用,READY,信号产生其余的等待状态。,5.6.2,用等待状态发生器产生等待状态,等待状态发生器可编程为指定的片外空间(数据、程序或,I/O,),产生第一个等待状态,,而与,READY,信号的状态无关。
16、为了控制等待状态发生器,就必须对映射到,I/O,空间的,等待状态控制寄存器,(,WSGR,,地址为,FFFFh,),访问。,等待状态控制寄存器的格式如下:,位,15-11,:保留,读出的值永远为,0,位,10-9,:,BVIS,,,总线可视模式。,提供了一种,跟踪内部总线活动的方式。,当运行片内的程序或数据存储器时,位,10-9,允许各种总线的可视模式。,00-,总线可视模式关(降低功耗和噪声);,01-,总线可视模式开(降低功耗和噪声);,10-,数据到地址总线输出到外部地址总线,数据到数据总线输出到外部数据总线,11-,程序到地址总线输出到外部地址总线,程序到数据总线输出到外部数据总线,位
17、8-6,:,ISWS,,,I/O,空间等待状态位,。这三位决定了片外,I/O,空间等待状态(,0-7,)的数目。,复位时,,这三位置为,111,,为片外,I/O,空间,的读写设定了,7,个等待状态。,位,5-3,:,DSWS,,,数据空间等待状态位,。这三位决定了片外数据空间等待状态(,0-7,)的数目。,复位时,,这三位置为,111,,为,片外数据空间,的读写设定了,7,个等待状态。,位,2-0,:,PSWS,,,程序空间等待状态位,。这三位决定了片外程序空间等待状态(,0-7,)的数目。,复位时,,这三位置为,111,,为,片外程序空间,的读写设定了,7,个等待状态。,总之,不管,REA
18、DY,信号的状态如何,等待状态发生器都将向给定的空间(数据、程序或,I/O,)插入,0-7,个等待状态,,等待状态的,数目由软件来确定,。然后,READY,信号可以变为低电平,产生附加的等待状态。,如果,m,是一个特定的读写操作的所要求的时钟周期(,CLKOUT,)的数目,,w,是附加的等待状态数目,那么操作将会花费(,m,w,)个周期。,复位时,,,WSGR,各位均置,1,,且,默认每个外部空间(数据、程序或,I/O,)均产生,7,个等待状态,。,5.7,外部存储器接口,LF240 x/240 xA,程序存储器有,64K,空间的寻址空间,当,LF240 x/240 xA,访问片内,程序存储器
19、块时,外部存储器访问信号,PS,*,和,STRB,*,无效。仅当,LF240 x/240 xA,访,问映射到外部存储器地址范围的位置时,外部数据和地址总线才有效。,表,5-4(P62),列出了外部存储器接口中的控制信号。,图,5-5,为一个外部程序存储器接口的实例。图中,LF240 x/240 xA,连接两个,16k8,位,SRAM,。,两个,8,位宽的存储器级连来实现所需的,16,位字宽,虽然,图,5-5,中显示的是,SRAM,,但是,该接口同样适用于,EPROM,,只需将写有效(,WE,*,)信号去掉。,图,5-5,所示的接口是一个,零等待,状态读,/,写周期的,即,存储器的访问时间是与,DSP,相匹配的,,是经过专门挑选的。,如用,慢速存储器,,则片内等待状态发生器将向访问周期插入一个等待状态,若需要不止一个等待状态,则需要用,READY,信号。,程序存储器空间选择,PS,*,信号,可以直接连接到外部存储器芯片的片选引脚,CE,*,,以便对外部程序存储器访问时选择程序存储器。,若,多片,存储器与程序空间接口,那么由,PS,*,和适当的地址位来组成译码电路来,进行存储器块的片选,。,






