单片机/嵌入式体系介绍

时间:2020-12-07 18:59:11

单片机技术概述

在现代生产和生活中,计算机的应用越来越广泛,人们不仅可以使用计算机来处理文档、上网等,而且在我们的CD播放机、日常家电、汽车等里面也有着更多的计算机,当然,这些不再是传统意义上的计算机,而是所谓的嵌入式计算机。在嵌入式计算机家族里面,单片机占有重要的地位,是嵌入式计算机领域的主力军。本章主要介绍单片机的概念、单片机和计算机的区别、单片机的应用场合、主流单片机的特点和单片机的发展方向。

   计算机系统基本上分为两类:第一类是常见的台式计算机,当你跟别人说计算机的时候,别人所理解的通常就是这样一台机器;第二类是嵌入式计算机,这种计算机往往为控制/监控目的而集成到另外的系统中嵌入式计算机在数量上远远超过桌面系统,而这看起来很不明显实际上,在人们的家中可能有几十台的嵌入式计算机,这些计算机可能藏在电视机录像机遥控器移动电话等设备里面本节将着眼于通常的计算机体系结构,这种体系结构对嵌入式计算机和台式机都是适用的台式计算机和嵌入式计算机的基本架构都是一样的粗略地看,两者都有处理器存储器以及一些输入/输出形式两者的主要差别在于用途的不同,而这点体现在它们所使用的软件上,在操作系统对系统资源的协调下,台式计算机可以使用各种应用程序,通过运行这些不同的应用程序,可以让台式机实现各种不同的功能而与此相反,嵌入式计算机通常用于执行某些特殊任务,在专用电子设备上使用一个嵌入式微处理器,其优势在于系统的功能是由软件而非硬件决定的一般情况下,嵌入式计算机系统仅拥有一种特定的应用,并且该应用一直不停地运行嵌入式计算机可能有,也可能没有操作系统,并且它通常不能随意安装新的软件,因为所使用的软件通常已经固化在系统的存储器里面本节先介绍与计算机体系结构有关的一些重要概念,重点介绍与嵌入式计算机系统有关的在此基础上,下一节介绍单片机的基本概念与应用

1.1.1 基本概念

计算机所做的事情,从网页的浏览到打印,都包括对数字的转移和处理,计算机只不过是用来保存转移和改变这些数字的一个系统而已计算机是由软件和硬件的诸多部件组成的其核心部件是用来执行计算机程序的硬件设备———处理器另外,存储器对处理器正在执行的程序进行保存,也对这些程序所操纵的数据进行保存计算机还有存储数据或与外界交换数据的设备

计算机软件控制着计算机的操作和功能计算机中的软件可以分为许多的层,如图2 1所示

单片机/嵌入式体系介绍

2 1 计算机软件的分层结构

处在上述结构最底层的是在计算机刚启动时由处理器运行的程序这些程序将其他硬件子系统初始化到一个已知的状态,并为计算机的正常运行进行配置这种软件由于永久地存储在计算机的内存中而被称作为固件引导程序位于固件中引导程序是由处理器运行的一个特殊程序,它把操作系统从磁盘(或者非易失性存储器网络等)中读取到内存中,以便处理器随后正常运行在台式计算机和工作站中都有这种引导程序,在一些嵌入式计算机中也可能存在在固件之上,由操作系统控制着计算机的操作操作系统对存储器的使用进行组织,对键盘鼠标显示器和磁盘驱动器之类的设备进行读写以及控制操作系统为用户提供接口,以便用户运行应用程序,存取磁盘里的文件系统软件,操作系统也为应用程序提供了一套软件工具通过这种机制,这些应用程序也可以对显示器磁盘驱动器等设备进行访问并不是所有的嵌入式计算机都需要使用操作系统,嵌入式计算机常常运行面向特定任务的简单代码,在这种情况下往往无需使用操作系统,否则反而会带来不必要的麻烦但是在有些场合,如网络路由器,具有复杂人机界面的手持设备等,操作系统提供了必要的软件集成,大大简化了开发过程在嵌入式计算机中,是否需要操作系统,以及操作系统是否有用,实际取决于这一嵌入式计算机的预定用途

在上述结构的最高层是应用软件,应用软件由为计算机提供功能模块的应用程序组成,应用软件层之下的所有软件都被看作系统软件对于嵌入式计算机而言,应用软件和系统软件的概念比较模糊在嵌入式设计中的一个基本原则就是:系统应尽可能地以简单直接的方式达到其目标

1.处理器

