(玩电子) 电子技术学习与研究
当前位置单片机教程网 >> 基础教程 >> 浏览文章

3课:单片机存储器结构

作者:佚名   来源:本站原创   点击数:x  更新时间2007年08月16日   字体

单片机内部存储结构分析
   我们来思考一个问题当我们在编程器中把一条指令写进单片要内部然后取下单片机单片机就可以执行这条指令那么这条指令一定保存在单片机的某个地方并且这个地方在单片机掉电后依然可以保持这条指令不会丢失这是个什么地方呢这个地方就是单片机内部的只读存储器即ROMREAD ONLY MEMORY为什么称它为只读存储器呢刚才我们不是明明把两个数字写进去了吗原来在89C51中的ROM是一种电可擦除的ROM称为FLASH ROM刚才我们是用的编程器在特殊的条件下由外部设备对ROM进行写的操作在单片机正常工作条件下只能从那面读不能把数据写进去所以我们还前它称为ROM

   数的本质和物理现象我们知道计算机能进行数学运算这可令我们非常的难以理解计算机吗我们虽不了解它的组成但它总只是一些电子元器件怎么能进行数学运算呢课们做数学题如37+45是这样做的先在纸上写37然后在下面写45然后大脑运算最后写出结果运算的原材料3745和结果82都是写在纸系ģ计算机中又是放在什么地方呢课了解决这个问题先让我们做一个实验这里有一盏灯我们知道灯要么亮要么不亮就有两种状态我们能用’0’和’1’来代替这两种状态规定亮为’1’不亮为’0’现在放上两盏灯一共有几种状态呢课们列表来看一下

状态
表达
0 0
0 1
1 0
1 1

  请大家自研上3盏灯那况000 001 010 011 100 101 110 111

  我们来看这个000001101 不就是我们学过的的二进制数吗本来灯的亮和灭只是一种物理现象可当我们把它们按一按的次序排更好后灯的亮和灭就代表了数字了让我们再抽象一步灯为什么会亮呢看电路1且为输出电路输出高电平给灯通了电因此灯亮和灭就能用电路的输出是高电平还是低电平来替代了这样数字就和电平的高低联系上了请想一下我们还看到过什么样的类似的例程呢海军之灯语旗语电报甚至红绿灯

什么是位 
  通过上面的实验我们已经知道一盏灯亮或者说一根线的电平的高低能代表两种状态0和1实际上这就是一个二进制位因此我们就把一根线称之为一“位”用BIT表示

什么是字节
  一根线能表于0和1两根线能表达00011011四种状态也就是能表于0到3而三根能表达0-7计算机中常常用8根线放在一起同时计数就能表过到0-255一共256种状态这8根线或者8位就称之为一个字节BYTE不要问我为什么是8根而不是其它数因为我也不知道计算机世界是一本人造的世界不是自然界很多事情你无法问为什么只能说它是一种规定大家在以后的学习过程中也要注意这个问题

存储器的工作原理

1存储器构造

   存储器就是用来存放数据的地方它是利用电平的高低来存放数据的也就是说它存放的实际上是电平的高低而不是我们所习惯认为的1234这样的数字这样我们的一个谜团就解开了计算机也没什么神秘的吗


图2

图3

  让我们看图2单片机里面都有这样的存储器这是一个存储器的示意图一个存储器就象一个个的小抽屉一个小抽屉里有八个小格子每个小格子就是用来存放“电荷”的电荷通过与它相连的电线传进来或释放掉至于电荷在小格子里是怎样存的就不用我们操心了你能把电线想象成水管小格子里的电荷就象是水那就好理解了存储器中的每个小抽屉就是一个放数据的地方我们称之为一个“单元”

  有了这么一个构造我们就能开始存放数据了想要放进一个数据12也就是00001100我们只要把第二号和第三号小格子里存满电荷而其它小格子里的电荷给放掉就行了看图3可是问题出来了看图2一个存储器有好多单元线是并联的在放入电荷的时候会将电荷放入所有的单元中而释放电荷的时候会把每个单元中的电荷都放掉这样的话不管存储器有多少个单元都只能放同一个数这当然不是我们所希望的因此要在结构上稍作变化看图2在每个单元上有个控制线我想要把数据放进哪个单元就给一个信号这个单元的控制线这个控制线就把开关打开这样电荷就能自由流动了而其它单元控制线上没行号所以开关不打开不会受到影响这样只要控制不一样单元的控制线就能向各单元写入不一样的数据了同样如果要某个单元中取数据也只要打开对应的控制开关就行了

