第八章 基本的 I/O接口( 22学时)
第二节 中断系统( 6学时)
退 出
第一节 接口技术( 4学时)
?知 识 概 述 ?
第三节 DMA系统( 4学时)
第四节 计数 /定时器( 2学时)
第五节 并行接口( 2学时)
第六节 串行接口( 4学时)
第七节 微机接口芯片组介绍
第八章
接口,CPU与外设间的中间电路。接口的分类如
下图所示:
接口分类
基本接口,8259,8237,8254
通用接口,8255,8251
专用接口:键盘接口,显示器接口
退 出
第一节 接口技术( 4学时)
接口设计涉及到两个基本问题:
一是 CPU如何寻址 I/O设备,实现多个 I/O设备的识别;
二是 CPU如何与 I/O设备连接,进行数据、状态和控制
信号的交换。
退 出
8.1.1 接口技术的基本概念
一,I/O接口的主要功能
1,I/O设备选择功能;
2,对输入 /输出数据进行缓冲、隔离和锁存;
3,对信号的形式和数据的格式进行变换;
4,与 CPU和 I/O设备进行联络;
退 出
8.1.1
二,I/O接口的典型结构
1.内部结构
图 8.1为 I/O接口的典型结构。
1)端口:接口电路中的寄存器。
2)接口中一般设有数据口、状态口、控制口。
3)对于数据口,在 I/O设备输入时,保存 I/O设备输入的数据;
在 I/O设备输出时,保存向 I/O设备输出的数据。有些数据
寄存器同时支持输入 /输出,那是 因为其内部具有输入和
输出两个寄存器,但共用 — 个端口地址, 随读写控制的不
同分别访问其中的输入或输出奇存器。
4) 通过数据总线, CPU从状态口中读取当前的状态,,也
可向控制口写入命令,以控制 I/O设备的工作。
退 出
8.1.1
2,外部特性
接口引脚根据其连接的对象又分为 面向 CPU一侧的信
号和面向外设一侧的信号 。对于面向 CPU一侧的信号,一
般都引出了数据线、地址线和控制线。
因为 I/O接口是连接 CPU系统和外设的桥梁,所以 对
其外部特性的掌握是实现 I/O接口物理连接的基础,是接
口是技术的一个重点 。
3,接口的可编程性
1)“可编程”的:是指接口芯片的功能和工作方式可通过
程序 设定。
2) 初始化程序, 对接口芯片功能和工作方式等的定义,是
通过向一些寄存器写入相应的信息来完成的,这样的写入
程序一般称为接口芯片的初始化程序 。
3) 对可编程寄存器的掌握是学习接口技术的另一个重点 。
退 出
8.1.1
三,I/O接口的编址方法
1,I/O接口的统一编址
统一编址方式也称为存储器映象 I/O寻址方式。即每一
个端口占一个存储单元地址。
1)这种编址方法的优点是:
( 1)不需要专门的 I/O指令;
( 2)端口寻址方式也就是内存的寻址方式,有利于 I/O程序
的设计。
2)缺点是:
( 1) I/O端口占用一部分存储器的地址空间;
( 2)在程序中不容易区分哪些指令是访问存储器、哪些指
令是访问外设,所以程序不易阅读。
退 出
8.1.1
2,I/O接口的独立编址
独立编址方式,就是将存储器和 I/O端口建立两个完
全独立的地址空间。 CPU使用专门的控制信号来区分是对
存储器访问还是对 I/O端口进行访问。这些控制信号的产
生,是由指令来控制。
1)这种方法的优点是:
( 1)由于使用了专门的 I/O指令,所以程序清晰易读;
( 2)又因为 I/O接口的地址空间独立且 — 般小于存储器的存
储空间,所以其不占用存储器的存储空间,且地址译码电
路相对简单。
2)其缺点是:
( 1)访问端口的指令没有访问存储器的指令丰富。
( 2) CPU需设置专门的控制信号,区分存储器与端口访问。
退 出
8.1.2 输入 /输出传送方式
一、程序方式
指用输入、输出指令,来控制信息传送的方式。
1,无条件输入 /输出
CPU与外设交换信息时,如果输入 /输出的时刻,都可以保证外
设总是处于“准备好”状态,则可以直接利用输入 /输出指令进行信息
的输入 /输出操作。其硬件实现原理图 如 8.2所示。
假设,地址译码器的译码为 380H,我们可用指令:
MOV DX,380H
IN AL,DX
把外设的数据输入到 AL寄存器。
同样,我们可用指令:
MOV DX,380H
OUT DX,AL
把 AL的值输出外设。
退 出
8.1.2
2,条件输入 /输出方式
输入 /输出操作的程序流程如 图 8.3所示。
图 8.4,8.5分别给出了实现条件输入 /输出方式的硬件
原理图。
例如,假设从某输入设备上输入一组数据送缓冲区,接口
电路如图 8.4,若缓冲区已满则输出一组信息,BOFFER
OVERFLOW”,然后结束。设该设备的数据端口为 382H,
状态端口为 383H
见程序
当 CPU需对多个设备进行输入 /输出时,就出现了所
谓的优先级问题,即究竟先为哪个设备服务。一般来讲,
在这种情况下都是采用轮流查询的方式来解决,如 图 8.6
所示。
退 出
8.1.2
二、中断方式
1.为什么要采用中断传送方式
CPU就避免了把大量时间耗费在等待、查询状态信号的操作上,
使其工作效率得以大大地提高。中断方式程序执行流程如
所示。
2,中断方式下的接口电路
以输入方式为例,接口电路如 图 8.8所示。
3,中断优先级
解决优先级的问题一般可有三种方法:软件查询法、简单硬件方
法及专用硬件方法。现在通常采用专用的硬件方法,也就是用专用的
芯片,如 Intel8259A。其连接方法如 图 8.9所示。
4,中断服务子程序
中断服务子程序的流程如 图 8.10所示。
退 出
8.1.2
三,DMA方式
1,为什么要采用 DMA方式
DMA数据传送,它是在内存的不同区域之间,或者在
内存与外设端口之间直接进行数据传送,而不经过 CPU中
转的、由硬件直接控制一种数据传送方式,可以大大提高
数据的传送速度。
2,DMA方式下的接口
其接口电路如 图 8.11所示。
3,DMA优先级
与中断一样,DMA的请求判优也是由专门的芯片完成,
即 DMA控制器完成。
4,DMA方式下的支持程序
退 出
第二节 中断系统( 6学时)
8.2.1 中断的基本原理
一、中断及其相关概念
1,中断的基本概念
1)中断:是微处理器程序运行的一种方式。计算机在
执行正常程序的过程中,当出现某些紧急情
况,异常事件或其它请求时,处理器会暂时
中断正在运行的程序,转而去执行对紧急情
况或其它请求的操作处理。处理完成以后,
CPU回到被中断程序的断点处接着往下继续
执行,这个过程称为中断。
退 出
8.2.1
2)中断的作用:
第一,实现 CPU与 I/O设备之间的数据传送。
第二,实时的硬件故障处理。
第三,通过软中断指令可以使得应用程序调用操作系统的底层功能。
2,中断源
1)中断源:引起中断的原因或设备称为中断源。
2)中断源的种类如 图 8.12所示。
3,禁止中断与中断屏蔽
禁止中断:中断允许触发器通过指令 CLI复位,以达到禁止 CPU的
INTR中断,称为禁止中断。
中断屏蔽:将中断源对应的中断屏蔽触发器置 1,则该中断源的中断请
求被屏蔽,称为中断屏蔽。
4,中断嵌套
当 CPU正在处理某种类型的中断时,又有级别更高的新的中断源
申请中断,这时 CPU就会暂停当前的中断服务程序,而转去执行新的
中断处理,这种中断的处理方式就叫中断嵌套。
退 出
8.2.1
5,中断类型号和中断向量表
1)中断类型号:为每个中断源指定的一个 8位的编号,以识
别不同的中断源,这 8位的编号称为中断类型号。
2)中断向量:每一个中断服务程序的入口地址,称为中断
向量。
3)中断向量表:把系统中所有的中断向量集中起来,根据
中断类型号从小到大的顺序存放到存储器的某一个区域内,
这个存放中断向量的存储区称为中断向量表。
8088CPU以存储器的 00000~003FFH共 l024个单元
作为中断向量的存储区,每个中断向量占用 4个存储单元。
CPU响应中断后,怎样从中断向量表找到该中断服
务程序的中断向量呢?是通过中断类型号 × 4得到中断向
量在中断向量表中的首地址。中断类型号和中断向量所在
的位置关系如 图 8.13所示。
退 出
8.2.1
二、中断的过程
下面以可屏蔽中断为例。
CPU在 INTR引脚上接到一个中断请求信号,如果此时 IF= 1,并
且,当前具有最高的优先级,CPU就会在当前指令执行完以后开始响
应外部的中断请求,这时,CPU通过引脚连续发两个负脉冲,外设接
口在接到第二个负脉冲以后,在数据线上发送中断类型码,CPU接到
这个中断类型码后,CPU做如下操作:
第一,将中断类型码放入暂存器保存;
第二,将标志寄存器内容压入堆栈,以保护中断时的状态;
第三,将 IF和 TF标志清 0;
第四,保护断点;
第五,根据取到的中断类型码,在中断向量表中找出相应的中断向量,
将其装入 IP和 CS,这样就实现自动转向中断服务子程序的执行;
第六,中断返回。
可以看出,中断的工作过程可以概括为五大步骤:即中断请求、
中断判优、中断响应、中断服务和中断返回。
退 出
8.2.1
三,8088的中断优先级别及对中断源的管理
CPU设立的中断源的优先级别顺序如 表 8.1所示。
8088对各中断源的管理如 图 8.14所示。
退 出
8.2.2 中断控制器 8259A
Intel8259A是一种可编程的中断控制器,有如下功能:
可管理 8个中断源电路的中断,并对其进行优先级管
理;
具有 8级中断优先控制,通过级连可以扩展至 64级优
先权控制;
对中断源有屏蔽或允许申请中断的操作;
CPU响应中断时,能自动提供中断类型码。
退 出
8.2.2
一,8259A的内部结构
8259A的内部结构及引脚如 图 8.15所示,它主要由下列主
要部分组成:
1,数据总线缓冲器
它是 8259A与系统数据总线的接口,是 8位双向三态
缓冲器。
2,读 /写控制逻辑
CPU通过它实现对 8259A的读 /写操作。
3,级连缓冲器
用以实现 8259A芯片之间的级连,使得中断源可以由
8级扩展至 64级。
4,控制逻辑电路
对整个芯片内部各部件的工作进行协调和控制。
退 出
8.2.2
5,中断请求寄存器 IRR
用以分别保存 8个中断请求信号,当相应的中断请求
输入引脚有中断请求时,该寄存器的相应位置 1。
6,中断屏蔽寄存器 IMR
对应位用以对 8个中断源的中断请求信号进行屏蔽控
制。
7,中断服务寄存器 ISR
当 CPU正在处理某个中断源的中断请求时,ISR寄存
器中的相应位置 1。
8,优先级比较器
用以比较正在处理的中断和正在请求的中断源的优先
级别,以决定是否产生中断嵌套。
退 出
8.2.2
二,8259的外部引脚
1,与 CPU相连的引脚
D7~D0:数据线,双向、三态。一般直接与系统的数
据总线相连,用以与 CPU进行信息交换。
A0:奇 /偶地址选择信号,输入。
A0= 0,ICW1,OCW2,OCW3
A0= 1,ICW2~ ICW4,OCW1
:片选信号,输入、低电平有效。一般由系统地址总
线的高位地址译码后形成,决定了 8259A的端口地址范围。
:写控制信号,输入、低电平有效。一般与系统控制
总线的 相连。
CS
WR
IOW
退 出
8.2.2
:读控制信号,输入、低电平有效。一般与系统控制
总线的 相连。
INT:中断请求信号,输出、高电平有效。一般与 CPU的
INTR相连,用以向 CPU发出中断请求。
:中断响应信号,输入、低电平有效。一般与 CPU
的 相连,在 CPU发出第二个 时,8259A将其中最
高级别的中断请求的中断类型码传送给 CPU。
2,与外设相连的引脚
IR7~IR0,8个中断请求信号,输入,有效电平由程
序设定。
RD
IOR
INTA
INTA INTA
退 出
8.2.2
2,与外设相连的引脚
IR7~IR0,8个中断请求信号,输入,有效电平由程序
设定。
3,其它引脚
CAS2-CAS0:级连信号。当 8259A为主片时,为输
出;当 8259A为从片时,为输入。与 信号配合,实
现芯片的级连,这三个引脚信号 000~ 111的不同组合,
刚好对应于 8个从片号。
:从片开启 /缓冲信号,这是一个多功能引脚。
在非缓冲方式下,为输入,若 8259A在系统中作从片使用,
则 =0;主片则 =1;在缓冲方式下,为输出,用作
8259A外部数据总线缓冲器的启动信号。
+5V,GND,电源和接地引脚。
SP/EN
SP/EN
SP SP EN
退 出
8.2.2
三,8259可编程寄存器
1,8259的初始化字
1) ICW1字
8259A开始必定写入的是 ICW1,由引脚 A0=0和
ICW1内的 D4=1确定。 ICW1的格式如 图 8.16所示。
2) ICW2字 — 中断类型号
是 8259A必定写入的字,由引脚 A0=1确定。其格式如
图 8.17所示。
3) ICW3字 — 级连控制字
是 8259A可选写入字,由引脚 A0=1确定。该命令字仅
用于级连方式,对主片和从片都必须写人 ICW3,但两者
含义不同。对于主 8259A芯片,ICW3的格式如 图 8.18所
示,从片 8259A的格式如 图 8.19所示。
退 出
8.2.2
4) ICW4字格式 — 中断方式字
是 8259A可选写入字,由引脚 A0=1和 D7~D5=000确定。只有当
ICW1中的 D0= 1时才需要设置,其格式如 图 8.20所示。
?8259A作为中断控制器 ?
D2,M/S位,主 /从选择位。在缓冲方式下,若 D2=1,则表示为
主 8259A;若 D2=0,则表示为从 8259A。在非缓冲方式下,该位无效。
D3,BUF位,设定 8259是否工作于缓冲方式。若 D3=1,则
8259A工作于缓冲方式;若 D3=0,则 8259工作于非缓冲方式。
D4,SFNM位,嵌套方式选择为。若 D4=1,则 8259工作于特殊
的全嵌套模式;若 D4=0,则工作于普通的全嵌套模式。
?普通全嵌套方式 ?
?特殊全嵌套方式 ?
退 出
8.2.2
2,8259的操作命令字
1) OCW1— 中断屏蔽控制字
OCW1是中断屏蔽操作命令字,由引脚 A0=1确定,格式如 图 8.21
所示。
2) OCW2— 中断结束和优先级循环控制字
OCW2用来设置非自动中断结束和 优先级循环方式 的操作命令字,
由引脚 A0=0及 D4D3=00确定,格式如 图 8.22所示。
3) OCW3— 屏蔽和读状态控制字
OCW3由 A0=0及 D4D3=01确定。其格式如 图 8.23所示。 D1D0:
为读命令。 D1D0=11,表示读中断服务寄存器; D1D0=10,表示读
中断请求寄存器; D1= 0,D0无意义。
D2:决定 8259A是否设置为查询工作方式。查询字的格式如 图 8.24
所示。
D6D5:决定 8259A是否设置为特殊屏蔽模式命令。若 D6D5=11,则
为设置特殊屏蔽模式命令;若 D6D5=01,则为撤消特殊屏蔽
模式、返回普通 屏蔽模式 命令;若 D6=0,则 D5无意义。
退 出
8.2.2
四,8259A的实例应用
我们可以认为,现在微机系统中断控制器的连接原理
如 图 8.25所示。
这里,主片的端口地址仍为 20H,21H,从片的端口
为 A0H,A1H。见 BIOS中初始化主片 8259A的程序 。
需要注意,主、从片 8259都采用的是普通的 EOI方式,
对于从片提出的中断,其服务程序返回前应发两个 EOI命
令,一个给从片 8259,一个给主片 8259:
MOV AL,20H
OUT 0A0H,AL
OUT 20H,AL
退 出
8.2.2
2,主片中断子程序的编程举例
下面给出的程序是 PC机中的日时钟中断子程序,也就是主 8259的 IR0中
断子程序。它占用的是外部中断的最高优先级,每隔 (1/18.2)s时间自
动产生一次中断请求。;数据段 DATA,段地址为 0040H,其中包括有关的伪指令:
?
wTimer_low DW? ;地址为 0040,006CH
wTimer_high DW? ;地址为 0040,006EH
bTimer_ofl DB? ;地址为 0040,0070H
?
bMotor_status DB?
bmotor_count DB?
eoi EQU 20H; 中断子程序 (见连接 )
退 出
8.2.2
3,从片中断子程序的编程举例
下面我们通过系统保留的中断源 IR9展示从片中断子
程序的编写方法。 IR9系统保留给用户,其信号线接到了
系统总线的引脚 B4,下面我们利用该中断源,通过 图 8.26
设计的电路,向 CPU提出中断请求,CPU响应中断后显示
,Interrupt was acknowledged !”。
所以 80?86 PC机的可屏蔽中断服务程序的设计主要
有两个方面。
第一,根据 8259中断输入线对应的中断类型码,将中
断服务程序的入口地址填入中断向量表;
第二,向 8259写入操作命令字对中断屏蔽与中断结束
进行处理(初始化字系统已设置)。
实现程序 (见连接 )
退 出
8.2.3 32位机的中断系统
32机的中断系统的逻辑结构仍然采用主、从两片 8259
相连的结构,但实模式下与保护模式下中断的处理过程有
很大的差别。
一,32机实模式下的中断
在实模式下,32机的中断处理过程与 16机是一样的,
仅仅在于种类的增多,如 图 8.27所示。
退 出
8.2.3
二,32机保护模式下的中断
保护模式下的中断机理与实模式中断机理的本质和目
的是一致的,指令的格式也完全一样,但中断的处理过程
差别很大。
第一,保护模式下用中断门对应实模式下的中断向量,数
量仍然是 256个,每个中断门用一个描述符来表示。
第二,保护模式下用中断描述符表对应实模式下的中断向
量表。
第三,实模式中断服务入口地址寻址空间限制在最低端的
1MB之内,只需一次性查找中断向量表就直接获取了中断
服务程序的入口地址。保护模式中断子程序的入口地址寻
址空间没有限制,需要通过 2次查表才能得到中断子程序
的入口地址,提高了系统的安全性,图 8.28描述了实模式
下与保护模式下中断子程序入口地址的寻址过程。
退 出
第三节 DMA系统( 4学时)
8.3.1 DMA的基本原理
退 出
图 8.29是实现 DMA传送的基本原理图,
DMA传送的基本过程如下:
第一,当 I/ O接口准备好,希望进行 DMA
操作时,就向 DMAC发出 DMA请求信号 DRQ;
第二,DMA控制器将此请求信号转变成对
CPU的总线请求信号 HRQ;
8.3.1
退 出
RD WR
第三,CPU当前总线周期执行结束,响应 DMA请
求,发出总线应答信号 HLDA,此时,由 DMA控制器接
管对总线的控制。
第四,由 DMA控制器对存储器寻址,并发出相应
控制信号( DACK,及 ),使存储器与 I/ O接口
之间直接交换数据。
第五,在传送一字节数据后,DMAC自动修改存储
器地址和传送字节计数器,并检测传送是否结束。
第六,DMA传送结束,DMA控制器向 CPU发出结
束信号,并释放总线,使 CPU重新获得总线控制,恢
复正常工作。
8.3.2 DMA控制器 8237A
其主要功能如下:
在一个片子中有 4个独立的 DMA通道。
每个通道的 DMA请求都可以分别允许和禁止。
每个通道的 DMA请求有不同的优先权。优先权可以是
固定的,也可以是循环的,由编程决定。
每个通道一次传送的最大长度可达 64KB。
可以用级连的方法扩展通道数。
一,8237A的内部结构
8237A的内部结构由以下三个基本部分组成:控制逻
辑单元、缓冲器组和内部寄存器,其内部结构与引脚如 图
8.30所示。
退 出
8.3.2
1,控制逻辑单元
定时和控制逻辑单元。
命令控制逻辑。
优先权控制逻辑。
2,缓冲器组
缓冲器组包括两个双向缓冲器和一个输出缓冲器,
通过这三个缓冲器把 8237A的数据线、地址线和系统总
线相连。
3,内部寄存器
8237A内部寄存器共有 12个,分为两大类,— 类是
控制或状态寄存器,另一类是地址寄存器和字节计数器,
如 表 8.2所示。
退 出
8.3.2
1,基地址寄存器、当前地址寄存器
这两个寄存器都用来存放 DMA操作时将要访问的存
储器的地址,是 16位的寄存器,每个通道都有。
2,基字节计数器、当前字节计数器
这两个计数器都用来存放 DMA传送时传送的字节数。
是 16位计数器,每个通道都有。
3,暂存寄存器
在存储器到存储器的传送方式下,该寄存器保存从
源存储单元读出的数据,再由它写到目的存储单元。
退 出
8.3.2
二,8237A的外部引脚
1,与 CPU相连的引脚
D7~D0:数据线,双向、三态。有两种不同的使用情
况,第一种是在 8237A空闲时,即 CPU控制总线时,提供
CPU访问 8237A寄存器的数据通道;第二种是在进行 DMA
操作时,即 DMAC控制总线时,提供访问存储器高 8位地
址 A15~A8,并由 ADSTB信号将这些地址信息锁存入地址
锁存器。
A3~A0:低 8位地址线的低 4位,双向、三态。有两种
不同的使用情况,第一种是在 CPU控制总线时,8237作
为一般 I/O接口,此时为输入,作为选中 8237A内部寄存器
的地址选择线。第二种是 8237A进行 DMA操作时,A3~A0
为输出,作为选中存储器的低 4位地址。
A7~A4:低 8位地址线的高 4位,三态、输出。 A7~A4
仅用在 8237A进行 DMA操作时,提供访问存储器低字节的
高 4位地址。
退 出
8.3.2
:片选信号,输入、低电平有效。
:存储器读信号,输出、三态、低电平有效。
:存储器写信号,输出、三态、低电平有效。
,I/O读信号,双向、三态、低电平有效。在 8237
为从态时,它为输入控制信号,CPU利用它读出 8237A内
部寄存器。在 DMA为主态时,它为输出控制信号,与
配合实现 DMA写操作。
,I/O写信号,双向、三态、低电平有效。在 DMA
为从态时,它为输入控制信号,CPU利用它把数据写入
8237A内部寄存器。在 DMA为主态时,它为输出控制信号,
与 配合实现 DMA读操作。
HRQ:请求占用总线信号,输出、高电平有效。
HLDA:同意占用总线信号,输入、高电平有效。
退 出
CS
MEMR
MEMW
IOR
MEMW
IOW
MEMR
8.3.2
2,与外设相连的引脚
DREQ3~DREQ0,DMA请求信号,输入、有效电平
可由工作方式命令字确定。
DACK3~DACK0,DMA响应信号,输出、有效电平
可由工作方式命令字确定。 一般利用该信号选中某端口,
实现 I/O?存储器的传送。
3,其它引脚
CLK:时钟信号,输入。
RESET:复位信号,输入、高电平有效。
READY:准备好信号,输入、高电平有效。
AEN:地址允许信号,输出、高电平有效。 DMA操作
时,AEN=1; CPU控制总线时,AEN=0。
ADSTB:地址选通信号,输出、高电平有效。
退 出
8.3.2
:过程结束信号,双向、低电平有效。作为输出,
在 DMA传送期间,当字节数计数器减至 0时,使 EOP引脚
变为低电平,表示 DMA传送结束;作为输入,当 EOP端
输入一个低电平时,强迫 DMA操作停止,并使内部寄存器
复位。
VCC,GND,电源和接地引脚。
三,8237A可编程寄存器
1,方式字
方式字格式如 图 8.31所示。
D1D0:通道选择位。
D3D2:传输类型选择位。
DMA传送
退 出
EOP
8.3.2
D4:自动预置功能选择位。当 D4 =1时,允许自动预
置。当 D4 =0时,禁止自动预置。
D5:地址增减选择位。 D5=1,每传送一个字节,当
前地址寄存器的内容减 l,D5=0,当前地址寄存器的内容
加 l。
D7D6:方式选择位。
单字节传送方式 块传送方式
请求传送方式 级连传送方式
退 出
8.3.2
2,命令字
命令字是在初始化时写入 8位命令寄存器,4个通道共
用,各位定义如 图 8.32所示。
D0:允许或禁止存储器至存储器的传送操作。 D0=1
时,允许存储器至存储器的传送。 D0=1时,禁止存储器
至存储器的传送。
D1:设定在存储器至存储器传送过程中,源地址保持
不变或改变。当 D1=0时,传送过程中源地址是变化的。
反之,当 D1=1时,在整个传送过程,源地址保持不变。
当 D0=0时,不允许存储器至存储器传送,则 D1位无意义。
D2:允许或禁止 8237工作的控制位。
D3:时序类型选择位。 D3=0时为普通时序。 D3=1时
为压缩时序。
D4:优先权方式选择位。 D4=0,采用固定优先级;
D4=1,采用循环优先级。
退 出
8.3.2
D5:扩展写信号选择位。 D5=1,为扩展写信号时序,
它使 或 的负脉冲加宽,提前一个时钟周期有效,
即与读控制信号同时有效。 D5=1,为滞后写时序,
或 比 或 滞后一个时钟周期有效。
D6:用来选择 DMA请求信号 DREQ的有效电平。
D7:用于选择 DMA响应信号 DACK的有效电平。
3,请求字
DMA请求可以由 I/O设备产生 DREQ信号,也可以由
软件产生。请求寄存器就是用于由软件来产生 DMA请求。
存储器到存储器的传送,一般利用软件产生 DMA请求。
软件请求是不可屏蔽的,其格式如 图 8.33所示。
退 出
MEMWIOW
IOW MEMW
IOR MEMR
8.3.2
4,屏蔽字
屏蔽字记录了各通道的 DMA请求是否被允许,各位的
定义如 图 8.34所示。
5,状态字
状态字的格式如 图 8.35所示。
四,8237A的应用实例
1,现行微机系统中的 DMA系统的逻辑结构
在 PC机中,有两个 8237A DMA控制器,采用主、从
结构形式相连,共有 7条通道。其使用定义如 表 8.2所示,
其在 16机系统中的结构简图如 图 8.36所示。
DMA系统中用于事先锁存高位地址的锁存器称为
DMA页面寄存器,其端口号如 表 8.3所示。
退 出
8.3.2
2,PC机中编程举例
PC机中 DMA通道 2专用于软盘的读写操作,在 ROM-
BIOS中有一段对该通道的初始化程序,该程序名为 DMA-
SETUP,它被软盘读、软盘写和软盘校验等程序调用。
在磁盘格式化时所使用的每扇区字节数已存于磁盘基
区 DISK-BASE的第 3号单元,03号单元的数为 0~3,对应
每扇区的字节数分别如下:
0 128B/扇区
1 256/扇区
2 512/扇区
3 1024/扇区
退 出
8.3.2
DMA-SETUP的入口参数归纳如下:
入口参数,AL=DMA通道 2的方式控制字
4AH— 通道 2,DMA读、单一传送(写
软盘)
46H— 通道 2,DMA写、单一传送(读
软盘)
42H— 通道 2,DMA校验、单一传送
(校验软盘)
DH— DMA传送的扇区数
出口参数,CY=1操作不成功
CY=0操作成功
源程序
退 出
第四节 计数 /定时器( 2学时)
计数, 定时是计算机系统工作不可缺少的功能 。 主
板上的 8254除了形成日内计时的信号之外, 还为存储
器刷新产生定时信号和为主机板上的扬声器提供可编
程的声频信号 。
退 出
8.4.1 定时技术
在计算机系统中经常要用到定时信号。一般说,定时
信号可用软件和软硬件相结合两种方法来获得。
软件的方法:是通过编程,利用执行一条指令所需时
钟数,统计执行一段程序花费的时钟数,乘以一个时钟周
期的时间,就得到定时的时间。
软件硬件相结合方法:其主要思想是根据需要的定时
时间,用指令对计数 /定时器设置定时常数,并用指令启
动计数 /定时器,即到定时值时,便产生一个定时输出。
退 出
8.4.2 计数 /定时器 8254
8254是 Intel公司为解决与微处理器系统设计有关
的公共时间问题而设计的计数 /定时器器件,24引脚双
列直插式封装,其主要功能如下:
三个独立 16位计数器;
每个计数器可按二进制或十进制编程;
每个计数器可编程 6种不同的工作方式;
每个计数器计数频率最高为 10MHZ;
可读回状态。
退 出
8.4.2
一,8254的内部结构
8254的内部结构及外部引脚如 图 8.37所示。
1,数据总线缓冲器
2,读写控制逻辑
3,计数通道
8254有 3个相互独立的同样的计数电路,分别称作
计数器 0、计数器 1和计数器 2。计数器的结构如 图 8.38
所示。
退 出
8.4.2
二,8254的外部引脚
1,与 CPU相连的引脚
D7~D0:数据线,双向、三态。
:读信号,输入、低电平有效。
:写信号,输入、低电平有效信号。
:片选信号,输入、低电平有效。
A1,A0:地址线,输出。这两根线连接到地址总
线的 A1,A0上,以选中 8254内部的寄存器,对它们进
行读写操作。 A1,A0与 8254内部寄存器的关系如 表
8.4所示。
退 出
RD
WR
CS
8.4.2
2,与外设相连的引脚
CLK:计数时钟,输入。
GATE:门控信号,输入、有效电平可分成电平控
制和上升沿控制两种类型。
OUT:计数结束信号,输出。当计数器计数到 0时,
在 OUT引脚必定有输出。在不同的模式下,可输出不
同电平的信号。方式字的具体格式如 图 3.39所示。
D0,BCD位。该位用来设置装入初值寄存器数的
格式,是 BCD码数还是二进制数。
D3D2D1,M2M1M 0。用来选择计数器以下六种
工作方式中的一种。
方式 0— 计数结束产生中断
方式 1— 可重触发的单稳触发器
退 出
8.4.2
方式 2— 分频器
方式 3— 方波发生器
方式 4— 软件触发选通
方式 5— 硬件触发选通
D5D4,RW1RW0指明要写入的控制字是哪一个计数器的控
制寄存器。
2,读回命令字
其格式如 图 8.46所示。
3,状态寄存器
其格式如 图 8.47所示。
D5~D0:反映方式控制字所规定的计数其编程方式。
D6,NULL COUNT,无效计数位。 NULL COUNT=1,表示
无效计数值; NULL COUNT=0,表示可读计数值。
D5:反映了该计数器 OUT引脚的现行状态。
退 出
8.4.2
四,8254的实例应用
在 PC机中,以 8254定时 /计数器构成的定时逻辑
结构框图如图 8.42所示。 PC机系统分配了 4个 I/O端口
地址 0040H~0043H。三个通道的时钟输入 CLK端的频
率均为 1.19318MHz,三个通道分别在 PC机中的作用
如下:
1)通道 0
通道 0是一个系统计时器。从 图 8.48可以看出,中
断 0每隔 55ms产生一次中断,系统利用这个计时器完
成日历时钟计数、控制软盘驱动器读写操作后的电动
机自动延时停机以及为用户提供 INT 1CH定时中断调
用。见 初始化程序
退 出
8.4.2
2)通道 1
定时器通道 1时专门为系统的动态存储器刷新设置
的。假设刷新时间为 15.6μs,见其 初始化程序
3)通道 2
PC机这个定时通道的功能是驱动系统机箱内的声
频扬声器。将计数器 2编程为方式 3,作为方波发生器
输出约为 1kHz的方波,经滤波驱动后推动扬声器发声。
见 初始化程序
退 出
第五节 并行接口( 2学时)
8.5.1 并行接口概念
计算机系统的信息交换有两种形式:并行数据传输方式
和串行数据传的方式 。 并行数据传输是以计算机的字长,
通常是 8位, 16位或 32位为传输单位, 一次传送 — 个字长
的数据 。 并行接口的, 并行, 含义不是指接口与系统总线
一侧的并行数据而言, 而是指接口与 I/O设备或控制对象一
侧的并行数据线 。
退 出
8.5.2 并行接口 8255
8255A是为 Intel公司的微处理器配套的通用可编程并行接
口芯片,其基本功能如下:
8255A接口芯片有 3个 8位并行输入 /输出端口,可利用编
程方法设置 3个端口是作为输入端口还是作为输出端口;
8255A能适应 CPU与 I/O接口之间的多种数据传送方式的
要求。如无条件传送,查询方式传送,中断方式传送 。与此
相应,8255A设置了方式 0、方式 1以及方式 2。
8255A的 C口比较特殊,除作数据口外,在工作方式 1和 2
下,它的部分信号线被分配作专用的联络应答信号。
退 出
8.5.2
一,8255的内部结构
8255A的内部结构机外部引脚如 图 8.49所示,它包括
四个部分:数据总线缓冲器,读写控制逻辑,A组和 B组
控制电路。
1,数据总线缓冲器
2,读写控制逻辑
3,A组和 B组控制
A和端口 C的高 4位( PC7~PC4)构成 A组,由 A组控
制部件来对它进行控制;端口 B和端口 C的低 4位
( PC3~PC0)构成 B组,由 B组控制部件对它进行控制。
退 出
8.5.2
二,8255的外部引脚
1,与 CPU相连的引脚
D7~D0:数据线,双向、三态。
:读信号,输入、低电平有效。
:写信号,输入、低电平有效信号。
:片选信号,输入、低电平有效。
A1,A0:地址线,输出。 A1,A0与 8255内部寄存器
的关系如 表 8.5所示。
RD
WR
CS
退 出
8.5.2
2,与外设相连的引脚
PA7~PA0,A端口数据信号引脚
PB7~PB0,B端口数据信号引脚。
PC7~PC0,C端口数据信号引脚。
3,其它引脚
RESET:复位信号,输入、高电平有效。
VCC,GND,电源和接地引脚。
三,8255的可编程寄存器
1,8255的方式控制字
8255A的工作方式控制字格式和各位的含义如 图 8.50所示。
A组有三种工作方式,而 B只有两种工作方式。
方式 0— 基本的输入 /输出方式
方式 1— 选通式输入 /输出
方式 2— 双向选通输入 /输出方式
退 出
8.5.2
2,C口置位 /复位控制字
8255A的 C口置位 /复位控制字的格式如 图 8.56所示。
其中,D6D5D4位无意义。
3,C口的状态字
图 8.57给出三个状态字的格式。
四,8255的实例应用
IBM PC/ XT使用一片 8255A管理键盘、控制扬声器和输入系统
配置开关 DIP的状态等,其连接电路如 图 8.58所示。
A口在加电自检时为输出,输出当前检测部件的标志信号。正常
工作时为输入,用来读取键盘扫描码。 B口工作于输出方式,用于键
盘的管理,RAM和 I/ O通道检验以及扬声器的启动和控制。 C口为输
入方式,高 4位为状态测试位,低 4位用来读取系统板的系统配置开关
D1P状态。
在 PC/XT机中,DIP开关的设定状态与意义如 图 8.59所示。
现在以 ROM-BIOS初始化部分的读系统配置开关的一段程序来说
明 8255A的 编程应用 。
退 出
第六节 串行接口( 4学时)
在串行通信中引出了一系列的约定和概念。
双方约定以何种速率进行数据的发送和接收(波特率);
约定采用何种数据格式(帧格式),如果包含控制信息,其定义
是什么;
接收方如何得知一批数据的开始和结束(帧同步);
接收方如何从位流中正确地采样到位数据(位同步);
接收方如何判断收到数据的正确性(数据校验);
收发出错时如何处理(出错处理)。
退 出
3.6.1 串行通信的基本概念
8.6.1
一、异步通信
串行的异步通信是以字符为单位进行传输。其传输字
符格式如 图 8.60所示。
1,帧格式
例如用 ASCII编码,字符为 7位加 1个奇偶校验位,一
个起始位,以及一个停止位,共 10位。如 图 8.61表示了传
送 D字符的 ASCII码波形 0010001。
2,波特率
波特率即数据送速率的约定,对于 CPU与外界的通信
是很重要的。假如数据传送的速率是 120字符 /s,而每一
个字符如上约定包含 10个数据位( b),则传送的波特率
为,120?10 =120( b/s)
退 出
8.6.1
二、同步通信
同步通信的信息格式:一帧同步信息包括由固定长度
(如 200个)的字符组成的一个数据块,其中每个字符也
由 5~8位组成,在数据块的前面置有 1~2个同步字符,最
后是错误校验字符。如 图 8.62所示。
三、传输模式
1,单工传送
2,半双工
3,全双工
如 图 8.63
退 出
8.6.1
四、传送速率
1,传送速率:是指每秒钟传送的二进制位数,也称为波特
率。
2,发送时钟和接收时钟的频率和波特率之间有如下关系:
发送 /接收时钟频率= M× 波持率
式中 M叫做波特率系数或波特率因子。
3,串行接口直接传送串行信息的最大距离与传输速率及传
输线的电气特性有关,如 图 8.64所示。
五、信号的调制与解调
计算机的通信要求传送数字信号,而在进行远程数据
通信时,通信线路大多数借用电话线传送。为此,在发送
时需要将数字信号(二进制信号)调制成适合在电话线上
传输的音频信号。在接收时,需要解调还原成数字信号,
如 图 8.65所示。
退 出
8.6.2 串行接口 8251
可用于同步和异步通信。
同步传送,5~8位字符,可内或外同步,自动插入同
步字符。
异步传送,5~8位字符,时钟速率可为通信速率的 1,
16或 64倍。
字符停止位可在 1,1.5或 2位三者之中选择,可检查
启动位,能自动检测和处理中止字符。
波特率:异步最高为 19.2K,同步最高为 64K。
完全双工、双缓冲器发送和接收器。
错误检测:具有奇偶、溢出和帧错误等检测电路。
退 出
8.6.2
一,8251的内部结构
8251A的内部结构及引脚如 图 8.66所示。
1,发送器和接收器
1)发送器包含发送缓冲器、发送移位寄存器、发送控制
电路三部分。
工作过程如下:
第一,接收到来自 CPU的数据后将其存入发送缓冲器;
第二,发送缓冲器存有待发送的数据后,使引脚
TxRDY变为低电平,表示发送缓冲器满;
退 出
8.6.2
第三,当调制解调器做好接收数据的准备后,向
8251A输入一个低电平信号,使 引脚有效。是
MODEM对 8251的 信号的响应;
第四,在编写初始化命令的过程中,使操作命令控制
字的 TxEN位为 1,处于允许发送的状态。
第五,满足以上(二)、(三)、(四)条件时,若
采用同步方式,发送器将根据程序的设定自动发送一个
(单同步 )或两个 (双同步 )同步字符,然后由移位寄存器从
数据输出线 TxD串行输出数据块。若采用异步方式,由发
送控制器在其首尾加上起始位及停止位,然后从起始位开
始,经移位寄存器从数据输出线 TxD串行输出。
第六,待数据发送完毕,使 TxEMPTY有效。
第七,CPU可向 8251A发送缓冲器写入下一个数据。
CTS
RTS
退 出
8.6.2
2) 3,读 /写控制电路
读 /写控制逻辑对 CPU输出的控制信号进行译码以实
现对 8251的读 /写功能。
4,调制解调器控制
接收器的功能是接收在 RxD脚上的串行数据并按规定
的格式把它转换为并行数据,存放在接收数据缓冲器中。
接收器的工作原理是:
第一,当控制命令字的“允许接收” RxE位置位和
“准备好接收数据” RxRDY有效时,接收器开始监视
RxD线;
第二,外设数据从 RxD端逐位进入接收移位寄存器,
接收中对同步和异步两种方式采用不同的处理过程。
异步方式时,当发现 RxD线上的电平由高电平变为低
电平时,认为起始位到来,接收器开始接收一帧信息。接
收到的信息经过删除起始位和停止位,把已转换的并行数
据置入接收数据缓冲器。 退 出
8.6.2
同步方式时,每出现一个数据位就把它移一位,把移
位寄存器数据与程序设定的存于同步字符寄存器中的同步
字符相比较。若不相等,重复上述过程,找到同步字符后
使 SYNDET=1,表示已达到同步。这时在接收时钟 RxC的
同步下开始接收数据。移位 RXD线上的数据送入移位寄存
器,按规定的位数将它组装成并行数据,再把它送至接收
数据缓冲器。
第三,当接收数据缓冲器接收到由外设传送来的数据
后,发出“接收准备就绪” RxRDY信号,通知 CPU取走
数据。
2,数据总线缓冲器
3,读 /写控制电路
4,调制解调器控制
退 出
8.6.2
二,8251的外部引脚
1,与 CPU相连的引脚
D7~D0:数据线,双向、三态。
:读信号,输入、低电平有效。
:写信号,输入、低电平有效信号。
:片选信号,输入、低电平有效。
C/,控制 /数据线,输入。若此端为高电平,则
CPU对 8251写控制字或读状态字;若为低电平,则 CPU
读或写数据。其与 8251端口操作关系如 表 8.6所示。
TxRDY:发送器准备好,输出、高电平有效。
TxE:发送器空,输出、高电平有效。
RxRDY:接收器准备好信号,输入、高电平有效。
RD
WR
CS
D
退 出
8.6.2
2,与外设(调制器)相连的引脚
8251A提供了 4个与 MODEM相连的控制信号和数据发
送与数据接收信号线。它们的含义与 -232C标准相同。
:数据终端准备好,输出、低电平有效。
:请求发送,输出、低电平有效。
:数据装置准备好,输入、低电平有效。
:清除传送(即允许传送),输入、低电平有效。
TxD:发送数据线,输出。
RxD:接收数据线,输入。
DTR
RTS
DSR
CTS
退 出
8.6.2
3,其它引脚
RESET:芯片复位线,输入、高电平有效。
CLK:时钟线。
SYNDEY/ BRKDET( Synchronous Detect/Break
Detect):双功能检测信号,高电平有效。
对于同步方式,SYNDET是同步检测信号,该信号既
可工作在输入状态,也可工作在输出状态。内同步工作时,
该信号为输出信号。外同步工作时,该信号为输入信号。
对于异步方式,称间断检出信号 BRKDET,输出、高
电平有效。
RxC:接收器时钟。
TxC:发送器时钟。
VCC,GND,电源和接地引脚。
退 出
8.6.2
三,8251的可编程寄存器
1,8251的方式控制字
8251A方式控制字各位的定义如 图 8.67所示。
2,操作命令字
操作命令控制字各位的定义如 图 8.68所示。
状态字各位所代表的意义如 图 8.69所示。
四,8251的实例应用
作为实例应用,我们介绍一般实验系统开设的用两片
8251A芯片实现两个 8088CPU之间的串行通信。其接线图
如 图 8.70所示。假设 1#8251A数据口的地址为 2A0H,控
制口的地址为 2A1H。同样 2#8251A数据口的地址为 2A0H,
控制口的地址为 2A1H。
1#CPU的发送程序
退 出
第七节 微机接口芯片组介绍
82360SL不仅与 ISA总线标准兼容,而且集成了主板
上必备的接口芯片,DMA控制器、中断控制器、定时 /计
数器、实时时钟、串行接口及并行接口等。
8.7.1 386系统支持的系统外围芯片
组 82360SL
退 出
8.7.2 486系统支持的系统外围芯片组
82357ISP
82357ISP是一种多功能外围接口芯片,其中集成有
DMA控制器、中断控制器、定时 /计数器,NMI产生电路
以及总线判优电路等。
退 出
8.7.3 Pentium系统支持的系统外围芯片组
Pentium系列 PC机常用的芯片组有 82371和 82380,
下面我们分别作一简单的介绍。
1,82371主要功能:
基于 2片 82C59的中断控制逻辑可以管理 15级中断。
基于 2片 82C37的增强 DMA控制器可以支持 3通道的
PCI DMA传送。
一个 82C54可以用于系统时钟、刷新请求、扬声器发
声。
集成的 IDE控制器可以支持 4个 IDE设备。
退 出
8.7.3
2,82380主要功能:
82380的 DMA控制器
82380内部有一个 32位宽的 8通道 DMA控制器。该控
制器可实现内存与内存之间,I/O设备与 I/O设备之间、内
存与 I/O设备之间的直接数据传送。传送的数据可以是字
节、字或双字的任意组合。传送中遇到未对准的字或双字,
利用其内部的 32位暂存器可以分解和重组,从而可在具有
不同数据宽度的设备之间进行数据交换。其地址寄存器为
32位,能寻址所有 4GB的物理地址空间。其字节计数器有
24位,最多可连续传送 16MB数据。
退 出
8.7.3
82380的中断控制器
82380中断控制器相当于包含了三个与 82C59A
( 82C59A是 8259A的增强型,与 8259A兼容)相同的中
断控制器,分别称作中断组 A、中断组 B、中断组。
82380中断控制器与 8259A主要有两点不同:一是
82380的每个中断请求都可独立设置中断向量,而不是像
8259A那样各个中断向量自动连续;二是当 82380外接
8259A作为从片时,在中断响应周期中,从片的编码不是
由 CAS2~CAS0引线送入,而是通过数据线 D2~D0传输。
除了这两点外,每个中断组和单片 8259A差不多。
82380的定时 /计数器
82380中的可编程定时 /计数器包含 4个功能与 8254中
通道功能相同的 16位可编程定时/计数器。每个定时器可
有 6种工作方式,4个定时器共用一个时钟输入。
退 出
图 8.1 I/O接口的典型结构
退 出
图 8, 1 I / O 接 口 的 典 型 结 构
C P U
外 设
控 制 寄 存 器
状 态 寄 存 器
数 据 寄 存 器
D B
A B
C B
数 据
状 态
控 制
I / O 接 口 电 路
图 8.2 实现无条件输入 /输
出的接口电路
退 出
三 态
缓 冲