处理器是计算机中最为重要的部件,所有的其他部件都以此为中心其实,处理器就是计算机的运算部分,是一个能够以指令序列指定的方式对数据进行操作的电子器件,这里的指令也就是操作码或机器码,指令的序列可以随应用程序而改变,指令的执行序列就是所谓的程序一个给定的处理器可以执行的程序很可能看起来像这样:B04FF7010007早期的计算机编程就是使用这种方式来进行程序设计的人们发现,对于这样的程序难于编写,更难于理解为了使其便于使用,采用了叫做汇编语言的符号,以助记符来代替操作码,汇编语言指令直接等同于机器码指令采用汇编语言编写程序提高了可读性,但是又存在一些问题,因为不同的处理器系列使用不同的汇编语言,虽然看起来有很多地方是一样的,但实际上没有任何两类是相同的不同的汇编语言由于建立在不同的处理器硬件之上,因此具有不同的汇编语法实际上计算机并不能直接理解汇编语言在汇编语言出现的早期,每个指令助记符都是由程序员查找并转换成适当的操作码,虽然代码也是由字符构成的,但是这种转换非常麻烦,并且非常容易出错,为了使编程变得容易,人们使用编译器承担从助记符到操作码转换的功能即使这样,用汇编语言进行编程,直接为处理器编写代码,仍然是相当困难的,特别是编写较大的软件如果要编写较大的软件,就要选择C语言这样的高级语言高级语言使得软件开发更加容易,并且所编写的代码在不同的目标机器之间具有某种程度的可移植性这些高级语言编译器将源代码直接转换成机器的操作码因此,通过使用高级语言编译器,程序员便从必须了解处理器的细节以及直接以机器码编写程序中解脱出来

由于高级语言在编写程序方面的优势,越来越多的人使用高级语言来编写程序,但有些时候程序员还是直接用汇编语言来写程序,为什么呢?因为汇编语言直接对应处理器操作,程序员能够根据实际需要精确地控制处理器的执行,从而发挥计算机硬件的最高性能,这对于嵌入式计算机系统这种资源稀缺,执行时间要求严格的系统来说更为重要更进一步地讲,直接用汇编语言写的代码有时候所需要的代码空间更小,运算速度更快当需要在有限的存储器里装入复杂的软件,并要求软件运行得迅速高效,那汇编语言可能是唯一的选择当然,这需要软件设计师具有相当的经验,否则效果有可能不如汇编器产生的汇编代码使用汇编语言的缺点就是软件难以维护,并且所编写的代码不能移植到其他的处理器现在更多的做法是,C语言代码中内嵌汇编语言,从而达到两全其美的效果

2.系统体系结构

单个处理器是不能完成任何任务的,还需要存储器支撑逻辑以及至少一个I/O设备,用来实现计算机系统与外界之间的数据传输微处理器(microprocessor)通常是在一个单独的集成电路上实现的处理器除了在一些大型超级计算机中存在差异之外,几乎所有的现代处理器都是微处理器,因此,这两个术语经常交替使用,现在普遍使用的微处理器有IntelPentium系列、Motorola/IBMPowerPC以及SunSPARC微处理器有时也指CPU(CentralProcessingUnit,*处理器)

微控制器在单一集成电路中包含了一个处理器存储器以及一些I/O部件,可用于嵌入式系统,连接处理器及其I/O部件的总线也存在于同一集成电路中现有的微控制器种类繁多,51系列到AVR、MSP430系列(本书重点讨论)都内置了I/O,主要面向一些嵌入式应用微控制器通常将它们的存储器集成到芯片上,并且只为外部存储设备提供有限的支持计算机系统的存储器包含了处理器,将要执行的指令及其将要操作的数据计算机系统的存储器从来不会是空的,里面总是有指令,有用数据或者系统启动时所产生的随机无用数据指令由计算机系统从存储器里读取,而数据则可以读出和写入存储器上述形式的计算机结构就是所谓的冯·诺依曼结构,这种体系结构是以其创始人之一约翰··诺依曼的名字命名的几乎现代所有的计算机都是遵循冯·诺依曼体系结构的,很少有例外·诺依曼计算机可以归类为控制流计算机,在这种体系结构中,计算机的执行步骤由程序的顺序控制所管理

·诺依曼计算机的主要特点如下:

数据和指令没有本质区别处理器能够从存储器中给定点处直接开始执行,而它本身却无法得知自该点开始执行的数字序列是指令还是数据如果一个数字由处理器执行,那么它就是指令;如果一个数字由处理器操作,那么它就是数据

数据没有固定含义数据的具体含义取决于在程序控制下如何由微处理器对这些数字进行处理例如,数据0x24可能代表图像中颜色的一个像素的数字,也可能代表文本文档中的一个字符,这对处理器而言没有任何差别

