0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机内部结构知多少

电子设计 来源:电子设计 作者:电子设计 2020-10-30 10:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

01

单片机内部结构分析

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

02

几个基本概念

1、数的本质和物理现象

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

请大家自己写上 3 盏灯的情况 000 001 010 011 100 101 110 111 我们来看,这个 000,001,101 不就是我们学过的的二进制数吗?本来,灯的亮和灭只是一种物理现象,可当我们把它们按一定的顺序排好后,灯的亮和灭就代表了数字了。让我们再抽象一步,灯为什么会亮呢?是因为输出电路输出高电平,给灯通了电。因此,灯亮和灭就可以用电路的输出是高电平还是低电平来替代了。这样,数字就和电平的高、低联系上了。(请想一下,我们还看到过什么样的类似的例子呢?(海军之)灯语、旗语,电报,甚至红、绿灯)。



2、位的含义

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



3、字节的含义

一根线可以表示 0 和 1,两根线可以表达 00,01,10,11 四种状态,也就是可以表达 0 到 3,而三根可以表达 0~7,计算机中通常用 8 根线放在一起,同时计数,就可以表示 0-255 一共 256 种状态。这 8 根线或者 8 位就称之为一个字节(BYTE)。

03

存储器的工作原理

1、存储器构造

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

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



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



2、存储器译码

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



3、存储器的选片及总线的概念

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



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


审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45596

    浏览量

    674082
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    P4SMA220A 高压 TVS 瞬态抑制二极管芯片材质构成与内部结构解析

    P4SMA220A 高压 TVS 瞬态抑制二极管芯片材质构成与内部结构解析
    的头像 发表于 04-27 17:31 417次阅读

    纽扣电池给单片机供电问题

    在我的项目中,单片机供电是3V的纽扣电池。单片机上电就进入STOP省电模式,等待工作时候由引脚唤醒,项目主要使用单片机的adc功能,基准电压是单片机内部VEFBUFF。目前主要问题是,
    发表于 03-14 14:57

    单片机里的程序运行方式

    :它是单片机内部的核心部件,决定了单片机的主要功能特性,由运算器和控制器两大部分组成。 存储器:8051单片机在系统结构上采用了哈佛型,将程序和数据分别存放在两个存储器内,一个称为程序
    发表于 01-16 06:57

    单片机解密是什么?

    芯片的其中一个类。 单片机(MCU)一般都有内部程序区和数据区(或者其一)供用户存放程序和工作数据(或者其一)。为了防止未经授访问或拷贝单片机机内程序,大部分
    发表于 12-30 08:19

    为什么单片机芯片上需要多组VDD?

    ,以及如何设计VDD的电源系统。 一、单片机内部电路结构 为了更好地理解为什么单片机芯片上会有多组VDD,首先需要了解单片机内部电路结构
    发表于 12-12 07:59

    从代码执行看单片机内存的分配

    是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕! 单片机中PC=0002H,PC在CPU每次向存储器取指或取数时自动加1
    发表于 12-02 07:58

    单片机启动&库函数的构成

    ,由C语言联合体和结构体的特性,内部的地址是基地址累加的,只需要一个寄存器累加固定的偏移量,就能把结构体成员和单片机内的寄存器一一对应起来,这就是寄存器与库函数的联系。 一旦想通寄存
    发表于 11-18 08:15

    第2章 点亮你的LED

    。 1.1 单片机内部资源 在这里所讲到的单片机内部资源,和传统单片机书籍中讲单片机内部结构不同,这里讲到的
    的头像 发表于 10-13 15:52 673次阅读
    第2章  点亮你的LED

    单片机烧录原理是怎样的?辉芒微单片机烧录程序详细步骤讲解

    烧录(Programming)就是把 .hex/.bin 文件里的机器码搬运进单片机片内 Flash 的过程。辉芒微(FMD)单片机内部有一块 自举 BootROM,上电时会先跑这段程序;如果检测
    的头像 发表于 09-17 16:14 3241次阅读
    <b class='flag-5'>单片机</b>烧录原理是怎样的?辉芒微<b class='flag-5'>单片机</b>烧录程序详细步骤讲解

    单片机用什么封装

    单片机封装是将芯片内部电路与外部引脚连接并包裹保护的结构,不仅影响单片机的安装方式、适用场景,还与电路设计的紧凑性、散热性能密切相关。不同封装类型各有特点,适配从简单电路到复杂系统的多
    的头像 发表于 08-01 13:47 1629次阅读

    单片机采用什么电流控制

    单片机作为电子系统的控制核心,其电流控制涉及自身工作电流管理与外部设备电流驱动两个层面。由于单片机内部电路的特性,其自身工作电流较小,而控制外部设备时需通过特定电路实现电流放大与调节,以适配不同负载
    的头像 发表于 07-30 10:07 919次阅读

    单片机怎么烧程序

    单片机烧程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是单片机应用开发中不可或缺的环节。无论是简单的灯光控制程序,还是复杂的工业控制算法,都需要通过烧
    的头像 发表于 07-23 11:47 2088次阅读

    如何判断感应电机内部结构的故障?

    感应电机作为现代工业中应用最广泛的动力设备之一,其内部结构复杂,故障类型多样。准确判断感应电机内部结构的故障,不仅关系到设备的正常运行,还直接影响生产效率和安全性。本文将详细介绍感应电机内部结构故障
    的头像 发表于 07-06 07:11 1407次阅读

    图解单片机功能与应用(完整版)

    从基础知识的介绍出发,图文并茂,直观、系统地介绍了单片机内部结构、工作原理和应用技巧。全书分为10章,内容包括51单片机编程资源图解、51单片机指令系统图解、汇编语言程序设计图解、输
    发表于 06-16 16:52

    RJ45插座:内部结构:运用场景!

    一、内部核心结构 ‌触点系统‌ ‌8P8C设计‌:8个金属触点(镀金磷青铜材质)与插槽弹性接触,插入时通过锁扣结构固定插头,确保信号导通稳定性 ‌差分信号传输‌:触点按T568A/B标准排列,双绞线
    的头像 发表于 06-06 08:49 1085次阅读
    RJ45插座:<b class='flag-5'>内部结构</b>:运用场景!