第七章 输入/输出系统 (Pro)
bkou考点1 输入输出接口的结构和功能
掌握接口的概念,结构及功能
接口:连接两个部件的地方,连接CPU,连接外设的地方
8088CPU 数据线 8位 A0~A19 连接 接口的话只能是 A0~A15
8086 数据线 也用的是 8位
82 53 59 51 } 8位数据缓冲器 如果 8253计数初值 是字的话 就传送俩次
控制线没什么区别接口连外设时:数据信息 控制信息 状态信息
1/0接口:系统与外设间、逻辑电路(适配器)
1/0端口:1/0地址,
数据端口、状态端口和控制端口
1. 简述1/O接口的基本功能是什么?接口内部一般由哪些寄存器组成?
答: (1) 1/0接口的基本功能:
① 数据的寄存和缓冲功能,协调快速CPU与慢速的外设之间数据传送的矛盾和时序差异;
②信息格式的转换,例如串行和并行的转换;
③ 协调CPU和外设在信息的类型和电平高低方面的差异,如数/模或模/数转等;
④采集外设的信息传送给CPU,接收CPU发出的控制命令及启动外设工作。
⑤定时、地址译码和设备选择,识别访问的外设;
(2)包括数据寄存器、控制寄存器、状态寄存器。
2.CPU与外设间通信为什么需要设置接口电路?
答:CPU与外设间设置接口电路的原因主要有四个方面:
① CPU与外设二者的信号不兼容,包括信号线的功能定义、逻辑定义和时序关系。
② CPU与外设的速度不匹配,CPU的速度快,外设的速度慢。
③ 若不通过接口,而由CPU置接对外设的操作实施控制,会使CPU处于穷于应付在行交道之中,大大降低CPU的效率。
④ 若外设直接由CPU控制,会使外设的硬件结构依赖于CPU,对外设的发展不利。
通常,在1/0接口自身都有定时控制逻辑,其原因是它与主机交换信息时存在()。
A.数据需要缓冲 B.速度不匹配 C时序不同步 D.数据格式需转换
8086CPU系统外设有——————个地址。
1/0设备的端口包括______\_______和状态端口三种端口。
什么是1/0接口?什么是端口?1/0接口的有哪些功能?
答题要点:(1)I0接口:主机和外设之间的交接界面(中间部件) ,通过接口可以实现主机和外设之间的信息交换。
(2)IO端口:接口电路中可被CPU直接访问的寄存器(触发器)。
(3)地址译码、数据缓冲、电平转换、格式转换、逻辑控制。
考点2 I/0指令格式、寻址及应用
1.I/O端口的编址
·88/86用于寻址外设端口的地址线为16条
端口最多2^16=65536(64KB)个,
端口号为0000H ~ FFFFH
两种编址:独立编址 88/86
统一编址
1.独立编址(专用的I/0端口编址) :
存储器和I/O端口在两个独立的地址空间中。
(1)优点:I/O端口的地址码较短,译码电路简单,存储器同I/O端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制结构相互独立,可以分别设计。
(2)缺点:需要有专用的I/O指令(IN/OUT) ,程序设计的灵活性较差。
2.统一编址(I/O端口与存储器统一编址、存储器映像编址):
把I/O接口中可以访问的端口作为存储器的一个存储单元,统一纳入存储器地址空间,为每一个端口分配一个存储器地址, CPU可以用访问存储器的方式来访问I/O端口。
优点:不用专门设置访问端口的指令,访问存储器的指令都可以用于访问端口。
缺点:由于端口占用了存储器的一部分存储空间,使得存储器的实际存储空间减少;程序I/O操作不清晰,难以区分程序中的I/O操作和存储器操作。在单片机系统中,多数采用这种编址方法。
在8088/8086中,外设与内存独立编址方式中,用于外设的指令功能( B)。
A.较强
B.较弱 // IN or OUT
c.与用于内存的指令相同
D.以上都不是
1/0设备地址的编址方法有________和________两种。
2.1/0端口寻址方式
直接地址:
只寻址00H~FFH 前256个端口
间接地址:
可寻址全部64K个端口: 000OH ~FFFFH
DX寄存器的值存放端口号;
0100H-FFFFH的端口只能采用间接寻址方式。
从65H端口,取一个数M
IN AL,75H
MOV M,AL
送 67H端口OUT 73H,AL
直接寻址
间接寻址
MOV DX,71H
3.指令格式及寻址
IN AX/AL,{PORT/口地址
DX}
OUT {PORT口地址,AX/AL
DX }
存储器的间接寻址 BXBPSIDI
下列四个寄存器中,用来作为1/0端口间接寻址的寄存器是()
A. BX B. DX C. BP D.、DI
. IN BL,30H将30H端口数据传送到BL寄存器上。(判断)
AX/AL
例1:从内存buf单元取一个字节送280H端口
例2:从内存BUF单元取一个字送280H端口
例3:从内存BUF单元取一个字送80H端口
例4: 两种方法写出从80H端口读入一个字节的指令,
考点3 传送控制方式
1查询传输控制方式
无条件
程序传送{ 条件/查询中断
中断
硬件 不需要CPU介入
DMA传送{ DMAC。823芯片
在一个采用查询方式输入数据的
1/0接口中,八位数据端口地址为
2000H,一位状态端口地址为2002H
(外设数据准备好信号高电平有效,接至数据总线的D7位)。
写出查询输入1000字节数据存放
到内存以BUF为首地址的缓冲器的
程序段。
特点: 优
缺
WAIT:IN AL, 70H
TEST AL, 02H
JZ WAIT
MOV AL, OFH
OUT 71H, AL
①上述程序采用了——————传送方式进行数据输出。②70H是端口,71H是端口。
2. 中断传输控制方式
多个外设随机向CPU请求,
提高 CPU的利用率,
提高系统的 性,
CPU与外设能协调、并行工作
需要中断控制器8259芯片
适合少量数据、中慢速外设的数据传送,如键盘、鼠标。
简述CPU与外部设备采用中断控制方式传输数据的过程。
(1)当外部设备需要与CPU进行数据交换时,由接口部件
(8259)发出一个中断请求信号,
(2) CPU响应中断请求,在中断服务程序中完成一个字节或一个字的数据传输。
(3)数据传输完成后, CPU返回原程序。
(4) CPU每执行一次中断传送数据,要打断原来执行的程序去执行中断传输的服务程序。
(5)执行前要保护PSW和断点,返回时要恢复断点和PSW。
3. DMA传输控制方式
克服程序控制传送的不足{程序传送 无条件 ,查询,中断}
外设→CPU→存储器
外设←CPU——存储器
直接存储器存取DMA:
外设→存储器
外设←存储器
DMA传送中,CPU释放总线,
由DMA控制器(8237)管理总线
进行传送。
DMA传送过程:(7.2节)
① 外设发出请求;
②DMAC向CPU申请总线;
③CPU完成当前总线周期后响应,并释放总线控制权;
④DMAC得到总线控制权,并发出DMA响应信号;
⑤DMAC发出各种控制信号,控制外设与存储器之间的数据传送;
⑥数据传送完后,DMAC撤销HOLD信号;
⑦CPU释放HLDA信号,并重新控制总线。
例:1. 在DMA方式下,外设数据输入到内存的路径是()。
A.CPU x →存储器
B.外设→数据总线→存储器
C.外设→CPU x→DMAC→内存
D.外设→DMAC{8237}→内存
2. CPU对DMA控制器提出的总线请求响应要比中断请Ο求的响应快,其原因是()。
{hold要比INTA的响应快} {中断响应 是在指令周期后}{软件慢灵活 硬件快不灵活}A. 只需完成访问内存操作
B. 只需释放总线控制权
C. 无需保留断点现场
D.有硬件DMA控制器
总结:传送方式的比较
无条件传送:慢速外设,与CPU保持同步。
查询传送:简单,CPU效率较低。
中断传送:外设主动、实时性高,与CPU并行工作,CPU效率高,但每次传送需要大量额外时间开销,适于中慢速外设。
DMA传送:传送过程中由专门硬件DMAC控制,不需要CPU介入,外设直接和主存进行数据传送,适合大量、快速数据传送。
ZOP传送;快,独立有自己指令系统总线
简述中新传送方式和DMA传送方式相比有什么不同。
①中断方式通过程序实现数据传送,
而DMA方式不使用程序直接靠硬件来实现,信息传送速度快。
②CPU对中断的响应是在执行完一条指令之后,
而对DMA的响应则可以在指令执行过程中的任何总线周期之后请求响应快。
③中断方式必须切换程序,要进行CPU现场的保护和恢复操作。
DMA仅挪用了一个存储周期,不改变CPU现场,额外花销小。
④DMA请求的优先权比中断请求高。
CPU优先响应DMA请求,是为了避免DMA所连接的高速外设丢失数据。
⑤ 中断方式不仅具有1/0数据传送能力,而且还能处理异常事件,
DMA只能进行1/O数据传送。
总而言之,在进行1/O控制时,DMA控制方式比程序中断控制方式速度快,但程序中断控制方式的应用范围比DMA控制方式广。
{周期挪用,周期扩展,周期停机}
DMA方式与中断方式的区别在于:
(1) DMA方式是依靠硬件来实现存储器和外设之间的数据传送;
而中断方式是通过执行中断服务程序来实现数据传送。
(2) CPU对DMA的响应在指令执行的总线周期之后;
而CPU对中断的响应则是在执行完一条指令之后。
(3) DMA方式只能进行数据传送。
而中断方式不仅能进行数据传送,还能处理异常事件。
(4) DMA请求的优先权比中断请求高。
(5) DMA方式能进行数据块的传送,传输速度快;
而中断方式只能按字节进行传送,传输速度较慢。
简述主机与外设数据交换的方式及特点
答:主机与外设进行数据交换的常用方式有:
无条件传送方式、程序查询方式、中断方式和DMA传送。(2分)
中断方式:外设在准备就绪的条件下通过请求引脚信号,主动向处理器提出交换数据的请求。处理器无其他更紧迫任务,则执行中断服务程序完成一次数据传送。(2分)
DMA传送:DMA控制器可接管总线,作为总线的主控设备,通过系统总线来控制存储器和外设直接进行数据交换。此种方式适用于需要大量数据高速传送的场合。(2分)
21:CPU与外设采用条件传送方式时,必须要有()。
A.中断逻辑B.请求信号c.状态端口D.类型号
简述CPU和外设之间的数据传送方式有哪几种?分别用什么方法启动数据传输过程。
答题要点:
(1)有以下三种方式:程序控制方式、中断方式{子程序}、DMA方式 。其中程序控制方式又可分为无条件传送方式和条件传送(查询)方式{主程序}两种方式。
(2)无条件传送方式CPU发出命令,不需要判断外设状态,可以直接进行数据传输;
在查询方式下,是通过程序来检测接口中状态寄存器中的"准备好" (READY)位,以确定当前是否可以进行数据传输的;在中断方式下,当接口中已经有数据要往CPU输入或者准备好接收数据时,接口会向CPU发一个外部中断请求,CPU在得到中断请求后,如果响应中断,便通过运行中断处理程序来实现输入/输出;在DMA方式下,外设要求传输数据时,接口会向DMA控制器发DMA请求信号,DMA控制器转而往CPU发送一个总线请求信号,以请求得到总线控制权,如果得到DMA允许,那么,就可以在没有CPU参预的情况下实现DMA传输。
简述CPU和外设之间的数据传送方式有哪几种?
分别用什么方法启动数据传输过程。
无条件
条件 程序 IN OUT
中断
DMA:硬件 8237 总线请求
IOP: 8089,协 输入/输出 传送 } 硬件
考点4 并行和串行通信的特点和类型
1.概念特点:
(1)数据的并行传送方式是以字节或字为单位传送,数据的串行传送方式是以位为
单位传送。
(2) 串行通信协议分为异步通信和同步通信。
(3)异步串行通信的数据帧的格式:
传送数据的基本单位是字符,最优先传送的是1位起始位,低电平信号,随后
5-8位数据位,奇偶校验位,最后1-2位高电平的停止位。
(4)并行{主板上的}通信通常用在传输距离近、数据率高的场合。
(5)异步串行通信的数据传输率:
①波特率: 一般用于描述串行通信的速率的指标,
每秒能传输的数据的二进制位数。
单位:波特 或 bit/s
串行异步通信中,收发双方的波特率必须相同。
只有波特率一致的情况下才能保证接收方和发送方获取同样的数据。
②波特因子:
接收器或发送器的频率/数据传输的波特率在
8251{可编程串行接口芯片}芯片中有三种1,16,64
f发/收
因子= _______
f波特率
发收 除 因子 =波特率
通信双方必须预先约定比特率、数据位数、是否带奇偶校验位及校验模式、停止位个数等(帧格式相同)。
http ftp
8251A用作异步串行通讯接口,如果设定波特因子为16,而,发送器与接收器时钟频率为19200HZ,则波特率为( )。
19200/16=1200
A. 1200波特B. 2400波特C.9600波特D. 19200波特
写出串行异步通讯方式时的数据帧格式。如果用9600波特率传送一个7位的ASCII码字符,并带有一位奇偶校验位和两位停止位,请给出该字符的传送速率。
1帧:1位起始位,5~8数据位,1位奇偶校验位,1到2位停止位
2 字符(帧)=1+7+1+2=11位
9600是传输率 9600/11=873字符/秒
需要长距离传输数据时,一般采用()方式,因为节省数据信号线条数少
A.并行B.串行 C.同步D. 异步
·异步串行通信数据帧的格式是怎样的?什么是波特率?
异步串行通信收发双方的波特率必须相同。
通信双方必须预先约定比特率、数据位数、是否带奇偶校验位及校验模式、停止位个数等(帧格式相同)。
只有波特率一致的情况下才能保证接收方和发送方获取同样的数据。
一个异步串行通信接口,发送一帧数据的字符格式如图所示,如果线路上传送的字符格式包括7位ASC1码,1位奇偶校验位,1位停止位。则该帧字符所传送的7位二进制数据值是__0111001B___,采用的是___16.6ms_____校验。如果波特率为600bps ,计算传送该帧数据需要的时间是_________
串行异步通信的实现,必须作到()
A.通信双方有同步时钟的传送,以实现同步
B.一块数据传送结束时,用循环冗余校验码进行校验 {采用奇偶校验循环法}{CRC循环冗余校验}{海明校验}
C.以字符为传送信息的单位,按约定添加起始位、停止位和校验位
D.块与块间用同步字符01111110隔开
考点5 并行接口芯片8255的结构、功能和应用
1.8255的结构
A口 8位
B口 8位C口的 8位分成两半 C口的高4 和低4
三个端口是用与数据传输的口 A口B口 C口主要是联络口 当C是0的时候 C口也当做数据口
外设键盘 把数据 通过A口送到 8255 8255数据总线缓冲器,再把接收到的数据 送给CPU{8255数据总线缓冲器 是一个 8位的}
8255的引脚和结构
连接CPU的一个是8位的数据线 读写号线 8255上 有 两根地址线{片内地址线}8255有4个端口地址 但是它有3个8位的数据的端口 有4个端口地址不一样
加上复位 和片选信号端 低电平有效
结构内部 包括AB组控制 包括 数据总线缓冲期 ,在接口上有缓冲功能,控制功能,译码功能,有锁存,速度匹配等功能
右边四个,有联络的功能
2.8255的结构、特点
3个8位端口:
3种工作方式: 0 1 2
2位地址线: A1 A0
4个端口地址: 00 01 10 11
2个控制字:
方式控制字:
C口的按位置位/复位字:
3.3种工作方式
方式0:基本输入输出方式 {没用C口做联络口}
适用于 无条件传送和查询方式{用C口做联络 但是不是固定的联络口}的接口电路
方式1:选通输入输出方式
适用于 查询和中断方式{用固定的位}用到{C口用C口做联络口}的接口电路
方式2:双向选通传送方式
适用于 查询和中断方式的接口电路
方式0:基本1/0
通常不用联络信号或不使用固定的联络信号;
PA、PB{数据口}和两个4位PC都可以作为数据的入/出{2^4=16种传送方式}(由程序设定);
方式0适于无条件{开关和灯的关系}传送和查询传送;
输入时,使用IN指令,
输出时,使用OUT指令;
方式1:选通I/O方式
通常使用固定的联络信号;
适于查询和中断方式
可以产生中断;
一般作为中断方式I/O
输入使用IN指令,输出使用OUT指令;
·(1)方式1:A端口输入
A口的输入 大剪头 相当于键盘,通过A口把数据输入进8255,8255的C口在这里连接了三个引脚 STB选通信号 低电平相当于产生了一个地脉冲,当PC4上出现了一个低电平,就会就收数据
回应
PC4 PC5用于连接外设的信号线
PC3 由 8259 向 CPU 发送请 求
PC4一方面接受外设的选通信号,说明外设的键盘已经送到了8255的接口上
还有一个功能PC4为一 是 开中断 允许中断 和IF 的开中断不一样
(2)方式1:B端口输入
B口输入在B口输入的时候,它的允许中断用的是PC2,没链接中断允许触发器
INTE 中断允许触发器 8259内部的 PC0 允许和禁止的一个标识
PA口入 :
PC4=1 允许
PC4=0 禁止
PB口入:
PC2=1 允PC0发
PC2=0 禁PC0发
方式1输入联络信号
STB:选通{低电平有效}信号,低电平有效
外设输入,有效时,将输入设备送来的数据锁存至8255的输入锁存器。
IBF:输入缓冲器满信号,高电平有效
8255输出的联络信号。有效时,表示数据已锁存在输入锁存器。
INTR: 中断请求信号,高电平有效
8255A输出的信号,向CPU提出中断请求,要求CPU读取外设数据。
(3)方式1:A端口输出
A口出 PC6=1 允许 PC3 =发送
PC6=0 禁止
下标变成了B
B口出
PC2=1 允 PC0 =发
=0 禁
方式1输出联络信号
OBF:输出缓冲器满信号,低有效
输出给外设,有效时,表示CPU已把数据输出给指定的端口,外设可以取走。
ACK:响应信号,低有效
外设的响应信号,指示8255A的端口数据已由外设接收。
INTR:中断请求信号,高有效
当输出设备已接收数据后,此信号包OPU提出申断请求,要求CPU继续提供数据。
CPU送到 8255PA/PB口上 8255发请求信号,8255送到打印机或者显示器的输出设备上,A口已经送到打印机上, 送完以后 A为空, 8255再次向CPU发送请求
方式2:双向方式
方式2可以同时发送数据和接收数据
只有端口A可以工作于方式2 {因为B口 只适用于0.1 A口于0.1.2}
端口B可用于方式0或方式1
需要利用 端口C的信号线
图中 在A口上可以 入也可以出 当出的时候用的一对引脚 入的时候用的一对引脚都用于联络
两个中断允许触发器 分别控制入和出,用的都是PC的第三口
4.8255的编程步骤
(1)由已知条件确定方式控制字{C口的联络},如果用到C口联络,则要定义置位/复位字;· {A口的PC4=1允许}和PC4连接=选通信号不一样
(2)确定8255的端口地址;{4个端口地址,在题目中找到,没有的话就计算出来}
有了以上的要求,才能执行一下的
(3) CPU对8255初始化编程;
(4)8255功能驱动程序段
特征位 一定是1 D6 D5 是A口的工作方式 入是1 出是0
标志位 一定是0 D6 5 4 按0做 D3~D1 PC0=1 00000001B=01
硬件连接如下图所示:有8个开关K。~K7,要求不断检测它们的通断状态,并随时在发光二极管LED。~LED7上显示出来。开关闭合,相应的LED点亮;开关打开,LED熄天(如Ko开关闭合,则LED,发光二极管点亮)。请写出完整的汇编语言源程序。
开关信号 A口 输入 A口 是 入 为1
得到方向控制字 第 7位 是1 是固定 的
A口的工作方式 0
B口的工作方式, 没有说 0
C口的工作方式 0
解题 1方向控制字=10010000B=90H
4个端口地址分别 PA:300H
控制口 303H
k7~k0 01010101
10101010
初始化程序段
MOV DX,300H
MOV AL,90H
OUT DX,AL
8255功能程序段:
MOV DX,300H
IN AL,DX; AL=55H
NOT AL
MOV DX,301H
OUT DX,AL;AL=1AH
程序段
CODE SEGMET
ASSUME CS:CODE
START:MOV DX, 303H
MOV AL, 10010000B ;设置方法控制字
OUT DX, AL 初始化程序段
AGAIN:MOV DX, 300H
IN AL, DX ;开关信号
NOT AL
MOV DX, 301H
OUT DX, AL ;驱动灯 驱动程序段
JMP AGAIN ;循环检测开关状态并点亮
MOV AH,4CH
INT 21H
CODE ENDS
END START
答: (1) 8255的4个端口地址: 208H~20BH
(2)方式控制字=10010000B=90H,
无联络信号,A口方式0输入,B口方式0输出
(3)程序段如下:
MOV DX,20BH
MOV AL, 90H
OUT DX, AL;初始化
MOV DX,208H
IN AL,DX 读A口开关
INC DX ;=MOV DX,209;
OUT DX,AL
开关 都一样
灯是共阴极
A1
A2 不一样先确认8255的地址
CBA 连接 A6 CBA 是110