微机原理与接口技术
本文承接上篇前四章的内容,对第五章到第七章做个期末总结,方便大家更好的掌握这门课的知识点。看到了这里说明你对这门课程还有很大的兴趣和执念,另外有配套的试题和PPT在我的主页可以翻阅。
文章目录
第五章 存储器原理与接口
所谓存储器,是指许多存储单元的集合,用以存放计算机要执行的程序和有关数据。存储器根据其在计算机系统的地位和位置分为内存储器(内存)和外存储器(外存)。
5.1 存储器分类
一台计算机的内存是指CPU能够通过指令中的地址码直接访问的存储器,一般与计算机的三大总线(数据总线、地址总线、控制总线)直接相连,常用于存放处于活动状态的程序和数据,也被称为主存储器。
外存一般不能为CPU直接访问,通常用来当前存放不活跃的程序和数据。外存是主存的补充,也称辅助存储器。
- 按存储介质分类
- 半导体存储器
微型计算机中主要采用MOS工艺实现半导体存储器。 - 磁盘和磁带等磁表面存储器
- 光电存储器
- 半导体存储器
- 按存取方式分类
- 随机存储器RAM
是指计算机可以随机的、个别的对每个存储单元进行访问,访问所需的时间固定,与存储单元的地址无关。通常又叫读写存储器。在所有计算机体系中,大、中、微型计算机的主存储器主要采用半导体技术实现随机存储器。 - 只读存储器ROM
是一种对其内容只能读,不能写入的存储器,它的内容一般是一次性预先写入的,以后不再随计算机程序的运行而频繁更改。与RAM相比,ROM除了集成度高、成本低外,还有个重大优点是当电源去掉后,其中的信息不会丢失。
- 串行访问存储器
是指对存储器的信息进行读写时,需要顺序的访问。又可分为两大类:- 顺序存取存储器
- 直接存取存储器
- 随机存储器RAM
- 按在计算机中的作用分类
- 主存储器(内存)
- 辅助存储器(外存)
- 高速缓冲存储器
- 半导体存储器的分类
- 双极型
- MOS型
- ROM
- 掩膜式ROM
- PROM(可编程ROM)
- EROM(紫外线可擦PROM)
- EEROM(电可擦PROM)
- RAM
- SRAM(静态RAM)
- DRAM(动态RAM)
- FLASH(非易失型RAM,闪存)
- ROM
- SAM
5.2 多层存储结构
核心是解决容量、速度、价格间的矛盾,建立起多层存储结构。
- 第一级是寄存器。这些寄存器的用途有些是固定的,有些是用户指定的,因此也被称为通用寄存器组。
- 第二级是高速缓存(Cache)。高速缓存是计算机提高整体性能的一种技术。
- 第三级是内存,用于存放运行的程序和数据,采用了大量的动态RAM。
- 第四级和第五级是具有大存储容量的外部存储器。
从整个微型计算机的分成结构来看,整体结构主要有两个层次:
- Cache—主存层次
解决CPU与主存的速度上的差距 - 主存—辅存层次
解决存储的大容量要求和低成本之间的矛盾 。
5.3 主存储器及存储控制
- 1、主存储器
- 主存储器的主要技术指标
- 存储容量
存储器可以容纳的二进制信息量称为存储容量。
(1)最大容量、寻址空间:由CPU的地址线决定
(2)实际容量:在计算机系统中具体配置了多少内存。 - 存取速度
存取时间是指从启动一次存储器操作到完成该操作所经历的时间,又称为读写周期。 - 可靠性
可靠性是用平均故障间隔时间来衡量。 - 功耗
功耗通常是指每个存储元消耗功率的大小。
- 存储容量
- 主存储器的基本操作
存储器地址寄存器(MAR):位数是指地址线的多少。
存储器缓存寄存器(MBR):位数是指其字长。
- 主存储器的主要技术指标
- 2、主存储器的基本组成
MOS型器件构成的RAM,分为静态和动态RAM两种,静态RAM通常有6管构成的触发器作为基本存储电路静态存储单元,动态RAM通常用单管组成基本存储电路。- 存储体
是存储芯片的主体,由基本存储元按照一定的排列规律构成。 - 外围电路
- 地址译码器
- I/O电路
- 片选控制端 CS ‾ \overline{\text{CS}} CS
- 三态输出缓冲器
- 地址译码方式
- 单译码法(字结构)
- 双译码法(复合译码结构)
- 存储体
5.4 8086系统的存储器组织
-
1、8086CPU的存储器接口
- 不同模式下CPU的存储器接口
第二章介绍了8086存储器的组成,一个是偶数地址存储体,一个是奇数地址存储体。任何两个连续的字节都可以作为一个字来表示,地址值较低的字节是低位有效字节,地址值较高的字节是高位有效字节。
对所以位于偶地址边界上的字节或字的访问,8086只需一个总线周期就能完成。而对于在奇地址边界上的字访问,则需要两个总线周期。
- 接口设计中的一些问题
- 存储器与CPU之间的时序配合;
- CPU总线负载能力;
- 8086CPU对存储器的读写方式
- 存储芯片的选用
- CPU提供的信号线
- 数据线 D15~D0
- 地址线 A19~A0
- 存储器或I/O端口访问信号M/ IO ‾ \overline{\text{IO}} IO
- RD 读信号
- WR 写信号
- BHE 总线高字节有效信号
- 不同模式下CPU的存储器接口
-
2、存储器接口举例(仅讨论EPROM和RAM)
- ROM扩展电路(21**)
- RAM扩展电路(61**、62**)
- 3-8译码器 74LS138
当其有效时,即G1=1, G ‾ \overline{\text{G}} G2A=0, G ‾ \overline{\text{G}} G2B=0,译码器才能工作。
- ROM扩展电路(21**)
采用74LS138产生片选信号的一般方案是:地址总线的低位部分存储器,高位部分接74LS138选择输入端和使能输入端,同时M/ IO ‾ \overline{\text{IO}} IO接74LS138使能输入端。
5.5 存储器接口技术
- 1、存储器地址(片选控制)译码方法
- 线选法
在剩余的高位地址总线中,任选一位作为片选信号直接与存贮芯片的 CS ‾ \overline{\text{CS}} CS引脚相连。其特点是无需译码器,但有较多的地址重叠区。该方法适用于存储器容量不大,所使用的存储芯片数量不多,而CPU寻址空间远远大于存储器容量。 - 全译码法
所有的高位地址线都参与译码。 - 部分译码法
除去与存储芯片直接相连的低位地址总线之外,剩余的地址线只有部分参与译码的方法就称为部分译码。其特点是译码电路比较简单,但出现“地址重叠区”,一个存贮单元可以由多个地址对应。 - 混合译码法
线选法与部分译码法的结合。
- 线选法
- 2、三种译码法的特征比较
全译码法 | 部分译码法 | 线选法 | |
---|---|---|---|
CPU地址线用了多少根 | 全部 | 和存储器总容量需要的地址线相同 | 芯片地址线数+芯片分组数 |
存储芯片的 CS ‾ \overline{\text{CS}} CS的接法 | 接片选地址译码器的输出,接哪一根由地址空间分配决定 | 接片选地址译码器的输出,接哪一根由地址空间分配决定 | 经反相器与CPU地址线相连 |
有无地址重叠和连续 | 无重叠、连续 | 有重叠、连续 | 有重叠、不连续 |
第六章 微型计算机的输入输出
6.1 CPU与外设通信的特点
CPU与外设通信的特点:
需要有接口作为CPU与外设通讯的桥梁。
需要有数据信息传送之前的“联络”。
要传递的信息有三方面内容:状态、数据及控制信息。
CPU与外设通信必须借助必要的电路来实现,这样的电路叫做接口或者I/O接口。接口电路通常包含一组能够与处理器交换信息的寄存器或缓冲器。
- 1、I/O端口的寻址方式
- I/O端口
端口是接口电路中能被CPU直接访问的寄存器的地址。访问端口就是访问接口电路中的寄存器。
- I/O操作
通常所说的I/O操作是指对I/O端口的操作,而不是对I/O设备的操作。即CPU访问的是与I/O设备相关的端口,而不是I/O设备本身。 - 端口地址编址方式
- 统一编址(存储器映射)
从存储器空间划出一部分地址空间给I/O设备,把I/O接口中的端口当作存储器单元一样进行访问。
优点:对I/O设备的访问使用访问存储器的指令,所以指令类型多,功能齐全;能给端口有较大的编址空间。 缺点:端口占用了存储器的地址空间,使存储器容量减小;指令长度比专门I/O指令要长,执行速度较慢;程序可读性差。
- 独立编址(非存储器映射)
接口中的端口地址单独编址而不和存储空间合在一起。
优点:I/O端口地址不占用存储器空间,I/O端口地址和存储器地址可以重叠,不会相互混淆;使用专门的I/O指令对端口进行操作,指令短,执行速度快;I/O指令与存储器访问指令有明显的区别,程序的可读性强。 缺点:I/O指令单一,灵活性相对减少。
- 统一编址(存储器映射)
- I/O端口
- 2、I/O端口地址的形成
CPU为了对I/O端口进行读写操作,就需确定与自己交换信息的端口(寄存器),那么,是通过什么媒介把来自地址总线上的地址代码翻译成需要访问的端口地址(寄存器)的,这就是端口地址译码问题。这个“媒介”就是I/O地址译码电路。
端口地址译码就是把来自地址总线上的地址代码翻译成所需要范围的端口选择信号。 - 3、地址译码电路工作原理及作用
- 译码电路的输入信号
I/O地址译码电路不仅仅与地址信号有关,而且与控制信号有关。因此,I/O端口地址译码电路的作用是把地址和控制信号进行逻辑组合(可能还包括时序组合),从而产生对接口芯片的选择信号。 - 译码电路的输出信号
译码电路把输入的地址线和控制线经过逻辑组合后,所产生的输出信号线就是1根选中线,通常是低电平有效。
- 译码电路的输入信号
- 4、I/O地址译码方法
原则上是把地址线分为两部分:一部分是高位地址线与CPU的控制信号进行组合,经译码电路产生I/O接口芯片的片选信号 CS ‾ \overline{\text{CS}} CS,实现系统中的片间寻址(片选);另一部分是低位地址线不参加译码,直接连到I/O接口芯片,进行I/O接口芯片的片内端口寻址,即寄存器寻址。低位地址线的根数决定于接口中寄存器的个数。
- 5、I/O端口地址译码电路设计
-
按译码电路采用的元器件分类
- 译码器译码
译码电路原则:译码电路的输出必须是一个唯一的确定值。
- 门电路译码
门电路译码原则:“与”门的输入全为“1”,“或”门的输入全为“0”。
-
按译码电路的形式分类
- 固定式译码
固定式是指接口中用到的端口地址不能更改。在固定式译码电路中,又分单个端口地址译码和多个端口地址译码两种情况。若仅需一个端口地址,则多采用门电路构成译码电路。 - 可选式译码
这种译码方式可以通过开关使接口卡的
I/O端口地址根据要求加以改变,而无需改动线路,其电路可由地址开关、译码器、比较器或异或门等几种元器件组成。
- 固定式译码
-
6.2 输入/输出方式
- 程序控制传输方式
- 同步传输
CPU直接与外设传输数据不需要了解外设情况,又称无条件方式。 - 异步查询
传输数据前先查询状态,又称查询方式。 - 中断方式
当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。
在中断未发生时,CPU可以执行其他程序,这样可以提高CPU的利用率。
特点 (1) 提高了CPU的工作效率; (2) CPU具有控制外围设备服务的主动权; (3) CPU可以和外设并行工作; (4) 可适合实时系统对I/O处理的要求。
- 同步传输
- 直接存储器存取(DMA)
在系统中建立一种机制,将外设与内存间建立起直接的通道,CPU不直接参与外设与内存间的数据传输。而是将三总线的管理权交由DMA控制器控制。由硬件自动实现。
6.3 CPU与外设通信的接口
- 同步传输方式与接口
- 输出
- 输入
- 输出
- 异步查询方式与接口
- 输出
- 输入
- 输出
6.4 8086CPU的输入和输出
- 8086CPU的I/O指令
- 直接寻址:
IN AL,n ;字节输入 OUT n,AL ;字节输出
- DX寄存器间接寻址:
IN AL,DX ;字节输入 OUT DX,AL ;字节输出
- 8086CPU的I/O特点
当8086 CPU工作在最小模式时,输入、输出的控制信号由CPU直接提供。当8086 CPU工作在最大模式时,输入、输出的某些控制信号由CPU的状态线经过 S ‾ \overline{\text{S}} S0、 S ‾ \overline{\text{S}} S1和 S ‾ \overline{\text{S}} S2总线控制器芯片8288译码产生。如果外设是以8位方式与CPU连接,就只能将其数据线与CPU的低8位连接,或者只能与CPU的高8位连接。这样,同一台外设的所有寄存器端口地址都只能是偶地址或者奇地址,所以设备的端口地址往往是
不连续的
。
第七章 可编程接口芯片
对可编程芯片初始化过程实际上就是对芯片的控制端口写入各种命令字的操作过程。
目前常用的可编程芯片有如下几种:8255A,并行I/O接口;8253,计数器/定时器;8251,串行I/O接口;8259A,中断控制器。
7.1 可编程并行接口芯片8255A
8255A是一种通用的可编程并行I/O接口芯片,可为CPU与外设之间提供并行输入/输出通道。
-
1、8255A的内部结构
-
并行输入/输出端口
8255A芯片包含3个8位端口:A口、B口、C口。这三个端口均可作为CPU与外设通信时的缓冲区或锁存器。作为缓冲器时为输入接口,作为锁存器时为输出接口。
条件传输方式需要“状态”或“联络”信号,中断传输方式需要“中断”信号。由于8255A没有预先从芯片引脚上给出这些信号,因此当用户选择这两种工作方式时,8255A将从C口的8位I/O线中提取若干根线作为“状态”“联络”或“中断”线。在这种情况下,C口剩余的线仍然可以作为I/O线。3个端口通过各自的I/O线与外设联系。
-
A组和B组控制
8255A虽然有三个端口,但不是各有各的控制部件。实际有两个控制部件,可把8255A划分位2=两组:A组(A口和C口的高四位组成)、B组(B口和C口的低四位组成)。 -
数据总线缓冲器
双向三态的8位数据缓冲器实现8255A与CPU之间的数据传输接口。
①CPU执行输出指令时,可将控制字或数据通过该缓冲器传送给8255A的控制口或数据端口;
②CPU执行输入指令时,8255A可将数据端口的状态信息或数据通过它传输给CPU。
因此,数据总线缓冲器是CPU与8255A交换信息的必经之路。 -
读/写控制电路
接收来自CPU的控制命令,并根据命令向片内各功能部件发出操作命令。
-
-
2、8255A的引脚
8255A是一个标准的40引脚芯片,可分为三部分:与外设相连的I/O线、与CPU相连的系统总线和电源线。
- 与外设连接的管脚
A、B、C口均有8个I/O引脚(PA7 ~ PA0,PB7 ~ PB0,PC7 ~ PC0)。
特别地,对于PC0—PC7,其中可有若干根复用线可用于“联络”信号或状态信号,其具体定义与端口的工作方式有关。
- 与CPU连接的管脚
包括数据线D7—D0,读写控制线,复位线RESET(高电平有效),以及和CPU地址线相连接的片选信号 CS ‾ \overline{\text{CS}} CS、端口地址控制线A0和A1。
A1 A0 端口 0 0 A口地址 0 1 B口地址 1 0 C口地址 1 1 控制口 - 与外设连接的管脚
-
3、8255A的工作方式及编程
- 8255A的工作方式:程序前使用一次
- 方式0——无条件的输入/输出方式 (基本I/O)
不需要联络线,C口的输出位可由用户直接独立设置0或1。 - 方式1——异步或条件传输方式 (选通I/O)
只有A口或B口工作在该方式下,需要C口各提供三根联络线。 - 方式2——双向传输方式 (双向选通I/O)
只有A口可工作在该方式下,需要C口提供五根联络线。
- 方式0——无条件的输入/输出方式 (基本I/O)
- 8255A编程
8255A复位时,A、B、C三端口工作在方式0的输入状态。-
方式控制字
这是一个8位的控制字,由于8255A分为A、B两组,固方式控制字也分为两个部分,分别控制A组和B组。
A组由D6、D5、D4、D3组成,B组由D2、D1、D0组成。方式控制字未规定C口的工作方式,只规定了输出方向,固C口要么作联络线,要么只能工作在方式0下。
-
按位置位/复位控制字(C口置“1”/清“0”控制字):程序内重复使用
置位设成“1”,复位设成“0”。
作用:指定C口的某一位(某一个引脚)输出高电平或低电平。注意:只能写入命令口。
例:MOV AL,00000101 OUT 控制口,AL
或者对八根线都重新设置,例:
IN AL,C口 OR AL,00000100B OUT C口,AL
显然第一种单独设置更便捷。
-
C口的作用
- 数据口
- 状态口
- 专用(固定)联络(握手)信号线
- 按位控制用
-
- 8255A的工作方式:程序前使用一次
-
4、8255A的功能
介绍8255A的三种工作方式,重点方式0。- 8255A的工作方式0
特点:
(1)0方式是一种基本输入/输出工作方式。通常不使用联络信号,或不使用固定的联络信号。所谓基本I/O方式是指查询方式传送,也包括无条件传送。这种方式不能采用中断方式和CPU交换数据。输出锁存,输入有三态缓冲能力而无锁存功能。
(2)在0方式下,彼此独立的两个8位和两个4位并行口,共24根I/O线全部由用户支配。在0方式下,只能把C口的高4位为一组或低4位为一组同时输入或输出,不能再把4位中一部分作输入另一部分作输出,即4位要一起行动。
(3)在0方式下不设置专用联络信号线,需要联络时,可由用户征意指定C口中的哪根线完成某种联络功能。0方式也没有设置固定的状态字。
(4)0方式是单向I/O,一次初始化只能指定端口(PA、PB和PC)作输入或作输出,不能指定端口同时既作输入又作输出。 - 8255A的工作方式1
特点:
(1)1方式是一种选通输入/输出方式或叫应答方式,因此,需设置专用的联络信号线。这种方式通常用于查询(条件)传送或中断传送。数据的输入输出都有锁存能力。
(2)PA和PB为数据口,而PC口的大部分引脚分配作专用(固定)的联络信号用,对已经分配作联络信号的C口引脚,用户不能再指定其它用途。
(3)各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。
(4)输入/输出操作过程中,产生固定的状态字,这些固定的状态信息可作为查询或中断请求时,从C口读出。
(5)单向传送。一次初始化只能设置在一个方向上传送,不能同时作两个方向的传送。- 选通输入
- INTRA(PC3):A口的中断请求信号。
- STBA ‾ \overline{\text{STBA}} STBA(PC4):A口的选通信号。
- IBFA(PC5):A口的输入缓冲器“满”信号。
- 选通输出
- INTRA(PC3):A口的中断请求信号。
- ACKA ‾ \overline{\text{ACKA}} ACKA(PC6):外设应答信号。
- OBFA(PC7):A口的输入缓冲器“满”信号。
- 选通输入
- 8255A的工作方式2
- 8255A的工作方式0
-
5、8255A应用举例
在8255A工作之前,首先要对其进行初始化,也就是要写入控制字,来指定它的工作方式,指明是否允许它的某组端口采用中断方式传送数据。如果要改变某组端口的工作方式或中断允许情况,必须重新写入控制字。控制字有两个,分别为方式命令字和按位置/复位命令字,它们都必须写向控制寄存器。在实际应用中,可根据需要写入一个或两个命令字。
7.2 可编程定时/计数器接口芯片8253
计时的本质就是计数,只不过这里“数”的单位是时间单位。
-
1、8253的内部结构
- 计数通道
8253芯片包含3个功能完全相同的计数通道,称为通道0、通道1和通道2。三个通道与外部相连的信号线有3根:CLK(计数器的脉冲输入端)、GATE(计数器的门控信号)和OUT(计数器的输出信号)。
8253计数器工作在减1状态,每输入一个计数脉冲,计数器减1。在计数器计数到0时,OUT信号有效通知外设计数器产生溢出。
每个通道内部设有一个16位的计数器和数值锁存器,计数器可用二进制或BCD码计数,最大计数值位0FFFFH和9999。 - 通道控制寄存器
- 数据总线缓冲器
- 读/写控制电路
- 计数通道
-
2、8253的引脚分配
8253是一个标准的24引脚芯片,分为3部分:与外设相连的通道引脚、与CPU相连的系统总线和电源线。-
通道引脚
8253有三个通道,每个通道有三条信号线。- CLKn
- OUTn
- GATEn
-
与CPU相关的引脚
与8255A类似,包含数据线D7—D0、读/写控制线 WR ‾ \overline{\text{WR}} WR和 RD ‾ \overline{\text{RD}} RD、片选信号 CS ‾ \overline{\text{CS}} CS、端口地址控制引脚A0和A1。A0 A1 端口 0 0 通道0 0 1 通道1 1 0 通道2 1 1 控制口
-
-
3、8253的编程
8253的初始化编程就是对其工作方式的确认。8255A和8253的区别:8253只有一个控制字,不需要特征位;8253的一个方式控制字只决定一个计数通道的工作模式。
8253的控制字共分为4部分:计数器(通道)选择、计数器读/写方式、工作方式选择和计数码选择。
-
计数器选择(SC1,SC0)
规定通道的工作方式。8253三个通道是完全独立的,每个通道都有自己的控制字,而8253只有一个控制端口,需要标明针对哪一个通道。注意:每个 通道均有自己的计数器地址,写入的计数值应分别写入各自的相应地址。
SC1 SC0 端口 0 0 通道0 0 1 通道1 1 0 通道2 1 1 不用 -
计数器读/写方式(RL1,RL0)
写入计数值:计数的个数。若规定只写入计数值的低8位,则高8位自动置 0。若规定只写入计数值的高8位,则低8位自动置0。若是16位的计数值,则必须先写入低8位,后写入高8位。RL1 RL0 通道读/写操作 0 0 计数器锁存 0 1 只读/写低8位字节 1 0 只读/写高8位字节 1 1 读/写16位 -
工作方式选择(M2,M1,M0)
如果控制字的D4和D5为00,则表示为锁存命令,这时控制字中的低四位无效。M2 M1 M0 工作方式 0 0 0 工作方式0 0 0 1 工作方式1 X 1 0 工作方式2 X 1 1 工作方式3 1 0 0 工作方式4 1 0 1 工作方式5 -
计数码选择
BCD:0000 ~ 9999,最大0000,代表10000。二进制:0000H ~ FFFFH,最大0000,代表65536。BCD 计数进制 0 二进制 1 BCD
-
-
注意事项
-
① 写操作
先写控制字,再写计数初值。
计数器初值:计数初值Ci与输入时钟(CLK)频率及输出波形(OUT)频率之间的关系为:OUT = CLK/ Ci 或: Ci = CLK/ OUT
-
② 读操作
直接读:先控制GATE,然后直接读。计数器锁存:先发计数器锁存命令,再读;读回命令。
读会命令格式:
1)读回命令能同时锁存几个计数器的计数值和状态值的内容。
2)如果只锁存计数值或状态,则直接读取计数器一次;如同时锁存计数值和状态,则第一次读是计数值,第二次读是状态。
3)如第一次锁存后没有读取又进行第二次锁存,则第二次锁存命令无效。
-
4、8253的工作方式
-
方式0——计数结束产生中断
用户可以在设定时间上产生中断信号。当控制字写入控制寄存器后,输出端OUT变低,计数初值再写入通道后计数器开始工作。特点是(1)门控信号GATE必须为1,计数器才能计数; (2)计数时通道输出端OUT一直为0; (3)通道计数器计数到0后,OUT由0到1,同时计数器停止工作。
-
方式1——可编程序的单稳负脉冲
所谓单稳电路,就是在输入的激励下产生固定宽度的脉冲。输入端输入一个不低于最小宽度的脉冲,单稳电路就输出用户事先设定宽度的脉冲。特点是(1)门控信号GATE是触发信号,上升沿有效。即开始计数是由GATE的上升沿触发的; (2)触发后,通道计数器开始计数,输出端OUT由高变低; (3)计数器计数到0,OUT再由低变高; (4)计数器过程中,如果又被触发,则计数器重新工作。
-
方式2——速率发生器
在这种工作方式下,输入信号是周期的脉冲信号。从CLK端引入,输出信号也是周期的脉冲信号,由OUT端输出。从输入信号的频率和输出信号的频率关系来看,方式二实际上是一个可编程的分频电路,它把输入信号分频后以脉冲的形式输出,而分频系数就是用户事先对通道计数器写入的初始值。
特点是(1)GATE门为1,计数器才能工作,对CLK端上的脉冲进行计数; (2)当计数器“减”计数到1时,输出端由高变低,再经过一个CLK周期,即计数器计数到0时,输出端OUT又跳变为高。所以方式2输出周期性负脉冲信号,其宽度固定为一个CLK周期; (3)当计数器的值减为0时,自动重新装入计数初值,实现循环计数。
-
方式3——方波发生器
方式2虽然可以作分频电路,但其输出是窄脉冲,如果是方波,就只有选方式3。
它与方式2的区别:若计数初值n为偶数,则当计数值减到n/2时,输出端OUT变为低电平,然后此电平一直保持到计数值减为0,OUT再次变为高电平。
-
方式4——软件触发方式
CPU通过指令触发一个选通信号给外设设备,选通信号在触发后设定时间点上发出。在方式四中,当写入控制字后,输出端OUT变为高电平。当计数初值写入通道后,CPU就完成了对通道的触发。当计数器计数到0时,通道的OUT端就输出负脉冲。特点是(1)门控信号GATE为高电平,计数器开始减1计数,OUT维持高电平; (2)当计数器减到0,输出端OUT变低,再经过一个CLK输入时钟周期,OUT输出又变高。
-
方式5——硬件触发方式
方式5实际上是外部通过一个有效沿触发信号,启动一个选通信号给外设设备,选通信号在触发后设定时间点上发出。
这种工作方式同方式4很相似,当控制字写入控制寄存器后,输出端OUT变高。同方式4不同的一点是当计数值写入通道计数器后,通道并未被触发,也就是计数器并不立即开始计数。只有当GATE信号的上升沿触发通道后,通道计数器才开始计数。
8253的六种工作方式可归为两类:-
与频率发生器有关(2、3)
对OUT端,方式2提供给用户的是负脉冲,方式3提供给用户的是方波。在这两种方式下,GATE信号要始终保持为高。
-
与计数器有关(0、1、4、5)
一种是CPU把时间常数写入相应通道后,计数器就开始工作,我们可以称之为软件触发方式,在这种方式下,GATE要始终保持为高电平。(0、4) 另一种是硬件启动计数器,即CPU把时间常数写入计数器后,即使GATE为高电平,计数器并不工作。只有GATE发生跳变,其上升沿启动计数器工作。(1、5)
8253在不同方式下的工作特点
工作方式 启动方式 溢出方式 计数值使用 工作方式 启动方式 溢出方式 计数值使用 方式0 软件启动 OUT为正电平 一次有效 方式3 软件启动 OUT为方波 自动重装 方式1 GATE上升沿 OUT为正电平 自动重装 方式4 软件启动 OUT为负脉冲 一次有效 方式2 软件启动 OUT为负脉冲 自动重装 方式5 GATE上升沿 OUT为负脉冲 自动重装 -
-
-
5、8253应用举例
略