数据和指令共享同一内存,这意味着一个程序的指令序列可以被另外一个程序当作数据来处理计算机的编译器通过在存储器中生成数字序列来建立一个二进制程序对于编译器而言,所编译的程序不过是数据而已,因此,它也就按照数据对其进行处理只有当处理器开始执行这个二进制程序时,它才是一个程序同样,操作系统通过把应用程序指令序列看作是数据,而从磁盘中加载到内存,进而实现上述数据/指令处理程序如图像和文本文件那样被加载到内存,这归功于共享内存空间现有的大多数微处理器都是标准的冯·诺依曼机与这种体系结构相背的主要是哈佛体系结构,其指令和数据具有不同的内存空间这样,每一内存空间里都有各自的地址数据和控制总线这种哈佛体系结构具有很多优点,比如说可以同时取指令和数据,指令字长并不由标准数据单元所决定

3.总 线

所谓总线,就是具有相关功能的信号线的物理集合总线允许在计算机系统的不同部件之间传输电子信号,因此可把信息从一个设备传输到另外一个设备上例如,数据总线是在处理器和组成计算机系统的不同子系统之间传输数据的信号线集合总线的宽度是指用于传输信息的信号线的数目,如一个8位宽总线一次并行传输8位数据

当今的多数微处理器采用了三总线体系结构,分别是地址总线数据总线和控制总线如图2 2所示

单片机/嵌入式体系介绍

2 2 计算机的三总线结构数据总线是双向的,具体的传输方向由处理器决定地址总线传输的是地址信息,这一地址指向微处理器想要访问的内存单元由外部线路来决定指定的内存单元位于哪个外部设备上,并由外部线路来激活该设备,这就是地址解码控制总线携带来自处理器的当前访问状态信息,如它是写操作还是读操作控制总线也将当前访问状态信息返回给处理器,例如地址错误等不同的处理器具有不同的控制线,但有一些控制线是通用的控制总线可能含有一些输出信号,如读有效地址等一个处理器有几条输入控制线,如复位(RESET),一个或多个中断线以及时钟线等

4.处理器操作

处理器能够实现6个基本功能:向系统的内存写入数据或向I/O设备写入数据;从系统的内存读出数据或从I/O设备读出数据;从系统的内存读取指令;执行处理器里数据的内部操作在很多系统中,向内存写入数据在功能上等同于向一个I/O设备中写入数据同样,从系统的内存中读取数据也就等同于从I/O设备中读取数据或者从内存中读取指令这样的外部操作也就是说,处理器对内存和I/O做相同对待处理器的内部数据存储由它的寄存器来完成一个处理器拥有一定数量的寄存器,由这些寄存器来保存处理器正在操作的当前数据处理器从寄存器中存取数据的速度要远远快于外部存储器

5.ALU

ALU(ArithmeticLogicUnit,算术逻辑单元)完成处理器里数据的内部算术操作由处理器读取并执行的指令控制着寄存器和ALU之间的数据流向,进而经由ALU完成操作,通过ALU控制数据的输入一旦收到处理器的指示,ALU就对一个或多个值执行一个操作。ALU所操作的值就是操作数,主要是从两个寄存器里或一个寄存器和一个内存单元中取得。ALU的运算结果可以暂时存储到给定的目标寄存器或者内存单元中。ALU的状态输出表明有关一个ALU操作的任何特殊属性,如结果是否为零或为负,是否溢出或产生进位等有一些处理器还有专门的单元用来进行乘法除法以及移位操作,这样能够提供更快的运算速度

6.寄存器

寄存器是处理器内部的存储器件不同的处理器体系结构之间寄存器的数量差距极大典型的情况是,处理器含有一个或多个累加器所谓的累加器就是可以在其上进行算术操作的寄存器在一些处理器体系结构中,所有的寄存器都具有累加器功能,而在另外一些体系结构中,有些寄存器只用于存储,而具有有限的功能一些处理器具有索引寄存器,能够通过它指向内存空间在一些处理器体系结构中,所有的通用寄存器都可以作为索引寄存器;而在另外一些体系结构中,具有专门的索引寄存器所有的处理器都有一个程序计数器,它跟踪将要被读取并执行的下一条指令在内存中的单元地址所有的处理器都有一个状态寄存器,里面含有反映当前操作状态的各种状态位这些标记可以表明最近一步操作的结果是否为零或为负,是否产生了进位,是否接受一个中断等有些处理器里还有一个或多个控制寄存器,里面包含了影响处理器操作的配置位,以及各种内部子系统的操作模式许多外部设备也有一些寄存器,这些寄存器控制着外部设备的操作或者包含外部设备的操作结果这些外部设备的寄存器通常被映射到处理器的地址空间之内处理器通常所说的8、16、32位或者64,是指它们的寄存器的位宽用得最多的是8位处理器,它们被广泛应用于大量简单的控制和监控应用中当然现在16、32位的嵌入式处理器也越来越广泛地被应用

