480 likes | 707 Views
第 5 章 智能汽车设计基础 — 微控制器. 1. 2. 4. 3. 5.1 单片机简介. 5.2 单片机系统. 5.3 Freescale HCS12 单片机. 思考题. 第 5 章 智能汽车设计基础 — 微控制器. 5.1 单片机简介.
E N D
1 2 4 3 5.1 单片机简介 5.2 单片机系统 5.3 Freescale HCS12单片机 思考题 第5章 智能汽车设计基础—微控制器
5.1 单片机简介 随着大规模集成电路的出现及发展,将计算机的CPU、RAM、ROM、定时/数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机(Single Chip Microcomputer),直译为单片机,又称为微控制器(Microcontroller)或嵌入式控制器(Embedded Controller)。近年来,单片机结合专用集成电路(Application Specific Integrated Circuit, ASIC)和精简指令集计算机(Reduced Instruction Set Computer, RISC)技术,发展为嵌入式处理器(Embedded Processor),适用于数据与数值分析、信号处理、智能机器人及图像处理等高技术领域。
1 2 5.2.1 单片机最小系统 5.5.2 单片机系统的扩展 5.2 单片机系统
5.2.1 单片机最小系统 • 所谓单片机最小系统,是指在单片机外部增加尽可能少的元件电路,组成一个让单片机可独立工作的系统。以MCS-51系列单片机为例,图5.1和图5.2所示的分别是使用单片机内部程序存储器和单片外部程序存储器组成的单片机最小系统。在图5.2中,8031的程序存储器是通过使用外部程序存储器EPROM实现的。74LS373是一种8D透明锁存器,其作用是存储单片机P0口输出的对EPROM取指令用的低8位地址。这两个最小系统的复位电路均由10 F的电容器与正电源相连,构成上电复位电路。时钟电路均采用内部振荡方式,外接一个频率为12 MHz的晶体振荡器。图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系列单片机中,程序存储器可占用0000 H~FFFF H间64 K的存储空间。虽然地址可与数据存储器或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.3 EPROM程序存储器扩展电路 图5.3 EPROM程序存储器扩展电路
5.2.2 单片机系统的扩展 • 2.数据存储器扩展 • 在单片机系统扩展中,最常见的数据存储器扩展是静态随机存取存储器SRAM的扩展,在扩展时应注意以下几个方面的问题: • (1)存储器地址空间。在MCS-51系列单片机中,任何扩展的数据存储器、I/O口及外围设备的地址都不能相互重叠,但可以和程序存储器地址重叠。因为数据存储器与I/O口是统一编址的,共用0000 H~FFFF H间的64K地址空间。 • (2)数据存储器读写控制。数据存储器与I/O口的读/写控制可以通过RD和WR指令,地址总线和数据总线则与程序存储器共用。 • (3)数据存储器扩展方法。图5.4所示的是数据存储器扩展电路。除了在读写控制上使用不同信号和不同指令外,数据存储器扩展方法与程序存储器扩展方法是一样的。 • (4)常用数据存储器芯片。目前常用数据存储器芯片有SRAM 6116(2K×8), 6264(8K×8)和62256(32K×8)等。另外,电可擦除只读存储器、E2PROM 2816(2K×8)和E2PROM2864(8K×8)等也可作为数据存储器使用。
5.2.2 单片机系统的扩展 图5.4 RAM数据存储器扩展电路
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.5 TTL芯片扩展的简单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 单片机系统的扩展 • 此外,有些外围芯片(接口芯片)专门用来控制微处理器芯片与外围设备的连接,它们与外围设备连接的信号主要是输入/输出控制信号和数据信号。不同的控制方式下,接口信号的复杂程度也不同。由于中断接口与DMA接口的控制信号更为复杂,因此通常要由接口芯片提供专用控制信号才能完成数据传输。 • 在单片机应用系统中用到的外围芯片较常见的有:可编程控制器8259,可编程直接存储器存取控制器(DMA)8237, 8257;可编程CRT控制器8275, 8276, MC6845, MC6847,可编程键盘、显示接口8279;可编程通信接口8250, 8251;可编程定时器8253, 8254;点阵式打印机控制器8295;A/D和D/A转换芯片等。
1 2 5.3.1 Freescale HCS12单片机 系列简介 5.3.2 Freescale HCS12单片机 最小系统 5.3 Freescale HCS12单片机
5.3.1 Freescale HCS12单片机系列简介 Freescale HCS12微控制器系列产品是飞思卡尔公司于2002年在68HC12微控制器的基础上升级开发出来的。它是基于16位CPU的控制器,其前身是8位的68HC11微控制器。 • HCS12系列产品的工作电压为5 V,时钟频率最高为25 MHz。该系列产品微控制器的结构及特点如下: • (1)HCS12的核心 • ① 16位HCS12CPU:20位ALU,指令队列,增强型索引寻址; • ② 多种外部总线接口(MEBI); • ③ 模块映射控制机制(MMC); • ④ 中断控制(INT);
5.3.1 Freescale HCS12单片机系列简介 • ⑤ 断点(BKP); • ⑥ 背景调试模块(BDM)。 • (2)CRG时钟和复位发生器 • ① 锁相环(PLL); • ② 看门狗(COP WATCHDOG); • ③ 实时中断(RTI); • ④ 时钟监视器(CM)。 • (3)带中断功能的8位和4位端口 • 可编程的上升沿或下降沿触发。
5.3.1 Freescale HCS12单片机系列简介 • (4)存储器 • HCS12存储器有内部寄存器、RAM、EEPROM和FLASH/ROM。每个存储单元对应一个地址,共有64K个地址,用4位十六进制数表示(0000H~FFFFH)。存储器中每个存储单元可存放一个8位二进制信息,这就是存储器存储单元内的内容。不同的存储器占用不同的存储空间。 • (5)2个8通道A/D转换器 • HCS12内置了2个10位/8位的A/D模块:ATD0和ATD1。HCS12的ATD是逐次逼近型A/D转换器,它内置多路器,精度为2LSB,无需外部采样保持电路。HCS12ATD在寄存器区内共有28个寄存器,其中3个仅用于HCS12生产线的内部调试。HCS12ATD的最高转换频率约为2 MHz,ATD模块的特点如下:
5.3.1 Freescale HCS12单片机系列简介 • 8位/10位精度可选择; • 8位数字量转换时间仅需6 μs,10位数字量转换时间仅需7 μs; • 具有采样缓冲器和放大器; • 可编程采样时间; • 数据可选择左/右对齐方式和无符号/有符号数据方式; • 转换结束标志和转换结束中断; • 外部触发控制; • 模拟输入的8个通道为复用方式,采用多通道扫描方式; • 模拟/数字输入引脚复用; • 可选择单次转换模式或连续转换模式。
5.3.1 Freescale HCS12单片机系列简介 • (6)3个1 Mb/s的CAN总线模块,兼容CAN2.0 A/B • ① 5个接收缓冲器,3个发送缓冲器; • ② 4个独立的中断通道(发送中断、接收中断、错误中断和唤醒中断); • ③ 低通滤波器唤醒功能。 • (7)增强型捕捉定时器(ECT) • ECT功能相当于高速的I/O口,由一个16位自由运行计数器、8个16位的输入捕捉/输出比较通道、一个16位脉冲累加器以及一个16位模数递减计数器(MDC)组成。HCS12 ECT有以下特点: • 4个具有16位缓冲寄存器的输入捕捉通道; • 4个8位脉冲累加器可以通过级联形成2个16位的脉冲累加器;
5.3.1 Freescale HCS12单片机系列简介 • 1个具有4位预分频的16位递减模/数计数器; • 4个可选的延迟计数器用来增强输入抗干扰能力。 • (8)8个PWM通道 • ① 每个通道的周期和占空比由程序决定; • ② 8个8通道或16个4通道; • ③ 各通道独立控制; • ④ 脉冲在周期内中心对称或左对齐输出; • ⑤ 可编程时钟选择逻辑; • ⑥ 紧急事件关断输入; • ⑦ 可作为中断输入。
5.3.1 Freescale HCS12单片机系列简介 • (9)串行口 • ① 2个异步串行通信接口(SCI) • SCI是一种采用标准的不归零数据NRZ格式的异步串行通信接口,它内置独立的波特率产生电路和SCI收发器,可以选择8或9个数据位(其中9位数据格式的第9位可由SCI控制寄存器的M位指定位奇或偶校验位)。发送和接收的奇偶校验位可以选择是否由硬件生成。SCI的特点是:双线串行接口,标准NRZ格式,硬件自动生成奇偶标志,全双工操作,独立波特率产生逻辑,独立的发送器和接收器允许控制位,通信中采用中断驱动机制,具有回送方式,可以监视发送器的输出,实现通信过程的自诊断。
5.3.1 Freescale HCS12单片机系列简介 • ② 2个同步串行设备接口(SPI) • SPI系统的时钟源是总线时钟,可以通过设置SPI波特率寄存器来选择分频系数。HCS12 SPI的核心是一个8位移位寄存器,数据传输时,在时钟信号SCK的控制下,数据寄存器的数据从8位移位寄存器移出或移入。SPI数据寄存器有SPI控制寄存器 1(SPICR1)和SPI控制器2(SPICR2)设置。SPI状态寄存器可以通过设置改变SPI的工作状态。当SPI系统使能时,PORTS端口的PS7~PS4四个引脚将分别为SPI的MISO, • MOSI, SCK, 引脚。SPI有三种工作模式:主机模式、从机模式和双工模式。
5.3.1 Freescale HCS12单片机系列简介 • (10)总线 • ① 兼容总线标准; • ② 多组总线模块。 • (11)LQFP-112和QFP-80封装选择 • ① 5 V输入和带驱动能力I/O; • ② 5 V A/D转换器输入; • ③ 50 MHz系统频率; • ④ 单线背景调试模块; • ⑤ 片上硬件断点。
5.3.2 MC9S12DG128最小系统设计 • MC9S12DG128芯片是全国智能汽车竞赛组委会指定各参赛队使用的Freescale HCS12系列中的一款芯片,本节介绍以MC9S12DG128芯片为核心的最小系统的组成,如图5.9所示。该最小系统主要包括以下几个部分:时钟电路、串口电路、BDM接口、供电电路、复位电路和调试用LED灯。各个部分的功能分别如下: • (1)时钟电路为单片机提供一个外接的16 Hz的石英晶振。 • (2)串口的RS-232驱动电路可实现TTL电平与RS-232之间的转换。 • (3)BDM接口允许用户通过该接口向单片机下载和调试程序。 • (4)供电电路主要是给单片机提供+5 V的电源。 • (5)复位电路是通过一个复位芯片给单片机一个复位信号。 • (6)调试用LED灯和单片机的PORTB口相连,供程序调试使用。
5.3.2 MC9S12DG128最小系统设计 • 1.时钟电路 • 时钟电路是单片机系统可靠运行的关键之一。如果时钟电路在设计上存在问题,会造成时钟电路不稳定,且时钟电路的高频噪声会引起系统的兼容性下降,会成为系统永久的隐患。这种不稳定因素带来的不可靠性会给整个系统的调试工作带来极大的困难,设计人员一般很难发现会是由于时钟电路设计不合理或辅助元器件参数有问题造成的。因此,时钟电路的设计需要引起初学者的重视,在辅助元器件参数的选择、印刷电路板的布线等方面需要给予很大程度的重视。 • 对于初学者,在设计时钟电路时,可以首先使用有源振荡器作为外部时钟,并且振荡器的频率不必太高,积累足够的经验后再使用频率更高的晶振。若使用无源石英晶振时,也可以不使用内部锁相环倍频电路。
5.3.2 MC9S12DG128最小系统设计 标准的MC9S12DG128单片机的时钟电路,通过把一个16 MHz的外部晶振接到单片机的外部晶振输入接口EXTAL和XTAL上,然后利用MC9S12DG128内部的压控振荡器(VCO)和锁相环(PLL)把这个频率提高到25 MHz,使之作为单片机工作的内部总线时钟。值得注意的是,MC9S12DG128单片机的外时钟电路既可以使用串联振荡电路,也可以使用并联振荡电路。使用串联振荡电路时,XCLKS引脚即PE7引脚要拉低,而使用并联振荡电路或外部有源振荡器时,该引脚要拉高。因此,在最小系统的设计中,通常会设计一处跳线,方便选择外部有源振荡器还是串联振荡电路。图5.10所示是最小系统外接无源晶振的接口电路。若直接使用有源振荡器,则可以接一个16 MHz的外部有源晶体振荡器,经单片机内部分频后得到一个8 MHz的总线时钟。由于EXTAL的输入电压为2.5 V,故有源晶体振荡器输出的时钟信号必须经分压后才可以和EXTAL连接。
5.3.2 MC9S12DG128最小系统设计 图5.10 最小系统外接无源晶振的接口电路
5.3.2 MC9S12DG128最小系统设计 对于锁相环模块,需要加上一个如图5.11所示的滤波器电路。其中,VDDPLL引脚由单片机内部提供2.5 V电压,XFC端是压控振荡器(VCO)的电压控制端,通过给锁相环电路编程,以数字方式锁定VCO的控制端电。而Cs, Cp和Rs的取值与晶振、REFDV寄存器和SYNR寄存器有关,需要通过计算得出,若其参数选择不当,会使得VCO的控制端电压抖动,导致系统工作不正常。 图5.11 锁相环滤波电路
5.3.2 MC9S12DG128最小系统设计 • 时钟电路的振荡器一方面为单片机系统提供时钟,另一方面时钟电路又是一个很强的高频干扰源,因此,为避免对电路板上其他元件造成高频干扰,时钟电路部分的印刷电路板的设计要做得特别讲究。在设计印刷线路板的布线时,为使系统的电磁兼容性得到保证,单片机系统时钟电路和单片机电源电路印刷线路板布线必须满足以下的原则: • (1)时钟产生器尽量靠近用到该时钟的器件。 • (2)尽量让时钟信号回路周围电场趋近于零。要用地线将时钟区圈起来,时钟线要尽量短。 • (3)石英晶振的外壳要接地。 • (4)在石英晶振的下面和对噪声特别敏感的器件下面不要布线。 • (5)锁相环的滤波电路要尽量靠近MCU。
5.3.2 MC9S12DG128最小系统设计 • (6)单片机的每个电源端和接地端都要接一个去耦电容,去耦电容要尽量靠近MCU。 • 对于给单片机不同电源端供电的VDD线也要遵循上述规则,如模拟电路供电端VDDA、给单片机I/O模块供电端VDDX、给MCU内部电压调整器供电端VDDR等。片内的电压调整器向片内各模块输出多种不同规格的电压,如VDD1, VDD2,需要外接滤波电容时,一定不要省略。特别是时钟、锁相环电路的电源端VDDPLL,是由内部电压调整器给出的2.5 V电压,因此一定要接滤波器件。A/D变换用的参考电压端的供电也要经过特殊的处理才能保证A/D变换的精度。
5.3.2 MC9S12DG128最小系统设计 • 2.串行口的RS-232驱动电路 • 通过串口驱动电路中的RS-232电平转换芯片,单片机可以利用异步通信协议与PC机通信。RS-232电平转换芯片可以实现TTL电平与RS-232电平之间的转换,然后再通过9芯串行口与PC进行串口通信。 • 3.电源电路 • HCS12单片机的芯片内部使用3 V电压,而I/O端口和外部供电电压为5 V。通常需要采用滤波电路改善系统的电磁兼容性,降低系统对电源的高频干扰。 • 4.复位电路 • 复位电路的作用是产生一个低电压信号给MC9S12DG128的RESET端,使系统上电启动。在最小系统中,通常使用低电压复位芯片MC34064,使上电复位更加可靠。而在设计系统目标板时,也可以只用一只0.1 F的电容替代电路中的MC34064。同时,在系统目标板上通常添加一个手动复位按钮,以方便调试时使用。
5.3.2 MC9S12DG128最小系统设计 • 5.BDM接口 • BDM接口是连接BDM调试工具的,其中BDMIN接口是接BDM调试工具,向MC9S12单片机下载程序用的。若下载相应的BDM调试工具软件到目标板后,这块目标板就具有了BDM调试器功能。BDMOUT接口是当开发上的应用程序为BDM调试器程序时,此接口可以用做BDM调试器的输出口。如果不打算将这块目标板用做BDM调试器,可以不引出BDMOUT接口,从而有更多的I/O口可供用户的应用程序使用。 • 6.单片机并行口及驱动能力 • 并行口模块是单片机中最简单的I/O模块,其他功能模块如SCI, SPI, PWM, CAN等在不作为相应功能模块使用时,也可以作为并行口模块使用。如果在单片机的并行口上连接一些发光二极管(LED),可用于调试时显示系统应用程序的某些状态。
5.3.2 MC9S12DG128最小系统设计 • S12单片机的引脚共有92个,都可以当做I/O引脚使用。特别是A口、B口、K口等常用于CPU总线扩展时的总线接口,它们不用做总线扩展时只能作为并行口使用。并行I/O口上有一个方向寄存器,它控制并行I/O口是用于输入还是输出。若方向寄存器相应位清零,表示该位用于输入;往方向寄存器相应位写1,表示该位用于输出。为安全考虑,单片机的I/O口在复位时,方向寄存器是清零的,即复位后所有I/O口都默认为输入口。并行I/O口在初始化时,要往相应的方向寄存器位写1,才能将该口定义为输出。 • S12单片机的I/O接口有较强的电流吸收能力,各I/O接口可以允许10 mA吸收电流,此时输出端仍能保证不高于0.8 V。
5.3.2 MC9S12DG128最小系统设计 • 对于定义为输出口的单片机引脚,可输出逻辑1或逻辑0,在5 V供电的情况下,逻辑1不低于4.2 V,逻辑0不高于0.8 V。如果不作特别说明,一般单片机的I/O的驱动能力相当于一个TTL晶体管的驱动能力。TTL晶体管导通时,输出为0,相当于输出端接地,允许流过晶体管的典型电流为4 mA;TTL晶体管截止时,输出端通过片内的上拉电阻保持输出端高电平。当作为高电平输出时,通过上拉电阻可以给出的电流最大仅为0.8 mA。因此,当单片机的引脚作输出用时,与高电平可能的输出电流相比,低电平有较强的吸收电流的能力,不能指望由单片机向外提供功率,也不能指望单片机输出的高电平可以直接点亮一个LED,而要利用晶体管的导通,靠外部供电来驱动输出设备。这样,当单片机的引脚输出低电平时,晶体管导通,相当于开关与地接通,LED点亮;当单片机的引脚输出高电平,晶体管截止,相当于开路,LED熄灭。
5.3.2 MC9S12DG128最小系统设计 • 7.调试用LED灯 • 除电源上电指示灯外,在单片机的某一个I/O接口上可装上一些调试用LED灯,虽然这一部分不是单片机最小系统必需的,但对最小系统的调试很有用。例如,为调试方便,可将调试用LED灯接在PORTB口上,当某一PORTB口位为低电平时,则相应的LED会亮。即使PORTB口上接了LED,但B口的8个引脚仍可以通过64芯插座引出,以供用户使用。若与用户定义的PORTB口功能不发生矛盾的话,LED可以保留;若有矛盾,可通过断开相应位的上拉电阻或LED的方式屏蔽它们。
思考题 • 1.什么是单片机的最小系统? • 2.单片机系统的扩展分为哪几种?为什么要进行扩展? • 3.在单片机(I/O)口扩展中,需要注意哪些问题? • 4.MC9SDG128最小系统包括哪几个部分?