数 据
来 自 外 设
地 址 译 码 器
数 据 总 线
地 址 总 线
8
锁 存

到 外 设
地 址 译 码 器
数 据 总 线
地 址 总 线
8
图 8, 2 实 现 无 条 件 输 入 / 输 出 的 接 口 电 路
>
1
>
1
M E M W
M E M R
图 8.3 条件传送方式的程序流程图
退 出
输 入 一 个 字 节 到 C P U 或
C P U 输 出 一 个 字 节 到 外 设
对 数 据 进 行 处 理
输 入 / 输 出 完 了 吗?
结 束
R E A D Y / B U S Y = 1
N
Y
N
Y
图 8, 3 条 件 传 送 方 式 的 程 序 流 程 图
图 8.4 实现条件传送方式的输入原
理图
退 出
图 8, 4 实 现 条 件 传 送 方 式 的 输 入 原 理 图
输 入
装 置



三 态
缓 冲
器 ( 8 )
缓 冲 器
( 1 )
地 址
译 码
数 据
去 数 据
总 线 D B
地 址 译 码
R
D Q
+ 5
选 通 信 号
状 态 端 口
译 码
数 据 端 口
译 码
R e a d y
状 态
信 息
地 址 总 线
A
0
A
9
~
>
1
M E M R
>
1
M E M R
图 8.5 条件方式的输出接口
退 出
图 8, 5 条 件 方 式 的 输 出 接 口