7.堆 栈

堆栈通常作为外部存储器的临时存放地,处理器能够把一个来自寄存器的数据压入堆栈保存起来以备后用通过出栈,处理器可以把该值从堆栈中取出来返回给寄存器大多数处理器都有一个堆栈指针,指向堆栈中的下一个空闲单元有些处理器实现了不止一个堆栈,因此也就有多个堆栈指针大多数堆栈沿着内存由高地址区向低地址区方向增长当处理器在堆栈中对一个值进行压入/弹出操作时,堆栈指针就自动地递减以指向下一个空闲单元

8.中 断

中断是处理器暂停执行当前程序,以便能够处理已发生的某些事件的技术这些事件可能是来自外部设备的一个错误,或者仅仅是I/O设备已经完成上一个任务而等待下一个新任务中断技术大大减轻了处理器不断检查I/O设备是否需要服务的负荷,使得处理器可以持续进行其他任务I/O设备需要处理器介入时,它就会发出一个中断输入来通知处理器

在一些处理器中,中断可被赋予不同的优先级,因此能够对中断处理器的不同事件指派不同的重要性正服务于低优先级中断的处理器可以暂停当前任务而为高优先级中断服务当然,如果此时有更低优先级的中断产生,处理器将忽略此中断直至它完成当前相对较高优先级的中断服务当一个中断产生时,处理器就通过把寄存器和程序计数器等压入堆栈,来保存当前执行状态接着,处理器就把响应的中断向量加载到程序计数器中断向量就是中断服务程序(InterruptServiceRoutine,ISR)所在的地址这样,加载中断向量到程序计数器也就导致处理器开始执行ISR,完成产生中断的设备的任何服务请求中断服务程序的最后一条指令通常是中断返回指令通过这一中断返回指令,微处理器能够从堆栈中重装它所保存的前一程序状态,从而恢复原有的程序执行中断在很大程度上对原来的程序是透明的,这就是说,原来的程序根本没有察觉处理器已经接受中断了,除了损失一些中断时间外

9.CISCRISC处理器

处理器体系结构主要有两大分支:其一是CISC(ComplexInstructionSetComputer,复杂指令集计算机);其二是RISC(ReducedInstructionSetComputer,精简指令集计算机)标准的CISC处理器有IntelX86系列、Motorola68xxx系列以及NS32xxx系列普通的RISC体系结构处理器有Motorola/IBMPowerPC、MIPS体系结构,SunSPARC、ARMATMELAVR以及MicrochipPIC

CISC处理器有一个单一处理单元外部存储器一个相对较小的寄存器集以及几百条不同的指令这类处理器的优势在于它使汇编语言程序员编程更为容易———程序员只需要编写很少的代码就可以完成任务由于在早期存储器非常昂贵,所以这种方式对于让每一条指令完成更多功能来讲具有一定的意义,因为它减少了完成给定功能所需要的指令数,进而降低了存储空间,以及读取所需指令的访问次数随着内存价格的不断降低及速度的不断提高,加上编译器的效率越来越高,CISC方式的处理器的相对优势也就逐渐消失了。CISC处理器的主要缺点之一就是这种处理器的本身变得越来越复杂了这是由于处理器要支持这样一个庞大而且多样的指令集,使得控制和指令解码单元变得复杂且迟缓起来,硅片越来越大且难以生产,并且这些功能部件不但耗电,而且导致了大量的热量产生随着处理器越来越先进,CISC在硅片上的开销严重制约了处理器的应用人们发现,通过将指令集简化为最为普遍使用的指令,处理器就变得简单快速起来,通过这种方式,译码并执行每一条指令只需要很少的指令周期,这样执行一个程序总的指令周期就大大缩短了其缺点就是完成一个任务需要更多的指令,但这个缺点在处理器性能的提升上得到了弥补这种思路就导致了对处理器设计的再思考其结果就是RISC体系结构,它导致更高性能处理器的发展。RISC的基本原则是:把硅片的复杂性转移到语言编译器里,硬件部分尽可能地保持简单和快速

RISC处理器中,一个给定的复杂指令可以通过一系列更简单的指令来实现举例来说,许多处理器都有一个针对位操作的”(AND)指令,也有一个清空(clear)指令来给一个指定的寄存器置零然而,给一个寄存器清零也可以通过使用AND(AND0x00,R6)来实现,这样就不需要单独的寄存器清零指令了

