51单片机存储器内存详解
51单片机当中的存储器从功能性上来划分可以分为程序存储器与数据存储器。一般来说单片机存储器的存储空间是能够进行存储空间拓展的,但是如何进行拓展则需要根据不同的存储器类型进行选择。
本文就将为大家针对这个问题进行讲解。
访问存储空间时,需要用到两个指针变量,为DPTR和PC。其中pc为程序计数器,指向下一条需要执行的指令的地址,DPTR为数据指针寄存器,这两个变量的长度都为16位,这是51单片机内部结构决定的,无法改变。所以这两个指针的寻址能力都为64K。这样看来,两类存储器的扩展能力都为64K。但是,如果实际扩展过存储器,就可以发现程序存储器的扩展能力并没有64K。
为什麽会这个样子呢?这得从51单片机的存储空间的编址说起。这里仅作简单说明,具体可以看教科书。简单地说,内部程序存储器和外部程序存储器是一起编址的,它们分别占用64K地址的一部分,所以外部扩展时要减去内部的地址空间,当然要小于64K。而数据存储器是内外部分别编址,内外部数据存储器用不同的指令进行访问,所以不用担心单片机会混淆内外部数据存储器,所以外部数据存储器扩展能力有64K。
为啥单片机RAM那么少?
你肯定好奇:手机内存(RAM)动辄8G、12G,为啥单片机RAM连1M都不到?
经典的AT89C51单片机,其内部只有128字节RAM (内存),同样经典的MSP430F149也只有2K的RAM空间。
即使现在用的比较多的STM32F1系列,其最大的RAM也不到100K 。
很多小伙伴就有这样的疑问:现在固态硬盘都以 T 为单位了,手机电脑内存都是8G、甚至32G了,为什么单片机RAM连1M都不到?
今天就来讲讲关于RAM以及单片机内存少的几点内容。
(备注:本文说的单片机,指MCU,微控制器)
关于RAM
RAM:Random Access Memory,随机存取存储器,也是大家所说的内存 。
RAM是一种易失性存储器,也就是说断电就会丢失存储数据。
RAM有一些常见特点:
随机存取
易失性
对静电敏感
访问速度块
······
随着需求的提高,技术的进步,RAM又发展了像SRAM、DRAM、SDRAM等多种类型的RAM存储器。
相对于Flash、硬盘等非易失性存储器而言,RAM具有更快的读写速度,因此RAM广泛用于各种单片机、嵌入式、计算机系统中。
但RAM也存在一些“不足”,导致在很多场合,RAM的容量都相对比较小。
RAM容量小的几点原因
RAM相对Flash、硬盘而言,要做到足够大容量,其成本相对Flash要多的多。
1.RAM工艺更复杂
RAM要求速度更快,电流又不能太大,为了能尽量满足和平衡更高要求,就需要使用更特殊和更先进的半导体电容技术。
2.更大的硅面积
因为RAM的工艺更复杂,其占用硅面积相对更大。
大家应该都知道芯片的制造过程 ,目前芯片主要使用硅这种材料制作芯片(当前,现在也发明了更先进的材料),占用硅面积更大,意味着单个芯片成本更贵,相信这个原理大家都懂。
通过认识wafer、die、cell它们的关系 你就能大概理解芯片其实是“批量”生成的。
3.功耗原因
单片机通常要求功耗不能太多,特别是低功耗的单片机,在待机模式下,要求nA级别的电路。
为了满足低功耗,单片机中RAM,通常是静态RAM(SRAM)。
这里要扩展一下与SRAM对应的DRAM(动态RAM),顾名思义,动态RAM就是需要定时给电容补充漏掉的电荷,也就是需要定时刷新,DRAM需要驱动电路,功耗相对SRAM自然更大。
4.单片机大容量RAM需求不大
大家都知道,使用单片机开发的项目,通常都是裸机,或者RTOS,一般不会用到大型软件,特别是早期的时候(早期少数对RAM有需求的项目,一般通过外扩RAM的方式)。
所以,早期很多项目对单片机RAM容量要求不高,甚至有很大一部分RAM都没有用到。
当然,随着UI、AI、物联网的快速发展,现在对单片机RAM的需求也在不断增加,很多新出的单片机RAM容量也在不断增加,比如256K,甚至512K了。
5.其他
除了以上说的几点,还有像寿命、稳定性、兼容性等也是间接影响RAM大小的因素。
最后,欢迎大家补充更多的原因。
声明: 本文转载自strongerHuang,如涉及作品内容、版权和其它问题,请于联系工作人员,我们将在第一时间和您对接删除处理!
相关问答
51单片机 的 内存 是多少?因型号的不同,51单片机的程序内存ROM是512字节到64k字节,数据缓存RAM是256字节,有的51单片机(例如STC)还集成了内部扩展RAM,小则1K字节,多则高达16K字节。...
51单片机 内部存储器容量?51单片机的内部数据存储器总容量为256字节,地址由00H~FFH.这256字节的地址空间可以分成功能不同的低128字节单元和高128字节单元。在256字节的内部数据存储器...
MCS- 51单片机 内部RAM如何分配的?MCS-51单片机内部RAM分配如下:00H~1FH:为工作寄存器地址,共四组20H~2FH:为位地址空间,位地址范围为00H~7FH30H~7FH:为用户使用的RAM空间80H~FFH:为特殊功.....
c 51 的数据类型""idata,code,xdata,pdata""各对应at89s 51单片机 的哪些存储空间?idata对应于内部RAM00H~FFHcode对应于程序存储器的0000H~1FFFH(8K)如果扩展可寻址64K。使用MOVCxdata对应于外部RAM0000H~FFFFH(需要...
单片机 的存储空间如何计算-ZOL问答51单片机的具体存储器地址分配程序存储器(ROM)的内部地址为0000H~0FFFH,共4KB;外部地址为1000H~FFFFH,共60KB。当程序计数器由内部0FFFH执行到外部...
51 系列的 单片机 ,片内最大容量的ROM是多大的?-ZOL问答AT89C51RE2好像是128KB1、空间划分存储器分为程序存储器(ROM)和数据存储器(RAM)两大类。程序存储器有片内和片外存储器两种;数据存储器也有片内和片外存储器两...
at89s 51单片机 的五大存储空间?AT89S51单片机具有五个主要的存储空间,包括程序存储器(Flash存储器),数据存储器(RAM),特殊功能寄存器(SFR),片内EEPROM和外部数据存储器。程序存储器用...AT8...
51单片机 多少进制?默认是十进制的。如果hour=03。03是十进制3。十进制十六进制其实是对人来说的,是你写程序的时候区分的,如果我用串口发送十进制数30hour=sbuf单片机中ho...
MCS- 51单片机 片内RAM的组成的划分方式和功能分别是什么?51单片机的具体存储器地址分配数据存储器(RAM)为256字节,地址范围为00H~FFH,分为两大部分:低128字节(00H~7FH)为真正的RAM区;高128字节(80H~FF...
单片机 的地址总线的宽度是什么?地址总线宽度决定了CPU可以访问的物理地址空间,简单地说就是CPU到底能够使用多大容量的内存。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位单片...