锁 存 器
三 态
缓 冲
器 ( 1 )
地 址 译 码 器
数 据 总 线 D B
地 址 译 码 器
R
DQ
+ 5
状 态 口
地 址 总 线
A C K
去 数 据 总 线 D B,B U S Y,
状 态 信 息, B U S Y,
数 据
输 出 数 据 口
>
1
M E M W
>
1
M E M R
A
0
A
9
~
图 8.6 多个设备的条件
输入 /输出方式程序流程
退 出
图 8, 6 多 个 设 备 的 条 件 输 入 / 输 出 方 式 程 序 流 程
为 A 设 备 服 务
为 B 设 备 服 务
为 C 设 备 服 务
A 设 备 准 备 好
B 设 备 准 备 好
C 设 备 准 备 好
N
N
Y
Y
Y
N
图 8.7 中断方式程序执行的流程
退 出
图 8, 7 中 断 方 式 程 序 执 行 的 流 程
断 点
主 程 序 中 断 响 应
中 断 服 务
子 程 序
中 断 返 回
图 8.8 中断方式的输入接

退 出
图 8, 8 中 断 方 式 的 输 入 接 口
输 入
设 备



中 断 屏 蔽
三 态 缓 冲 器
地 址
译 码
数 据 总 线
地 址 总 线
中 断
请 求
三 态
缓 冲 器
+ 5 V
I O R
I N T R
中 断 类 型 码 数 据 总 线
I N T A
S T B
D
R
C P
Q
≥ 1
&
图 8.9 用 Inter8259A实现中断判优
I N T 设 备 A
I N T 设 备 B
I N T 设 备 H
I R
0
I R
1
I R
7
I N T A
I N T R
I N T A
I N T
I n t e l 8 2 5 9
C P U
图 8, 9 用 I n t e l 8 2 5 9 A 实 现 中 断 判 优
退 出
图 8.10 中断服务子程序的流