RISC处理器具有许多显著的特性它具有规模较大的寄存器组,从而减少了处理器访问主存储器的次数经常使用的变量就可以保留在处理器内部,这就减少了处理器访问外部存储器的次数,高级语言编译器就利用这点来优化处理器的性能通过采用更小和更简单的指令解码单元,RISC处理器具有很高的指令执行速度,同时也降低了处理单元的尺寸和功耗

2.1.2 存储器

存储器用来为处理器存放数据和软件其类型多样,经常在单个系统内混合了各种各样的存储器类型有些存储器能够在断电情况下保持它里面的内容,但访问起来比较慢;有些存储器容量很大,但需要额外的支持电路,访问起来更慢;还有一些存储器拿容量来换取速度,这种存储器相对较小,但能够跟得上最高速的处理器

存储器可以由两种方式来组织,字组织和位组织在字组织方案中,全部的半字节字节或字都存储在一个元件里;而在位组织方式的存储器里,一个字节或者字的每一个位各占一个单独的元件存储器芯片具有不同的大小,位宽是描述存储器大小的一个重要指标例如,一个DRAM芯片可以描述成4MB×1(位组织),而一个SRAM可以描述为512KB×8(字组织)在上述两种存储器里,每个芯片拥有完全相同的容量,但组织方式却不相同DRAM,为了匹配一个8位数据总线,需要8个芯片来组成一个存储器块,SRAM只需一个芯片就够了由于DRAM是以并行方式组织的,因而可以被同时访问。DRAM存储块的最终大小就是(4MB×1)×8个设备,32MB通常在一个存储器模块上放置多块DRAM

1.RAM

RAM 代表随机访问存储器(RandomAccessMemory)这个叫法其实有点不恰当,因为大多数存储器都可以被看作是随机访问的。RAM是计算机系统中工作着的存储器”,处理器可以容易地将数据写入RAM作为临时存储。RAM一般是易失的,当系统断电时里面的内容就会丢失任何必须保留的存于RAM的信息,在系统断电之前必须写入到某些永久性的存储部件里

RAM 通常分为两类,静态RAM(staticRAM,SRAM)和动态RAM(dynamicRAM,

DRAM)。SRAM使用一对逻辑门来保存数据的每一位,RAM里面最为快速的一种存储器,仅需要很少的外围支撑电路,功耗也非常低但这种存储器也有其明显的缺点:其容量明显比DRAM,但价格却很高,由于单个容量相对偏小,所以完成同样的存储容量就需要较多的存储芯片。DRAM使用本质上是电容器的阵列来保存数据的每一位在电荷开始消失之前,电容器仅能将其保存很短的一段时间因此,DRAM需要不断地刷新,大概每隔几毫秒就得刷新一次不间断地刷新就要求额外的电路支持,同时也会延迟处理器访问的时间如果处理器访问与刷新存储器单元阵列产生冲突,那么刷新周期必须优先许多处理器有指令和数据高速缓存,里面存放着存储器最近访问的数据这些高速缓存常常位于处理器内部,通常是用高速存储单元和高速数据通道来实现的执行的指令通常来自指令高速缓存,因此提供了高速指令执行如果一个访问高速缓存没有命中,处理器能够快速地从主存中重新加载高速缓存有些处理器具有逻辑电路,通过这一逻辑电路能够预测缓存有没有命中,进而在未命中发生之前先加载高速缓存高速缓存是用快速SRAM来实现的,在一个大系统里通常用来弥补主存DRAM的缓慢

2.ROM

ROM 代表只读存储器(Read OnlyMemory)系统里ROM的首要用途就是保存系统启动时需要用到的代码这就是常说的固件,它包含了通过将I/O设备置于可知状态来初始化计算机的软件;也可能包含一个引导装入程序来从磁盘或网络上加载一个操作系统,在嵌入式系统里,固件也可能包含应用程序本身许多微控制器里含有片上ROM,这样可以减少部件数目,简化系统设计标准ROM可以看作是由大量二极管阵列装配的。ROM中未写入的状态都是1,每一个字节单元都读作0xFF把软件加载到ROM中的过程也就是烧录ROM在编程过程中,通过向适当的二极管注入一个足够大的电流来将其烧断或烧录来完成,从而在那一存储单元创建了一个零状态一次性可编程(OneTimeProgrammable,OTP)ROM,这种ROM只能烧录一次计算机制造商在系统中一般都使用OTPROM来存储引导程序,这样可以有效降低生产成本

3.EPROM

在最终产品中,往往会使用OTPROM但是在调试过程中如果使用OTPROM将会非常浪费,因为,程序需要不断地修改和调试,这样每次调试都要烧录一个新的芯片在开发和调试时,一般使用可擦写ROM,EPROM(ErasableProgrammableReadOnlyMemory)通过对芯片上部一个窗口照射紫外线就可以擦除里面的数据,以此实现EPROM的再编程和重用这种芯片的引脚和信号与一次性可编程ROM兼容,因此,研发时使用EPROM,生产时则可以使用一次性可编程ROM,对系统的其他部分没有任何影响

