MCS-51系列单片机外部RAM为K,在一些特殊场合下,远不能满足需要,本文就ATC51讨论MCS-51系列单片机大容量RAM的扩展方法。
首先介绍128K随机读取RAM HM628128。HM628128是32脚双列直插式128K静态随机读取RAM,它具有容量大、功耗低、价格便宜、集成度高、速度快、设计和使用方便等特点。如若在系统中加入掉电保护电路,保护数据有很高的可靠性,可以和EEPROM相媲美。
技术特性:
(1)最大存取时间为120ns;
(2)典型选通功耗75mW;典型未选通功耗10uW;
(3)使用单一5V电源供电;
(4)全静态存储器,不需要时钟及时序选通信号;
(5)周期时间与存取时间相等;
(6)采用三态输出电路,数据输入和输出端公用;
(7)所有输入和输出引脚均与TTL电平直接兼容;
(8)有两个片选端,适合于低功耗使用,即为了保存信息,用电池作为后备电源。保存信息的最低电源电压Vcc=2V。
引脚安排及功能表:
图6是HM628128的外部引脚排列图,各引脚名称及功用分别如下:
A0~A16是17条地址线;I/O0~I/O7是双向数据线;CS1是片选1,低电平有效,CS2是片选2,高电平有效;WR是写控制线,当CS1为低电平,CS2为高电平时,WR的上升沿将I/O0~I/O7上的数据写到A0~A16选中的存储单元中;OE是读出允许端,低电平有效。
HM628128的功能表如表3所示。
表3 HM628128功能表
| WR | CS1 | CS2 | OE | 工作方式 |
| X | H | X | X | 未选中 |
| X | X | L | X | 未选中 |
| H | L | H | H | 输出禁止 |
| H | L | H | L | 读 |
| L | L | H | H | 写 |
由于ATC51直接外部RAM容量为K,地址线为16条,其中低8位地址和数据分时复用,因此需要外部地址锁存器和ALE锁存信号来锁存低8位地址。又由于ATC51的外部数据和外设地址通用,若扩展外设必然占用数据地址。因此本系统采用P2.7(A15)口来区分数据和外设:当P2.7(A15)口为高电平时,选择外部数据;P2.7(A15)口为低电平时,则为外设。因此,直接外部数据容量和外设数量都为32K,可用地址线为15条。本系统外部扩展RAM为256K,地址线1。要达到1地址线,则必须扩展。理论上可行方法很多,如以P1口的某几位作为最高位地址输出、外加锁存器锁存高位地址等。本系统采用后者,以保留P1口,况且外设空间充裕。扩展电路如图7所示:
地址总线
译码器
图7 RAM地址扩展电路
当读写外部数据时,首先应往高位地址锁存器中送入高位地址,然后再以DPTR为间接地址访问外部数据,注意最高位地址应为1,即数据区最低地址为8000H。
以下程序段演示了外部数据的读写。
……
MOV DPTR,#0020H ;0020H为高位地址锁存器的地址
MOV A,#00H ;00H 表示第一个32K空间
MOVX @DPTR,A ;写入地址数据
MOV DPTR,#8000H ;8000H 为每个32K的第一个字节地址
MOVX A,@DPTR ;从地址单元读取数据
……
若最后一句换为:
MOVX @DPTR,A
则为向RAM中写数据。
同时作者还利用HM628128的数据保持特性为其加入了掉电保护电路。当主电源关闭时,备用电源发挥作用,这样RAM内的数据就不会丢失。其特性如表4所示。
表4 低电源电压数据保持特性
| 名称 | 符号表示 | 最小值 | 典型值 | 最大值 | 单位 | 实验条件 |
| 数据保持的电源电压Vcc | VOR | 2.0 | - | - | V | CS1≥Vcc-0.2V, CS2≥Vcc-0.2V, 或0V≤CS2≤0.2V,Vin≥0V |
| 数据保持电流 | - | 1 | 50 | uA | Vcc=3.0V,Vin≥0V, CS1≥Vcc-0.2V, CS2≥Vcc-0.2V, 或0V≤CS2≤0.2V | |
| - | 1 | 50 | uA | |||
| 片选禁止到数据状态时间 | tCDR | 0 | - | - | ns | 见波形图8 |
| 运行恢复时间 | tR | 5 | - | - | ms |
4.5V
2.2V
Vdri
CS1
0V
Vcc
4.5V
CS2
Vdr2
0.4V
0V
图8 CS2控制数据保持时序
根据表4和图8可知,只要在系统上电或断电期间保证使HM628128的CS2立即变为低电平(CS2≤0.2V)或WR立即变为高电平就可使其中的数据维持不变,图9可实现这一功能。
图9掉电保护电路
其原理如下:当系统正常时,电流通过D1向HM628128供电,同时向电池BT充电,当系统电源切断时,将由电池供电。
上电时,系统电源对C1充电,在此期间CS2是输入要经过一定的延时后才能变为高电平,同时,由于U1、U2的电源是由系统电源对C2充电来建立的,这就保证了在上电时HM628128处于写静止状态。
在系统掉电瞬间,由于U1、U2由Vs供电,仍处于工作状态,电源掉电致使U1的输入立即变低,WR端变为低电平,从而禁止对HM628128的写入。同时C1也通过D2和R2放电,从而使CS2变为低电平。因此在掉电瞬间和掉电后,HM628128也处于写禁止状态。
经实践证明,本电路工作可靠,RAM中数据保存完整。下载本文