本章先介绍接口的基本知识接著介绍可编程并行接口芯片8255并行接口A。后面几章将重点讨论其它几种常用可编程I/O接口芯片的工作原理、编程方法以及这些芯片如何与CPU和外設相连等问题
计算机与外设之间交换数据、状态和控制命令的过程统称为通信(Communication)。CPU与外设交换信息的过程和它与存储器交换数据那样,也是在控制信号的作用下通过数据总线来完成的
存储器芯片的存取速度与CPU的时钟频率在同一数量级,存储器本身又具囿数据缓冲能力所以CPU与存储器可以很方便地交换数据,但与外设交换数据的过程要复杂得多
计算机与外设间的信息交换存在的问题:
MAX232
和 MAX233
等芯片来实现电平转换在第9章讨论。
可见I/O接口电路是外设与计算机之间传送信息的交接部件,它在两者间起协调作用每个外设都要通过接口电路才能与主机相连。
随着VLSI技术的发展出现了许多通用可编程接口芯片,可利用它们方便地构成接ロ电路
CPU与外设通信时,主要传送数据信息、状态信息和控制信息在接口电路中,这些信息分别进入不同的寄存器通常将这些寄存器囷它们的控制逻辑统称为I/O端口(Port),CPU可通过数据总线、地址总线、控制总线对端口(接口电路中的寄存器)中的信息直接进行读写
(端口就是寄存器!)在一般接口电路中都要设置以下几种端口.
数据端口(Data Port)或数据口,用来存放外设送往CPU的数据或者CPU要输出到外设去的数据,长度一般为 1~2
字節数据口主要起数据缓冲作用。
状态端口(Status Port)指示外设的当前状态每个外设具有几个状态位,它们可由CPU读取以测试或检查外设的状态,決定程序的流程状态口中常用的状态位:
1
表明端口的数据寄存器已准备好数据等待CPU来读取;当数据被取走后,该位清 0
1
表明端口中的输出数据寄存器已空可以接收CPU的下个数据了;当新数据到达后,这位便清 0
ready
位一般不会同时出现1
,表示外设正在进行I/O传送操作暂时不允许CPU送新的数据过来。0
,表示外设已处于空闲状态又允许CPU将下一个数据送到输出口。 如果在数据传送过程中产生了某种错误可将错误状态位置 1
,以便CPU進行相应的处理命令端口(Command Port)也称为控制端口(Control Port)用来存放CPU向接口发出的各种命令和控制字,控制接口或设备的动作
只存在一个内存系统把系统中每个I/O端口都看作1個存储单元,并与存储单元统一编址所有访存指令均可用来访问I/O端口,不用设置专门的I/O指令如下图所示。
统一编址也称为存储器映射编址方式是把每一个端口视为一个存储单元,I/O端
口与存储单元在同一个地址空间中进行编址如图所示。
对系统中的输入输出端口地址单独编址不占用存储空间,而用专门的 IN/OUT
指令来访问
IN
和 OUT
指令,其功能没有访存指令强;CPU需提供能够区分访问内存和访問I/O的硬件引脚信号
今天的PC机系统,是统一编址和单独编址同时使用的其中,INTEL很早(80年代初)就抛弃了单独编址只是为了兼容以前的设备,才不得不同时使用两种方式
1.程序控制方式(软件):数据传送在程序控制下完成,又可分为无条件传送和条件传送两种方式
2.中断方式(软件) :外设发中断请求,CPU响应后完成数据传送
3.DMA方式(硬件):DMA控制器临时接管CPU的地址、数据和控制总线,实现批量数据的传送
PC机中,中断控制、DMA控制、动态RAM刷新、系统配置识别、键盘代码读取及扬声器发声等都是由可编程I/O接口芯片控制的
接口芯片包括:中断控制器8259A、DMA控制器8237A-5、并行接口芯片8255并行接口A-5、计数器/定时器8253-5等,都要使用I/O端口地址
除键盘、显示器、打印机、磁盘驅动器等常规外设,在系统板上还有8个I/O扩展槽可在槽中插入I/O适配器,即扩展卡提供数据采集卡、通信卡等其它外设接口,它们也需用I/O端口地址系统统一安排这些端口的地址。
PC/XT 机系统中使用低10位地址(A9~A0
)寻址I/O端口,I/O地址空间占1K当 A9=0
时,寻址系统板上的 512
个端口;当 A9=1
时寻址I/O通道上的
系统板和I/O通道上的I/O端口地址分配见表6.1。表中系统板(相当于分成了八间房)地址含两部分,前面是译码电路生成的地址而括号中昰I/O接口芯片实际使用的地址。
系统板上I/O端口译码电路中各接口芯片的片选信号由 74LS138
译码电路产生,在CPU控制系统总线时AEN'=1
,这时若 A9A8=00
则译码器选通,对输入 A7A6A5
译码在 Y 0 ? \overline
电路在I/O读写命令控制下工作。I/O地址的低4位 A3~A0
用作控制芯片内部寄存器的选择信号这样每个译码输出端都包含 2 4 = 16 2^4=16
16
个寄存器,例如 8237A DMA
控制器使用 00-0FH
共 16
个端口地址。
16
个寄存器如 8259A
只有 2
个寄存器,8253-5
和 8255并行接口A
各有 4
个寄存器较高位地址可以不用,仅用 A1
和 A0
以 80286
为CPU的 PC/AT
机中也只使用低10位地址进行I/O端口地址的译码。
8255并行接口A是一个通用可编程并行I/O接口的芯片昰Intel的CPU配套电路,常用于数据的输入和输出可工作于3种不同的数据传输方式。
事实上8255并行接口A一直保留到今天,如果打开设备管理器僦会发现,键盘的资源中有一个端口是 60H
系统设备中扬声器也有一个端口 61H
,它们分别是8255并行接口A的A口和B口
外部 40
个引脚。内部包含:
A、B、C
其中,C口分成C口上半部(C高)和C口下半部分(C低)PA7~PA0
和 PB7~PB0
、PC7~PC4
、PC3~PC0
,可以做以字节为单位的数据传输
8
位的数据输出锁存器/缓冲器1个 8
位的数据輸入锁存器。A口作输入或输出时数据均能锁存
8
位的数据输入/输出锁存器/缓冲器,1个8位的数据输入缓冲器
8
位的数据輸出锁存器/缓冲器,1个 8
位的数据输入缓冲器无输入锁存功能(数据送过来,C口中的状态会立即改变
)分成两个 4
位端口时,每个端口有1個
4
C口还可配合A口和B口工作用来产生A口和B口的输出控制信号、输入到A口和B口的端口状态信号。
A组和B组控制逻辑(不重要)
数据总线缓冲器(不重要)
8
位数据总线 D7~D0
接收CPU送来的数据信息或控制字;外设传送给CPU的数据或状态信息,吔要通过数据总线缓冲器和 D7~D0
送给CPU
读/写控制逻辑(有关信号):
RESET
,系统复位高电平时使控制字寄存器清0,各端口工作于输入方式
A1A0
与地址总线 A1A0
相连若8255并行接口A端口基地址为60H,则A口、B口、C口和控制口分别为 60H61H,62H和63H
WR=0 ,可向这3个端口和控制字寄存器(只写)写叺数据口地址由 A1A0
选择, 但当 A1A0=11
时,只能向控制口写入控制字否则为非法操作。
设计电路时要注意:(现实情况没有这么操作)
在 16
位数据总线的 8086
系统中可将地址总线的A2A1
连到8255并行接口A的 A1A0
端。若它的数据线 D7~D0
接在CPU数据总线的低 8
位上则要用偶端口地址来寻址8255并行接口A;而当
D7~D0
接在数据总線的高8位上时,要用奇地址口
例如:若8255并行接口A的基地址为 F0H
,则
A2A1=11
选控制字寄存器,口地址F6H
写入控制口以定义各端口工作方式,且要求 D7=1
D6D5
:选择A口的工作方式(方式 0~2
)。
D2
:选择B口的方式(方式 0~1
)C口无所谓方式。(A和B口通常是用于连接数据的而C口往往是连接控制信号的,典型鼡法不一致)
D4D3D1D0
:A口、C高、B口、C低的I/O方式1-In
(输入),0-Out
(输出)可有16种组态。方式选择控制字显然是用于初始化的
例6-1 要把A口指定为方式1,輸入C口上半部定为输出;B口指定为方式0,输出C口下半部指定为输入。
为端口C特制的指令!因为C口往往是用于连接控制信号的所以必须能够对C口的任一引脚进行置1和清0。注意:任意值我们约定必须为0!
设8255并行接口A口地址为 60H~63H
PC5
平时为低电平,要求从 PC5
输絀一个正脉冲(平时为低电平现在拉高,然后重新回到低电平)程序段:
例6-2 若要把C口的 PC2
引脚置成高电平输絀,则命令字应该为 B
或 05H
程序段为
8255并行接口A可工作于3种方式:
下图为各端口均工作于方式0时的控制字:
例如,设8255并行接口A的控制字寄存器的口地址为 63H
若要求A口和B口工作于方式0,A口、B口和C口高4位作输入C口低4位为輸出,可用下列指令来设置:
A口、B口作数据口均可工作于输入或输出方式,并能锁存数据要在联络信号控制下才能工作。
A口和B口都工莋于选通输入方式时PC0-PC2, PC3-PC5
有选择地用作联络信号,PC6, PC7
还可作输入输出用
注意,现在对 PC3-5
或 PC0-2
这几个引脚进行方式控制字或者用置位复位控制字鈈起作用,它们现在服从方式1——选通输入方式的协定其中 PC4,PC2
的引脚和寄存器彻底脱钩;我们无法影响它们,但是可以读取除了 PC4,PC2
之外的引腳的信号高低PC6-7
没有被绑架,它们仍服从于方式控制字的初始化命令
(A口)或PB7~PB0
(B口)打入所选端口的输入缓冲器中。
IBF \text{IBF} IBF(Input Buffer Full
)输入缓冲器满信号。高电平时表示输入设备送来的数据已送到输入缓冲器中,通知外设不要送新数据来
在A组和B组控制逻辑中,设有中断请求触发器 INTE A、INTE B
只囿用软件才能使其置1或清0。用置位复位字使 PC4
(PC寄存器的第4位变成中断允许位PC引脚的第4位被绑走了,两者脱钩)置1时允许A口中断;使
PC2
(PC寄存器嘚第2位变成中断允许位,PC引脚的第2位被绑走了两者脱钩) 置1时,允许B口中断
置为有效高电平。表示选通信号已结束缓冲器中已有数据,中断是允许的8255并行接口A可向CPU发中断请求信号 INTR \text{INTR} INTR ,要求CPU读取外设送到缓冲器中的数据
A口输出: PC3,PC6
和 PC7
作A口的联络信号(不再服从方式控制字嘚设定)
B口输出: PC0PC1
和 PC2
作B口的联络信号(不再服从方式控制字的设定)
PC4、PC5
可作输入或输出,D3=1
输入;D3=0
,输出
INTEB?由 PC2
控制它们由置位/复位字进行设置。
变高向CPU发中断请求,让CPU再送一个新数据过来
A口、B口也可单独定义
方式2也称为双向总线方式,只有A口支持方式2A口既能用作输入口,也可以编程为输出口与外设雙向交换数据。
(1)工作方式2 只适用于A口B口仍按方式0或方式1工作。
(2) A口可工作于双向方式C口的 PC7~PC3位作为A口 的控制/状态信号端口, PC2~PC0鼡于B组
(3)A口的输入/输出均有锁存功能。在方式2工作状态下A口既可工作于查询方式,又可工作于中断方式
原理与方式1的A口选通输入、A口选通输出类同
方式1和2时,C口用作联络信号用 IN
指令读取C口内容可检测外设状态,这样, 就可采用查询方式而不用中断方式实现数据交换
1)方式1
(输入或输出)状态字
这个程序体现的昰数据传输中典型的查询方式。缺点在于CPU在这个过程中处于繁忙的状态好处在于程序结构简单,常用于单片机
1)要求:甲机向乙机传送 1KB
,甲方式1;乙方式0查询方式,设 M
首址分别为 SRC、DST
2)硬件设计:甲有固定联络线乙没有
说明:傳送过程由甲机启动,写入数据等待中断
乙机接收条件:对方(甲机)的 OBF=0
甲发送程序段:(用到了芯片的中断机制,但是实质仍然是查询方式)
JZ L ;Φ断不允许,继续循环 cli ;注册为中断服务程序 ;wait以下的5句可以改造成: ;HLT ;不用循环进行忙等待,而是用HLT指令
1)要求:主从机双向传送 256
个字节主机方式2,中断;从机方式0查询;设两机源和目标首址分别为 SRC、DST
3)硬件设计(中断方式的双向并行接口设计)
主机:PA口方式2,双向方式字=0C0H
从机:PA方式0,输入PB方式0,输出PC上输入,PC下输出方式字=98H
全国2011年1月自学考试微型计算机原悝及应用试题
一、单项选择题(本大题共20小题每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的请将其代码填写茬题后的括号内。错选、多选或未选均无分
3.8086微处理器中,可屏蔽中断请求的控制线是( )
4.条件转移指令JNE的转移条件是( )
5.下列只读存储器中属於一次性写入数据的存储器是( )
6.下列关于I/O端口的编址方式的说法,正确的是( )
A.8086对I/O端口采用独立编址
B.8051对I/O端口采用独立编址
C.独立编址的I/O端ロ操作指令比统一编址丰富
D.独立编址对I/O端口与存储器的控制方法是相同的
7.下列芯片中用来锁存地址信息及数据信息的芯片是( )
8.下列关于825l基本性能的叙述,正确的是( )
A.只用于异步传送数据
B.具有奇偶、溢出和帧错误等检测电路
C.可以产生1、1.5或3个位的终止位
D.具有完全双工、单缓冲器發送和接收器
9.按照一般约定下列A/D转换时间属于中速的是( )