EPROM 技术的缺点在于,如果要对其重写,就必须把芯片从电路上取下来,并且完成擦除也要好几分钟擦除完毕,还要将其放到烧录器上加载程序,然后再放回电路中进行调试这个过程导致调试周期很长,并且不能存储可变的系统参数

4.EEROM

EEROM 是电可擦除只读存储器(ElectricallyErasableRead-OnlyMemory),它可以在电路上进行擦除和再编程它们的容量比标准ROM明显小得多,因此,这类存储器不适用于保存固件它们一般用于断电器件保存系统参数和模式信息许多微控制器通常把一个很小的EEROM合并到芯片上来保存系统参数,包括网络地址配置信息序列号服务记录等

5.Flash

虽然Flash(闪存)是最新的ROM技术,却很快占据了优势地位闪存具有EEROM可再编程的特点,也具有标准ROM大容量的优势闪存通常按照扇区来组织,其优点在于可以擦除重写单个扇区而不影响设备的其他部分里的内容它的特点是在写入一个扇区之前,必须先将其擦除,而不能像RAM那样写覆盖不同的芯片制造商其闪存设备的擦除和编程都不同

2.1.3 输入/输出

除了存储器外,处理器还需要与外部世界交换数据,这就要通过I/O设备。I/O设备包括常见的键盘鼠标调制解调器等,也包括串口并口磁盘控制器音视频控制器等处理器与

外部世界交换数据的方式主要有三种

程控输入/输出(ProgrammedI/O,PIO),处理器不时地在其方便的时候接收或发送数据

中断驱动I/O(InterruptdrivenI/O),外部事件通过向处理器请求当前运行程序挂起和执行外部事务服务而控制处理器当一个外部设备中断处理器时,处理器就挂起当前任务,开始执行一个中断服务例程中断服务可能包含从输入设备向内存或从内存向输出设备传输数据

直接存储器访问(DirectMemoryAccess,DMA),允许在没有处理器参与的情况下,在主存和I/O设备之间直接传输数据。DMA一般用在数据传输率非常重要的高速系统中

2.1.4 嵌入式计算机体系结构

计算机能用来干什么?它必须完成什么任务?它是如何与人和其他系统交互的?这决定了这台机器的功能人们一般对台式计算机的结构比较了解,如图2 3所示,台式计算机通常包含很大的主内存,一个大容量存储器设备,还带有各种各样的I/O设备,以便用户输入输出以及互联快速的处理器还需要一个系统管理器来监控其核心温度供给电压以及进行系统重启

单片机/嵌入式体系介绍

2 3 普通计算机框图

嵌入式系统大多采用微控制器而不是CPU作为它们的处理器,微控制器将CPU小容量的内部存储器以及定时器、I/O端口等外部设备集成在一个芯片上另外,还可以根据需要再扩充其他的功能,如网络接口电机控制接口等,如图2 4所示相对而言,嵌入式系统能带来更多的灵活性,同时也带来更多的乐趣,本书就以MSP430系列单片机为例,介绍怎么样通过微控制器来构建一个嵌入式系统的各种技术

单片机/嵌入式体系介绍

2 4嵌入式计算机框图

1.2 单片机的概念与特点

所谓单片机,就是把*处理器CPU(CentralProcessingUnit)存储器(memory)定时器、I/O接口电路等一些计算机的主要功能部件,集成在一块集成电路芯片上的微型计算机单片机从一出现就显示出强大的生命力,被广泛地应用于各种控制系统智能仪表家用电器等设备里面,现在已经渗透到人类生活的各个领域

单片机具有以下特点:小巧灵活成本低易于产品化它能方便地组装成各种智能式控制设备以及各种智能仪表面向控制,能针对性地解决从简单到复杂的各类控制任务,从而获得最佳性价比抗干扰能力强,适应温度范围宽,在各种恶劣条件下都能可靠地工作,这是其他机型所无法比拟的可以很方便地实现多机和分布式控制,使整个系统的效率和可靠性大为提高

1.3 单片机的应用

20世纪80年代以来,单片机的应用已经深入到工业交通农业国防科研教育以及日常生活用品等各种领域单片机的主要应用范围如下:工业控制单片机在工业方面的应用包括电机控制数控机床物理量的检测与处理工业机器人过程控制智能传感器等农业方面包括植物生长过程要素的测量与控制,智能灌溉以及远程大棚控制等仪器仪表智能仪器仪表医疗器械色谱仪示波器万用表等通信方面调制解调器网络终端智能线路运行控制以及程控电话交换机等日常生活用品方面包括移动电话、MP3播放器照相机电子玩具电子词典空调机等各种电气电子设备导航控制与数据处理方面鱼雷制导控制智能武器装置导弹控制航天器导航系统电子干扰系统图形终端硬_______盘驱动器打印机等汽车控制方面门窗控制音响控制点火控制变速控制防滑刹车控制排气控制节能控制安全控制冷气控制汽车报警控制以及测试设备等

