处理器/DSP
单片机是控制电子产品的大脑
现如今,我们生活中的许多电器都使用了单片机。例如:手机、电视机、冰箱、洗衣机、以及按下开关,LED 就闪烁的儿童玩具。那么,单片机在这些电器中究竟做了些什么呢?
单片机是这些电器动作的关键,是指挥硬件运行的。例如:接收按钮或按键的输入信号,按照事先编好的程序,指挥马达和 LCD 的外围功能电路动作。
那么,单片机是如何构成的呢?
单片机是由 CPU、内存、外围功能等部分组成的。如果将单片机比作人,那么 CPU 是负责思考的,内存是负责记忆的,外围功能相当于视觉的感官系统及控制手脚动作的神经系统。
尽管我们说 CPU 相当于人的大脑,但是它却不能像人的大脑一样,能有意识的、自发的思考。CPU 只能依次读取并执行事先存储在内存中的指令组合(程序)。当然 CPU 执行的指令并不是“走路”、“讲话”等高难度命令,而是一些非常简单的指令,象从内存的某个地方“读取数据”或把某个数据“写入”内存的某个地方,或做加法、乘法和逻辑运算等等。然而这些简单指令的组合,却能实现许多复杂的功能。
会思考的 CPU
让我们从 CPU 的构成来了解它的作用吧。
* CPU 的作用 *
程序计数器
CPU 读取指令时需要知道要执行的指令保存在内存的什么位置,这个位置信息称为地址(相当于家庭住址)。程序计数器(PC)就是存储地址的寄存器。通常,PC 是按 1 递增设计的,也就是说,当 CPU 执行了 0000 地址中的指令后,PC 会自动加 1,变成 0001 地址。每执行一条指令 PC 都会自动加 1,指向下一条指令的地址。可以说,PC 决定了程序执行的顺序。
指令解码电路
指令解码电路是解读从内存中读取的指令的含义。运算电路是根据解码结果操作的。确切地讲,指令解码电路就是我们在“数字电路入门(2)”中学过的解码电路,只不过电路结构稍微复杂些,所以,指令解码电路的工作原理就是从被符号化(被加密)的指令中,还原指令。
运算电路
运算电路也称为 ALU(Arithmetic and Logic Unit),是完成运算的电路。能进行加法、乘法等算术运算、也能进行 AND、OR 、BIT-SHIFT 等逻辑运算。运算是在指令解码电路的控制下进行的。通常运算电路的构成都比较复杂。
CPU 内部寄存器
CPU 内部寄存器是存储临时信息的场所。有存储运算值和运算结果的通用寄存器,也有一些特殊寄存器,比如存储运算标志的标志寄存器等。也就是说,运算电路进行运算时,并不是在内存中直接运算的,而是将内存中的数据复制到通用寄存器,在通用寄存器中进行运算的。
CPU 的工作原理
让我们通过一个具体运算 3+4,来说明 CPU 的操作过程吧。
假设保存在内存中的程序和数据如下。
步骤 1
当程序被执行时,CPU 就读取当前 PC 指向的地址 0000 中的指令(该操作称为指令读取)。经过解码电路解读后,这条指令的意思是“读取 0100 地址中的内容,然后,保存到寄存器 1”。于是 CPU 就执行指令,从 0100 地址中读取数据,存入寄存器 1。
寄存器 1:0→3(由 0 变为 3)
由于执行了 1 条指令,因此,PC 的值变为 0001
步骤 2
由于 PC 的值为 0001,因此 CPU 就读取 0001 地址中的指令,经解码电路解码后,CPU 执行该指令。然后 PC 再加 1。
寄存器 2:0→4(由 0 变为 4)
PC:0001→0000
步骤 3
由于 PC 的值为 0002,因此 CPU 从 0002 地址中读取指令,送给指令解码电路。解码结果是:将寄存器 1 和寄存器 2 相加,然后将结果存于寄存器 1。
寄存器 1:3→7
PC:2→3
于是 3+4 的结果 7 被存于寄存器 1,加法运算结束。CPU 就是这样,依次处理每一条简单的指令。
能记忆的内存
内存是单片机的记忆装置,主要记忆程序和数据,大体上分为 ROM 和 RAM 两大类。
ROM
ROM(Read Only Memory)是只读内存的简称。保存在 ROM 中的数据不能删除,也不会因断电而丢失。ROM 主要用于保存用户程序和在程序执行中保持不变的常数。
大多数瑞萨(Renesas)的单片机都用闪存作为 ROM。这是因为闪存不仅可以象 ROM 一样,即使关机也不会丢失数据,而且还允许修改数据。
RAM
RAM(Random Access Memory)是可随机读 / 写内存的简称。可以随时读写数据,但关机后,保存在 RAM 中的数据也随之消失。主要用于存储程序中的变量。
在单芯片单片机中(*1),常常用 SRAM 作为内部 RAM。SRAM 允许高速访问,但是,内部结构太复杂,很难实现高密度集成,不适合用作大容量内存。
除 SRAM 外,DRAM 也是常见的 RAM。DRAM 的结构比较容易实现高密度集成,因此,比 SRAM 的容量大。但是,将高速逻辑电路和 DRAM 安装于同一个晶片上较为困难,因此,一般在单芯片单片机中很少使用,基本上都是用作外围电路。
(*1)单芯片单片机是指:将 CPU,ROM,RAM,振荡电路,定时器和串行 I/F 等集成于一个 LSI 的微处理器。单芯片单片机的基础上再配置一些系统的主要外围电路,而形成的大规模集成电路称为系统 LSI。
为何要使用单片机
为什么很多电器设备都要使用单片机呢?
让我们用一个点亮 LED 的电路为例,来说明。如下图所示,不使用单片机的电路是一个由 LED,开关和电阻构成的简单电路。
* 不安装单片机的 LED 电路 *
使用单片机的电路如下图所示。
* 安装单片机的 LED 电路图 *
很显然,使用单片机的电路要复杂得多,而且设计电路还要花费精力与财力。好象使用单片机并没有什么优点。但是,现在下结论还为时尚早。
如果我们让这个电路做一些比较复杂的操作,会怎么样呢。例如:如果希望 LED 在按下开关后,经过一段时间再点亮或熄灭,那么,对于安装有单片机的电路来说,只需更改单片机中的程序就可以了,并不需更改原电路。另一方面,对于没有单片机的电路来说,就必须在元电路中加入定时器 IC,或者用标准逻辑 IC 和 FPGA 构成逻辑电路,才能实现这个功能。
也就是说,在更改和添加新功能时,带有单片机的电路显然更加容易实现。这正是电器设备使用单片机的原因。单片机可真是个方便的东西哦!
责任编辑:pj
全部0条评论
快来发表一下你的评论吧 !