保 护 现 场
开 中 断
为 相 应 设 备 提 供 服 务
恢 复 现 场
返 回
图 8, 1 0 中 断 服 务 子 程 序 的 流 程
退 出
图 8.11 DMA方式的接

系 统 总 线
存 储 器
C P U
D M A
控 制 器
外 设
H L D A
H O L D
D M A A C K
D M A A R E Q




图 8, 1 1 D M A 方 式 的 接 口
退 出
图 8.12 中断源的种类
中 断 源
外 部 中 断
内 部 中 断
内 部 硬 件 中 断
内 部 软 件 中 断, I N T n
除 法 出 错
单 步 跟 踪
断 点 中 断
溢 出 中 断
可 屏 蔽 中 I N T R
不 可 屏 蔽 中 N M I
图 8, 1 2 中 断 源 的 种 类
退 出
类 型 0 的 新 ( I P )
类 型 0 的 新 ( C S )
类 型 1 的 新 ( I P )
类 型 1 的 新 ( C S )
类 型 2 的 新 ( I P )
类 型 2 的 新 ( C S )
类 型 3 的 新 ( I P )
类 型 3 的 新 ( C S )
类 型 4 的 新 ( I P )
类 型 4 的 新 ( C S )
类 型 5 的 新 ( I P )
类 型 5 的 新 ( C S )
类 型 N 的 新 ( C S )
类 型 N 的 新 ( I P )
类 型 2 5 5 的 新 ( C S )
类 型 2 5 5 的 新 ( I P )
0
1
2
3
4
5
0 0 0 0 0 H
0 0 0 0 4 H
0 0 0 0 8 H
0 0 0 0 C H
0 0 0 1 0 H
0 0 0 0 1 4 H
0 0 3 F C H
0 0 3 F E H
4 × N H
N
2 5 5
中 断 向 量 号 内 容 地 址 中 断 名 称
除 法 出 错
单 步 陷 阱
不 可 屏 蔽 中 断
给 单 字 节 中 断 指 令 I N T 用
溢 出 用
I N T
0
保 留 给 I N T 指 令
和 可 屏 蔽 中 断 用
图 8, 1 3 8 0 8 8 中 断 向 量 表
图 8.13 8088中断向量表
退 出
图 8.14 8088各中断源的管理
标 志 寄 存 器 入 栈
令 T E M P = T F
清 I F 和 T F
C S, I P 入 栈
又 有
N M I?
T E M P = 1?
I P, C S 出 栈
标 志 寄 存 器 出 栈
返 回 被 中 断 的 主 程 序
调 用 中 断 处 理 程 序


I R E T
软 件 中 断?
执 行 下 一 条 指 令
当 前 指 令
执 行 结 束?
N M I?
I N T R?
T F = 1?
形 成 中 断 类 型 号


I F = 1?










进 入 中 断 响 应
取 中 断 类 型 号
形 成 中 断
典 型 码
图 8, 1 4 8 0 8 8 各 中 断 源 的 管 理


退 出
图 8.15 Intel8259A内部结构及
引脚图
图 8, 1 5 I n t e l 8 2 5 9 A 内 部 结 构 及 引 脚 图
数 据
总 线
缓 冲 器
读 / 写
逻 辑
级 联
缓 冲
比 较 器
控 制 逻 辑
中 断 服 务
寄 存 器
I S R
优 先 级
分 析 器
P R
中 断 请 求
寄 存 器
I R R
I N T A I N T
中 断 屏 蔽 寄 存 器 I M R
D
7

