|
半导体存储器的工作原理
存贮器又分为只读存贮器和读写存贮器两种,前者存放调试好的固定程序和常数,后者存放一些随时有可能变动的数据。顾名思义,只读存贮器一旦将数据存入,就只能读出,不能更改(EPROM、E2PROM等类型的ROM可通过一定的方法来更改、写入数据——编者注)。而读写存贮器可随时存入或读出数据.
1 存储器的内部构造
看下面的图这就是半导体存储器的结构简图 (图中有4个字节)
2 存储器的工作原理
存储器就是用来存放数据的地方它其实是利用电平的高或低来存放数据的也就是说它实际上存放的是电平的高或低的状态而不是我们所习惯上认为的 1234这样的数字那它是如何工作的呢看上面的图这就是存储器的内部结构示意图一个存储器就象一个小抽屉一个小抽屉里有8个也就是单片机的8位小盒子每个小盒子用来存放1位电荷电荷通过与它相连的电线传进来或释放掉至于电荷在小盒子里是怎样存放的这就不用我们操心了您可以把电线想象成水管小盒子里的电荷就象是水那就好理解了存储器中的1个小抽屉我们把它称之为1个单元相当于1个字节而1个小盒子就相当于1位
有了这么一个构造我们就可以开始存放数据了比如我们要放进一个数据 00011010我们只要把第2号第4号和第5号小盒子里存满电荷而其它小盒子里的电荷给放掉就行了可是问题又出来了一个存储器有好多相同的单元线是并联着的看D7-D0在放入电荷的时候会将电荷放入所有的字节单元中而释放电荷的时候会把每个单元中的电荷都放掉这样的话不管存储器有多少个字节单元都只能放同一个数这当然不是我们所希望的因此我们要在结构上稍作变化看上面的图在每个单元上有根线与译码器相连我想要把数据放进哪个单元就通过译码器给哪个单元发一个信号由译码器通过这根线把相应的开关打开这样电荷就可以自由地进出了那么这样是不是就能随意地向存储器写入或者读出数据了呢其实还不能继续看上面的图与D7-D0相连的还有一个控制器它是用来干什么的呢这根线叫写入/读出控制线当我们向存储器写入数据时必须先把这个开关切换到写入端而要读出数据时就得先把开关切换到读出端而片选端则是为了区分不同的存储器设置的这里没搞明白没关系后面还有介绍先让我们来看看译码器是如何工作的
3 半导体存储器的译码
简单介绍一下我们知道1根线可以代表2种状态2根线可以代表4种状态3根线可以代表8种256种状态又需要几根线代表自己想一下是不是8根线
4 存储器的选片及总线的概念
至此译码的问题解决了让我们再来关注另外一个问题送入每个字节的8根线又是从什么地方来的呢它就是从单片机的外部引脚上接过来的一般这8根线除了接一个存储器之外还要接其它的器件这样问题又来了这8根线既然不是存储器和单片机之间专用的如果总是将某个单元接在这8根线上就不行了比如这个存储器单元中的数值是11111111另一个存储器的单元是00000000那么这根线到底是处于高电平还是低电平所以我们必须让它们分离办法当然也简单当外面的线接到集成电路的引脚上来后不直接接到各单元去而是在中间加一组开关这组开关就是前面提到的控制器看前面的图平时我们让开关打开着如果确实是要向这个存储器中写入数据或要从存储器中读出数据再让开关切换到相应的位置就行了这组开关由三根引线选择读控制端写控制端和片选端要将数据写入先由控制器选中该片然后发出相应的写信号开关切换到相应的位置并将传过来的数据电荷写入片中如果要读信号先选中该片然后发出读信号开关也切换到相应的位置上数据就被送出去了另外读和写信号还同时受到译码器的控制由于片选端的不同所以虽有读或写信号但没有片选信号所以另一个存储器就不会误会而开门造成冲突那么会不会同时选中两个存储器呢只要是设计好的系统就不会如果真的出现同时选中两个存储器的话那就是电路出故障了
如此看来存储器要想写入或者读出数据还真是不容易不过好在这些都是由计算机自动完成的不需要我们去操心从上面的介绍中我们已经看到用来传递数据的8根线并不是专用的而是很多器件大家共用的所以我们把它们称之为数据总线总线英文名为BUS即公交车道谁都可以走而16根地址线51单片机共有16根地址线这些以后会讲解这里不必死记硬背也是连在一起的我们把它们称之为地址总线看上面的图
上一页 [1] [2] [3] 下一页
|