1
单片机内部结构分析
1
几个基本概念
三盏灯的状态可以是000 001 010 011 100 101 110 111。这个000、001、101 不就是我们学过的二进制数吗?本来,灯的亮和灭只是一种物理现象,可当我们把它们按一定的顺序排好后,灯的亮和灭就代表数字了。让我们再抽象一步,灯为什么会亮呢?是因为输出电路输出高电平,给灯通了电。因此,灯亮和灭就可以用电路的输出是高电平还是低电平来替代了。这样,数字就和电平的高、低联系上了。(请想一下,我们还看到过什么样的类似的例子呢?有(海军的)灯语、旗语,电报,甚至红、绿灯)。
一根线可以表示0和1,两根线可以表达00,01,10,11四种状态,也就是可以表达0到3,而三根可以表达0~7。计算机中通常用8根线放在一起,同时计数,就可以表示0-255一共256种状态。这8根线或者8位就称之为一个字节(BYTE)。
1
存储器的工作原理
图1
有了这么一个构造,我们就可以开始存放数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看图1右)。可是问题来了:看图1右,一个存储器有好多单元,线是并联的。在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉。这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的。因此,要在结构上稍作变化。看图1右,在每个单元上都有个控制线,我想要把数据放进哪个单元,就把一个信号给这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了;而其它单元控制线上没有信号,所以开关不打开,不会受到影响。这样,只要控制不同单元的控制线,就可以向各单元写入不同的数据了;同样,如果要从某个单元中取数据,也只要打开相应的控制开关就行了。
至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是从什么地方来的呢?它就是从计算机上接过来的。一般地,这八根线除了接一个存储器之外,还要接其它的器件。问题又来了:这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就不好了。比如这个存储器单元中的数值是0FFH,另一个存储器的单元是00H,那么这根线到底是处于高电平,还是低电平?岂非要打架看谁历害了?所以我们要让它们分离。办法当然很简单,当外面的线接到集成电路的引脚进来后,不直接接到各单元去,中间再加一组开关就行了。平时我们让开关打开着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。这组开关由三根引线选择:读控制端、写控制端和片选端。要将数据写入片中,只要先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。如果要读,那就先选中该片,然后发出读信号,开关合上,数据就被送出去了。读和写信号同时还接入到另一个存储器,但是由于片选端不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。那么会不会同时选中两片芯片呢?只要是设计好的系统就不会,因为它是由计算控制的,而不是我们人来控制的,如果真的出现同时选中两片的情况,那就是电路出故障了,这不在我们的讨论之列。
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理。
优质客服,随时在线!
无须等待,让沟通更直接!
贸泽电子设计圈由贸泽电子(Mouser Electronics)开发和运营,服务全球广大电子设计群体。贸泽电子原厂授权分销超过800家知名品牌,可订购500多万种在线产品,为客户提供一站式采购平台,欢迎关注我们,获取第一手的设计与产业资讯信息!