前面在介绍嵌入式系统时已经提到,微控制器(MCU)是构建嵌入式系统的一种典型的嵌入式处理器芯片。这个芯片内部集成了构成小型计算机系统的基本功能部件。本书将以8051微控制器(MCU,单片机)为原型,介绍MCU的内部结构,如图1.4所示。
图1.4 8051单片机内部简化结构
从图中可知,其主要功能模块包括:中央处理单元、程序存储器、随机访问存储器、中断系统、计数器/定时器、外设接口模块,以及连接各个功能部件的总线。
中央处理单元是单片机系统的大脑和中枢,它可以完成以下基本功能:
(1)与不同地址空间的不同类型的存储器交换信息。通过对存储器的读和写操作,完成CPU和存储器的信息交换。
(2)执行逻辑和算术指令。基本的指令包括:加/减运算、逻辑按位或运算、逻辑按位与运算、逻辑按位异或运算、移位运算等。
程序存储器用于保存将要执行的程序代码。例如,8051单片机内提供的程序存储器采用了非易失性工艺,即一旦把将要运行的程序“烧写”(固化)到程序存储器中,它就会一直存在,而不依赖于单片机处于上电还是断电的状态。只有将新的程序“烧写”(固化)到程序存储器中,才会覆盖掉上一次“烧写”(固化)在程序存储器中的程序。
从工艺上来说,大多数单片机的程序存储器采用Flash工艺,极少数的单片机采用一次可编程(One-Time-Programmable,OTP)工艺。当采用Flash工艺时,设计者可以多次修改和固化程序;当采用OTP工艺时,一旦程序固化,设计者就再也没有机会修改程序。
随机访问存储器(Random Access Memory,RAM)用于“暂存”程序中临时需要保存的数据,它采用易失性工艺,即8051单片机处于断电状态时,RAM内的数据将全部丢失。STC 8051单片机提供了用于不同目的的RAM,包括片内基本RAM、片内扩展RAM以及可以通过并行总线扩展的外部RAM。通过使用不同的指令,访问这些RAM资源。
中断系统用于CPU对紧急事件的处理进程。当CPU正在执行当前程序时,若外部设备发出了紧急事件的请求(即通常所说的中断请求信号),如果CPU允许立即处理当前紧急事件,则CPU暂时停止运行(打断)当前正在执行的程序,并对紧急事件进行处理。这一过程就是通常所说的用于处理紧急事件的程序,即中断服务程序。
当CPU开始处理外部紧急事件时,中断系统会通知外部设备CPU已经开始处理紧急事件。这样,外部设备会做出相应的判断。
在单片机中,定时器/计数器单元是最基本的功能单元之一。通过这个单元,可以对不同的事件进行同步。例如,当定时器中的计数值到达预先设置的初值时,就会产生定时器中断信号,通过这个信号,外部设备可以做出相应的判断。
尽管STC是全球最大的8051 MCU生产厂商,它提供的不同系列的8051单片机的外部接口模块也不尽相同。但是,它提供了通用的输入/输出(General Purpose Input&Output,GPIO)和RS-232接口。
根据产品的应用范围,STC公司不同系列的8051单片机还提供了一些个性化的外设。例如,STC15系列单片机中就集成了模拟-数字转换器(Analog to Digital Converter,ADC)模块。
总线是一组相关逻辑信号的集合。目前大多数计算机系统都是基于总线的结构。总线包括:控制总线、地址总线和数据总线。
对于8051单片机系统而言,总线分为内部总线和外部总线,其中:
(1)内部总线用于连接芯片内各个模块单元,如图1.4所示。
(2)外部总线用于将外设连接到单片机上。STC公司的8051单片机提供了外部并行总线,通过该总线可以为8051单片机扩展外部存储器资源,也可以同时连接多个外部设备。通过外部并行总线,可以显著地提高8051单片机内CPU访问外部设备的速度和吞吐量。
思考与练习1-6: 说明在8051单片机中所包含的主要功能单元,以及它们各自实现的任务。
思考与练习1-7: 说明在8051单片机内,程序存储器所采用的工艺以及随机访问存储器所采用的工艺。