D
0
R D
A
0
W R
C A S
0
C A S
1
C A S
2
S P / E N
I R
0
I R
7
C S
退 出
图 8.16 ICWI格式
图 8, 1 6 I C W I 格 式
X X X 1 L T I M A D I S N G L I C
1
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
1 需 要 I C W
4
0 不 需 要 I C W
4
1 单 片 使 用
0 多 片 使 用
1 间 隔 为 4
0 间 隔 为 8
1 电 平 触 发
0 边 缘 触 发
调 用 地 址 间 隔
触 发 方 式
退 出
图 8.17 ICW2字格式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
由 用 户 决 定
由 中 断 源
引 脚 序 号 决 定
图 8, 1 7 I C W 2 字 格 式
退 出
图 8.18 图 8.19
图 8, 1 8 主 8 2 5 9 A I C W 3 字 格 式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
I R
7
I R
6
I R
5
I R
4
I R
3
I R
2
I R
1
I R
0
1 该 引 脚 有 从 片
0 该 引 脚 未 接 从 片
图 8, 1 9 从 8 2 5 9 A I C W 3 字 格 式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
I D
0
I D
1
I D
2
0 0 0 0 0
I R
0
0 0 0 接 主 片
I R
7
1 1 1 接 主 片
I R
2
0 1 0 接 主 片
I R
1
0 0 1 接 主 片
退 出
图 8.20 ICW4字格式
图 8, 2 0 I C W 4 字 格 式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
0 0 0 S F M N B U F M / S A E O I U P M
1 8 0 × 8 6 / 8 0 8 8
0 8 0 8 0 / 8 0 8 5
0 正 常 E O I
系 统
选 择
1 缓 冲 方 式
0 非 缓 冲 方 式
方 式
选 择
1 本 片 为 主 片
0 本 片 为 从 片
主 从
选 择
1 自 动 E O I
结 束
方 式
1 特 殊 全 嵌 套 方 式
0 普 通 全 嵌 套 方 式
嵌 套
方 式
退 出
图 8.21 OCW1格式
图 8, 2 1 O C W 1 格 式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
M
7
M
6
M
5
M
4
M
3
M
2
M
1
M
0
1 置 屏 蔽
0 复 位 屏 蔽
退 出
图 8.22 OCW2格式
图 8, 2 2 O C W 2 字 格 式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
L
2
L
1
L
0
R S L E O I 0 0
中 断 源
选 择
I R
7
1 1 1
I R
1
0 0 1
I R
0
0 0 0
特 征 位
0 不 发 结 束 命 令
1 优 先 级 循 环
0 优 先 级 固 定
优 先 级
1 有 效
0 无 效
1 发 结 束 命 令
结 束
命 令
针 对
~ L
2
L
1
退 出
图 8.23 OCW3格式
图 8, 2 3 O C W 3 字 格 式
特 征 位
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
0 E S M M S M M 0 1 P R R R I S
1 读 I S R
0 读 I R R
0 不 发 读 命 令
1 设 置 特 殊 屏 蔽 方 式
0 撤 销 特 殊 屏 蔽 方 式
1 查 询 命 令
0 非 查 询 命 令
1 发 读 命 令
1 允 许 特 殊 屏 蔽 方 式
0 不 允 许 特 殊 屏 蔽 方 式
退 出
图 8.24 查询字格式
图 8, 2 4 查 询 字 格 式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
W
2
W
1
W
0
I × × × ×
I R
7
1 1 1 当 前 优 先 级 最 高 中 断 源 为
I R
1
0 0 1 当 前 优 先 级 最 高 中 断 源 为
I R
0
0 0 0 当 前 优 先 级 最 高 中 断 源 为
0 无 中 断 请 求
1 有 中 断 请 求
退 出
图 8.25 现行微机中断控制器连接示意图
图 8, 2 5 现 行 微 机 中 断 控 制 器 连 接 示 意 图
I R Q
0
I R Q
2
I R Q
4
I R Q
1
I R Q
3
I R Q
5
I R Q
7
I R Q
6
A
0
C S
S P / E N
I N T
主 8 2 5 9 A
I N T A
R D
W R
~ D
7
D
0
~
20
C A S
I R Q
8
I R Q
1 0
I R Q
1 2
I R Q
9
I R Q
1 1
I R Q
1 3
I R Q
1 5
I R Q
1 4
A
0
C S
I N T A
R D
S P / E N
I N T
W R
从 8 2 5 9 A
~ D
7
D
0
~
20
C A S
日 时 钟
键 盘
串 行 口 2
串 行 口 1
并 行 口 2
软 盘
并 行 口 1
A
0
I N T R
1
C S
实 时 钟
改 向 0 A H 中 断
保 留
保 留
协 处 理 器
硬 盘
保 留
A
0
I N T R
2
C S
保 留
+ 5 V
~ D
7
D
0
I N T R
C P U
I N T A
I O R
I O W
总 线 控 制 器
退 出
图 8.26 中断请求电路图
&
0
0
0
&
0
0
0
1 K
1 K
+ 5 V
K K
1
A
B
图 8, 2 6 中 断 请 求 电 路 图
退 出
图 8.27 中断源的种类
中 断 源
外 部 中 断
内 部 中 断
内 部 硬 件 中 断
内 部 软 件 中 断, I N T n
除 法 出 错
单 步 跟 踪
断 点 中 断
溢 出 中 断
越 界
非 法 操 作
无 协 处 理 器
双 重 错 误
协 处 理 器 段 溢 出
协 处 理 器 出 错
机 器 检 测 出 错
图 8, 2 7 中 断 源 的 种 类
R / S
F L U S H
S M I
I N I T
N M I
I N T R
退 出
图 8.28 保护模式中断子程序的寻址
代 码 段 描 述 符
类 型 号 × 8
中 断 / 陷 阱 门
代 码 段
物 理 存 储 器
选 择 器 描 述 符 高 速 缓 冲 器
段 基 址
中 断 程 序 入 口
段 限 长
段 选 择 器
段 偏 移 量
段 选 择 器
门 选 择 器
C S
I D T
G D T / L D T
访 问 权, 段 基 址, 段 限 长
1 5 0 6 3 0
2
2
2
1
3
4
4
图 8, 2 8 保 护 模 式 中 断 子 程 序 的 寻 址
退 出
图 8.29 DMA传送的基本原理
I / O 设 备
C P U
H R Q
H L D A
D R Q
D A C K
H O L D
H L D A
D M A C
I / O 接 口 存 储 器
A B
D B
C B
图 8, 2 9 D M A 传 送 的 基 本 原 理
退 出
图 8.30 8237A内部结构及引脚图
图 8, 3 0 8 2 3 7 A 内 部 结 构 及 引 脚 图
定 时

控 制
逻 辑
优 先
权 译
码 和
循 环
优 先
权 逻

减 1 电 路 加 1 / 减 1 电 路
字 节 数 暂 存 器 地 址 暂 存 器
读 缓 冲 器 读 / 写 缓 冲 器
基 地 址
寄 存 器
基 字 节 数
寄 存 器
当 前 地 址
寄 存 器
当 前 字 节
计 数 器
命 令 寄 存 器
屏 蔽 寄 存 器
请 求 寄 存 器
写 缓 冲 器 读 缓 冲 器
读 / 写
工 作 方 式
寄 存 器
状 态
寄 存 器
暂 存
寄 存 器
I / O 缓 冲 器
输 出 缓 冲 器
I / O 缓 冲 器
命 令 控
制 逻 辑
~ A
3
A
0
~ A
7
A
4
~ D B
7
D B
0
~ A
7
A
0
~ A
1 5
A
0
C S
R E S E T
R E A D Y
C L K
E O P
I O R
I O W
M E M R
M E M W
A E N
A D S T B
H R Q
H L D A

D R E Q
0
D R E Q
3
D A C K
0

D A C K
3
退 出
图 8.31 8237A方式控制字
图 8, 3 1 8 2 3 7 A 方 式 控 制 字
0 0 通 道 0
0 1 通 道 1
1 1 通 道 3
0 禁 止 自 动 预 置
1 允 许 自 动 预 置
1 0 通 道 2
0 递 增
1 递 减
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
通 道
选 择
0 0 校 验 传 送
0 1 写 传 送
1 1 无 意 义
1 0 读 传 送
传 送
类 型
预 置
选 择
地 址 递 减
选 择
0 0 请 求 方 式
0 1 单 字 节 方 式
1 1 级 连 方 式
1 0 块 字 节 方 式
传 送 方 式
选 择
退 出
图 8.32 8237操作命令字格式
图 8, 3 2 8 2 3 7 操 作 命 令 字 格 式
0 禁 止 存 储 器 到 存 储 器 的 传 输
1 允 许 存 储 器 到 存 储 器 的 传 输
0 启 动 8 2 3 7 工 作
1 停 止 8 2 3 7 工 作
0 固 定 优 先 级
1 循 环 优 先 级
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
0 D R E Q 信 号 高 电 平 有 效
1 D R E Q 信 号 低 电 平 有 效
0 D A C K 信 号 低 电 平 有 效
1 D A C K 信 号 高 电 平 有 效
传 输
对 象
地 址
状 态
工 作
允 许
= 0
= 1
D
0
1 通 道 0 地 址 保 持
0 通 道 0 地 址 不 保 持
D
0
此 位 无 意 义
= 0
= 1
D
0
1 压 缩 时 序
0 正 常 时 序
D
0
此 位 无 意 义
= 0
= 1
D
3
1 扩 展 写 入 选 择
0 滞 后 写 入 选 择
D
3
此 位 无 意 义
退 出
图 8.33 8237请求积存器格式
图 8, 3 3 8 2 3 7 请 求 寄 存 器 格 式
通 道
选 择
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
X X X X X
0 撤 销 请 求
1 设 置 请 求
0 0 通 道 0
0 1 通 道 1
1 1 通 道 3
1 0 通 道 2
D M A
请 求
退 出
图 8.34 8237单通道( a)和综合( b)屏蔽字格式
图 8, 3 4 8 2 3 7 单 通 道 ( a ) 和 综 合 ( b ) 屏 蔽 字 格 式
通 道 0
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
X X X X
通 道
选 择
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
X X X X X
0 撤 除 屏 蔽
1 设 置 屏 蔽
0 0 通 道 0
0 1 通 道 1
1 1 通 道 3
1 0 通 道 2
屏 蔽
设 置
通 道 1
通 道 2
通 道 3
( b )
( a )
1 设 置 屏 蔽
0 撤 除 屏 蔽
1 设 置 屏 蔽
0 撤 除 屏 蔽
1 设 置 屏 蔽
0 撤 除 屏 蔽
1 设 置 屏 蔽
0 撤 除 屏 蔽
退 出
图 8.35 8237状态字格式
图 8, 3 5 8 2 3 7 状 态 字 格 式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
通 道 0
通 道 1
通 道 2
通 道 3
通 道 0
通 道 1
通 道 2
通 道 3
0 计 数 结 束
1 计 数 未 结 束
0 有 D M A 请 求
1 无 M A 请 求
退 出
图 8.36 16机中8237结构简图
D A C K
3
~ D A C K
0
A
0
A
3
A
4
A
7
D
0
D
7
A E N
A D S T B
H R E Q
H L D A
D R E Q
3
D R E Q
2
D R E Q
1
D R E Q
0
D A C K
4
~ D A C K
7
A
0
A
3
A
4
A
7
A E N
A D S T B
H R E Q
H L A D
D R E Q
7
D R E Q
6
D R E Q
5
D R E Q
4
8 2 3 7
8 2 3 7
X A
0
X A
3
2 4 4
O E
X A
4
X A
7
3 7 3
O E
G
O E
G
页 面
寄 存 器
X A
8
X A
1 5
D B
0
D B
7
X A
1 6
X A
1 9
2 4 4
X A
8
X A
1 6
3 7 3
O E
G
O E
X A
1 7
X A
2 3
X A
1 7
X A
2 3
X A
1
X A
4
~
~
~
~
~
~
~~
~
~
~
~
~
~
D
0
D
7
~
O EG
页 面
寄 存 器
P a g e
4 ~ 7
P a g e
0 ~ 3
图 8, 3 6 1 6 机 中 8 2 3 7 结 构 简 图
退 出
图 8.37 8254内部结构和引脚图
图 8, 3 7 8 2 5 4 内 部 结 构 和 引 脚 图
D
7
~ D
0
控 制
寄 存

读 / 写
逻 辑
电 路
数 据 总 线
缓 冲 器
A
0
A
1
R D
W R
计 数 器
0
#
计 数 器
1
#
计 数 器
2
#



线
C S
C L K
0
O U T
0
G A T E
0
C L K
1
O U T
1
G A T E
1
C L K
2
O U T
2
G A T E
2
退 出
图 8.38 计数器内部结构
图 8, 3 8 计 数 器 内 部 结 构
控 制 单 元 初 值 寄 存 器 ( C R )
计 数 执 行 单 元 ( C E )
输 出 锁 存 器 ( O L )
C L K G A T E O U T
退 出
图 8.39 8254方式控制字格式
图 8, 3 9 8 2 5 4 方 式 控 制 字 格 式
读 / 写
指 示
S C
1
S C
0
R W
1
R W
0
M
2
M
1
M
0
B C D
1 B C D
0 二 进 制
× 1 1 模 式 3
1 0 0 模 式 4
1 0 1 模 式 5
× 1 0 模 式 2
计 数 值
格 式
0 0 0 模 式 0
0 0 1 模 式 2
模 式 选 择
1 0 只 读 / 写 计 数 器 高 字 节
1 1 读 / 写 计 数 器 1 6 位 数
0 0 计 数 器 锁 存
0 1 只 读 / 写 计 数 器 低 字 节
计 数
制 计 数
1 0 计 数 器 2
0 0 计 数 器 0
0 1 计 数 器 1
计 数 器
选 择
1 1 读 回 命 令
退 出
图 8.40 方式0波形图
图 8, 4 0 方 式 0 波 形 图
W R
C L K
G A T E
O U T
C W N = 4
4 3 2 1 0 F F
退 出
图 8.41 方式1波形图
图 8, 4 1 方 式 1 波 形 图
W R
C L K
G A T E
O U T
C W N = 3
3 2 1 0 F F 3 2
退 出
图 8.42 方式2波形图
图 8, 4 2 方 式 2 波 形 图
W R
C L K
G A T E
O U T
C W N = 3
3 2 1 3 2 1 3
退 出
图 8.43 方式3波形图
图 8, 4 3 方 式 3 波 形 图
W R
C L K
G A T E
O U T
C W N = 4
4 3 2 1 4 3 2 1 4 3
W R
C L K
G A T E
O U T
C W N = 5
5 4 3 2 1 5 4 3 2 1
退 出
图 8.44 方式4波形图
图 8, 4 4 方 式 4 波 形 图
W R
C L K
G A T E
O U T
C W N = 3
3 2 1 0 F F F F
退 出
图 8.45 方式5波形图
图 8, 4 5 方 式 5 波 形 图
W R
C L K
G A T E
O U T
C W N = 3
3 2 1 0 F F
3 2
退 出
图 8.46 读回命令格式
1 1 C O U N T S T A T U S C N T 2 C N T 1 C N T 0 0
图 8, 4 6 读 回 命 令 格 式
退 出
图 8.47 状态字格式
O U T
N U L L
C O U N T
R W 1 R W 0 M 2 M 1 M 0 B C D
图 8, 4 7 状 态 字 格 式
退 出
图 8.48 PC机中的8354
图 8, 4 8 P C 机 中 的 8 2 5 4
G A T E
2
8 2 5 3
C S
W R
R D
G A T E
1
G A T E
0
C L K
2
C L K
1
C L K
0
D
0
~ D
7
O U T
2
O U T
1
O U T
0
D Q
C L K
D R Q
0
P B
0
P B
1
+ 5 V
2
P C L K
D
0
~ D
7
A
1
A
0
A
1
A
0
I O R
T / C C S
I O W
I R Q
0
S
P B
0
P B
1