1.4 单片机的发展趋势

单片机技术的发展已经逐步走向成熟一方面,单片机的性能不断提高,16、32位单片机不断推出;另一方面,在目前的实际应用中,还是以8位单片机居多。8位单片机也在不断地采用新技术,以取得更高的性价比单片机技术的发展有以下几个方面的特点

1.集成度更高,功能更强

目前,已经有许多单片机不仅集成了构成微型计算机的*处理单元CPU存储器输入/输出接口定时器等传统功能单元,而且还集成了A/D转换模块、D/A转换模块并支持多种通信方式(UART、CAN、SPI、I2C)单片机技术正朝着片上系统的方向发展许多单片机都集成了在系统可编程功能,用户可以对已经焊接到电路板上的单片机进行编程,不需要专门的编程器另外,有些单片机集成了在系统调试功能,用户可以省去价格较贵的仿真器,只要有计算机结合相应的仿真软件就可以进行仿真调试有些单片机使用JTAG接口进行调试,SiliconLaboratories公司的C8051系列单片机,TI公司的MSP430系列单片机等

2.使用更加方便

许多单片机内部集成程序存储器和数据存储器,在实际应用中一般不需要外部扩展程序存储器和数据存储器,从而不再需要外部扩展总线,构成系统的电路结构简单,体积减小,稳定性提高

3.低电压,低功耗

使用CMOS的低功耗电路,具有省电工作状态,如等待状态休眠状态关闭状态等有些单片机的工作电压较低,3.3V,甚至1.8V低电压低功耗的单片机可以满足便携式或电池供电等仪器仪表应用的需求

4.价格更低

随着微电子技术的不断进步,许多公司陆续推出了价格更低的单片机可以说,在相当一部分以单片机为核心的嵌入式产品中,单片机的硬件成本已经只占很小的比例了,更多的是系统设计软件开发与维护成本

1.5 主流单片机

著名的半导体厂商———美国德州仪器在20世纪70年代首先推出了TMS1000系列4位单片机。20世纪80—90年代,国内主要使用Intel公司的MCS 51系列和Motorola公司的68HC系列8位单片机现在,通用性单片机的生产厂家已有不下几十家,生产种类有几百种之多,从生产厂家来说,Intel公司美国国家半导体公司、TI公司、Zilog公司、Atmel公司、Motorola公司美国微芯公司等美国Intel公司是最早的处理器生产厂商,8051单片机是它的典型产品8051发展起来的MCS 51系列包含了很多品种,8031、8051、8751、8032、8052、8752,该系列其他单片机都是在8051的基础上进行功能的增减改变而来的,人们习惯于用8051来称呼MCs51系列单片机。MCS51Intel公司推出后,多家公司购买了8051的内核,并生产以8051为核心的单片机,使得以8051为内核的单片机在实际上产量最大,应用也最广泛

Motorola公司是世界上最大的单片机生产厂商,其产品特点是品种齐全,选择余地大,新产品多,多年来一直雄踞单片机销售量的榜首M6800开始,开发了众多的品种,4、8、16位和32位单片机。Motorola单片机的特点之一是在同样的速度下,所用的时钟频率较Intel类单片机低很多,因而使得其高频噪声低,抗干扰能力强,更适合于工控领域及恶劣环境

Atmel公司是全球著名的半导体公司,它生产了基于8051内核的AT89系列单片机和基于精简指令集AVR系列单片机。20世纪90年代初,Atmel率先把MCS 51内核与其擅长的Flash技术相结合,推出轰动业界的AT89系列单片机。AT89C51系列单片机与Intel8051系列完全兼容,MCS 51市场占据主要份额。AVR单片机是增强型RISC,内载Flash的单片机,芯片上的Flash存储器附在用户产品中,可随时编程和再编程,使用户的产品设计容易,更新换代方便。AVR单片机由于采用了精简指令,处理速度得到提高,处理能力也相应改善几年来,AVR单片机已形成系列产品,ATtiny、AT90ATmega分别对应低高档产品。AVR的单片机广泛应用于计算机外围设备工业实时控制仪器仪表通信设备家用电器宇航设备等各个领域

