问:高速非易失性SRAM有哪些品种?
答:非易失性静态随机存取存储器NVSRAM(Nonvolatile SRAM)家族大致有以下3种:
① 内部埋藏有锂电池的NVSRAM:这种存储器就是在普通CMOS低功耗SRAM的基础之上,封装时把锂电池埋藏在内部,构成模块式封装形式。产品型号有DS1220、DS125、DS1230、DS1245、DS1250、M48Z35等。
② 双体结构的NVSRAM:这种存储器内部包含两个存储体:一个是普通的SRAM,另一个是与SRAM容量相同的影像EEPROM。平常工作状态下,微处理器等主控器件访问NVSRAM时,所操作的是SRAM,只有在电源断电时,NVSRAM自动把SRAM中的内容快速影射到EEPROM中,使内容不会丢失;在下次电源加电时,它又把EEPROM中保留的影像内容自动恢复到SRAM中。例如,产品型号有美国XICOR公司的X24C45、X24C44、X20C16等。
③ 铁电存储器FRAM:其核心技术是铁电晶体材料。这一特殊材料使得铁电存储器同时拥有RAM和ROM的特性。晶阵中的每个自由浮动的原子只有两个稳定状态,一个用来记忆逻辑“0”,另一个用来记忆逻辑“1”。数据状态可保持100年以上。FRAM产品具备一系列超级特性。比如,高速读写(存取时间只有70ns,可以跟随总线速度读写)、超低功耗(能耗只有EEPROM的1/2500)和几乎无限次的读写周期(目前的工艺水平是,可以达到一亿个亿次)。目前面市的产品型号有,RAMTRON公司FM24C04、FM24C16、FM24C256、FM24CL16、FM24CL64、FM25040、FM25C160、FM25640、FM25CL64、FM1608、FM1808、FM18L08等。(李学海)
问:CPU为8051,如果程序区或数据区大于64KB,用C语言如何编程?
答:对于64K寻址空间的8051单片机,若所扩展存储器的容量大于64KB,则寻址存储器所需的地址就要比16位多。C51的实用程序中有一个工具软件——程序体链接器BL51(bank linker)。BL51允许生成大于64KB的8051程序,这要求有扩展的逻辑进行程序体之间的切换。BL51可以管理最多16个程序体,其中每个程序体最大为64KB。
若是数据区大于64KB,在用C语言编程时,可以把地址说明成无符号长整型,即32位。假定16位以上的高地址从P1口输出,程序设计如下:
#define uchar unsigned char;
unsigned long addr; /* 多于16位的存储器地址 */
uchar xdata data ptr; /* 指向外部数据存储器的16位指针 */
uchar data a; /* 存取的数据 */
uchar addrH; /* 16位以上的高地址 */
. . .
ptr=addr; /* 指针得到存储器地址的低16位 */
addrH=addr>>16; /* 得到存储器地址的16位以上高地址*/
P1=addrH; /* 输出16位以上高地址 */
a=*ptr; /* 从存储器取数 */
*ptr =a; /* 向存储器存数 */