本篇解说作为嵌入式体系开发技术人员所必需具有的基础知识。这些基础知识是硬件和软件技术人员都应该把握的共通技术知识。有了电子电路和数字电路的基础知识,就能够开端学习嵌入式体系的中心元件-单片机。本文咱们将为咱们介绍单片机的基础知识。
在单片机入门系列讲座中,首要学习单片机的根本构成和作业原理、以及外围功用电路,然后,应战一个实践单片机的运转。
单片机是操控电子产品的大脑
现如今,咱们日子中的许多电器都运用了单片机。例如:手机、电视机、冰箱、洗衣机、以及按下开关,LED就闪耀的儿童玩具。那么,单片机在这些电器中终究做了些什么呢?
单片机是这些电器动作的要害,是指挥硬件运转的。例如:接纳按钮或按键的输入信号,依照事前编好的程序,指挥马达和LCD的外围功用电路动作。
那么,单片机是怎么构成的呢?(图1)
单片机是由CPU、内存、外围功用等部分组成的。假如将单片机比作人,那么CPU是担任考虑的,内存是担任回忆的,外围功用相当于视觉的感官体系及操控四肢动作的神经体系。
图1:单片机的构成要素
虽然咱们说CPU相当于人的大脑,可是它却不能像人的大脑相同,能有认识的、自发的考虑。CPU只能顺次读取并履行事前存储在内存中的指令组合(程序)。当然CPU履行的指令并不是“走路”、“说话”等高难度指令,而是一些十分简略的指令,象从内存的某个当地“读取数据”或把某个数据“写入”内存的某个当地,或做加法、乘法和逻辑运算等等。可是这些简略指令的组合,却能完结许多杂乱的功用。
会考虑的CPU
让咱们从CPU的构成来了解它的效果吧。(图2)
图2: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的操作过程吧。
假定保存在内存中的程序和数据如下。
地址 指令
(实践上指令是用二进制码表明的,为了便利了解,咱们用文字阐明)
0000 读取0100地址的内存,存入寄存器1
0001 读取0101地址的内存,存入寄存器2
0002 将寄存器1与寄存器2的值相加,成果存入寄存器1
~
地址 数据
0100 3
0101 4
◇过程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→0002
◇过程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的电路为例,来阐明。如图3所示,不运用单片机的电路是一个由LED,开关和电阻构成的简略电路。
图3:不装置单片机的LED电路
运用单片机的电路如图4所示。
很明显,运用单片机的电路要杂乱得多,并且规划电路还要花费精力与财力。好象运用单片机并没有什么长处。可是,现在下结论还为时尚早。
假如咱们让这个电路做一些比较杂乱的操作,会怎么样呢。例如:假如期望LED在按下开关后,通过一段时间再点亮或平息,那么,关于装置有单片机的电路来说,只需更改单片机中的程序就能够了,并不需更改原电路。另一方面,关于没有单片机的电路来说,就必须在元电路中加入定时器IC,或许用规范逻辑IC和FPGA构成逻辑电路,才干完结这个功用。
也便是说,在更改和增加新功用时,带有单片机的电路明显愈加简略完结。这正是电器设备运用单片机的原因。单片机可真是个便利的东西哦!
图4:装置单片机的LED电路图