Microchip单片机是市场份额增长最快的单片机,发展非常迅速它的主要产品是PIC16C/F系列、17C/F系列和18F系列8位单片机。CPU采用RISC结构,分别有33、35、38条指令,采用Harvard双总线结构它运行速度块,工作电压低,功耗低,有较大的输入/输出直接驱动能力,价格低,一次性编程,体积小,在办公自动化设备消费性电子产品电信通信智能仪器仪表汽车电子金融电子工业控制智能监控等不同领域都有广泛的应用。Microchip单片机没有掩膜产品,全部是OTP器件,强调节约成本的最优化设计,适用于用量大档次低价格敏感的产品

美国国家半导体公司主要生产COP8单片机。COP8单片机内部集成了并不多见的16

A/D和使用了抗EMI电路,在看门狗电路以及STOP方式下,以及在单片机的唤醒方式上有独到之处此外,COP8的程序加密也做得比较好

TI公司主要生产MSP430系列单片机。MSP430系列是一种超低功耗的Flash型单片机,其技术特征代表了单片机的发展方向它的存储器模块是目前业界所有内部集成Flash存储器产品中能耗最低的一种,功耗仅为其他Flash单片机的五分之一。MSP430单片机具有高效的16RISC内核、27条指令、125ns指令周期,绝大多数指令在一个时钟周期内完成,供电电压为1.8~3.6V,程序代码加密后无法解密;只需外接一个电阻一个电容即可实现高精度斜率A/D待机激活时间仅6μs,串行在线编程的并发方式可以迅速地开发新产品另外,MSP430系列具有强大的中断功能,10万次烧写,ESD保护和较强的抗干扰能力它广泛地应用于煤气表电子电度表火警智能接头通信产品家庭自动化产品便携式监视器及其他低功耗产品韩国现代公司三星公司,中国*华邦公司义隆公司,日本EPSON公司东芝公司等也生产型号众多的单片机,并在国内广泛应用

1.6 MSP430系列单片机

MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗单片机,其中包括一系列器件,它们由MSP430单片机的CPU,以及针对不同的应用而提供的外围模块组成。MSP430系列单片机具有16RISC结构,运算能力较强,并具有丰富的片内外设,具有非常广阔的应用范围

MSP430系列单片机具有以下特点:

北京航空航天大学出版社

(1)低电压,超低功耗

MSP430通过以下几个方面来保持其超低功耗的特性:电源电压采用1.8~3.6V低电压,RAM数据保持方式下耗电仅为0.1μA,活动模式耗电250μA/MIPS,I/O输入端口的漏电流最大仅为50nA。②采用独特的时钟系统设计,MSP430系统中有一种活动模式和5种低功耗模式,在活动模式时,MSP430单片机还可以根据需要在100kHz~8MHz之间调整时钟频率,有效地降低系统功耗。③MSP430系列单片机采用矢量中断,支持十多个中断源,并可以任意嵌套用中断请求将CPU唤醒只需要6μs,平时让单片机处于低功耗状态,需要运行时通过中断唤醒CPU,这样既能降低系统功耗,又可以对外部请求做出快速反应

(2)强大的处理能力

MSP430系列单片机是16位单片机采用RISC结构,一个时钟周期可以执行一条指令MSP430单片机工作在8MHz晶振时,指令速度可达8MIPS,最高可以工作在12MHz晶振。MSP430有些型号还具有16位硬件乘法器,大大增强了数据处理和运算能力

(3)高性能模拟技术及丰富的片上外围模块

由于TI公司在高性能模拟器件方面有技术优势,并将其运用到MSP430系列单片机中,MSP430单片机的外围模块非常丰富,根据需要选择适当的型号,可以基本满足一般的设计要求,使单片机的开发变得更为简单

(4)系统工作稳定

MSP430内部集成了数字控制振荡器DCO,在系统启动或外部晶振出现故障时,时钟源自动切换到DCO,从而保证系统的正常运行另外,MSP430单片机还集成了看门狗定时器,可以配置为看门狗模式,让单片机在出现死机的情况下能够自动重启

(5)方便灵活的开发环境

MSP430系列单片机有OTP、Flash型和ROM3种类型的器件,国内大部分使用的是Flash,可以多次编程Flash型还集成了片内JTAG调试接口,可以实现在线编程和调试开发时只需要一台计算机和一个JTAG调试器,JTAG调试器可以自己制作,具体电路可参见本书附录D开发软件可以采用汇编语言或C语言,目前较好的软件开发工具是IARWorkbenchV2.43

MSP430系列型号非常多,具体选型可以参考TI网站现在,国内用得多的MSP430x14xx系列器件主要有MSP430F143,MSP430F148,MSP430F149,本课程主要以MSP430F149为例来学习和实践,其他型号的MSP430单片机的相关数据可以查阅有关手册