AVR单片机应用技术项目化教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.1 单片机组成

在20世纪60年代末与70年代初,微型计算技术取得长足进步,尤其是袖珍型计算器得到普遍应用。作为研制计算器芯片的成果,1971年11月,美国Intel公司首先推出了4位微处理器Intel 4004,它实现了将4位并行运算的单片处理器、运算器和控制器的所有元件全部集成在一片MOS大规模集成电路芯片上,这是第一片微处理器。从此以后,微处理器开始迅速发展。在微处理器的发展过程中,人们试图在高度集成的微处理器芯片中增加存储器、I/O接口电路、定时/计数器、串行通信接口、中断控制、系统时钟及系统总线,甚至A/D、D/A转换器等,以提高其性能。由此产生了各种具有不同功能的微处理器,称为微控制器(Microcontroller),亦称为“单片机”,如图1-2所示。

图1-2 单片机原理

1.CPU

CPU是微处理器的核心部件,由运算器和控制器所构成,根据其结构和所采用的技术不同,微处理器的特点和处理能力亦有不同。

CPU通过ROM程序存储器读取指令,并将指令送至指令译码器,经指令译码后执行相应的操作,CPU运算所需的数据及运算结果存于RAM数据存储器中。

(1)CICS复杂指令集

长期以来,计算机性能的提高往往通过增加硬件的复杂性来获得。计算机的内部功能器件越多,功能越强大,指令越多编程越方便,寻址方式越多,芯片使用更灵活。复杂的指令系统加上众多灵活的寻址方式,使得计算机能获得更为强大的功能。为实现某种特殊操作,甚至设计有专门的指令,这种计算机被称之为复杂指令集计算机(Complex Instruction Set Computer-CISC)结构。CISC复杂指令集的特点是指令多,寻址功能强大,机器的执行过程更为简单,程序编写简单。但芯片内部的结构较复杂。

(2)RSCI精简指令集

采用复杂指令系统的计算机有着较强的处理高级语言的能力,这对提高计算机的性能有益。随着计算机技术的深入发展,日趋庞杂的指令系统已不易实现,而且还可能降低系统性能。1975年IBM公司设在纽约Yorktown的Thomas I Wason研究中心组织力量研究指令系统的合理性问题,1979年以帕特逊教授为首的一批科学家也开始在美国加州大学伯克莱分校开展这一研究。研究结果表明,CISC存在许多缺点。首先,各种指令的使用率相差悬殊,一个典型程序的运算过程所使用的80%指令,只占一个处理器指令系统的20%。事实上最频繁使用的指令是“取、存、加”这些最简单的指令。这样一来,长期致力于复杂指令系统的设计,实际上是设计一种在实践中难以用得上的指令系统,同时,复杂的指令系统必然带来结构的复杂性,这不但增加了设计的时间与成本,还容易造成设计失误。在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差。因而,针对CISC的这些弊病,帕特逊等人提出了精简指令的设想,即指令系统应当只包含那些使用频率很高的少量指令,并提供一些必要的指令以支持操作系统和高级语言。按照这个原则发展而成的计算机被称为精简指令集计算机RISC(Reduced Instruction Set Computer)结构。RISC结构计算机特点是指令数量少,均为常见的指令,计算机硬件不像CISC那么复杂。

(3)单时钟周期CPU

CPU在每一个时钟脉冲驱动下执行一条指令,称为单时钟周期CPU。在RISC精简指令集CPU中,精简了指令的执行过程和指令的寻址方式,这样指令的寻址、译码和操作变得简单,也使CPU能在单个钟脉冲周期执行一条指令。通常,为了提高指令的执行效率,将一条指令分成若干执行过程,每个时钟脉冲可以完成一条指令的其中一个过程。

(4)多时钟周期CPU

在多时钟周期CPU中执行一条指令需要多个时钟周期,如MCS-51单片机,每执行完一条单指令至少需要12个时钟周期,对于这种单片机而言如果CPU工作时钟晶振为12M,执行一条NOP指令需要12个振荡周期,执行指令所需要的时间为1μs。

(5)流水线执行指令

将一条指令的执行分成若干阶段,每个时钟脉冲指令完成一个阶段操作。如图1-3,将一条指令分成取指、译码、执行3个阶段。第一个时钟脉冲期间,执行第1条指令的“取指令”操作,第2个时钟脉冲期间执行第1条指令的“译码”并取执行第2条指令的“取指令”操作,第3个时钟脉冲期间执行第1条指令的“执行”操作,执行第2条指令的译码操作,执行第3条指令的“取指令”操作。可见经过3个时钟周期后,第1条指令执行完毕,第2条指令执行了2个工步,第3条指令执行了1个工歩。当指令周而复始地执行下去,可以看出, CPU在每个时钟周期里同时进行多条指令的多个操作,上一步的操作结果被下一步使用,下一步的时钟执行结果要依赖于上一步的执行结果,这种现象与工业中的生产“流水线”类似。可见应用了流水线技术的CPU能极大地提高CPU指令执行速度。

