第5章智能汽车设计基础—微控制器武汉科技大学信息科学与工程学院5.1单片机简介15.2单片机系统25.3FreescaleHCS12单片机3第5章智能汽车设计基础—微控制器思考题4武汉科技大学信息科学与工程学院5.1单片机简介随着大规模集成电路的出现及发展,将计算机的CPU、RAM、ROM、定时/数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机(SingleChipMicrocomputer),直译为单片机,又称为微控制器(Microcontroller)或嵌入式控制器(EmbeddedController)。近年来,单片机结合专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)和精简指令集计算机(ReducedInstructionSetComputer,RISC)技术,发展为嵌入式处理器(EmbeddedProcessor),适用于数据与数值分析、信号处理、智能机器人及图像处理等高技术领域。武汉科技大学信息科学与工程学院5.2单片机系统15.2.1单片机最小系统25.5.2单片机系统的扩展武汉科技大学信息科学与工程学院5.2.1单片机最小系统所谓单片机最小系统,是指在单片机外部增加尽可能少的元件电路,组成一个让单片机可独立工作的系统。以MCS-51系列单片机为例,图5.1和图5.2所示的分别是使用单片机内部程序存储器和单片外部程序存储器组成的单片机最小系统。在图5.2中,8031的程序存储器是通过使用外部程序存储器EPROM实现的。74LS373是一种8D透明锁存器,其作用是存储单片机P0口输出的对EPROM取指令用的低8位地址。这两个最小系统的复位电路均由10F的电容器与正电源相连,构成上电复位电路。时钟电路均采用内部振荡方式,外接一个频率为12MHz的晶体振荡器。图5.2中,从接地,我们可以得知程序存储器在单片机外部,因此,对外部程序存储器来说,单片机的取指令操作有效的。武汉科技大学信息科学与工程学院5.2.1单片机最小系统图5.1完全使用单片机内部程序存储器的单片机最小系统武汉科技大学信息科学与工程学院5.2.1单片机最小系统图5.2使用单片机外部程序存储器的单片机最小系统武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展在单片机应用系统硬件设计中,虽然单片机的最小应用系统拥有较高的性价比,但在功能很复杂的系统中,最小系统往往不能满足要求,往往需要连接各种设备,形成各种接口通道。因此,单片机系统的扩展成了单片机应用系统硬件设计中最常遇到的也是不可避免的问题。单片机系统的扩展包括数据存储器(RAM)扩展、程序存储器(ROM/EPROM)扩展、输入/输出(I/O)扩展、定时/计数器扩展、中断系统扩展及其他特殊功能扩展。武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展1.程序存储器扩展单片机系统扩展中,最常见的是程序存储器扩展,在扩展时需注意以下几方面的问题:(1)可分配地址空间。在MCS-51系列单片机中,程序存储器可占用0000H~FFFFH间64K的存储空间。虽然地址可与数据存储器或I/O口重叠,但它们实际上是两个相互对立的存储空间。硬件上程序存储器通过使用PSEN而不是用RD进行控制读操作;软件上用MOVC而非MOVX执行读操作命令。(2)地址译码电路。随着大规模集成电路的发展,程序存储器的容量越来越大,仅需使用一两片芯片就可满足系统对容量的要求,因此地址译码通常采用直接或用反相器产生片选信号的方式。但是,在扩充多片程序存储器时,地址译码一般采用译码器方式,以获得地址范围连续而又不相重叠的片选信号。这是因为程序机器码在存储空间中需要连续放置,因此各存储器占用的程序存储器空间必须相互连续。另外,分配给程序存储器的地址范围还必须包含单片机的启动程序。武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展(3)程序存储器扩展方法。其他接口扩展芯片与程序存储器共用地址总线、数据总线和部分控制总线。其中控制总线有ALE低8位地址信号锁存控制、PSEN外部程序存储器读控制。EPROM程序存储器扩展电路如图5.3所示。图5.3(a)中系统只扩展一片EPROM,可将EPROM的片选端直接接地;图5.3(b)中的系统扩展了两片EPROM,若P2.i等于0,就选择了EPROM(1),若P2.i等于1,就选择了EPROM(2)。(4)常用程序存储器芯片。程序存储器芯片最常见的是Intel公司的典型系统芯片2716(2K×8),2732(4K×8),2764(8K×8),27128(16K×8),27256(32K×8)和27512(64K×8)等。近年来大容量EPROM芯片不断涌现,2764以上的大容量芯片在单片机应用系统程序存储器扩展中得到越来越广泛的使用。武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展图5.3EPROM程序存储器扩展电路图5.3EPROM程序存储器扩展电路武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展2.数据存储器扩展在单片机系统扩展中,最常见的数据存储器扩展是静态随机存取存储器SRAM的扩展,在扩展时应注意以下几个方面的问题:(1)存储器地址空间。在MCS-51系列单片机中,任何扩展的数据存储器、I/O口及外围设备的地址都不能相互重叠,但可以和程序存储器地址重叠。因为数据存储器与I/O口是统一编址的,共用0000H~FFFFH间的64K地址空间。(2)数据存储器读写控制。数据存储器与I/O口的读/写控制可以通过RD和WR指令,地址总线和数据总线则与程序存储器共用。(3)数据存储器扩展方法。图5.4所示的是数据存储器扩展电路。除了在读写控制上使用不同信号和不同指令外,数据存储器扩展方法与程序存储器扩展方法是一样的。(4)常用数据存储器芯片。目前常用数据存储器芯片有SRAM6116(2K×8),6264(8K×8)和62256(32K×8)等。另外,电可擦除只读存储器、E2PROM2816(2K×8)和E2PROM2864(8K×8)等也可作为数据存储器使用。武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展图5.4RAM数据存储器扩展电路武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展3.输入/输出(I/O)口扩展大部分单片机应用系统设计中都不可避免地要进行I/O口扩展。因为单片机本身能提供的有限的I/O口中的许多都有复用功能,当这些口被复用功能占用后,留给用户系统的I/O口就不多了。在进行I/O口扩展时,应注意以下几个方面的问题:(1)I/O口寻址空间。在MCS-51系列单片机应用系统中,扩展的I/O口与数据存储器占用统一编址的64K存储空间,而与外部程序存储器空间无关。指令上扩展I/O口具有与数据存储器相同的寻址方式,且地址总线、数据总线与控制总线的连线也与数据存储器相同。(2)单片机提供的I/O口。当单片机本身的I/O口在复用功能未被使用时,这些口可当作普通的I/O口使用。武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展图5.5所示的是用TTL芯片扩展的简单I/O口电路。图5.5(a)中通过锁存器74LS273扩展8位并行输出口。在通过数据总线扩展输出口时,锁存器被视为一个外部RAM单元,输出控制信号为WR,使用MOVX@DPTR,A指令。当单片机向锁存器输出数据时,地址信号P2.7和写信号WR同时有效,使或门输出低电平接入锁存器CLK端。当WR由低变高时,锁存器CLK端的信号上升沿将数据总线上的数据锁存到输出端,完成输出操作。图5.5(b)所示为用三态门74LS245通过数据总线扩展的8位并行输入接口。三态门由P2.7和RD进行或控制,使用MOVX@DPTR,A指令。当单片机产生地址信号和RD信号,经或门产生低电平信号时,控制三态门打开,输入信号便可经数据总线送入单片机内部。武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展图5.5TTL芯片扩展的简单I/O接口电路武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展此外,还可以利用单片机的串行口和移位寄存器也可以实现I/O口的扩展。这种I/O是通过串行口把串行数据转换为并行数据,或是把并行数据转换为串行数据,此种扩展方法速度较慢,但所扩展的I/O口不占用片外I/O口地址。图5.6(a)所示是利用移位寄存器74LS165(并行输入串行输出)扩展的8位并行输入接口电路。单片机与74LS165的串行输出端相连的RXD作为串行输入端,与74LS165的时钟输入端相连的TXD端作为移位脉冲输出端,控制74LS165数据输出节拍。移位和置数过程通过单片机的一根I/O线(如P1.0)来控制。图5.6(b)所示是利用串行输入并行输出移位寄存器74LS164扩展的8位并行输出接口电路。单片机与74LS164的数据输入端相连的RXD和TXD分别作为串行数据输出端和移位脉冲输出端,普通I/O口P1.0用于清除74LS164的输出数据。武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展除了以上I/O口的扩展方法外,I/O接口的扩展还可以通过专用接口芯片,例如可编程的并行I/O接口芯片8255,图5.7所示的就是通过8255进行I/O扩展的电路。8255由并行I/O端口、数据总线驱动器、读/写控制逻辑和A组,B组控制块四个逻辑结构组成。8255通过读、写控制逻辑实现全部的工作状态。在单片机应用系统中,8255的读写操作是通过单片机的地址信号线A0和A1、数据信号线D0~D7,及控制信号线WR,RD,CS实现的。在使用可编程接口芯片时,除要有正确的硬件,软件中应增加相应的初始化操作。这是因为,用可编程接口芯片扩展I/O口可以通过软件灵活方便地选择接口的工作方式。初始化工作主要是根据应用对芯片的工作方式进行相应的设定,使各口线工作在输入或输出状态。武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展图5.6利用串行口扩展I/O接口电路武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展图5.7可编程芯片扩展I/O接口电路武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展在使用可编程接口芯片时,除要有正确的硬件,软件中应增加相应的初始化操作。这是因为,用可编程接口芯片扩展I/O口可以通过软件灵活方便地选择接口的工作方式。初始化工作主要是根据应用对芯片的工作方式进行相应的设定,使各口线工作在输入或输出状态。(3)常用I/O口扩展芯片常用的I/O口扩展的TTL芯片有三态门(74LS241,74LS244,74LS245)、锁存器(74LS273,74LS273,74LS374)、串行输入/并行输出移位寄存器(74LS164,74LS595)、并行输入/串行输出寄存器(74LS165,74LS166)和可编程I/O接口芯片(8255,8155)等。武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展4.其他外围芯片扩展在单片机应用系统中,除了程序存储器、数据存储器及I/O口这些系统主要部件外,还有一些满足系统应用的十分有用的外围芯片,如中断系统、定时/计数器、键盘、显示控制器及串行通信控制器等。这些外围芯片内部大都设有与微处理器芯片的接口电路,接口电路主要由控制命令逻辑电路、状态存储器与设置电路、数据存储与缓冲电路三部分组成,用来实现单片机信号与外围芯片内部信号的转换工作。由于大部分外围芯片能与微处理器芯片直接相连,因此在单片机应用系统中扩展,接口电路比较简单。图5.8所示为外围芯片与微处理器芯片连接的典型电路,中央处理器CPU与外围芯片连接的信号主要是总线信号,包括地址信号、数据信号、读写控制信号、定时信号、中断信号和复位信号等。武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展图5.8一般外围芯片扩展电路武汉科技大学信息科学与工程学院5.2.2单片机系统的扩展此外,有些外围芯片(接口芯片)专门用来控制微处理器芯片与外围设备的连接,它们与外围设备连接