来 自 8 2 5 5 A
R
+ 5 V
接 至 扬 声 器 驱 动 器
接 至 D M A 控 制 器
D A C K
0
B R D
退 出
图 8.49 8255A内部结构和引脚图
图 8, 4 9 8 2 5 5 A 内 部 结 构 和 引 脚 图
D
7
~ D
0
B 组
控 制
读 / 写
控 制
逻 辑
数 据 总 线
缓 冲 器
A 组
控 制
A
0
A
1
R D
W R
C S
P A
7 ~ 0
P C
7 ~ 4
P C
3 ~ 0
P B
7 ~ 0
端 口
B
端 口 C
下 半 部
端 口 C
上 半 部
端 口
A
退 出
图 8.50 8255A工作方式控制字格式
图 8, 5 0 8 2 5 5 A 工 作 方 式 控 制 字 格 式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
A 组 控 制
B 口
方 式 选 择
输 出
0
1
0
1
0
0
1
0
1
X
输 入
输 出
输 入
方 式 0
方 式 1
方 式 2
B 组 控 制
C 口
( 低 4 位 )
B 口
方 式 选 择
输 出
0
1
0
1
0
0
输 入
输 出
输 入
方 式 0
方 式 1
C 口
( 高 4 位 )
退 出
图 8.51 无条件的方式0举例
图 8, 5 1 无 条 件 的 方 式 0 举 例
D B 7
D B 6
D B 5
D B 4
D B 3
D B 2
D B 1
D B 0
I O W
I O R
A E N
A 9
A 8
A 7
A 6
A 5
A 4
A 3
A 2
A 1
A 0
D 7 P A 7
D 6 P A 6
D 5 P A 5
D 4 P A 4
D 3 P A 3
D 2 P A 2
D 1 P A 1
D 0 P A 0
W R P B 7
R D P B 6
C S P B 4
A 1
A 0
&
2 F 4 ~ 2 F 7 H
P C 总 线
I N T E L 8 2 5 5 A
P B 5
P B 3
P B 2
P B 1
P B 0
V C C
V C C
退 出
图 8.52 查询方式的方式0
D B 7
D B 6
D B 5
D B 4
D B 3
D B 2
D B 1
D B 0
I O W
I O R
A E N
A 9
A 8
A 7
A 6
A 5
A 4
A 3
A 2
A 1
A 0
I R Q n
D 7 P A 7
D 6 P A 6
D 5 P A 5
D 4 P A 4
D 3 P A 3
D 2 P A 2
D 1 P A 1
D 0 P A 0
W R P C 7
R D P B 7
C S
A 1
A 0
P C 3
D 7
D 6
D 5
D 4
D 3
D 2
D 1
D 0
S T R O B E
B U S Y
&
2 F 4 ~ 2 F 7 H
P C 总 线
I N T E L 8 2 5 5 A
打 印 机
图 8, 5 2 查 询 方 式 的 方 式 0
退 出
图 8.53 方式1输入数据时C口的定义
图 8, 5 3 方 式 1 输 入 数 据 时 C 口 的 定 义
I N T R
A
S T B
A
P C
3
&
I N T E
A
( P C
4
)
P A
7
~ P A
0
P C
6,7
P C
5
P C
4
I B F
A
I / O
2
I N T R
B
S T B
B
P C
0
&
I N T E
B
( P C
2
)
P B
7
~ P B
0
P C
1
P C
2
I B F
B
退 出
图 8.54 方式1输出数据是C口的定义
图 8, 5 4 方 式 1 输 出 数 据 是 C 口 的 定 义
I N T R
A
O B F
A
P C
3
&
I N T E
A
( P C
6
)
P A
7
~ P A
0
P C
4,5
P C
6
P C
7
A C K
A
I / O
2
I N T R
B
O B F
B
P C
0
&
I N T E
B
( P C
2
)
P B
7
~ P B
0
P C
2
P C
1
A C K
B
退 出
图 8.55 方式2下的C口的定义
P C
3
P C
5
P C
4
&
P C
7
&
I N T E
1
( P C
6
)
I N T E
2
( P C
4
)

P A
7
~ P A
0
P C
0
~ P C
2
P C
6
3
I N T R
A
O B F
A
A C K
A
S T B
A
I B F
A
I / O
图 8, 5 5 方 式 2 下 C 口 的 定 义
退 出
图 8.56 8255A的C口置位/复位控制字
0 × × ×
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
1 0




置 位
复 位
1
0 0 1
2 0 1 0
3 0 1 1
5 1 0 1
6 1 1 0
4 1 0 0
0 0 0 0
D
3
D
1

7 1 1 1
D
2
C





图 8, 5 6 8 2 5 5 A 的 C 口 置 位 / 复 位 控 制 字
退 出
图 8.57 C口的状态字
I / O
D
7
I / O
D
6
I B F
A
D
5
I N T E
A
D
4
I N T R
A
D
3
I N T E
B
D
2
I B F
B
D
1
I N T R
B
D
0
A 组
B 组
方 式 1 输 入
O B F
A
D
7
I N T E
A
D
6
I / O
D
5
I / O
D
4
I N T R
A
D
3
I N T E
B
D
2
O B F
B
D
1
I N T R
B
D
0
A 组
B 组
方 式 1 输 出
方 式 2
O B F
A
D
7
I N T E
1
D
6
I B F
A
D
5
I N T E
2
D
4
I N T R
A
D
3
X
D
2
X
D
1
X
D
0
A 组
图 8, 5 7 C 口 的 状 态 字
退 出
图 8.58 8255在PC/XT机中的应用
A
0
A
1
D B
0
~ D B
7
R E S E T
A
0
A
1
R E S E T
D
0
~ D
7
C S
P A 0 ~ P A
7
P C
0
P B
7
P B
6
P B
5
P B
4
P B
3
P B
2
P B
1
P B
0
P C
6
P C
5
P C
4
P C
3
P C
2
P C
1
P C
7
键 盘
允 许 / 清 除 键 盘
控 制 键 盘 时 钟 为 低
K B D D A T A
S P K D A T A
T I M
2
G A T E S P K
I O R
I O W
P P I C S
+ 5 V
图 8, 5 8 8 2 5 5 在 P C / X T 机 中 的 应 用
+ 5 V
7 4 L S 2 4 4
S W ( D I P )
7 4 0 7
I G
5
6
7
8
1
2
3
4
W R
R D
退 出
图 8.59 堤坡DIP开关的设定状态与意义
图 8, 5 9 D I P 开 关 的 设 定 状 态 与 意 义
0 0, 1 个 软 盘 驱 动 器
1 0, 3 个 软 盘 驱 动 器
1 1, 4 个 软 盘 驱 动 器
0 0, 2 个 软 盘 驱 动 器
0 1, 4 0 2 5 彩 显
1 0, 8 0 2 5 彩 显
0 0, 无 显 示 器
1 1, 8 0 2 5 单 显
0 1, 主 板 上 R A M 3 2 K
1 0, 主 板 上 R A M 4 8 K
1 1, 主 板 上 R A M 6 4 K
0 0, 主 板 上 R A M 1 6 K
0, 无 8 0 8 7
1, 有 8 0 8 7
0, 循 环 执 行 加 电 自 检
1, 正 常 工 作
S W - 8 S W - 7 S W - 6 S W - 5 S W - 4 S W - 3 S W - 2 S W - 1
退 出
图 8.60 异步通信的桢格式
0 / 1 0 / 1 0 / 1 0 / 1 0 / 1 0 / 1 0 / 10 1
第 n 个 字 符
5 ~ 8 个 数 据 位









第 n + 1 个 字 符
图 8, 6 0 异 步 通 信 的 帧 格 式
退 出
图 8.61 传送D字符的桢格式
图 8, 6 1 传 送 D 字 符 的 帧 格 式
0 1
D 字 符









D
0
D
1
D
2
D
3
D
4
D
5
D
6



退 出
图 8.62 同步通信的桢格式
数 据 1 数 据 2 数 据 n
校 验 字 符
C R C
1
校 验 字 符
C R C
2
( c ) 外 同 步
同 步 字 符 数 据 1 数 据 2 数 据 n
校 验 字 符
C R C
1
校 验 字 符
C R C
2
同 步 字 符同 步 字 符
一 帧 下 一 帧
( b ) 双 同 步
同 步 字 符 数 据 1 数 据 2 数 据 n
校 验 字 符
C R C
1
校 验 字 符
C R C
2
同 步 字 符
一 帧 下 一 帧
数 据 场
( a ) 单 同 步
图 8, 6 2 同 步 通 信 的 帧 格 式
退 出
图 8.63 串行通信三种传送模式
A


B


( a ) 单 工 传 送 方 式






( b ) 半 双 工 传 送 方 式






( c ) 全 双 工 传 送 方 式
图 8, 6 3 串 行 通 信 三 种 传 送 模 式
退 出
图 8.64 传输距离与波特率的关系
1 5 0 0
6 0
6 0 0
1 5 0
3 0 0
3 0
5 0 0 1 0 0 0 5 0 0 0 1 0 0 0 0







m

波 特 率 ( 位 / S )
图 8, 6 4 传 输 距 离 与 波 特 率 的 关 系
退 出
图 8.65 调治与解调的示意图
D T E
( 如 P C 机 )
M o d e m
M o d e m
D T E
( 如 P C 机 )
R S - 2 3 2 接 口 R S - 2 3 2 接 口电 话 线
图 8, 6 5 调 制 与 解 调 的 示 意 图
退 出
图 8.66 8251A的内部结构和引脚
图 8, 6 6 8 2 5 1 A 的 内 部 结 构 和 引 脚
数 据 总 线
缓 冲 器
D
7 ~
D
0
接 收 缓 冲 器
接 收 控 制
发 送 缓 冲 器
发 送 控 制
R
X
D
R
X
R D Y
S Y N D E T
R
X
C
R E S E T
读 / 写
控 制 逻 辑
调 制 / 解 调
控 制
C L K
C S
W R
R D
C / D
R T S
C T S
D S R
D T R





线
T
X
D
T
X
R D Y
T
X
E M P T Y
T
X
C
退 出
图 8.67 8251A方式控制字
图 8, 6 7 8 2 5 1 A 方 式 控 制 字
S
1
S
2
E P P E N L
2
L
1
B
2
B
1
0 0, 同 步 方 式
0 1, 异 步 方 式 ( × 1 )
1 0, 异 步 方 式 ( × 1 6 )
1 1, 异 步 方 式 ( × 6 4 )
0 0, 无 效
0 1, 1 位 停 止 位
1 0, 1, 5 位 停 止 位
1 1, 2 位 停 止 位
异 步
同 步
× 0, 内 同 步
× 1, 外 同 步
0 × ; 2 个 同 步 字 符
1 ×, 1 个 同 步 字 符
0 0, 数 据 位 长 度 为 5 位
0 1, 数 据 位 长 度 为 6 位
1 0, 数 据 位 长 度 为 7 位
1 1, 数 据 位 长 度 为 8 位
× 0, 无 奇 偶 校 验 位
0 1, 奇 校 验
1 1, 偶 校 验
退 出
图 8.68 8251A操作命令字
图 8, 6 8 8 2 5 1 A 操 作 命 令 字
E H I R R T S E R S B R K R
X
E D T R T
X
E N
1, 允 许 发 送
1, 允 许 接 收
1, 清 除 错 误 标 志
1, 请 求 发 送
1, 内 部 复 位
1, 进 入 搜 索 方 式
1, 数 据 终 端 准 备 好
1, 发 缺 断 字 符
0, 正 常 工 作
退 出
图 8.69 8251A状态寄存器
图 8, 6 9 8 2 5 1 A 状 态 寄 存 器
1, 发 送 器 准 备 好
1, 接 收 器 准 备 好
1, 发 送 器 空
1, 产 生 了 奇 偶 错
1, 产 生 了 溢 出 错
1, 产 生 了 帧 校 验 错
1, 已 达 到 同 步
0, 未 达 到 同 步
S Y N D E T
B R K D E T
1, 接 收 到 断 缺 字 符
0, 正 常 工 作
1, 数 据 装
置 准 备 好
D S R
S Y N D E T /
B R K D E T
F E O E P E
T
X
E M P T
Y
R
X
R D Y T
X
R D Y
退 出
图 8.70 用8251实现两个8088CPU的串行通信
图 8, 7 0 用 8 2 5 1 实 现 两 个 8 0 8 8 C P U 的 串 行 通 信
A
L
E
C
L
K
W /
I O
R
D
W
R
C L K
T
X
D
R
X
D
G N D
T
X
C
R
X
C
2 # 8 0 8 8
2 # 8 2 5 1 A
T
X
D
R
X
D
G N D
T
X
C
R
X
C
R D
W R
C L K
C S
C L K
I O R
I O W
地 址
译 码 器
1

8 2 5 1 A1