图1-3 指令流水线

(6)CPU体系结构

采用CISC结构的单片机数据和程序存储在同一个存储空间,采用统一编址方对存储器地址进行编址,CPU数据线和程序线分时复用,这就是所谓冯·诺伊曼体系结构。这种它的指令丰富,功能较强,但取指令和取数据不能同时进行,速度受限。

采用RISC结构的单片机数据和程序分别存放于不同的存储器中,采用独立编址方式,CPU的数据线和指令线分离,这就是哈佛体系结构。哈弗结构中取指令和取数据可同时进行,执行效率更高,速度亦更快。同时,这种单片机指令多为单字节,程序存储器的空间利用率大大提高,有利于实现超小型化。

CISC结构的单片机有Intel的8051系列、Motorola的M68HC系列、Atmel的AT89系列、台湾Winbond(华邦)的W78系列、荷兰Philips的PCF80C51系列等;属于RISC结构的有Microchip公司的PIC系列、Atmel的AVR系列、韩国三星公司的KS57C系列4位单片机、台湾义隆的EM-78系列等。一般来说,控制关系较简单的小家电,可以采用RISC型单片机;控制关系较复杂的场合,如通信产品、工业控制系统应采用CISC单片机。

2.存储器

存储器是计算机系统的核心部件之一,单片机内部通常集成了两种类型的存储器,一种是只读存储器ROM(Read Ony Memory),在程序执行过程中,通常只能进行读操作不能进行写操作,用以存放程序代码和常数表格,断电后数据仍旧保存。另一个是随机访问存储器RAM (Radom Access Memory),在程序执行过程中可以随机地进行读和写操作,掉电后数据消失。

随着存储器制造技术和工艺的发展,程序存储器大致经历了以下几个发展历程:

(1)Mask ROM

Mask ROM即掩模ROM,其编程只能由制造商通过半导体掩模技术完成,用户无法对其进行改写,所以对用户而言,它是严格意义上的只读存储器,适用于有固定程序且大批量生产的产品中。

(2)OTP ROM

一次性可编程ROM(One Time Programmable ROM),用户可通过专门设备对其一次性写入程序,此后便不能改写。这种程序存储器可靠性很高,适合于存放已调试成功的用户程序,投入规模生产,但调试阶段不宜用。

(3)EPROM

可擦除可编程ROM(Erasable Programmable ROM),其典型外观标志是芯片上有一个紫外线擦除窗口。这种存储器编程使用一定的直流电源(如+21V电压),而擦除则用紫外线灯光照射芯片窗口(一般需15~30分钟),重新编程后用不透明标签将窗口贴覆遮盖住即可。

(4)EEPROM

EEPROM(Electrically Erasable Programmable ROM)电可擦除可编程存储器,是较新型只读存储器,编程速度较快且可在线改写,可在较低压单电源(3~5V)下进行擦除、写入和读出操作,可以用来存放程序或非易失性数据。

(5)FLASH Memory

闪速存储器,是新型半导体存储器,其集成度、速度和易用性等远非传统ROM可比。可在较低压单电源(3~5V)下进行擦除、写入和读出操作,这种存储器可以按字节擦除还可以按多个字节的块擦除,访问速度快,理论上可以进行无限次擦除操作,是单片机中集成的主流存储器,可以用来存放程序或非易失性数据。

3.其他功能部件

在单片机中,除CPU、存储器以外的部件习惯上均统称为其他功能部件。不同种类及型号的单片机其CPU技术不同,存储器大小也不同,所集成的功能部件更有所不同,主要包含以下几个功能部件:

(1)通用I/O口

输入、输出端口,简称通用I/O口(Input/Output Port)。通用I/O口是用户可以使用的一些芯片引脚,其功能不固定,可以编程作为输入口使用,也可以作为输出口使用。

(2)中断系统

“中断”意即打断的意思,指计算机中的其他功能部件随机打断CPU正在执行的程序操作,转而去执行该功能部件所请求的操作,“中断系统”是处理中断操作的部件,是计算机中重要的组成部分。“中断”使得计算机具有事件的实时处理能力,提高其响应速度,提高系统可靠性。

(3)定时器

“定时器”由一个计数器组成,在CPU工作脉冲作用下进行加法或减法计数,当计数脉冲超过计数器寄存器规定长度时会产生计数溢出并向CPU的中断系统申请定时器溢出中断。将计数器寄存器的计数值乘以每一个输入时钟脉冲周期即可得到定时器定时时间,改变计数器寄存器计数初始值即可对定时时间长短进行编程。

(4)串行通信口

单片机与单片机、PC机及其他设备之间进行通信时可以通过串行口进行数据的传输,即数据比特位排成一串在时钟作用下通过数据线逐一传输到目的机。为了便于工业中的使用,国际上定义了RS-232、RS-485、IIC、SPI等多种串行通信标准。

以上所介绍的是单片机所必需的功能部件,有的单片机还集成了A/D、PWM发生器等。