2存储器译码
  那么我们怎样来控制各个单元的控制线呢这个还不简单把每个单元元的控制线都引到集成电路的外面不就行了吗事情可没那么简单一片27512存储器中有65536个单元把每根线都引出来这个集成电路就得有6万多个脚不行怎么办要想法减少线的数量我们有一种办法称这为译码简单介绍一下一根线能代表2种状态2根线能代表4种状态3根线能代表几种256种状态中要几根线代表8种8根线所以65536种状态我们只需要16根线就能代表了

(图4)

3存储器的选片及总线的概念
   至此译码的问题解决了让我们再来关注另外一个问题送入每个单元的八根线是用从什么地方来的呢它就是从计算机上接过来的一般地这八根线除了接一个存储器之外还要接其它的器件如图4所示这样问题就出来了这八根线既然不是存储器和计算机之间专用的如果总是将某个单元接在这八根线上就不好了比如这个存储器单元中的数值是0FFH另一个存储器的单元是00H那么这根线到底是处于高电平还是低电平岂非要打架看谁历害了所以我们要让它们分离办法当然很简单当外面的线接到集成电路的管脚进来后不直接接到各单元去中间再加一组开关参考图4 就行了平时我们让开关关闭着如果确实是要向这个存储器中写入数据或要从存储器中读出数据再让开关接通就行了这组开关由三根引线选择读控制端写控制端和片选端要将数据写入片中先选中该片然后发出写信号开关就合上了并将传过来的数据电荷写入片中如果要读先选中该片然后发出读信号开关合上数据就被送出去了注意图4读和写信号同时还接入到另一个存储器但是由于片选端不一样所以虽有读或写信号但没有片选信号所以另一个存储器不会“误会”而开门造成冲突那么会不一样时选中两片芯片呢只要是设计好的系统就不会因为它是由计算控制的而不是我们人来控制的如果真的出现同时出现选中两片那况那就是电路出了故障了这不在我们的讨论之小

   由面的介绍中我们已经看到用来传递数据的八根线并不是专用的而是很多器件大家共用的所以我们称之为数据总线总线英文名为BUS总即公交车道谁者能走而十六根地址线也是连在一起的称之为地址总线

半导体存储器的分类

  按功能能分为只读和随机存取存储器两大类所谓只读从置上理解就是只能从里面读不能写进去它类似于我们的书本发到我们只之后我们只能读里面的内容不能随意更改书本系内容只读存储器的英文缩写为ROMREAD ONLY MEMORY

所谓随机存取存储器即随时能改写也能读出里面的数据它类似于我们的黑板我能随时写东西上去也能用黑板擦擦掉重础随机存储器的英文缩写为RAMRandom Access Memory这两种存储器的英文缩写一定要记牢

注意所谓的只读和随机存取都是指在正常工作情况下而言也就是在使用这块存储器的时候而不是指制造这块芯片的时候不然只读存储器中的数据是怎么来的呢其实这个览也很好理解书本拿到我们手里是不能改了能当它还是原材料——字的时候当然能由印刷厂印上去了

顺便解释一下其它几个常见的概念

  PROM称之为可编程存储器这就象我们的练习本买来的时候是空白的能写东西上去可一旦写上去就擦不掉了所以它只能用写一次要是创了就报销了现在已经被淘汰

  EPROM称之为紫外线擦除的可编程只读存储器它里面的内容写上去之后如果觉得不满意能用一种特殊的办法去掉后重写这就是用紫外线照射紫外线就象“消字灵”能把字去掉然后再重础当然消的次数多了也就不灵光了所以这种芯片能擦除的次数也是有限的——几百次吧现在已经被淘汰

   EEPROM步 E2PROM称之为电可擦可编程只读存储器它和EEPROM类似写上去的东西也能擦掉重写但它要方便一些不需要光照了只要用电就能擦除或者重新改写数据所以就方便许多而且寿命也很长几万到几十万次不等

  FLASH称之为了存储器属于EEPROM的改进产品它的最大特点是必须按块(Block)擦除(每个区块的大小不定不同厂家的产品有不同的规格) 而EEPROM则可以一次只擦除一个字节(Byte)FLASH现在常用于大容量存储,比如u盘

  再次强调这里的所有的写都不是指在正常工作条件下不管是PROM还是EPROM它们的写都要有特殊的条件一般我们用一种称之为“编程器”的设备来做这项工作一旦把它装到它的工作位置就不能随便改写了

发表评论告诉好友收藏此文关闭窗口

文章评论

Ƶ