8 0 8 8
C T S
R
X
D












R S - 2 3 2R S - 2 3 2
T
X
D T
X
D
R
X
D
C / D
D
0
D
7
~
D
0
D
7
~
A
9
A
1
~
A
0
I O R
I O W
A
9
A
1
~
A
0
R D
C S
C / D
地 址
译 码 器
D
0
D
7
~
D
0
D
7
~
退 出
表 8.1 中断优先级
中断源 优先级
除法错,INT n,INT O 0
NMI 1
INTR 2
单部中断 3
退 出
表 8.2 8237的内部寄存器
IOR IOWA3
A
2
A
1
A
0
DMAC1地址
( DMAC2) 通道寄存器
0 0 0 0
1 0 00H( C0H) 写通道 0基地址和当前地址寄存器
0 1 00H( C0H) 读通道 0当前地址寄存器
0 0 0 1
1 0 01H( C2H) 写通道 0基字节和当前字节计数器
0 1 01H( C2H) 读通道 0当前字节计数器
0 0 1 0
1 0 02H( C4H) 写通道 1基地址和当前地址寄存器
0 1 02H( C4H) 读通道 1当前地址寄存器
0 0 1 1
1 0 03H( C6H) 写通道 1基字节和当前字节计数器
0 1 03H( C6H) 读通道 1当前字节计数器
0 1 0 0
1 0 04H( C8H) 写通道 2基地址和当前地址寄存器
0 1 04H( C8H) 读通道 2当前地址寄存器
0 1 0 1
1 0 05H( CAH) 写通道 2基字节和当前字节计数器
0 1 05H( CAH) 读通道 2当前字节计数器
0 1 1 0
1 0 06H( CCH) 写通道 3基地址和当前地址寄存器
0 1 06H( CCH) 读通道 3当前地址寄存器
0 1 1 1
1 0 07H( CEH) 写通道 3基字节和当前字节计数器
0 1 07H( CEH) 读通道 3当前字节计数器
1 0 0 0
1 0 08H( D0H) 读状态寄存器
0 1 08H( D0H) 写命令寄存器
1 0 0 1 1 0 09H( D2H) 写请求寄存器
1 0 1 0 1 0 0AH( D4H) 写单通道屏蔽寄存器
1 0 1 1 1 0 0BH( D6H) 写方式寄存器
1 1 0 0 1 0 0CH( D8H) 清除高 /低触发器命令
1 1 0 1
1 0 0DH( DAH) 发复位命令
0 1 0DH( DAH) 读暂存器
1 1 1 0 1 0 0EH( DCH) 清除综合屏蔽寄存器命令
1 1 1 1 1 0 0FH( DEH) 写综合屏蔽寄存器 退 出
表 8.3 PC机中 DMA通道的定义
控制
器 DMA1 DMA2
通道 CH0 CH1 CH2 CH3 CH4 CH5 CH6 CH7
定义 未用 SSLC 软盘 未用 连接 DMA
1
未用 未用 未用
退 出
表 8.3 DMA页面寄存器端口
退 出
通道 端口号( A23~A16) 端口号( A31~A24)
0 87H 487H
1 83H 483H
2 81H 481H
3 82H 482H
4 8FH 48FH
5 8BH 48BH
6 89H 489H
表 8.4 8254内部寄存器与 A1,A0关系
CS RD WRA1 A0 操作
0 0 0 1 0 写计数器 0
0 0 1 1 0 写计数器 1
0 1 0 1 0 写计数器 2
0 1 1 1 0 写方式字0 1 读状态字
退 出
表 8.5 8255内部寄存器与 A1,A0关系
CS
A1 A0 选中的端口
0 0 0 A口
0 0 1 B口
0 1 0 C口
0 1 1 控制寄存器,C口置位 /复位控制字,C口的状态字
1 ? ? 不操作
退 出
表 8.6 8251A端口操作表
CS D RD WR 功能
0 0 0 1 读数据
0 0 1 0 写数据
0 1 0 1 读状态
0 1 1 0 写控制字
1 ? ? ? 未选中
退 出
知 识 概 述
基本概念:接口,端口,中断,系统总线,
外总线,局部总线,芯片组
重点:输入 /输出传送方式,各种接口芯片与
CPU的连接,中断的过程,8237在系
统中的作用,8255,8254及 8251的编
程及应用
难点,8259及 8237的编程及应用
退 出
8259A作为中断控制器
8259A作为中断控制器时,当某个中断源得到 CPU的
中断响应后,中断服务寄存器 (ISR)的相应位置 1,表示
CPU正在为该中断源服务。如果 CPU正在为某个中断源服
务时产生了比该中断源级别高的中断申请,CPU暂时中止
低级别的中断服务,转到高级别的中断服务,同时使高级
别的中断源在中断服务寄存器的对应位置 1,所以中断服务
寄存器的状态反映当前 CPU 正在为哪个中断源服务以及还
未完成哪个中断源的服务,为中断优先级裁决器的裁决提
供依据。当中断处理结束时,必须将中断服务寄存器的对
应位清 0,表示该中断源的中断服务已经结束,这个使中断
服务寄存器的对应位清 0的动作称为中断结束处理。
特别要强调的是,中断结束处理并不结束中断服务程
序,只是使该中断服务寄存器的对应位清 0。
结束中断处理的方式有两类:一类是自动结束方式,
另一类是非自动结束方式。非自动结束方式又有两种,即
一般中断结束方式和特殊中断结束方式。
退 出
结束方式
中断自动结束方式
中断服务寄存器的相应位清零由硬件自动完成。当某一级中断被
CPU响应后,CPU发出的第一个 中断应答信号,就使 ISR的对
应位置 1。当第二个 负脉冲结束时,自动将 ISR的对应位清 0。
中断自动结束方式只适用于有单片 8259A工作的系统,并且各中断不
发生嵌套的情况。
一般的中断结束方式
该方式通过软件方法发一个中断结束命令,使当前中断服务寄存
器中级别最高的置 l位清 0。这种方式只能应用于全嵌套方式下,不能
用于循环优先级方式。当 CPU使用输出指令向 8259A发送一般的 EOI
时,8259把 ISR中的最高优先级对应位清 0。因为在全嵌套方式中,
最高的 1SR位对应于当前正在处理。具体的实现方法在 OCW2字中讲
解。
特殊的中断结束方式
该方式也是通过软件方法发一个中断站束命令,同时用软件方法
给出结束中断的中断源的序号,使该级的中断服务寄存器的对应位清 0。该方式可应用在任何情况下,具体的实现方法在 OCW2字中讲解。
INTA
INTA
退 出
普通全嵌套方式
普通全嵌套方式
这是 8259A默认的优先权设置方式,在全嵌套方式
下,8259A所管理的 8级中断优先权是固定不变的,其中
IR0的中断优先级最高,IR7的中断优先级最低。
在请求中断的中断源中,CPU响应优先级最高的中
断源后,使中断服务寄存器 ISR中的对应位置 1,而且把
它的中断类型号送至系统数据总线,在此中断源的中断
服务完成之前,与它同级或优先级低的中断源的中断请
求被屏蔽,只有优先级比它高的中断源的中断请求才是
允许的,从而出现中断嵌套。
退 出
特殊全嵌套方式
特殊全嵌套方式
特殊全嵌套方式与全嵌套方式基本相同,所不同的
是,当 CPU处理某一级中断时,如果有同级中断请求,
那么 CPU也会作出响应,从而形成了对同一级中断的特
殊嵌套。
特殊全嵌套方式通常应用在有 8259A级连的系统中,
在这种情况下,对主 8259A编程时,通常使它工作在特
殊全嵌套方式下。这样,一方面,CPU对于优先级别较
高的主片的中断请求是允许的;另一方面,CPU对于来
自同一从片的优先级别较高(但对于主片来讲,优先级
别是相同的)的中断请求也是允许并能够响应的。
退 出
优先级循环方式
优先级自动循环方式
在实际应用中,如果要求中断源有相同的优先级,可
设置为该方式。系统启动时,8级中断优先级默认为
IR0~IR7,是从高到低。这时,刚好 IR4发出了中断请求,
CPU响应之后,若 8259A工作在优先级自动循环方式下,
则中断优先级有高到低的顺序自动变为
IR5?IR6?IR7?IR0?IR1?IR2?IR3?IR4,其它的级
别以此类推。设置方法可通过 OCW2的 D7D6=10来实现。
优先级特殊循环方式
优先级特殊循环方式与自动循环方式相比,只有一点
不同,即初始化的优先级是由程序控制的,而不是默认的
IR0~IR7。例如,要设置
IR5?IR6?IR7?IR0?IR1?IR2?IR3?IR4这样的优先
级顺序,设置方法通过使 OCW2=11000100来实现。
退 出
屏蔽方式
普通屏蔽方式
8259A的每个中断请求输入,都要受到屏蔽寄存器中对应位的控
制。若对应位为,1”,则中断请求无法送至 CPU。屏蔽是通过对屏蔽
寄存器 IMR的编程(操作命令字 OCW1),来设置和改变的。
特殊屏蔽方式:
有些场合下,希望一个中断服务程序的运行过程中,能动态地改
变系统中的中断优先级结构,即在中断处理的一部分,禁止低级中断,
而在中断处理的另一部分,又能够允许低级中断,于是引入了对中断 的特殊屏蔽方式。
设置了特殊屏蔽方式后,通过 OCW1对屏蔽寄存器中的某一位置
位时,同时也会使中断服务寄存器 ISR中的 其它 位复位,这样一方面
屏蔽了正在处理的同级中断,另一方面也真正开放了其它优先级别较
低的中断请求。
特殊屏蔽是在中断处理程序中使用的,用了这种方式之后,尽管
系统正在处理高级中断,但对外界来讲,只有同级中断被屏蔽,也就 允许其它任何级别的中断请求。
退 出
DMA传送
DMA读传送,把存储器的数据读出传送至外设。操作
时由有效从存储器读出数据,由有效把数据写入外设。
DMA写传送,把外设输入的数据写至存储器中。操作
时由信号有效从外设输入数据,由有效把数据写入存储器。
DAM校验传送,这种方式实际不进行数据传送,只是
完成某种校验过程。当一个 8237通道处于 DMA校验方式
时,它会像上述的传送操作一样,保持着它对系统总线的
控制权,并且每个 DMA周期都将响应外部设备的 DMA请
求,只是不产生存储器或 I/O设备的控制信号,这就阻止
了数据的传送。但 I/O设备可以使用 DACK响应信号,在
I/O设备内部对一个指定的数据块的每一个字节进行存取,
以便校验。
退 出
单字节传送,块传送
单字节传送方式
8237A控制器每响应一次 DMA申请,只传输一个字节
的数据,过程如下:每传送一个字节后,当前地址寄存器
的数加 1(或减 1),当前字节计数器的值减 1,8237A释放系
统总线,总线控制权交给 CPU。 8237A释放控制权后,马
上对 DMA请求 DREQ进行测试。若 DREQ有效,再次发总
线请求信号,进入下一个字节的传送,如此循环下去,直
至计数值为 0,结束 DMA传送。由此可看出,单字节传送
方式中,每传送一个字节,8237A要让出一次总线控制权,
因而传送两个字节之间至少要经过一个总线周期。
块传送方式
在块传送方式下,8237A每响应一次 DMA请求,按照
当前字节计数器的设定值完成字节传送的个数,直到计数
器由 0减到 FFFFH,结束 DMA传送,让出总线控制权。
退 出
请求传送,级连传送
请求传送方式
请求传送方式与块传送方式相同,按照字节计数器的
设定值进行传送,只是在这种传送方式下,要求 DREQ在
整个传送期间一直保持有效,每传送一个字节对 DREQ进
行测试。如果检测到 DREQ端变为无效电平,暂停传
送.让出总线控制权,但仍对 DREQ端进行检测。当
DREQ恢复有效电平,又重新申请 CPU让出总线,CPU让
出总线后,就在原来基础上继续传送。当计数值变为 0,
或出外界输入 EOP有效信号时,将结束 DMA的传送。
级连传送方式
级连传送方式不应定为一种传送方式,实际上是扩充
通道数,若干片 8237A构成主从式 DMA系统。
退 出
8254方
式 0
方式 0— 计数结束产生中断
采用方式 0时,计数器在减到 0时使 OUT端变为高电平,
常作为向 CPU请求中断的信号,这种方式的计数是一次性
的。该方式下,门控信号决定计数的停止或继续,装入初
值启动计数数过程开始。所以在该方式下,通常将 GATE
接到高电平,使其常有效,由初值的装入启动计数过程的
开始。
一、计数过程
方式控制字写入控制寄存器后,经一个时钟周期,下
一个时钟上升沿输出端 OUT引线变为低电平,并在计数过
程中一直维持低电平。计数初值写入初值计数器后,经过
一个时钟周期,在下一个时钟的下降沿,初值计数器 CR
的值被送到计数执行单元 CE中。随后每个时钟的下降沿
都使计数执行单元的内容减 1,减到 0时,输出端 OUT位高
电平。这样完成了一次计数过程,如 图 8.40所示。计数初
值一次有效,经过一次计数后,必须重新写入计数器初值,
以开始下一轮的计数。
退 出
8254方
式 0
二、门控信号的影响
门控信号 GATE=1时,允许计数;当 GATE=0时,暂
停计数。所以在计数过程中,门控信号 GATE=0,计数执
行单元停止计数,保持当前值,直到 GATE信号恢复到高
电平,经一个时钟周期,执行单元从当前值开始计数。门
控信号对输出信号无影响。
三、写入新的初值对计数过程的影响
如果在计数过程中写入新的初值位,那么在写入新值
后的下一个时钟下降沿,计数器将按新的初值重新计数。
退 出
8254方
式 1
方式 1— 可重触发的单稳触发器
方式 1可以输出一个宽度可程控的负脉冲,负脉冲宽
度由计数初值 N决定,这种方式的计数是一次性的。在该
方式下,计数初值的装入不能启动开始计数,当 GATE端
输入一正沿时,开始启动计数 。
一、计数过程
当把方式控制字写入控制寄存器时,输出端 OUT变成
高电平,再将计数初值写入初值寄存器,经过一个时钟周
朗,初值送入计数执行单元。此时计数执行单元并不计数,
直到门控信号到来,经一个时钟周期后,下一个时钟周期
的下降沿才开始计数,输出 OUT段变为低电平。计数过程
中,OUT端 — 直维持低电平。当计数减到 0时,输出端
OUT变为高电平,并一直维持高电平到下一次触发之前。
计数值也是一次有效。计数过程如 图 8.41所示。
退 出
8254方
式 1
二、门控信号的影响
方式 1中,门控信号的影响从两个方面讨论:第一是
计数结束后,若再来一个门控信号上升沿,则在下一个时
钟周期的下降沿又从初值开始计数,而且不需要重新写入
计数初值,即门控脉冲可重新触发计数,同时 OUT输出从
高电平降为低电平,直到计数结束,再恢复到高电平。第
二是计数进行中,若来 — 个门控上升沿、也在下一个时钟
下降沿终止原来的计数过程,从初值起更新计数。在这个
过程中,输出 OUT保持低电平不变,直到计数执行部件减
为 0时,输出 OUT才恢复为高电乎。这样,使输出 OUT的
低电乎持续时间加长,即输出单次脉冲的宽度加宽。
三、新的初值对计数过程的影响
在计数过程中如果写入新的初值,不会影响计数过程,
只有在下一个门控信号到来的第一个时钟下降沿才终止原
来的计数过程,而按新值开始计数。
退 出
8254方
式 2
方式 2— 分频器
采用方式 2时能在 OUT段输出连续的负脉冲,其宽度
等于一个时钟周期,脉冲周期等于写入计数器的计数值和
时钟周期的乘积。在该方式下,通常将 GATE接到高电平,
使其常有效,由初值的装入启动计数过程的开始。
一、计数过程
写人控制字后的时钟上升沿,输出端 OUT变为高电平,
当计数初值被写入初值寄存器后,在下一个时钟脉冲下降
沿,计数初值被移入计数执行单元,开始减 1计数。减到 l
时,输出端 OUT变为低电平;减到 0时,输出端 OUT又变
成高电平,同时从初值开始新的计数过程。计数过程如 图
8.42所示。
退 出
8254方
式 2
二、门控信号的影响
门控信号为低电平时终止计数,而由低电平恢复为高电平后的第
一个时钟下降沿起从初始值重新开始计数。由此可见,GATE一直维
持高电平时,计数器为 — 个 N分频器。 GATE端每加一次从低电平到
高电平的门控触发信号,都将引起一次重新从计数初值寄存器向计数 执行单元写入计数值的操作,输出端 OUT重新得到一个不断输出负脉
冲的脉冲信号,其脉冲周期等于写入计数器的计数值和时钟周期的乘
积。
三、新的初值对计数过程的影响
如果在计数过程中改变初值,有两种情况:一种是当 GATE门控
倍号一直维持高电平时,则新的初值不影响当前的计数过程,但在计
数结束后,下一个计数周期按新的初值计数;另 — 种情况是若写入新
的初值后遇到门控信号的上升沿,结束现行计数过程,从下一个时钟 下降沿开始按新的初始值进行计数。第二种情况是计数值未减到 0,
又重新按新的初值进行计数,在此期间输出端 OUT一直维持高电平,
这样就可以随时通过重新送计数值来改变输出脉冲的频率。
退 出
8254方
式 3
方式 3— 方波发生器
采用方式 3时,OUT端输出方波,当计数值 N为偶数,
则输出对称方波;当计数值 N为奇数时,则前 (N+1)/2计数
期间输出低电平,后 (N-1)/2计数期间输出低电平,其余同
方式 2。计数过程如 8.43所示。
退 出
8254方
式 4
方式 4— 软件触发选通
采用方式 4时,当计数到零时 OUT端输出一个时钟周
期的负脉冲,计数器停止计数,这种方式的计数是一次性
的。在该方式下,通常将 GATE接到高电平,使其常有效,
由初值的装入启动计数过程的开始 。
一、计数过程
在写入控制字后的时钟上升沿,输出端 OUT变成高电
平,再待计数初值写入初值寄存器。经过一个时钟周期,
计数初值被移入计数执行单元,下一个脉冲下降沿开始减
1计数,减到 0时,输出端输出一个时钟周期的负脉冲。计
数过程如 图 8.44所示。下一轮启动计数时,必须重新写入
计数初值。由于每一轮计数过程必须重装初值一次,不能
自动循环,所以称为软件触发。又由于输出端 OUT低电平
持续时间为一个时钟周期,常用此负脉冲作为选通信号,
所以又称为软件触发选通方式。
退 出
8254方
式 4
二、门控信号的影响
GATE=1时,允许计数; GATE=0时,禁止计数。但
注意当 GATE=0时,停止计数,GATE=1时,并不恢复计
数,而是重新从初值开始计数。还应注意 GATE的电平不
会影响输出端 OUT的电平,只有计数器减为 0时,才使输
出端 OUT产生电平的变化。
三、新的初值对计数过程的影响
在计数过程中,如果写入新的计数初值,则立刻终止
现行的计数过程,并在下一个时钟下降沿按新的初值开始
计数。
退 出
8254方
式 5
方式 5— 硬件触发选通
采用方式 5时,当计数到零时 OUT端也是输出一个时
钟周期的负脉冲,计数器停止计数,这种方式的计数也是
一次性的。但是,该方式是在 GATE出现上升沿时,启动
计数过程的开始。这是和方式 4的主要区别。
一、计数过程
在写入控制字后的时钟上升沿,输出端 OUT变成高电
平,写入计数初值后,计数器并不开始计数。当门控信号
GATE的上升沿到来后,在下一个时钟下降沿时,将计数
初值移入计数执行单元,才开始减 1计数。计数器减到 0,
输出端 OUT端输出一个时钟周期的负脉冲,并一直保持高
电平,直至下一个门控信号 GATE的上升沿到来。因此,
采用方式 5工作,循环计数时,计数初值可自动重装,但
不计数,计数过程的进行是靠门控信号触发的,称为硬触
发。输出信号 OUT低电平持续时间仅一个时钟周期,可作
为选通信号。计数过程如 图 8.45所示。
退 出
8254方
式 5
二、门控信号的影响
如果在计数的过程个又来一个门控信号的上升沿,则
立即终止现行的计数过程,在下 — 个时钟的下降沿又从初
值开始计数。如果在计数过程结束后来一个门控信号的上
升沿,计数器也会在下一个时钟的下降沿从上一个初值开
始减 1计数,即只要门控信号的上升沿到来,就会马上触
发下一个计数的过程。
三、新的初值对计数过程的影响
无论在计数的过程中,还是在计数结束之后,写入新
的初值都不会发生计数过程,必须在门控信号的上升沿到
来后才发生下一个新的计数过程,计数的初值是按写入新
的初值进行。
退 出
8255方
式 0
方式 0— 基本的输入 /输出方式
方式 0是一种基本输入或输出方式,两个 8位端口 (A口
和 B口 )和两个 4位端口 (C口的上半部和 c口的下半部 ),任
何一个端口都可以作为输入或输出端口,无需设置专用的
应答线。输出锁存,输入只有缓冲能力而无锁存功能。
在方式 0下,任何一个端口都可由 CPU用简单的输入
或输出指令来进行读写。因此将它用于无条件传送方式的
接口电路是十分方便的,这时三个端口都可以作为数据端
口。例如 图 8.51电路所示,通过定义 A口为方式 0输入,B
口为方式 0输出,利用开关来控制相应发光二极管工作。
退 出
8255方
式 0
方式 0下的 8255A也可作为查询方式的接口电路,这
时 A口和 B口分别作为数据端口,而取端口 C的某些位作为
这两个数据端口的控制位和状态位。
采用查询方式传送数据时,利用端口 C的高 4位和低 4
位能分别作为输入或输出的特点,配合端口 A和端口 B进
行输入数据和输出数据的操作,即 A口和 B口传送数据,C
口的高 4位和低 4位分别用来输出控制外设的控制信息和输
入外设的状态信息。例如 图 8.52电路所示,通过定义 A口
为输出口,B口为输入口(输入状态信息 BUSY),C口为
输出口(输出控制信息 ),来控制打印机的工作。STB
退 出
8255方
式 1
方式 1— 选通式输入 /输出
在这种工作方式下,端口 A和端口 B为数据传送口,可
通过工作方式控制字设定为数据输入或数据输出。端口 C
的某些位作为控制端口,配合 A口和 B口进行数据的输入
和输出。方式 1通常用于查询方式或中断方式传送数据。
C口的某些位作为控制和状态口时,随 A口或 B口输入
和输出工作状态不同,各位所代表的意义不同。下面分输
入和输出两种情况进行介绍。
一、方式 1输入
端口 C配合端口 A和端口 B输入数据时,各指定了 3条
线用作外部设备和 CPU之间的应答信号,如 图 8.53所示。
退 出
8255方
式 1
:外设送来的“输入选通”信号,输入、低电平有效。当
它变为低电平时,外设已将数据送到 8255A端口的输入数据锁存器。
IBF,8255A送到外设的“输入缓冲器满”信号,输出、高电平
有效。当它为高电平时,说明外设数据已送到输入锁存器,但尚未被
CPU取走,通知外设不能送新数据;只有当它为低电平时,即 CPU已
读取数据,输入锁存器变空时,才允许外设送新数据。
INTR,8255A送给 CPU的“中断请求”信号,输出、高电平有效。
当它为高电平时,请求 CPU从 8255A读取数据。使 INTR变高电平的
条件是:当 IBF=1,并且中断允许 INTE=1时,才使 INTR变高电平,
向 CPU发出中断请求。
INTE:中断屏蔽信号,决定端口 A和端口 B是否允许申请中断。
当 INTE为 l时,使端口处于中断允许状态;当 INTE为 0时,使端口处
于禁止中断状态。 INTE的置位/复位是通过对 C口置位 /复位命令字实
现的。具体地,INTEA的置位/复位通过 PC4的置位 /复位控制字来控
制,INTEB的置位/复位通过对 PC2的置位/复位控制字来控制。
在方式 1输入时,端口 C的 PC6和 PC7两位是空闲的,它们具有置
位 /复位功能,也可用作输入或输出数据,由方式选择控制字的 D3位
为 1还是 0来决定。
STB
退 出
8255方
式 1
二、方式 1输出
方式 l输出时,端口 C各位的含义如 图 8.54所示。
:输出缓冲器满信号,输出、低电平有效。当它为低时,表
示 CPU已将数据写到 8255A输出端口,通知外设来取数。
:外设送来的“回答”信号,输入、低电平有效。当它为
低电平时,表示外设已经从 8255A的端口接收到 CPU送来的数据。它
是对 OBF的一种回答。
INTR,8255A送到 CPU的“中断请求”信号,输出、高电平有效。
当它为高电平时,请求 CPU向 8255A写数据。 INTR变高的条件
是 ? ?INTE=1都为高电平,也就是输出缓冲器已变空
( OBF=1),回答信号已结束( ACK=1),外设已收到数据,并且
允许中断( INTE=1)。
INTE:中断屏蔽信号,与方式 1输入数据时 INTE的含义一样,但
使 INTE置位/复位的控制信号是 PC6和 PC2。 PC6是使端口 A允许还
是禁止中断申请的控制信号,PC2是使端口 B允许还是禁止中断申请
的控制信号。
在方式 1输出时,端口 C的 PC4和 PC5未使用,如果利用这两位进
行数据的输入或输出,可通过方式选择控制字的 D3位控制。它们也具
有置位/复位功能。
OBF
ACK
OBF ACK
退 出
8255方
式 2
方式 2— 双向选通输入 /输出方式
仅 A口可以采用这种工作方式。在这种方式下,可以
使外部设备利用端口 A的 8位数据线与 CPU之间分时进行
双向数据传送,也就是说,可在单一的 8位数据线上既输
出数据给外部设备,也可从外部设备输入数据。输入或输
出的数据都是锁存的。工作时既可采用查询方式,也可采
用中断方式传输数据。
当端口 A工作在方式 2时,使用 PC7?PC3作为控制和
状态信息,也就是把方式 1输入数据和方式 1输出数据的控
制信号组合起来。端口 B可工作于方式 0或方式 1,如果工
作在方式 1,可利用 PC2?PC0作为控制和状态信号。
按方式 2工作时,端口 C各位的定义如 图 8.55所示。
退 出
8255方
式 2
PC7?PC4分别定义为:输入缓冲器满 IBFA,外设输入
选通信号, 外设接收到数据后回答信号 和输出
缓冲器满 。 有效电平及含义同方式 l,只有 INTRA有双
重定义:在输入时, 输入缓冲器满, 且中断允许触发器
INTEl为 1时 INTRA有效, 向 CPU发出中断申请;在输出时,
输出缓冲器空, 且中断允许触发器 INTE2为 1时, 1NTRA
有效, 向 CPU发出中断申请 。 中断允许触发器 1NTEl的置
位/复位控制通过对端口 C的 PC6写入置位/复位控制字
来实现, 中断允许触发器 INTE2的置位/复位控制通过对
端口 C的 PC4写入置位/复位控制字来实现 。
ASTB AACK
AOBF
退 出