2.1 单片机的基本组成
2.1.1单片机的基本组成结构
单片机嵌入式系统的核心部件是单片机,其结构特征是将组成计算机的基本部件集成在一块晶体芯片上,构成一片具有特定功能的单芯片计算机—单片机。一片典型单片机芯片内部的基本组成结构如图 2-1 所示。
从单片机的基本组成可以看出,在一片(单片机)芯片中,集成了构成一个计算机系统的最基本的单元:如 CPU、程序(指令)存储器、数据存储器、各种类型的输入/输出接口等。CPU 同各基本单元通过芯片内的内部总线(包括数据总线、地址总线和控制总线)连接。
一般情况下, 内部总线中的数据总线宽度(或指 CPU 的字长)也是标定该单片机等级的一个重要指标。一般讲,低档单片机的内部数据总线宽度为 4 位(4 位机),普通和中档单片机的内部数据总线宽度一般为 8 位(8 位机),高档单片机内部数据总线宽度为 16 或 32 位。内部数据总线宽度越宽,单片机的处理速度也相应的提高,功能也越强。
2.1.2 单片机基本单元与作用
下面分别对单片机芯片中所集成的各个组成部分予以简要介绍。
1. MCU 单元(Microcontroller Unit)
MCU 单元部分包括了 CPU、时钟系统、复位、总线控制逻辑等电路。CPU 是按照面向测控对象、嵌入式应用的要求设计的,其功能有进行算术、逻辑、比较等运算和操作,并将结果和状态信息与存储器以及状态寄存器进行交换(读/写)。时钟和复位电路实现上电复位、信号控制复位,产生片内各种时钟及功耗管理等。总线控制电路则产生各类控制逻辑信号,满足 MCU 对内部和外部总线的控制。其中,内部总线用以实现片内各单元电路的协调操作和数
据传输,而外部总线控制用于单片机外围扩展的操作管理。
2. 片内存储器
单片机的存储器一般分成程序存储器和数据存储器,它们往往构成相互独立的两个存储空间,分别寻址,互不干扰。在这一点上,与通用计算机系统的结构是不同的。通用计算机系统通常采用“Von-Neumann”结构,在这种结构体系中采用了单一的数据总线用于指令和数据的存取,因此数据和指令是存放在同一个存储空间中的,CPU 使用同一条数据总线与数据和程序进行交换,在计算机原理课程中介绍的 8086/8088。而单片机的内部结构通常用“Harvard”体系结构,在这种体系中采用分开的指令和数据总线,以及分开的指令和数据地址空间。单片机采用 Harvard 双(多)总线结构的优点是,指令和数据空间完全分开,分别通过专用的总线同 CPU 交换,可以实现对程序和数据的同时访问,提高了 CPU 的执行速度和数据的吞吐率。
早期的单片机,如典型的 8031 单片机,在片内只集成少量的数据存储器 RAM(128/256字节),没有程序存储器。因此程序存储器和大容量的数据存储器需要进行片外的扩展,增加外围的存储芯片和电路,这给构成嵌入式系统带来了麻烦。后期的单片机则在片内集成了相当数量的程序存储器,如与 8031 兼容的 AT89S51、AT89S52 在片内集成了 4K/8K 的 Flash程序存储器。而现在新型的单片机,则在片内集成了更多数量和更多类型的存储器。如 AVR系列的 ATmega16 在片内就集成了 16K 字节的 Flash 程序存储器,1K 字节的 RAM 数据存储器,以及 512 字节的 EEPROM 数据存储器,这就大大方便了应用。
3.程序存储器
程序存储器用于存放嵌入式系统的应用程序。由于单片机嵌入式系统的应用程序在开发调试完成后不需要经常改变,因此单片机的程序存储器多采用只读型 ROM 存储器,用于永久性的存储系统的应用程序。为适应不同产品、用户和不同场合的需要,单片机的程序存储器有以下几种不同形式:
①ROMLess 型。该种形式的单片机片内没有集成程序存储器,使用时必须在单片机外部扩展一定容量的 EPROM 器件。因此,使用这种类型的单片机就必须使用并行扩展总线,增加芯片,增加了硬件设计的工作量。
②EPROM 型。单片机片内集成了一定数量的 EPROM 存储器用于存放系统的应用程序。这类单片机芯片的上部开有透明窗口, 可通过约 15 分钟的紫外线照射来擦除存储器中的程序,再使用专用的写入装置写入程序代码和数据,写入次数一般为几十次。
③MaskROM 型。使用种类型的单片机时,用户要将调试好的应用程序代码交给单片机的生产厂家,生产商在单片机芯片制造过程的掩膜工艺阶段将程序代码掩膜到程序存储器中。这种单片机便成为永久性专用的芯片,系统程序无法改动,适合于大批量产品的生产。
④OTPROM 型。这种类型的单片机与 MaskROM 型的单片机有相似的特点。生产商提供新的单片机芯片中的程序存储器可由用户使用专用的写入装置一次性编程写入程序代码,写入后也无法改动了。这种类型的单片机也是适用于大批量产品的生产。
⑤FlashROM 型。这是一种可供用户多次擦除和写入程序代码的单片机。它的程序存储器采用快闪存储器(FlashMemory),现在可实现大于 1 万次的写入操作。内部集成 FlashROM 型单片机的出现,以及随着 Flash 存储器价格的下降,使得使用FlashROM 的单片机正在逐步淘汰使用其它类型程序存储器的单片机。由于 FlashROM 可多次擦除(电擦除)和写入的特性,加上新型的单片机又采用了在线下载 ISP 技术(In SystemProgram--既无需将芯片从系统板上取下, 直接在线将新的程序代码写入单片机的程序存储器中。不仅为用户在嵌入式系统的设计、开发和调试带来了极大的方便,而且也适用于大批量产品的生产,并为产品的更新换代提供了更广阔的空间。
4. 数据存储器
单片机在片内集成的数据存储器一般有两类:随机存储器 RAM 和电可擦除存储器EEPROM。
①随机存储器 RAM。在单片机中,随机存储器 RAM 是用来存储系统程序在运行期间的工作变量和临时数据的。一般在单片机内部集成一定容量 (32 字节至 512 字节或更多)的 RAM。
这些小容量的数据存储器以高速 RAM 的形式集成在单片机芯片内部,作为临时的工作存储器使用,可以提高单片机的运行速度。在单片机中,常把内部寄存器(如工作寄存器、I/O 寄存器等)在逻辑上也划分在 RAM 空间中,这样即可以使用专用的寄存器指令对寄存器进行操作,也可将寄存器当做 RAM 使用,为程序设计提供了方便和灵活性。对一些需要使用大容量数据存储器的系统,就需要在外部扩展数据存储器。这时,单片机就必须具备并行扩展总线的功能,同时外围也要增加 RAM 芯片和相应的地址锁存、地址译码等电路。这不仅增加了硬件设计的工作量,产品的成本,同时降低了系统的可靠性。
目前许多新型单片机片内集成的 RAM 容量越来越大。片内集成的 RAM 容量增加,不仅减少了在片外扩展 RAM 的必要性,提高了系统的可靠性,而且更重要的是,使得单片嵌入式系统的软件设计思想和方法有了许多的改变和发展,给编写系统程序带来很大的方便,更加有利于结构化、模块化的程序设计。
②电可擦除存储器 EEPROM。一些新型的单片机,在芯片中还集成了电可擦除存储器型EEPROM 的数据存储器。这类数据存储器用于存放一些永久或比较固定的系统参数,如放大倍率、电话号码、时间常数等。EEPROM 的寿命大于 10 万次,具有掉电后不丢失数据的特点,并且通过系统程序可以随时修改,这些特性都给用户设计开发产品带来极大的方便和想象空间。
5. 输入/输出(I/O)端口
为了满足嵌入式系统“面向控制”的实际应用需要,单片机提供了数量众多、功能强、使用灵活的输入/输出端口,简称 I/O。端口的类型可分为以下几种类型:
① 并行总线输入/输出端口(并型 I/O 口)。用于外部扩展和扩充并行存储器芯片或并行I/O 芯片等使用,包括数据总线、地址总线和读写控制信号等。
② 通用数字 I/O 端口。用于外部电路逻辑信号的输入和输出控制。
③ 片内功能单元的输入/输出端口。如:定时器/计数器的计数脉冲输入,外部中断源信号的输入等。
④ 串行 I/O 通信口。用于系统之间或与采用专用串行协议的外围芯片之间的连接和交换数据。如:UART 串行接口(RS-232),I2C 串行接口,SPI 串行接口,USB 串行口等。
⑤ 其它专用接口。一些新型的单片机还在片内集成了某些专用功能的模拟或数字的 I/O端口,如 A/D 输入、D/A 输出接口,模拟比较输入端口,脉宽调制(PWD)输出端口等。更有的单片机还将 LCD 液晶显示器的接口也集成到单片机芯片中了。为了减少芯片引脚的数量,又能提供更多性能的 I/O 端口给用户使用,大多数的单片机都采用了 I/O 端口复用技术,既某一端口,它即可作为一般通用的数字 I/O 端口使用,也可作为某个特殊功能的端口使用,用户可根据系统的实际需要来定义使用。这样就为设计开发提供了方便,大大拓宽了单片机的应用范围。
6. 操作管理寄存器。
操作管理寄存器也是单片机芯片中的重要组成部分之一。它的功能是管理、协调、控制和操作单片机芯片中的各功能单元的使用和运行。这类寄存器的种类有:状态寄存器、控制寄存器、方式寄存器、数据寄存器等等。各种寄存器的定义、功能、状态、互之间的关系和应用相对比较复杂,而且往往同相应的功能单元的使用紧密相关,因此,用户应非常熟悉各个寄存器的作用以及如何与不同的功能单元的配合使用,这样才能通过程序指令对其编程操作,以实现对单片机芯片中各种功能的正确使用,充分发挥单片机的所有特点和性能,设
计和开发出高性能、低成本的电子产品。可以这样讲,当你对某个单片机芯片中各个操作管理寄存器的作用、功能、定义非常透彻的掌握了,那么你已经完全精通和能够熟练使用该单片机了。