




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章MCS-51系列单片机的外部资源扩展6.1MCS-51系列单片机的外部地址扩展6.2MCS-51系列单片机的外部程序存储器的扩展6.3MCS-51系列单片机的外部数据存储器的扩展6.4MCS-51系列单片机的外部I/O通道的扩展习题六6.1MCS-51系列单片机的外部地址扩展6.1.1MCS-51系列单片机的外部资源扩展概述
1.数据总线
MCS-51系列单片机的数据总线宽度为8位(DB0~DB7),由P0口提供,它是一个三态结构的双向输入/输出端口,在系统外部资源扩展时,是外围器件和CPU内部功能部件之间的信息传输通道,通过这个通道,外围扩展电路与累加器之间可以交换数据和指令等信息。
2.地址总线
MCS-51系列单片机的地址总线宽度为16位,可以寻址的最大空间为216(65 536)即64KB。低8位地址总线(AB0~AB7)由P0口提供,高8位地址总线(AB8~AB15)由P2口提供。由于P0端口既作为数据总线使用又作为低8位地址总线使用,因此只能采用“分时复用”方式。“分时复用”的辅助信号是ALE,因此扩展外部资源时需要使用外部低8位地址锁存器,在ALE输出有效电平(高电平)时,P0端口的信息作为低8位地址信息锁存在外部地址锁存器中,然后P0就可以切换为双向数据总线使用。
P2端口本身具有输出锁存能力,因此无需外部锁存器即可直接作为高8位地址总线使用。
3.控制总线
MCS-51系列单片机的控制信号线包括、、ALE、和。这5根信号线构成了MCS-51单片机的控制总线,控制总线的作用是控制外部扩展的接口电路和单片机本身的工作状态。和的作用:这两个信号都是由CPU发出的,分别是CPU对片外接口(包括存储器和I/O)的写和读操作控制信号。当CPU执行MOVX指令(访问外部接口资源)时,有效的和信号(低电平有效)从CPU的P3.6和P3.7管脚自动输出。
ALE的作用:P0端口分时复用为低8位地址总线和数据总线,“分时复用”的“分时”辅助信号就是ALE。在进行外部地址扩展时,ALE在P0端口输出低8位地址信息的同时保持有效电平,允许外部地址锁存器使用ALE信号作为触发将低8位地址锁存在外部的地址锁存器中。的作用:用于区分CPU正在访问的地址空间是否属于程序地址空间的控制信号。当为低电平时,表示CPU处于取指令阶段,如果有外部程序存储器,此时外部程序存储器可以将指令送出(“读”外部程序地址空间);否则,为高电平期间,表示CPU处于执行周期阶段,可以访问外部的数据存储器和I/O地址空间。信号由CPU发出。的作用:对MCS-51系列单片机来讲,是输入信号。是MCS-51系列单片机控制总线中惟一一个用于控制CPU工作状态的控制信号。当被外部电路强制拉到低电平(=0)时,MCS-51系列单片机仅使用外部程序存储器,而且无论使用的单片机是否有片内程序存储器(即片内程序被屏蔽);当被外部电路强制钳位到高电平(=1)时,MCS-51系列单片机允许使用片内程序存储器,当片内地址空间小于64KB时,也可以访问外部程序存储器,但外部程序存储器与片内程序存储器地址重叠部分不能使用。显然,对那些片内没有程序存储器的MCS-51系列单片机来讲,必须强制拉到低电平,如第二章中提到的8031和8032、DS80C320等。采用“三总线”结构的典型扩展电路如图6-1所示。MCS-51系列单片机的地址总线宽度为16位,所以采用MCS-51系列单片机为核心的单片机应用系统的最大寻址能力为64KB,地址范围为0000H~FFFFH。MCS-51系列单片机的指令操作流水线采用两阶段(取指令阶段和执行指令阶段),而且两个阶段的状态由来区分。在取指令操作阶段(状态),CPU仅对程序存储器(代码段地址空间)操作(取指令操作);而在指令执行阶段(状态),CPU仅对数据存储器或I/O地址空间操作(数据存储器或I/O地址的读/写操作)。这样外部资源扩展电路如果使用控制信号来区分程序地址空间和非程序地址空间,那么MCS-51系列单片机系统就可以扩展两个64KB地址空间,即一个64KB的程序地址空间和另一个64KB的非程序(数据存储器和I/O端口)地址空间。图6-1MCS-51系列单片机外部扩展的“三总线”结构如图6-2所示,图中给出了Intel8031单片机的外部扩展64KB的程序存储器(27C512)和64KB的数据存储器的典型电路。其中,外部程序存储器的地址范围为0000H~FFFFH,外部数据存储器的地址范围为0000H~FFFFH。这两片存储器分别工作在低电平期间(CPU取指令阶段)和高电平期间(CPU执行指令阶段),即27C512仅在CPU取指令时才占用数据总线、地址总线和控制总线,向CPU发送指令;而CPU在执行指令阶段需要访问外部地址时,62C512才能工作并占用数据总线、地址总线和控制总线,将来自CPU的数据写入SRAM或将数据发送给CPU。如执行下面的程序:
MOV
DPTR,#8000H;16位数据指针指向8000H地址
MOVX
A,@DPTR
;将外部的8000H地址中的数据读到累加器
MOV
R4,A
;将累加器中的内容保存到寄存器R4中
MOV
A,#55H ;将立即数55H传送到累加器中
MOVX
@DPTR,A
;将累加器中的内容写到外部的8000H地址中
RET ;子程序返回,读得的数据存在R4中
…图6-28031外部扩展64KB数据存储器和64KB程序存储器的典型电路相同功能的C语言程序如下:unsignedcharGetByteFromExAd8000(void){
#define
EXAd8000
(unsignedchar*)(0x018000)//定义一个指向外部数据存储空间的(地址为8000H)的字节型指针
unsignedchar_data;
data=*EXAd8000;
//从外部数据存储器8000H地址读数据到data变量中*EXAd8000=0x55;
//写55H到外部数据存储器8000H地址
return(_data);
//子程序返回,读得的数据作为函数返回值}在图6-2所示的电路中,用户编写的程序代码被编译生成可执行的机器码(即可执行代码)后,由于Intel8031单片机片内无ROM空间,因此可执行代码被存放在扩展的EPROM中,CPU自动按照程序流程在取指令阶段从EPROM中取指令,其他阶段的操作都是按照程序意图对内部功能单元或扩展的SRAM芯片62512进行读或写操作。需要注意,由于SRAM占用了所有的外部数据存储空间(64KB),因此执行程序的过程中只要执行了访问外部地址空间指令(MOVX),那么必定是对SRAM的操作。为了说明图6-2的电路,图6-3给出了MCS-51系列单片机扩展外部程序存储器和数据存储器的操作时序,可以根据操作时序来验证电路原理是否正确。图6-3MCS-51系列单片机外部程序和数据存储器的访问时序图6-3中的时间参数如表6-1所示。6.1.2常用的地址锁存器和地址译码器在对MCS-51系列单片机的外部地址资源进行扩展时,往往不会总是按照图6-2那样仅扩展64KB程序空间和64KB数据存储空间,而且也不仅有2片外部器件,往往需要更多的片选(使能)信号,将64KB的数据存储地址划分成若干段,然后分配给不同的外围器件,以扩展单片机系统的功能。MCS-51系列单片机的16位地址总线被划分成高8位(AB8~AB15)和低8位(AB0~AB7),并分别从P2和P0口送出。在进行外部资源扩展时P2口为高8位地址总线专用,而P0口则分时复用为低8位地址总线和8位数据总线,由于这种分时复用机制,因此要求MCS-51系列单片机扩展外部地址资源时必须有外部带锁存功能的寄存器。当MCS-51单片机访问外部地址空间时,P0口首先将低8位地址信息送出,同时有效的地址锁存使能信号从ALE脚位输出,将低8位地址信息锁存在扩展的外部寄存器中,然后P0口转为发送数据或接收数据的数据总线使用。在单片机外部用于锁存地址的寄存器称为地址锁存器。所有地址总线和数据总线复用的CPU需要访问外部地址资源时,都必须在其复用的总线上连接地址锁存器(大多数兼容Intel总线时序的CPU都这样)。现在使用的地址锁存器都采用的是集成电路形式,俗称地址锁存芯片。在MCS-51单片机系统中常用的地址锁存器有74HC373和74HC573等,它们都是高电平触发锁存的地址(或数据)锁存器。图6-4是地址锁存器74HC373的内部结构原理。它是由8个带三态输出控制的D型锁存器组合构成的,其输入信号包括8个D型锁存器的输入端1D~8D、输出三态控制信号和允许锁存信号LE,输出信号为1Q~8Q。图6-474HC373的内部结构原理表6-2给出了74HC373的输入状态与输出状态的对应关系表(即逻辑真值表)。根据图6-4和表6-2,74HC373的锁存触发信号的有效电平是高电平,也就是说,在74HC373的锁存允许信号LE的输入端处于高电平时,D型锁存器的输出端Q锁存相应的输入端D的状态,一旦LE引脚的高电平撤消(进入低电平),D型锁存器的输出端Q则保持最后一次的锁存状态直至LE端再次出现高电平(锁存允许电平)。74HC573的内部原理、真值表与74HC373完全相同,但两者的引脚排列不相同。
MCS-51单片机进行扩展时,如果外部的器件比较多,譬如有多片数据存储器、多片程序存储器或有程序存储器和数据存储器以及其他功能的扩展器件,往往需要给这些器件各自分配独立的片选(使能)信号,这时就需要使用地址译码器来产生多个片选信号分配给各个外围器件,便于MCS-51单片机访问这些器件。为什么要给MCS-51单片机的外围器件各自分配一个独立的片选信号?假定某系统以8031单片机作为处理器,需要扩展外部程序存储器(IC1)、第一片外部数据存储器(IC2)和第二片数据存储器(IC3)。当8031复位后进入正常工作时,8031首先需要到外部程序存储器(IC1)中取指令码,然后执行指令码。在8031取指令码的过程中,8031首先从P0口和P2口送出指令地址信息,此时程序存储器必须能够被允许工作,按照地址总线上的地址信息将8031要取的指令码发送到数据总线上,然后8031从P0口(数据总线)读回指令码,假设在程序存储器输出指令码期间有另一片数据存储器也被选中(由于译码电路错误),也根据地址信息送出数据到数据总线上,这时指令码信息被破坏,8031得到的指令码是非法的,如此一来8031就不能正常运行程序。显然,在CPU到外部程序存储器中取指令码时,必须且仅有一片程序存储器给CPU发送正确的指令,而此时其他器件必须处于不工作状态,那么外部程序存储器的片选信号必须各自惟一、独立。假设8031取得正确的指令码后,执行的指令是需要8031到外部的第一片数据存储器(IC2)“读”数据,8031立即进入读外部存储器周期。在8031读外部数据存储器的过程中,8031首先从P0和P2口送出地址信息,如果外部译码电路将产生惟一的片选信号选中第一片外部数据存储器(IC2),则第一片外部数据存储器(IC2)被允许工作,然后按照地址总线上的地址信息将对应的数据发送到数据总线上,8031从P0(数据总线)将数据读回累加器。在这个过程中,如果错误的译码电路将两片外部数据存储器都选中,那么两片数据存储器同时向数据总线发送数据,这样会造成数据总线上的数据被破坏,8031得到的数据便是非法的。8031“写”外部数据存储器的过程是,8031首先发送地址信息,然后伴随WR有效时P0口发送出数据信息,将要被写的数据存储器是数据的接收者。在这个过程中,如果两个数据存储器都被选中,数据将会同时写到两片数据存储器中,这也是不合适的。总之,MCS-51单片机对连接在其地址和数据、控制总线上的器件进行访问时,任何时间仅且只能和惟一一个外围器件之间传输数据或指令。这就是“惟一”访问原则。产生外围器件惟一片选信号的方法有两种:线选法和地址译码器选通法。地址线选法扩展多片数据存储器的参考电路如图6-5所示。图中3片6264(8KBSRAM)的片选信号分别与最高的3位地址线P2.5(AB13)、P2.6(AB14)和P2.7(AB15)相连,每片6264各有两个片选(允许工作)信号和CS2,其中是低电平有效,而CS2为高电平有效。仅当两个片选信号都有效(即=0,CS2=1)时,6264才被启动允许工作。电路中将高电平有效的选通信号CS2与VCC直接相连,让CS2永远有效,则由AB13、AB14和AB15控制。按照前面的“惟一访问”原则,3片6264不能同时工作,AB13、AB14和AB15在任何时候只能有一个为低电平,由CPU选中其中的一片6264对其进行读/写操作,3片6264各占用一片惟一8KB地址空间。图6-5地址线选法扩展3片8KBSRAM的参考电路图6-5中的3片6264的地址分配如表6-3所示。按照图6-5的电路原理,除了表6-3中所列出的地址空间可以使用外,其他地址都不能使用。这种扩展方法是将MCS-51单片机的外部64KB的数据存储器地址空间划分成3块,每块容量为8KB,分别归3片存储器占用。由于所有的16根地址线都被使用,其他地址就不能使用了,显然这种扩展方法的缺点是浪费了MCS-51单片机系统的有限的地址资源。为了让MCS-51单片机外部的64KB地址空间得到充分利用,可以采用地址译码器方法产生芯片选通信号。下面先介绍两种常用的地址译码器芯片:74HC139和74HC138。
74HC139是一种双2-4译码器集成电路,其内部的两个2-4译码器相互独立,各自有独立的控制输入端(G)和地址输入端(A、B),各有4根低电平有效的输出信号。
74HC139的内部结构原理如图6-6所示,其真值表见表6-4(表中只给出了一半,另一半的逻辑真值表相同)。图6-674HC139(2-4译码器)的内部结构原理
74HC138是一个3-8译码器,它有3个地址信号输入端(A、B、C)和3个允许工作的控制输入端(G1、、),有8根低有效电平的片选输出信号(Y0~Y7)。它的3个允许工作控制信号中的G1是高电平有效的,当G1=0时,该3-8译码器被禁止工作,其8个输出端均输出无效电平(高电平);另外2个控制信号和都是低电平有效的,当其中任何一个处于高电平时,该74HC138将被禁止,其输出端都输出无效电平(高电平)。
74HC138的内部结构原理如图6-7所示,其真值表见表6-5。图6-774HC138(3-8译码器)的内部结构原理图6-8是利用3-8译码器扩展片选信号的参考电路,图中各器件的地址空间分配见表6-6。可以看出,系统的64KB地址能够被有效分配。图6-8利用3-8译码器扩展3片8KBSRAM的参考电路6.2MCS-51系列单片机的外部程序存储器的扩展
MCS-51单片机可寻址的程序空间为64KB,包括片内和片外两部分。如果/VP与GND连接,片内程序存储器被屏蔽,对那些ROM-Less型MCS-51系列单片机来讲必须把/VP固定与GND连接。如8031、8032、DS80C320等单片机使用时其/VP必须接地。对那些内部有程序存储器的MCS-51系列单片机来讲,
/VP与GND连接时,它们内部的程序存储器将不作用,如8751、8752、78E51、78E52、89C58等单片机内部都有4~32KB的程序存储器空间,如果使用它们片内的程序存储器,则其/VP必须与VCC连接。无论是ROM-Less型或是片内代用ROM的MCS-51系列单片机都可以扩展外部程序存储器。如果片内带有ROM的MCS-51单片机扩展外部程序存储器时内部和外部的地址空间统一编址,当程序执行的地址大于其片内的ROM地址时,MCS-51单片机将自动转向外部扩展的程序存储器执行程序。绝大多数MCS-51单片机系统的程序存储器在系统运行过程中都是“只读”的,单片机从程序存储器中读取指令及执行指令时不需要修改程序代码。所以绝大多数MCS-51单片机系统都采用“只读型存储器”作为其程序存储器。目前常用的可以作为程序存储器的“只读型存储器”包括:●掩膜型ROM(MaskedReadOnlyMemory),缩写为MROM;●一次性可编程ROM(OneTimesProgrammableReadOnlyMemory),缩写为OTPROM;●电气可编程ROM(ElectricallyProgrammableReadOnlyMemory),缩写为EPROM;●电气可擦写可编程ROM(ElectricallyErasableProgrammableReadOnlyMemory),缩写为EEPROM;
●快闪电气可擦写可编程ROM(FlashElectricallyErasableProgrammableReadOnlyMemory),缩写为FlashROM。上面所列举的这些存储器具有多种形态的接口和多种位宽的结构。MCS-51单片机系统使用的所有这些存储器都是8位结构的。由于MCS-51系列单片机不支持串行接口的程序加载,因此MCS-51单片机系统使用的程序存储器都必须是并行接口的。6.2.1常用程序存储器的特点
1.掩膜型ROM掩膜型ROM(MROM)是真正的只读存储器,对这类存储器编程是在集成电路生产过程中进行的,一旦从IC制造厂交到用户手中,用户只能从该存储器中读数据,而不能改写其内部的任何数据。目前的MROM使用在MCS-51单片机系统中有两种,一种是MCS-51单片机本身内部的程序存储器是MROM类型,另一种是独立的MROM芯片。后一种较少使用。内部程序存储器采用MROM的MCS-51系列单片机的型号都以83Cxx命名,譬如OKI(日本冲电)公司的M83C154等使用MROM作为内部程序存储器。为了保护知识产权,目前使用MROM类型存储器的MCS-51单片机的程序存储器中的程序代码只能在CPU加电状态执行代码,但是不能将这些代码读出,能够有效地防止这些单片机内部的代码被非法复制。由于MROM的编程是在IC制造过程中进行的,如果使用MROM作为MCS-51系列单片机的程序存储器,那么必须首先向IC制造厂定制,并将编制好的执行代码一起交给IC制造厂,当用户拿到单片机之后就可以直接在自己的目标系统中使用了。但是其内部的代码不能被修改、重新编程等。使用MROM作为MCS-51单片机系统的程序存储器适合于成熟的、产量较大的产品,使用MROM可以降低产品的存储器成本和提高生产效率。
2.一次性编程ROM
OTPROM不需要像MROM那样必须在集成电路制造厂编程,往往可以由系统设计或系统生产者自己在系统生产时才对这类存储器进行编程,相对MROM来讲,使用OTPROM要灵活一些。OTPROM的特点是对这类存储器编程是“一次性”的,这类存储器的内容只能被一次性写入,一旦写完后,就再不能修改、擦除、重新编程其内部的内容。目前有使用OTPROM作为片内程序存储器的MCS-51单片机,也有独立的OTPROM存储器芯片。使用OTPROM的MCS-51单片机有Hyundai公司的G97C系列单片机等,这种类型的MCS-51单片机内部的程序代码也有加密机制,能够禁止非法复制单片机内部的程序代码。使用OTPROM作为程序存储器的目的大多数是为了降低系统存储器的成本。
3.电气可编程ROM绝大多数的EPROM的型号都以27xxx命名,它是目前单片机系统中使用最多的一种程序存储器之一。与其他类型的只读存储器比较,它具有价格低、稳定等优点,而且灵活性较好。
EPROM是一种多次可编程只读存储器(Multi-TimesProgrammableROM),单片机系统使用EPROM作为程序存储器与使用MROM和OTPROM相比,允许升级系统的软件代码,但使用MROM和OTPROM存储器时,升级系统的软件代码时必须更换程序存储器芯片。
EPROM的编程是通过电气方式完成的,在对EPROM芯片加载适当的编程电压后,按照特定的编程时序将数据一一写入存储器中。对EPROM编程之前必须保证整个存储器芯片内部的数据全部被擦除,然后才能编程,即“空片编程”。擦除EPROM不能通过电气方式,仅可以使用紫外线照射方式擦除,这就是所有的EPROM必须有一个透明的玻璃窗口的原因。人们生活环境的光线中都有紫外线成分,为了保证正常使用的EPROM中的数据不被环境光线中的紫外线破坏,使用中的EPROM的玻璃窗口必须被掩盖。目前有使用EPROM作为片内程序存储器的MCS-51单片机,如8751、8752、87520等,它们的型号多数都以87xxx命名。使用EPROM作为内部程序存储器的MCS-51单片机多数都没有加密机制,其内部的程序代码或数据容易被非法复制。使用EPROM作为片内程序存储器的MCS-51单片机与其他单片机使用时完全相同(兼容),区别仅在将代码编程到片内程序存储器中的过程和擦除的过程。在MCS-51单片机系统中常用的独立EPROM存储器有2716、2732、2764、27128、27256、27512,它们的区别是容量大小不同和芯片的引脚不同,它们的存储容量分别是2KB、4KB、8KB、16KB、32KB、64KB。图6-9是这些EPROM芯片DIP封装的引脚名称和排列图。图6-927系列EPROM的引脚名称和排列图所有的EPROM都有以下四种工作模式:
(1)读模式。读模式也称在系统使用模式。进入这种模式的条件是使片选(允许工作)控制信号为低电平(的有效电平)状态,同时使输出使能信号为低电平(的有效电平)。如果有独立的VPP引脚(编程电压输入脚),该引脚应与VCC连接;如果有独立的引脚(编程模式控制引脚,低电平有效),该引脚必须与VCC连接。这时EPROM将按照地址总线指定的地址将该地址中的数据发送到数据总线上。
(2)空闲模式。当片选控制信号为高电平时,EPROM芯片立即进入空闲模式,并且其数据总线处于高阻态。在空闲模式的EPROM将忽略所有输入信号(包括、A0~A15)。
(3)编程模式。在EPROM的VPP引脚加载适当的编程电压(VPP必须按照IC制造厂提供的使用手册确定,编程电压过低或偏低将不能正确编程,编程电压过高或偏高会损坏芯片),如果有独立的引脚,将引脚、引脚、引脚加载适当的电平(这些控制引脚在编程模式需要的电平必须按照IC制造厂的使用手册确定,不同厂家、不同型号的EPROM,它们的电平不同),之后EPROM立即进入编程状态,在编程状态EPROM从数据总线接收数据,并将数据写到地址总线指定的地址单元。
(4)编程校验模式。在VPP端加载适当的电压(注意:这里的适当电压不一定是编程电压,必须根据IC制造厂的手册确定),按照读模式的要求(除了VPP的要求外),将数据从EPROM中读出校验。进入编程校验模式的目的是将写入的数据重新读出与希望写入的数据比较,以确定编程是否有误。
EPROM的工作电压一般都是+5V,除了编程时需要给编程电压输入端加较高的编程电压外,其他所有引脚都与TTL电平兼容,可以直接与MCS-51单片机系统中的其他TTL器件组成的电路直接连接。绝大多数EPROM的编程电压都大于+12V,部分EPROM器件的编程电压可达到+30V。不同型号的EPROM的编程电压不同,不同厂家提供的同型号的EPROM的编程电压也不一定相同,所以在对EPROM编程时必须注意按照厂家的规定进行。
4.电气可擦写可编程ROM
EPROM的擦除是使用紫外线照射方式完成的,所以其擦除速度比较慢,一般容量的EPROM用适当照射强度的紫外线照射方式擦除整个芯片大约需要10~20分钟时间。与之相比,EEPROM的改写是采用电气方法实现,擦除和编程的速度都比较快且方便。
EEPROM一般都以28xxx命名,如2832、2864等。EEPROM不需要擦除或整片擦除后再写数据,可以在电路中直接向指定的地址单元写数据,或将该单元原来的数据改写,它是惟一一种允许按字节改写/编程的只读存储器,其使用非常灵活。但是EEPROM的缺点是相同存储容量EEPROM的价格相对比其他类型的ROM都高。EEPROM一般不需要特殊的编程电压,它在工作电压状态下就可以完成字节的改写/编程操作。由于EEPROM具有这些特点,而且它的引脚与相同容量的SRAM兼容,EEPROM作为一种不挥发性存储器更多是用于存储在系统运行过程中产生的重要数据,如记录测控系统中的测量结果。目前还没有用EEPROM作为片内程序存储器的MCS-51单片机,但是有些MCS-51单片机内部带有EEPROM类型的数据存储器,譬如Atmel公司的AT89S8252单片机,其内部不仅具有FlashROM型的程序存储器,而且还具有EEPROM存储器。但该存储器不能作为程序存储器使用,用户可以将其作为内部的数据存储器使用。更多的EEPROM是独立的存储器芯片。
5.快闪电气可擦写可编程ROM
FlashEEPROM俗称FlashROM,它发展至今大约已经有20多年的历史,是Intel公司推出的存储器技术。近些年FlashROM已经逐步取代EPROM,随着电子技术的发展其价格已经低于EPROM,它是目前存储器市场占有率相当高的一种存储器,广泛使用于各种计算机系统和嵌入式系统。与其他存储器相比,FlashROM的最大特点是读访问速度快、字节或扇区(Sector)编程速度快、寿命长(重复编程次数达1万次以上)、功耗低、同等容量情况下其体积小等。大多数的FlashROM同EEPROM一样不需要特殊的编程电压,依靠工作电压就可以完成字节或扇区的编程、擦除等操作。但是FlashROM不支持字节或扇区的改写操作,在这一点上与EEPROM相比就不够灵活。
FlashROM的存储单元写/擦除操作一般都按扇区进行,将一片存储器划分成若干个一定容量的扇区,在对某一个字节编程之前必须先将该字节所在的扇区擦除为空再对整个扇区进行编程,而对EPROM存储器编程之前必须首先将整片存储器擦除后才能执行字节编程。不同厂家、不同型号的FlashROM的扇区容量大小不同,目前有些FlashROM的最小扇区容量为16B,另外还有64B/Sector、128B/Sector、256B/Sector、512B/Sector、1KB/Sector等扇区容量(根据不同型号和不同制造厂家)。小扇区容量的FlashROM器件比较适合于作为数据存储器应用;如果作为系统的程序存储器使用,最好选择大扇区容量的FlashROM器件。从价格上相比较而言,小扇区容量的器件比大扇区容量的器件要贵。程序存储器在系统中正常使用时,往往是只读的,不需要重复擦除、写操作,虽然扇区容量的大小不同,但读操作都是按字节方式进行的,而且所有的FlashROM的读操作并不需要按扇区方式操作,而是直接按字节读方式操作。目前以FlashROM作为片内程序存储器的MCS-51单片机类型非常多,如Atmel公司的AT89系列单片机,Winbond公司的W78、W77系列单片机,Philips公司的P89、P87系列单片机,SST公司的ST89C、ST89F系列单片机等都采用FlashROM作为片内存储器,它们的容量为4~64KB。由于FlashROM的先进性和优越性,目前有许多采用FlashROM作为片内程序存储器的MCS-51单片机具有在系统可编程(ISP)功能,如Atmel的AT89S系列、Philips公司的P89C系列单片机。另外,有些MCS-51单片机还具有在系统可编程可仿真功能,如Cygnal公司的C8051F系列单片机等。Cygnal公司的C8051F系列单片机支持标准JTAG(JointTestActionGroup)编程、仿真调试接口对其片内的程序存储器在系统编程和在系统仿真功能,这个系列的单片机兼容8031的所有功能和指令,同时还在单片机的片内扩展了许多功能部件,如第二个UART、ADC(模拟信号数字转换器)、DAC(数字信号模拟转换器)、I2CBus接口等功能,是一种基于8032单片机内核的片上系统(SOC,SystemOnChip)。
MCS-51单片机结合FlashROM存储器技术,将推动MCS-51系列单片机向真正的“单片”系统方向发展。从上面介绍的这五种类型的存储器来看,EEPROM有其特有的优点,但是,其价格昂贵;MROM和OTPROM属低价格存储器,但使用不够灵活;FlashROM有逐步取代EROM的发展趋势。6.2.2外部程序存储器的扩展
1.ROM-Less型单片机扩展片外程序存储器目前的ROM-Less型单片机包括:8031、8032,Dallas半导体的DS80C310、80C320、80C520、80C530,Hyundai公司的G90C32,Winbond公司的W78C32、W77C32,Philips公司的80C55x系列等等,这些MCS-51单片机在系统中使用必须扩展外部程序存储器,而且其引脚必须与GND连接。图6-10是ROM-Less型MCS-51单片机的一个典型应用电路。习惯将这个电路称为“8031的最小系统电路”,它使用8031作为CPU,扩展高电平有效锁存的地址锁存器74HC373作为低8位地址总线锁存器,使用64KB容量的EPROM作为系统的程序存储器。图6-108031单片机最小系统电路原理(EPROM型程序存储器)根据用户系统对程序存储空间的需要,图中的EPROM存储器可以更换更小的存储容量。在图中没有任何一个器件或连接是可以省略的,对于8031的应用系统这些器件是必需的。电路中的所有器件惟一可以更换型号的就是EPROM和CPU,它支持不同存储容量的EPROM,支持不同型号的ROM-Less型MCS-51单片机。图中的关键连接为:引脚必须与GND连接;必须与EPROM的输出使能控制信号连接;EPROM的必须与GND连接;数据总线和地址总线与EPROM的数据总线和地址总线引脚一一对应连接。图6-11是使用FlashROM作为8031的外部程序存储器的典型电路原理。由于FlashROM允许电气方式写/擦除操作,这种类型的存储器都有写操作允许(使能)引脚。如果把FlashROM作为程序存储器在系统中使用,系统正常运行时它以“只读”模式工作,所以其引脚必须与VCC连接,即在系统中禁止写操作。比较图6-10和图6-11,两者的区别仅有一点,即FlashROM的引脚必须与VCC连接。
ROM-Less型MCS-51单片机必须使用扩展的外部程序存储器,当其存储空间都在64KB以内时,图6-10和图6-11都是可以直接利用的。这两个电路中的程序存储器的片选都是永远有效的(与GND连接);存储器的输出使能信号都与连接。按照MCS-51系列单片机访问外部存储器的时序(参见图6-3),两片存储器都仅工作在MCS-51单片机取指令的周期期间,在此期间仅向CPU输出指令,虽然它们的片选信号永远有效,但是它们的写操作允许(使能)引脚都永远无效,所以除了在CPU取指令时它们才工作之外,其他时间都不工作。而在CPU执行指令阶段,CPU访问外部存储器或外部地址都属于数据存储器或I/O地址。图6-118031最小系统电路原理(FlashROM型程序存储器)
2.带有内部ROM型单片机扩展片外程序存储器片内带有程序存储器的MCS-51单片机的种类也非常多,它们内部的程序存储器容量往往不同,一般为4~64KB,当使用的MCS-51单片机的片内ROM不够用时,还必须扩展外部程序存储器。图6-12是片内带有4KB的FlashROM存储器的单片机扩展外部程序存储器的电路原理图。图6-12中/VP引脚必须与VCC连接,对8051来讲,它们内部都有4KB的程序存储器,其/VP与VCC连接时这4KB程序存储器可以使用。当执行的程序地址大于4KB后,CPU根据PC的值自动到外部扩展的程序存储器中取指令。当使用MCS-51单片机的片内程序存储器时,片内的地址空间和片外扩展的地址空间一起编址,其中内部地址空间的起始地址必须从0000H开始,即CPU被复位后必须从内部程序空间开始执行程序。图6-12片内带有ROM的78E51扩展外部FlashROM作为程序存储器的电路6.3MCS-51系列单片机的外部数据存储器的扩展在基于单片机的工业控制系统、测控系统、记录仪器等应用领域中,数据存储器总是系统必不可少的部件。基于8031内核的MCS-51系列单片机片内都带有128B的SRAM型内部数据存储器,基于8032内核的MCS-51系列单片机片内都带有256B的SRAM型内部数据存储器,它们可以作为通用寄存器、堆栈、数据缓存等目的使用。目前有许多MCS-51单片机片内除了带有256B的片内SRAM型数据存储器外,还在片内扩展了EEPROM型和SRAM型数据存储器。如Atmel公司的AT89S8252内部扩展了2KB的EEPROM型数据存储器;Philips公司的P89C660/2/4/8内部分别扩展了1KB、2KB、4KB、8KB的SRAM数据存储器;Dallas、Winbond等公司的MCS-51单片机也有片内扩展1KB的SRAM型数据存储器。单片机系统中使用的数据存储器必须是可读、可写的存储器,目前常用的数据存储器包括以下五类:
●SRAM(StaticRandomAccessMemory,静态随机存取存储器);
●NOVRAM(Non-VolatileRandomAccessMemory,不挥发随机存取存储器);
●EEPROM;
●FlashROM;
●FRAM(FerroelectricNonvolatileRandomAccessMemory,铁电不挥发随机存取存储器)。这些类型的存储器都支持并行接口访问和串行接口访问,都允许字节“读操作”访问,有些还允许字节“写操作”或“擦除操作”访问,有些支持扇区模式的“写操作”或“擦除操作”访问。其中SRAM是易挥发性的(掉电后数据丢失),其他类型的存储器都是不挥发的(掉电后数据不丢失)。这五种类型存储器的性能比较见表6-7。6.3.1常用数据存储器
1.SRAM随机访问存储器包括两类:SRAM和DRAM。其中SRAM常用于8位和16位单片机系统,而DRAM多用于PC或高档单片机系统。由于DRAM芯片的存储容量较大,而在有限的引脚实现大容量存储空间,其地址译码电路往往采用矩阵结构,存储阵列的行和列地址线是复用的,分别通过行地址控制信号(RAS)和列地址控制信号(CAS)并按照访问时序分时选通,因此其译码电路比较复杂。另外,DRAM是依靠电容存储电荷表示二进制数据,而电容都存在泄漏电流,所以控制电路必须按其原来存储的数据信息不断地给电容充电,即DRAM芯片的外围必须“刷新”控制电路(俗称刷新时钟)。虽然DRAM芯片本身具有低成本、低功耗等优点,但是它极容易被干扰而造成内部数据信息变化,而且芯片的外围控制电路复杂,所以在8位或16位单片机的一般功能系统中较少使用,而且由于DRAM容易受干扰,在工业控制领域中也较少使用。而SRAM芯片的存储容量相对偏小,价格相对较高,访问速度也比较慢。但是,在单片机系统中所需的存储容量一般都在几兆位以内,速度都在200ns以内,这些对SRAM来讲都是容易实现的,最关键的因素是SRAM的可靠性相对比DRAM要高得多,抗干扰性能也更好。
8位并行接口的SRAM芯片在MCS-51系列单片机的应用系统中被广泛使用,目前这类存储器多数以62xxx或61xxx命名,其存储容量为2~512KB,有些甚至有更大的容量。图6-13是DIP封装的6116、6264、62128、62256、62512、621024的引脚排列和引脚名称,它们的存储容量分别为2KB、8KB、16KB、32KB、64KB、128KB。其中6264、62512和621024比其他芯片多一个高电平有效的片选信号CE2。图6-1362系列SRAM的引脚名称和排列图
SRAM引脚的名称和功能定义如下:
●A0~A16:地址总线(输入端),器件存储容量不同,地址总线宽度也不同;
●D0~D7:数据总线,8位双向三态数据总线;
●:低电平有效的片选信号(输入端);CE2:高电平有效的片选信号(输入端),仅6264、62512、621024等芯片有;
●:低电平有效的数据输出使能信号(输入端);
●:低电平有效的数据写使能信号(输入端);
●VCC:供电电源正(输入端),一般为DC+5V;
●GND:供电电源地;
●NU:未使用的引脚。所有的SRAM都具有以下四种工作状态和模式:
(1)读状态。当VCC正常,和CE2(如果有该引脚)都处于有效电平状态,引脚被置为低电平(的有效电平)状态时,SRAM芯片将地址总线上对应的地址单元中的数据发送到数据总线上。
(2)写状态。当VCC正常,和CE2(如果有该引脚)都处于有效电平状态,引脚被置为低电平(的有效电平)状态时,SRAM芯片将数据总线上的数据写到地址总线指定的地址单元中。
(3)空闲模式。当VCC正常,和CE2(如果有该引脚)的任何一个控制信号处于无效电平时,无论或处于任何状态,SRAM芯片立即进入空闲模式。退出空闲模式的条件就是让和CE2(如果有该引脚)都处于有效的电平状态,并且和中的任何一个引脚处于有效电平状态。
(4)维持数据状态。当VCC电压降到2~4V时,其他所有引脚都浮空,此时,SRAM处于维持内部数据状态。SRAM进入维持内部存储器中的数据状态时,其消耗电流立即降到100μA以内,甚至有些SRAM芯片的维持数据状态的消耗电流仅有10μA,这根据SRAM类型和制造厂家而不同。如果嵌入式单片机系统需要将SRAM中的数据在系统掉电后仍被保存,便于下次开机时使用,就必须为系统中使用SRAM芯片增加后备电池,在系统掉电后SRAM的各引脚浮空,利用后备电池在VCC端提供维持电压。由于SRAM的维持数据状态消耗的电流非常小,使用后备电池可以使SRAM中的数据保留较长的时间。图6-14是8051外围扩展32KB带有后备电池的SRAM型数据存储器的典型电路。如果系统需要在系统掉电后仍将32KBSRAM中的数据保存,则可在电路中使用3V的纽扣型后备电池(如CR2032)作为SRAM维持数据的后备电池。假设某电池的总功率为500mAh,SRAM的维持数据状态的消耗电流为12μA(HY62C256),那么可以计算出使用该后备电池能够维持数据不丢失的时间为维持的总小时数=≈41666小时那么,实际可以维持大约4.7年时间。图中32KB的SRAM地址空间为0000H~7FFFH,其中SRAM的片选控制信号与P2.7(AB15)连接。当AB15为低电平时,SRAM的片选信号有效;当AB15为高电平时,SRAM不工作,处于空闲模式。由于MCS-51单片机在复位期间,各引脚的电平状态都是未知的,而SRAM的写状态条件仅和有效时,也就是说,在CPU复位期间或CPU失控状态下,SRAM中的数据就可能被改写,这样保存在SRAM中的数据极可能被改写而出现非法数据。为了保证SRAM中的数据不被改写,图中将SRAM的片选引脚不直接与AB15连接,AB15与小功率开关型P型MOSFET管(QF1)的源极连接,MOSFET管的漏极与SRAM的连接,而P型MOSFET管的门极受CPU的复位信号控制。当8051处于复位状态时,QF1的源极和漏极被截止,无论AB15处于何种电平状态,SRAM的片选控制信号都会被后备电池经过100kΩ(R3)电阻钳位在后备电池电压的电位(可以认为是高电平),迫使SRAM处于空闲状态,以保护SRAM中的数据在CPU复位期间不被非法改写。一旦复位结束,QF1即处于完全导通状态,之后SRAM片选信号的电平状态受AB15的电平状态控制。当AB15为低电平状态(CPU访问SRAM)时,SRAM的端也为低电平;当AB15为高电平状态时,SRAM的端也为高电平。图6-148051外部扩展32KB带有后备电池的SRAM数据存储器图中二极管VD1的作用是,在系统处于正常供电状态下,VCC电压可以经过VD1给SRAM供电;当系统的供电电源被关闭后,后备电池仅为SRAM供电维持其内部的数据不丢失,由于VD1的作用而使后备电池与系统中的其他器件分离。
2.NOVRAM目前常用的NOVRAM主要是Dallas半导体公司和Xicor公司的产品。其中Dallas的NOVRAM产品几乎全都与其相同存储容量和封装的SRAM兼容,它们都采用“SRAM+后备Li电池+写保护电路”的结构,所以其引脚、工作时序都与相同存储容量的SRAM完全兼容,使用时几乎完全相同,而且Dallas的这种结构的NOVRAM产品的存储容量为2KB~2MB,种类繁多。由于这种类型的存储器都带有后备电池和写保护电路,因此它们的体积都较大。而Xicor公司的NOVRAM采用“SRAM+EEPROM”结构,可以与MCS-51单片机的并行总线接口的产品有两种型号,即X20C04和X20C16,其存储容量分别为512B和2KB。Xicor公司的这种结构的NOVRAM相对Dallas公司的产品,其体积小,但是存储器容量都较小,而且相对成本较高。另外,除了并行接口的NOVRAM,Xicor公司还生产有串行接口的NOVRAM,这种产品目前也有两种型号,即X24C44和X24C45,它们也是采用串行接口的“SRAM+EEPROM”的结构。采用“SRAM+后备电池+写保护电路”的NOVRAM的产品主要有DS1220Y/AB、DS1225Y/AB、DS1230Y/AB、DS1245Y/AB等,它们的存储容量分别为2KB、8KB、32KB、128KB,从引脚和工作时序上完全兼容对应的SRAM分别为6116、6264、62256、621024,这些SRAM可以和Dallas公司对应存储容量的NOVRAM相互替换。Dallas公司的这些型号的NOVRAM器件的引脚和功能请参考SRAM部分的说明,它们与8051的接口扩展电路与相同存储容量的SRAM相同。图6-15是8位并行接口采用“SRAM+EEPROM”结构(以X20C16为例)的NOVRAM的内部结构原理。它的内部有两种类型的存储器:SRAM和EEPROM,而且两块存储阵列大小相等、相互影响。如果不挥发性控制信号为低电平状态,其内部的电压检测电路自动检测芯片的供电电压,当供电电源电压降到自动存储门限电压时(大约4.0~4.3V),芯片自动将SRAM中的数据一一对应地保存(Store)到EEPROM中。系统供电电源全部关闭后,SRAM中的数据已经全部保存到EEPROM中,虽然SRAM中的数据全部丢失,但在系统重新加电后,通过系统软件可以将数据从EEPROM中重新还原(Recall)到SRAM中。图6-15X20C16的内部结构原理这种结构的NOVRAM在系统掉电后使用EEPROM保存存储器中的数据,虽然EEPROM有擦写次数的限制,但由于X20C16和X20C04的擦写次数可达100万次,而且这种结构存储器中的EEPROM仅在系统每掉电一次才被写一次,系统在正常工作时使用的是SRAM,而SRAM类型存储器是没有寿命限制的,所以X20C04和X20C16的寿命允许系统关闭电源达到100万次,这足够一个系统使用几十年。图6-16和表6-8是X20C16的引脚排列图和各引脚的名称与对应的功能描述。与相同存储容量的SRAM(6116)相比,X20C16多了和两个引脚,它们分别作为“不挥发性使能”控制信号的输入端和自动存储信号的输出端使用。图6-16X20C16的引脚排列图图6-17是X20C16与8051单片机连接的参考电路,在电路中使用P1.0作为X20C16的不挥发性使能控制信号。当P1.0为高电平时,CPU可以对X20C16内的SRAM进行读操作或写操作(根据→、→、的电平状态);当P1.0为低电平时,通过8051读操作(、处于有效电平状态)可以将EEPROM中的数据恢复(Recall)到SRAM中。图中X20C16的片选信号由AB15控制,其存储空间为2KB,它们的地址范围为0000H~07FFH。图6-178051外部扩展2KB的NOVRAM型数据存储器
3.EEPROM有关适合于MCS-51单片机系统使用的8位并行接口的EEPROM的特点在前一节中已经介绍过了,这里不再重复。常用的EEPROM除了前一节介绍的8位并行接口器件外,目前用得更多的则是串行接口的器件,如采用I2C总线(2线制)接口的24Cxx系列EEPROM器件,采用SPI(3线或4线制)接口的93xx系列EEPROM器件等。图6-18是Atmel公司提供的采用I2C总线接口的AT24C01/02/04/08/16的内部结构框图。图6-18AT24Cxx系列串行EEPROM的内部结构
AT24Cxx串行存储器的存储容量分别为128B、256B、512B、1KB和2KB。由于MCS-51单片机的所有I/O口都支持位操作指令(SETBI/O和CLRI/O),因此它们与MCS-51系列单片机的任何两根I/O线连接即可。AT24Cxx系列串行存储器的写或擦除操作寿命都可以达到100万次以上,是一种可靠的节省MCS-51单片机资源的小存储容量的数据存储器,它们在MCS-51单片机系统中一般用来存储那些非常重要的数据,譬如嵌入式系统惟一的通信识别序列码、地址码,测控系统的系统运行参数、补偿或矫正参数等。图6-19是3线串行接口的AT93Cxx系列EEPROM的内部结构,该系列存储器的型号为AT93C46/56/66,这些存储器的存储阵列的字节结构是可配置的。当ORG引脚与VCC连接时,访问存储阵列为8位结构,相应的存储容量分别为128B、256B和512B;当ORG引脚与GND连接时,访问存储阵列为16位结构,相应的存储容量分别为64Word、128Word和256Word。虽然AT93Cxx系列存储器的存储容量比较小,但是其存储器阵列可以灵活配置。这些存储器往往用于存储系统的运行参数等重要数据。其他的串行EEPROM种类繁多,而且它们的接口大多数都兼容I2C或SPI方式,采用2线、3线或4线制,容易与支持位操作指令的MCS-51系列单片机连接。目前部分串行EEPROM存储器除了具有EEPROM阵列外,还增加了MCS-51单片机必需的电压监控、上电复位、Watchdog复位、RTC(RealTimeClock)等功能。如Xicor公司的X1228芯片,就集这些功能于一颗芯片内部,它是把专用的μP监控复位芯片、串行EEPROM芯片、实时日历时钟芯片集成在X1228内部,这样可以节省单片机的外围器件数目,而且还可以节省系统印制电路板的面积。图6-19AT93Cxx系列串行EEPROM的内部结构
4.FlashROM
SST公司提供的39SFxxx系列、29EExxx系列和28SFxxx系列FlashROM的引脚排列和名称如图6-20所示。这些存储器单颗芯片的存储容量为64~512KB,都采用8位并行接口,可以与8031最小应用系统直接连接使用。它们的共同特点是存储器阵列按扇区(Sector)模式操作,其中读操作是例外的(按字节方式),写/擦除操作是按扇区进行的。它们的型号不同,扇区容量也不同,扇区容量为128B~8KB。图6-20SST公司FlashROM存储器的引脚名称和排列图各个引脚的功能如下:
●A0~A18:存储器的地址总线输入端,存储容量不同,地址总线的宽度不同。
●DQ0~DQ7:双向8位数据总线。在写状态时,从数据总线接收数据(输入);读状态时,将数据发送到数据总线上(输出);在空闲状态时,处于高阻态。
●CE#:片选(允许工作)控制信号输入端,低电平有效。当CE为高电平时,芯片进入空闲状态,忽略控制输入信号,数据总线处于高阻态。
●WE#:允许写信号输入端,低电平有效。当CE#和WE#同时有效时,存储器芯片从数据总线上接收数据,可以实现CPU对FlashROM的命令寄存器和存储器阵列的写操作。
●OE#:允许输出信号输入端,低电平有效。当CE#和OE#同时有效时,存储器将地址总线指定的存储单元中的数据发送到数据总线,实现CPU对存储器阵列的读操作。
●VCC:供电电源正输入端,一般为DC+5V。
●GND:电源地。
●NC:未使用的引脚。下面以39SF040为例说明这些FlashROM的操作方法。39SF040的字节写等操作命令序列见表6-9。该存储器的读操作与其他类型的并行存储器的读操作相同,支持任意字节地址的随机读操作。图6-21是39SF040存储器阵列字节地址的随机读操作时序。图6-2139SF040存储器阵列字节随机读操作时序
39SF040存储器的字节写操作必须按照表6-9中第一行的命令顺序,所以单字节的写操作由4个写循环组成,包括3个命令的写操作和1个数据的写操作。完成4个写循环后该器件自动启动内部编程循环,单字节的内部编程循环一般需要14μs的时间,在内部编程循环期间,器件不响应其他任何操作。图6-22是39SF040存储器阵列的单字节写操作时序。图6-2239SF040存储器阵列的字节编程操作时序图6-23和图6-24分别是39SF040的扇区擦除操作时序和整片擦除操作时序。扇区擦除和整片擦除操作都需要6个总线周期才能完成。而且写操作和擦除操作都需要一定时间的内部编程循环。对39SF040来讲,扇区擦除操作的内部编程循环时间约需要18ms,整片擦除操作的内部编程循环约需要70ms。相对SRAM型存储器,FlashROM写操作的速度比较慢。虽然这些操作比较繁琐,但是可以有效地保证存储器阵列中的数据不会被非法改写。图6-2339SF040存储器阵列的扇区擦除操作时序图6-2439SF040存储器阵列的整片擦除操作时序
SST公司的39SFxx系列FlashROM存储器具有多种读/写速度,实际使用时需要根据具体的型号来确定。图6-21~图6-24中的时序时间常数随不同型号而不相同,请参考SST公司相关器件的手册。
FlashROM可以为嵌入式控制系统、测控系统、工业控制系统、智能记录仪器等提供大容量的数据存储器,目前更大容量的FlashROM已经达到几十兆字节。
FlashROM作为MCS-51系列单片机外部扩展的数据存储器时,其应用电路可以参考SRAM的电路,但是控制读、写和擦除操作软件不同。
5.FRAM铁电存储器(FRAM)的核心技术是铁电晶体材料,这一特殊材料使得铁电存储产品同时拥有随机存取存储器(RAM)和非易失性存储产品的特性。铁电晶体材料的工作原理是:当电场加载到铁电晶体材料上时,晶体阵列中的中心原子会沿着电场方向运动,到达稳定状态。晶体阵列中每个自由浮动的中心原子只有两个稳定状态,一个状态被用来记忆逻辑“0”,另一个状态用来记忆逻辑“1”。其中心原子能够在常温、没有电场的情况下停留在此状态达100年以上时间,铁电存储器不需要定时刷新(与DRAM相比),能在断电情况下保存数据(与常规SRAM相比)。由于在整个物理过程中没有任何原子碰撞,FRAM拥有相当于SRAM的高速读/写、超低功耗和无限次写/擦除等优点,同时还具有数据掉电不丢失的优点。它是近些年被开发并广泛应用的一种新型存储器,据部分专家预测,在未来FRAM将完全取代SRAM,但是,目前FRAM的价格比较高,大约0.1KB/元。
FRAM存储器的专利权归总部设在美国科罗拉多州的ColoradoSprings市的Ramtron公司,目前Toshiba、Hitachi、Fujistu、Rohm、Samsung、Infineon等半导体公司都获得了Ramtron公司的授权,可提供各种不同的FRAM产品。目前市场上可以见到的Ramtron公司的FRAM产品见表6-10。表中的FM24Cxx产品完全兼容I2C总线接口的EEPROM产品;FM25xxx则完全兼容SPI接口的EEPROM产品;FM1608完全兼容62C64(SRAM),但增加了不挥发性;FM1808完全兼容62C256,但也增加了不挥发性;而FM3808既具有62C256的存储器,又增加了不挥发性,而且该芯片内还带有嵌入式控制系统的单片机必需的电压监控、实时日历时钟和Watchdog定时器功能。串行接口(I2C、SPI)的FRAM与相同容量的EEPROM相比,FRAM型存储器的字节写大约需要72μs,而串行接口的EEPROM存储器的字节写大约需要7ms。所有的EEPROM都有字节写内部编程循环时间(大约5ms左右),而FRAM的字节写没有自编程等待时间,这样在一些要求快速保存数据的应用领域,FRAM类型存储器有非常好的优越性。6.3.2并行接口数据存储器的扩展
1.扩展并行接口的SRAM和NOVRAM作为外部数据存储器
MCS-51单片机的外部扩展32KB的SRAM类型数据存储器的电路参见图6-14,图中扩展的62C256的地址空间为0000H~7FFFH。下面的程序是实现将外部数据存储器中的数据转移到内部数据存储器中,同时将原来的数据清零。外部数据存储器的起始地址为1000H,将要转移的数据个数由函数输入变量“_len”确定,内部存储器起始地址指针为函数的输入变量“*_data”。#include<io51.h>
//使用8051单片机的头文件#defineExRAMbaseAd
((unsignedchar*)0x011000)
//指向外部数据存储器地址1000H的指针voidGetExRAMData(unsignedchar*_data,unsignedchar_len){
unsignedchari;
for(i=0;i<_len;i++)
{
_data[i]=*(ExRAMbaseAd+i);
//从外部数据存储器中读一个字节的数据,并将数据保存到_data数组中*(ExRAMbaseAd+i)=0x0;
//将外部存储器中原来的数据清零
}}由于Dallas公司的NOVRAM型DS1230Y/AB存储器与PDIP封装的62C256的引脚、读/写时序完全相同,因此上面的程序和图6-14同样适合于DS1230Y/AB的应用电路。
2.扩展并行接口的FlashROM作为外部数据存储器
FlashROM都是大存储容量的存储器,往往在嵌入式单片机应用系统中也需要扩展大存储容量的FlashROM,以用于保存长时间的连续测量结果和系统事件记录。下面介绍如何为MCS-51单片机应用系统扩展大于64KB数据存储器的方法。
MCS-51系列单片机的地址总线宽度为16位,使用常规地址扩展法可以寻址的数据存储器地址空间为216(64KB)。非常规扩展方法有两种。一种方法是用P1口作为扩展的高位地址,占用P1口n根I/O线,就可以将数据存储器的寻址空间扩展为2n×64KB。采用这种方法的缺点是随着需要扩展的寻址空间的扩大,必须占用更多的P1口线,当需要扩展1MB(24×64KB)空间时,将占用P1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年软件专业技术资格初级重要试题及答案
- 茶道中的哲学思考考题及答案
- 企业战略与人力资源对接考题试题及答案
- 2025年软件技术专业资格初级试题及答案解读
- 妇幼保健员应急处理试题及答案
- 计算机与软件专业基础知识试题及答案
- 2025年茶艺师行业标准分析试题及答案
- 备受瞩目健康管理师试题及答案
- 二零二五年度儿童托管班教师专业发展协议
- 二零二五年度期权交易风险管理合同字模板
- APP小程序隐私协议模板 正规范本(通用版)
- 厂房分布式光伏系统施工进度计划横道图
- (完整版)建筑工程技术毕业论文
- 《大学英语四六级》课件
- 基于实验教学培养学生物理核心素养的研究
- 2023年汉字听写大会汉字听写知识竞赛题库及答案
- 小班语言《甜蜜的家》
- 墙面彩钢瓦更换施工方案
- 2023年辽宁省生物学竞赛初赛试卷及答案
- 安全生产培训一月课件
- 足球脚内侧传球 课件
评论
0/150
提交评论