ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

微机原理与接口技术 第六章 输入输出系统(持续更新)

2021-12-29 14:33:56  阅读:202  来源: 互联网

标签:传送 接口技术 输入输出 AL 微机 DX cases CPU 外设


一、输入输出接口的结构和功能

接口由硬件和软件组成
接口硬件:
在这里插入图片描述
接口软件:

  1. 初始化程序段:
    设备驱动程序、设定芯片工作方式等
  2. 数据交换程序段:
    管理、控制、驱动外设,负责外设和系统间信息交换。

为什么需要I/O接口(电路)?

  1. 微机的外部设备多种多样
  2. 工作原理、信息格式、工作速度等方面差别很大
  3. 外设不能与CPU直接相连
  4. 必须经过中间电路再与系统相连
  5. 这部分电路被称为lO接口电路

什么是I/O接口(电路)?

  1. I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路;
  2. 可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路。

1. 接口功能

  1. 速度匹配,数据缓冲
    (CPU 与外设速度以及种类的不一致,数据在输入的时候要有缓冲、输出的时候要有锁存器。)
  2. 数据格式转换
  3. 对I/O端口进行寻址,进行地址译码
  4. CPU与I/O外设信息联络
  5. 设置中断和DMA控制逻辑

2. 联络信息种类

  1. C P U 与 接 口 { D B A B C B : R D ‾ 、 W R ‾ 、 M / I O ‾ CPU与接口\begin{cases} DB\\ AB\\ CB:\overline{RD}、\overline{WR}、M/\overline{IO} \end{cases} CPU与接口⎩⎪⎨⎪⎧​DBABCB:RD、WR、M/IO​
  2. 接 口 与 外 设 { 数 据 信 号 状 态 信 号 控 制 信 号 接口与外设\begin{cases} 数据信号\\ 状态信号\\ 控制信号 \end{cases} 接口与外设⎩⎪⎨⎪⎧​数据信号状态信号控制信号​
    在这里插入图片描述

二、输入输出指令

1. I/O端口(port)的编址

① I/O端口泛指l/O地址,对应接口电路的寄存器;
② 一个接口电路可以具有多个I/O端口(寄存器)数据端口、状态端口和控制端口。
④ 8088/8086用于寻址外设端口的地址线为 16 16 16条
⑤ 端口最多有: 2 16 = 65536 = 64 K B 2^{16}=65536=64KB 216=65536=64KB个
⑥ 端口号: 0000 H ∼ F F F F H 0000H\sim FFFFH 0000H∼FFFFH
⑦ 两种编址:独立编址、统一编址

(1)I/O独立编址

  1. I/O接口具有独立指令,如8088/8086为 I N / O U T IN/OUT IN/OUT
  2. I/O接口空间与主存空间各自独立
    如 { 8086 I / O 空 间 : 64 K B ( 0000 H ∼ F F F F H ) 8086 主 存 空 间 : 1 M B ( 00000 H ∼ F F F F F H ) 如\begin{cases}8086I/O空间:64KB(0000H\sim FFFFH)\\ 8086主存空间:1MB(00000H\sim FFFFFH)\end{cases} 如{8086I/O空间:64KB(0000H∼FFFFH)8086主存空间:1MB(00000H∼FFFFFH)​
    在这里插入图片描述
    优 点 { 1.   I / O 端 口 的 地 址 空 间 独 立 2.   控 制 和 地 址 译 码 电 路 简 单 3.   专 门 的 I / O 指 令 优点\begin{cases}1.\ I/O端口的地址空间独立\\ 2.\ 控制和地址译码电路简单\\ 3.\ 专门的I/O指令\end{cases} 优点⎩⎪⎨⎪⎧​1. I/O端口的地址空间独立2. 控制和地址译码电路简单3. 专门的I/O指令​
    缺 点 { I / O 指 令 种 类 少 缺点\begin{cases}I/O指令种类少\end{cases} 缺点{I/O指令种类少​

(2)I/O与主存统一编址

  1. I/O接口与主存具有一套指令系统
  2. I/O接口与主存使用相同地址空间
    如 { 1 M B : 00000 H ∼ F F F F F H 如\begin{cases}1MB:00000H\sim FFFFFH\end{cases} 如{1MB:00000H∼FFFFFH​
    在这里插入图片描述
    优 点 : { 1.   不 需 要 专 门 的 I / O 指 令 2.   I / O 数 据 存 取 灵 活 优点:\begin{cases} 1.\ 不需要专门的I/O指令\\ 2.\ I/O数据存取灵活\end{cases} 优点:{1. 不需要专门的I/O指令2. I/O数据存取灵活​
    缺 点 : { 1.   I / O 端 口 要 占 去 部 分 存 储 器 地 址 空 间 2.   程 序 不 易 阅 读 ( 不 易 分 清 访 存 和 访 问 外 设 ) 缺点:\begin{cases} 1.\ I/O端口要占去部分存储器地址空间\\ 2.\ 程序不易阅读(不易分清访存和访问外设)\end{cases} 缺点:{1. I/O端口要占去部分存储器地址空间2. 程序不易阅读(不易分清访存和访问外设)​

2. I/O端口(port)寻址方式

(1)直接寻址

只寻址 00 H ∼ F F H 00H\sim FFH 00H∼FFH前256个端口
指令中操作数直接使用端口号

(2)间接寻址

可寻址全部(64K)端口: 0000 H ∼ F F F F H 0000H\sim FFFFH 0000H∼FFFFH
DX寄存器的值存放端口号
0100 H ∼ F F F F H 0100H\sim FFFFH 0100H∼FFFFH的端口只能采用间接寻址方式

在这里插入图片描述

3. 指令格式

  1. 输入指令: I N   A L / A X , p o r t IN\ AL/AX,port IN AL/AX,port
    (将外设数据传送给CPU内的AL/AX )
    I N   A L / A X , p o r t IN\ AL/AX,port IN AL/AX,port
    I N   A L , D X / i 8 ; 字 节 输 入 IN\ AL,DX/i8 \qquad\color{DeepSkyblue}{;字节输入} IN AL,DX/i8;字节输入
    I N   A X , D X / i 8 ; 字 输 入 IN\ AX,DX/i8 \qquad\color{DeepSkyblue}{;字输入} IN AX,DX/i8;字输入

在这里插入图片描述 I N   A L , 10 H ; A L = 12 H IN\ AL,10H \qquad\color{DeepSkyblue}{;AL=12H} IN AL,10H;AL=12H
I N   A X , 10 H ; A L = 3412 H IN\ AX,10H \qquad\color{DeepSkyblue}{;AL=3412H} IN AX,10H;AL=3412H

M O V   D X , 1000 H ; 直 接 寻 址 只 寻 址 00 H ∼ F F H 前 256 个 端 口 需 , 要 使 用 间 接 寻 址 , D X 寄 存 器 的 值 存 放 端 口 号 MOV\ DX,1000H \qquad\color{DeepSkyblue}{;直接寻址 只寻址00H\sim FFH前256个端口需,要使用间接寻址,DX寄存器的值存放端口号} MOV DX,1000H;直接寻址只寻址00H∼FFH前256个端口需,要使用间接寻址,DX寄存器的值存放端口号
I N   A L / A X , D X IN\ AL/AX,DX IN AL/AX,DX

  1. 输出指令: O U T   p o r t , A L / A X OUT\ port,AL/AX OUT port,AL/AX
    (将CPU内的AL/AX数据传送给外设)
    O U T   p o r t , A L / A X OUT\ port,AL/AX OUT port,AL/AX
    O U T   D X / i 8 , A L ; 字 节 输 出 OUT\ DX/i8,AL\qquad\color{DeepSkyblue}{;字节输出} OUT DX/i8,AL;字节输出
    O U T   D X / i 8 , A X ; 字 输 入 OUT\ DX/i8,AX\qquad\color{DeepSkyblue}{;字输入} OUT DX/i8,AX;字输入

例:从内存bvar单元取一个字节送到300H端口
b v a r   D B   12 H bvar\ DB\ 12H bvar DB 12H
.
.
.
M O V   A L , b v a r ; A L = 12 H MOV\ AL,bvar\qquad\color{DeepSkyblue}{;AL=12H} MOV AL,bvar;AL=12H
M O V   D X , 300 H MOV\ DX,300H MOV DX,300H
O U T   D X , A L OUT\ DX,AL OUT DX,AL
在这里插入图片描述
例:从内存wvar单元取一个字送300H端口
w v a r   D W   1234 H wvar\ DW\ 1234H wvar DW 1234H
.
.
.
M O V   A X , w v a r ; A X = 1234 H MOV\ AX,wvar\qquad\color{DeepSkyblue}{;AX=1234H} MOV AX,wvar;AX=1234H
M O V   D X , 300 H MOV\ DX,300H MOV DX,300H
OUT\ DX,AX
在这里插入图片描述

4. I/O地址译码

见第五章:地址译码器

  1. 门电路:接口电路只占少量I/O地址,可以利用线选法地址译码。

>在这里插入图片描述
A 9   A 8    A 7   A 6   A 5   A 4    A 3   A 2   A 1   A 0 \quad A_{9}\ A_{8}\ \ A_{7}\ A_{6}\ A_{5}\ A_{4}\ \ A_{3}\ A_{2}\ A_{1}\ A_{0} A9​ A8​  A7​ A6​ A5​ A4​  A3​ A2​ A1​ A0​
1 1   1 1 1 0   0 1 1 1 3 E 7 H \quad1\quad1\quad\ 1\quad1\quad1\quad0\quad\ 0\quad1\quad1\quad1\qquad3E7H 11 1110 01113E7H

  1. 译码器:选用2:4或3:8进行地址译码。

在这里插入图片描述
   C B    A \quad\ \ \quad\quad\quad\quad C\quad B\ \ A   CB  A
A 9   A 8    A 7   A 6   A 5   A 4    A 3   A 2   A 1   A 0 \quad A_{9}\ A_{8}\ \ A_{7}\ A_{6}\ A_{5}\ A_{4}\ \ A_{3}\ A_{2}\ A_{1}\ A_{0} A9​ A8​  A7​ A6​ A5​ A4​  A3​ A2​ A1​ A0​
1 1   0 0 0 0   0 0 0 0 300 H \quad1\quad1\quad\ 0\quad0\quad0\quad0\quad\ 0\quad0\quad0\quad0\qquad300H 11 0000 0000300H
1 1   0 0 0 0   1 1 1 1 30 F H \quad1\quad1\quad\ 0\quad0\quad0\quad0\quad\ 1\quad1\quad1\quad1\qquad30FH 11 0000 111130FH
Y 0 ‾ 接 口 芯 片 地 址 : 300 H ∼ 30 F H \overline{Y_0}接口芯片地址:300H\sim30FH Y0​​接口芯片地址:300H∼30FH
   C B    A \quad\ \ \quad\quad\quad\quad C\quad B\ \ A   CB  A
A 9   A 8    A 7   A 6   A 5   A 4    A 3   A 2   A 1   A 0 \quad A_{9}\ A_{8}\ \ A_{7}\ A_{6}\ A_{5}\ A_{4}\ \ A_{3}\ A_{2}\ A_{1}\ A_{0} A9​ A8​  A7​ A6​ A5​ A4​  A3​ A2​ A1​ A0​
1 1   0 0 0 1   0 0 0 0 310 H \quad1\quad1\quad\ 0\quad0\quad0\quad1\quad\ 0\quad0\quad0\quad0\qquad310H 11 0001 0000310H
1 1   0 0 0 1   1 1 1 1 31 F H \quad1\quad1\quad\ 0\quad0\quad0\quad1\quad\ 1\quad1\quad1\quad1\qquad31FH 11 0001 111131FH
Y 1 ‾ 接 口 芯 片 地 址 : 310 H ∼ 31 F H \overline{Y_1}接口芯片地址:310H\sim31FH Y1​​接口芯片地址:310H∼31FH
. \qquad. .
. \qquad. .
. \qquad. .

三、传送控制方式

  1. 程 序 传 送 控 制 方 式 : 程序传送控制方式: 程序传送控制方式:
    CPU执行程序中的I/O指令(IN/OUT)完成传送
    分为:无条件传送、查询传送、中断传送。
    在这里插入图片描述

  2. 直 接 存 储 器 ( 硬 件 ) 存 取 ( D M A ) : 直接存储器(硬件)存取(DMA) : 直接存储器(硬件)存取(DMA):
    DMAC利用系统总线在外设和主存间传送。

在这里插入图片描述

  1. I / O 处 理 机 ( 硬 件 ) 实 现 数 据 传 送 : I/O处理机(硬件)实现数据传送: I/O处理机(硬件)实现数据传送:
    CPU委托专门的I/O处理机(IOP8089)来完成数据传送。
    在这里插入图片描述

1. 无条件(同步)传送方式

原理:CPU与慢速外设交换数据。外设处于“就绪”状态,随时可以进行数据传送,亦称同步传送。(适合于简单设备,如LED数码管、按键等)
传送条件:外设必须随时就绪。

{ 1.   外 设 已 经 准 备 “ 就 绪 ” { 输 入 : 数 据 已 经 放 在 三 态 缓 冲 区 , 准 备 好 数 据 。 输 出 : 外 设 及 时 从 锁 存 器 中 取 走 数 据 , 锁 存 器 为 “ 空 ” 时 , C P U 传 下 一 个 数 据 2.   传 送 双 方 已 经 约 定 外 设 会 在 C P U 规 定 的 时 间 内 完 成 数 据 的 输 入 和 输 出 . \begin{cases}1.\ 外设已经准备“就绪”\begin{cases} 输入:数据已经放在三态缓冲区,准备好数据。\\ 输出:外设及时从锁存器中取走数据,锁存器为“空”时,CPU传下一个数据 \end{cases}\\ 2.\ 传送双方已经约定外设会在CPU规定的时间内完成数据的输入和输出. \end{cases} ⎩⎪⎨⎪⎧​1. 外设已经准备“就绪”{输入:数据已经放在三态缓冲区,准备好数据。输出:外设及时从锁存器中取走数据,锁存器为“空”时,CPU传下一个数据​2. 传送双方已经约定外设会在CPU规定的时间内完成数据的输入和输出.​

2. 条件传送控制方式(查询/异步)

(1) 特点

{ 1.   C P U 等 待 外 设 准 备 数 据 或 取 走 数 据 后 , 进 行 数 据 的 输 入 与 输 出 操 作 。 2.   解 决 C P U 与 外 设 不 同 步 传 送 数 据 的 问 题 。 3.   C P U 通 过 执 行 主 程 序 中 I N / O U T 实 现 数 据 的 输 入 与 输 出 。 4.   在 传 送 数 据 之 前 需 检 测 外 设 状 态 。 5.   工 作 可 靠 , 但 传 送 效 率 低 。 \begin{cases}1.\ CPU等待外设准备数据或取走数据后,进行数据的输入与输出操作。\\ 2.\ 解决CPU与外设不同步传送数据的问题。\\ 3.\ CPU通过执行主程序中IN/OUT实现数据的输入与输出。\\ 4.\ 在传送数据之前需\pmb{检测外设状态}。\\ 5.\ 工作可靠,但传送效率低。\end{cases} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​1. CPU等待外设准备数据或取走数据后,进行数据的输入与输出操作。2. 解决CPU与外设不同步传送数据的问题。3. CPU通过执行主程序中IN/OUT实现数据的输入与输出。4. 在传送数据之前需检测外设状态检测外设状态检测外设状态。5. 工作可靠,但传送效率低。​

(2) 过程

① 查 询 { 1.   C P U 读 外 设 状 态 I N   A L , p o r t 2.   C P U 检 测 状 态 是 否 就 绪 { T e s t   A L , . . . J Z / J N Z   L 1 3. 判 结 果 : 若 就 绪 进 行 数 据 传 送 , 否 则 循 环 读 状 态 字 ①查询\begin{cases}1.\ CPU读外设状态IN\ AL,port\\ 2.\ CPU检测状态是否就绪\begin{cases} Test\ AL,...\\ JZ/JNZ\ L1 \end{cases}\\ 3.判结果:若就绪进行数据传送,否则循环读状态字 \end{cases} ①查询⎩⎪⎪⎪⎨⎪⎪⎪⎧​1. CPU读外设状态IN AL,port2. CPU检测状态是否就绪{Test AL,...JZ/JNZ L1​3.判结果:若就绪进行数据传送,否则循环读状态字​
② 传 送 { 外 设 就 绪 后 , 寻 址 数 据 口 输 入 : I N 指 令 从 数 据 端 口 读 入 数 据 输 出 : O U T 指 令 向 数 据 端 口 输 出 数 据 ②传送\begin{cases} 外设就绪后,寻址数据口\\ 输入:IN指令从数据端口读入数据\\ 输出:OUT指令向数据端口输出数据\\ \end{cases} ②传送⎩⎪⎨⎪⎧​外设就绪后,寻址数据口输入:IN指令从数据端口读入数据输出:OUT指令向数据端口输出数据​

N Y IN读外设状态 状态就绪 IN/OUT进行数据传送

例:某查阅传送输入端口,状态口地址为2F0H,状态为位 D 7 D_7 D7​=1,表示外设准备好数据,数据口地址为2F1H,要从输入设备读入一个字节存入内存buf单元,编程
l e a   B X , b u f \qquad lea\ BX,buf lea BX,buf
M O V   D X , 2 F 0 H \qquad MOV\ DX,2F0H MOV DX,2F0H
L 1 : I N   A L , D X ; 读 状 态 L_1:IN\ AL,DX \qquad\color{DeepSkyblue}{;读状态} L1​:IN AL,DX;读状态
T e s t   A L , 80 H \qquad Test\ AL,80H Test AL,80H
J Z   L 1 \qquad JZ\ L_1 JZ L1​
M O V   D X , 2 F 1 H \qquad MOV\ DX,2F1H MOV DX,2F1H
I N   A L , D X \qquad IN\ AL,DX IN AL,DX
M O V   [ B X ] , A L \qquad MOV\ [BX],AL MOV [BX],AL
输出,从buf单元输出一个字节到显示器的端口地址上。
l e a   B X , b u f \qquad lea\ BX,buf lea BX,buf
M O V   A H , [ B X ] \qquad MOV\ AH,[BX] MOV AH,[BX]
M O V   D X , 2 F 0 H \qquad MOV\ DX,2F0H MOV DX,2F0H
L 1 : I N   A L , D X L1:IN\ AL,DX L1:IN AL,DX
T e s t   A L , 80 H \qquad Test\ AL,80H Test AL,80H
J Z   L 1 \qquad JZ\ L_1 JZ L1​
M O V   D X , 2 F 1 H \qquad MOV\ DX,2F1H MOV DX,2F1H
M O V   A L , A H \qquad MOV\ AL,AH MOV AL,AH
O U T   D X , A L \qquad OUT\ DX,AL OUT DX,AL

3. 中断传送控制方式

(1)定义:

当外设输入/输出数据准备好时,主动向CPU发中断请求,使CPU中止当前程序的运行,转出执行外设传送数据的服务程序,进行数据的输入/输出,传送完毕后,CPU会返回原程序的过程。
在这里插入图片描述

(2)特点:

①是一种效率较高的程序传送方式;
②中断服务程序是预先设计好的;
③CPU在每条指令周期后采样中断请求输入信号;
④外设需要传数据时,主动向CPU提出中断请求,提高实时性;
⑤外设准备数据和CPU执行程序并行工作,提高了CPU效率;
⑥每传输一次数据就要中断一次,需保护断点和现场;
⑦需要中断控制器8259芯片
⑧适合少量数据、中慢速外设的数据传送,如键盘、鼠标。

(3)传送过程
见第二章:中断过程
① 中断请求:外设请求CPU进行
② 中断判优
③ 中断响应:
响 应 条 件 : { 1.   C P U 必 须 执 行 完 当 前 的 指 令 2.   C P U 处 于 开 中 断 3.   不 能 有 更 高 级 ( 优 先 级 ) 的 中 断 请 求 响应条件:\begin{cases}1.\ CPU必须执行完当前的指令\\ 2.\ CPU处于开中断\\ 3.\ 不能有更高级(优先级)的中断请求\end{cases} 响应条件:⎩⎪⎨⎪⎧​1. CPU必须执行完当前的指令2. CPU处于开中断3. 不能有更高级(优先级)的中断请求​
③ 中断处理:使用中断服务子程序中IN/OUT指令,进行数据的输入/输出。
④ 中断返回:完成一次中断传送返回原程序。

4. DMA传送控制方式

(1)定义:不需要CPU介入由专门硬件DMAC(8237芯片)直接控制数据传送,可以成块传送一批数据,适用于高速外设与主存的直接传送。

(2)过程:三个阶段

{ 传 送 前 预 处 理 传 送 传 送 后 处 理 \begin{cases} 传送前预处理\\ 传送\\ 传送后处理 \end{cases} ⎩⎪⎨⎪⎧​传送前预处理传送传送后处理​
在这里插入图片描述
DMA传送过程:
①外设向DMAC发出请求。
②DMAC向CPU申请总线(hold ) 。
③CPU完成当前总线周期后响应(hlda) ,并释放
总线控制权。
④DMAC得到总线控制权,发出DMA响应信号。
⑤由DMAC发出读写控制信号,控制外设与存储器
之间的数据传送。
⑥数据传送完后,DMAC撤销HOLD信号。
⑦CPU释放HLDA信号,并重新控制总线。

(3)特点:

① 传送过程中不需要CPU,CPU效率提高
② 8237传送数据时,CPU执行自己的工作,两者完全并行
③ 8237没有总线,传送前/后需向CPU请求/归还总线
④ 高速外设、硬盘与内存之间用的就是这种传输方式。

例:CPU与慢速的外设进行数据传送时,采用___ C _____方式可提高CPU效率
A. 无条件传送
B. 查询
C. 中断
D. DMA
一个外设接口中必须要有数据端口、地址端口 ( 改 为 状 态 端 口 ) \color{DeepSkyblue}{(改为状态端口)} (改为状态端口)、控制接口(×)

标签:传送,接口技术,输入输出,AL,微机,DX,cases,CPU,外设
来源: https://blog.csdn.net/qq_35706314/article/details/122144418

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有