第七章 输入 / 输出接口
DESCRIPTION
第七章 输入 / 输出接口. 一、微机接口技术概述 二、 DMA 接口技术 三、可编程 DMA 控制器 8237. 第一部分 微机接口技术概述. 第一节 接口技术的基本概念 第二节 I/O 端口的编址和译码 第三节 CPU 与外设间的数据传送方式 第四节 接口技术的现状. 第一节 接口技术的基本概念. 一、 接口的概念和功能 二、 接口电路的典型结构. 1 、接口和接口技术. 2 、为什么要用接口电路?. 一、 接口的概念和功能. 接口 指 CPU 、存储器、外设之间通过总线进行连接的电路部分, - PowerPoint PPT PresentationTRANSCRIPT
qiu 1 qiu
第 7 章第 7 章
第七章 输入 /输出接口
一、微机接口技术概述
二、 DMA 接口技术
三、可编程 DMA 控制器 8237
qiu 2 qiu
第 7 章第 7 章
第一部分 微机接口技术概述
第一节 接口技术的基本概念
第二节 I/O 端口的编址和译码
第三节 CPU 与外设间的数据传送方式
第四节 接口技术的现状
qiu 3 qiu
第 7 章第 7 章
第一节 接口技术的基本概念
一、 接口的概念和功能
二、 接口电路的典型结构
qiu 4 qiu
第 7 章第 7 章
一、 接口的概念和功能
1 、接口和接口技术
2 、为什么要用接口电路?
qiu 5 qiu
第 7 章第 7 章 1 、接口和接口技术
接口 指 CPU 、存储器、外设之间通过总线进行连接的电路部分,是 CPU 与外界进行信息交换的中转站。接口电路一般指通用
的接口芯片,泛指所有接口。
接口技术 是研究 CPU 如何与外部世界进行最佳耦合与匹配,实现双方高效、可靠地交换信息的一门技术,是软件、硬件结合的体现,是微机应用的关键。
qiu 6 qiu
第 7 章第 7 章外设是用来实现人机交互的一些机电设备。外设处理信息的类型、速度、通信方式与 CPU 不匹配 ,
不能直接挂在总线上,必须通过接口和系统相连
CPU 接口作用 外设模/数转换(A/ D)
数/模转换(D/ A)模拟量信息类型 数字量
三态缓冲、锁存 数字量工作速度 快 解决传送方式 慢
串/并转换
并/串转换串行通信方式 并行
三态缓冲、锁存 并行
2 、为什么要用接口电路?
qiu 7 qiu
第 7 章第 7 章
接口可起到串并转换作用 接口可起到模数 /数模转换作用 接口对 I/O 过程起到缓冲和联络作用
qiu 8 qiu
第 7 章第 7 章按通用性分为两类: 通用接口:
• 可供多种外部设备使用的标准接口,目的是使微机正常工作;
• 通用接口通常制造成集成电路芯片,称为接口芯片。• 最初的 IBM-PC 使用了 6 块接口芯片: 8284 、 8288 、 82
55 、 8259 、 8237 、 8253• 后来的微机将这些芯片集成为大规模集成电路芯片,称为芯片组。
• 如 82430TX 芯片组,由两片芯片组成:•北桥: 82439TX•南桥: 82371AB
专用接口:• 为某种用途或某类外设而专门设计的接口电路,目的在于扩充微机系统的功能。
• 专用接口通常制造成接口卡,插在主板总线插槽上使用。通用接口和专用接口的界限并不严格。
qiu 9 qiu
第 7 章第 7 章 3. 接口电路的功能 简单地说,一个接口的基本功能是在系
统总线和 I/O 设备之间传输信号,提供缓冲作用,以满足接口两边的时序要求。下面从广义的角度概括一下接口的功能:
寻址功能 输入 / 输出功能 数据转换功能 联络功能 中断管理功能 可编程功能 复位功能 错误检测功能
qiu 10 qiu
第 7 章第 7 章 二、接口电路的典型结构
从编程角度看,接口内部主要包括一个或多个 CPU 可以进行读 / 写操作的寄存器,又称为 I/O 端口。 各 I/O 端口由端口地址区分。
I/O 端口 1
I/O 端口 2
I/O 端口 3
地址译码
数据缓冲
控制电路
外
设
AB
DB
CB
C
P
U
qiu 11 qiu
第 7 章第 7 章
按存放信息的不同, I/O 端口可分为三种类型 数据端口:用于存放 CPU 与外设间传送的数据信息 状态端口:用于暂存外设的状态信息 控制端口:用于存放 CPU 对外设或接口的控制信息,
控制外设或接口的工作方式。
1001 0101 ( 状态端
口 )
0110 1010( 数据端口 )
1100 0110( 控制端口 )
地址译码
数据缓冲
控制电路
外
设
AB
DB
CB
C
P
U
qiu 12 qiu
第 7 章第 7 章
CPU 对外设输入 / 输出的控制,
是通过对接口电路中各 I/O 端口的读 / 写操作完成。
I/O 端口 1
I/O 端口 2
I/O 端口 3
地址译码
数据缓冲
控制电路
外
设
AB
DB
CB
C
P
U
qiu 13 qiu
第 7 章第 7 章数据信息数据信息
–数字量数字量–模拟量模拟量–开关量开关量
状态信息状态信息表征外设工作状态(表征外设工作状态( READYREADY ,, BUSYBUSY ))
控制信息控制信息 控制控制 I/OI/O 接口的工作方式外设启停接口的工作方式外设启停
qiu 14 qiu
第 7 章第 7 章
第二节 I/O 端口的编址和译码
一、 I/O 端口的编址方式
二、 8086/8088 的输入 / 输出指令
三、 I/O 端口的译码
qiu 15 qiu
第 7 章第 7 章
一、 I/O 端口的编址方式
1 、端口与存储器分别独立编址
2 、端口与存储器统一编址
qiu 16 qiu
第 7 章第 7 章
特点: 端口与存储器分别独立编址 端口不占用内存空间 设有专门的 I/O 指令对端口进行读写, 对内存操作的指令不能用于 I/O 端
口 , 能够应用于端口的指令较少
例 Intel 的 80X86 系列、 Z80系列
I/O空间
内存空间
1 、端口与存储器分别独立编址 ( I/O 映射方式)
例 MOV [ 10H ], AL 对内存操作
IN AL , 10H 对端口操作
qiu 17 qiu
第 7 章第 7 章端口的独立编址
8086总线
A19-A0
A15-A0
MEMR 、 MEMW
IOR 、 IOW 、 AEN
存储器
输入 / 输出
qiu 18 qiu
第 7 章第 7 章2 、端口与存储器统一编址 (存储器映射方式)
特点 : I/O 端口相当于内存的一部分 ,
使内存容量减小 对 I/O 端口的读 / 写与对存储器的读 / 写相同, 所有可对内存操作的指令对 I/O 端口均可使
用, 指令系统中不专设 I/O 指令。
例 motorola 的 M6800 系列
日立 H8S 单片机系列
内存空间
I/O空间
qiu 19 qiu
第 7 章第 7 章端口地址是一种重要资源
qiu 20 qiu
第 7 章第 7 章
二 、 8086 的输入 / 输出指令
1. 输入指令 IN
2. 输出指令 OUT
输入 / 输出指令实现 I/O 端口与 CPU 之间的数据传送
qiu 21 qiu
第 7 章第 7 章
可寻址 220= 1M 个内存单元内存范围 00000 ~FFFFFH
内存单元的地址有 5 种寻址
可寻址 216= 64 K 个 I/O 端口I/O 端口范围 0000 ~ FFFFH
I/O 端口的地址由 一个 8 位二进制数直接寻址 或 DX 寄存器间接寻址
8086CPU 采用 I/O 端口与存储器分别独立编址
I/O空间
内存空间
qiu 22 qiu
第 7 章第 7 章1. 输入指令
IN
格式 执行操作
IN AL, port (AL) ← (port端口)
IN AX, port (AL) ← (port端口)(AH) ← (port+1端口)
IN AL, DX (AL) ← ((DX)端口)
IN AX, DX (AL) ← ((DX)端口)(AH) ← ((DX)+1端口)
port 为数字形式的端口地址 , 大小为 0~255 或 0~FFH
qiu 23 qiu
第 7 章第 7 章例 (1) IN AL , 28H
若 (28H 端口 ) = 1010 1111B
执行后 (AL) = (28H 端口 ) = 0AFH
(2) IN AX , 28H
若 (28H 端口 )= 1010 1111B
(29H 端口 )= 0101 0000B
执行后 (AL) = (28H 端口 ) = 0AFH
(AH) = (29H 端口 ) = 50H
(3) MOV DX , 300H
IN AL , DX
若 (300H 端口 )= 69H
执行后 (AL) = (300H 端口 ) = 69H
qiu 24 qiu
第 7 章第 7 章
IN AL, 21HIN AL, 21H
qiu 25 qiu
第 7 章第 7 章 2. 输出指令 OUT
port 为数字形式的端口地址 , 大小为 0~255 或 0~FFH
格式 执行操作
OUT port, AL (port端口) ← (AL)
OUT port, AX (port端口) ← (AL) (port+1端口) ← (AH)
OUT DX, AL ((DX)端口) ← (AL)
OUT DX, AX ((DX)端口) ← (AL)((DX)+1端口) ← (AH)
qiu 26 qiu
第 7 章第 7 章
(1) OUT 21H, AL
若 (AL)= 1100 1100B
执行后 ( 21H 端口 ) = 0CCH
(2) MOV DX , 21BH
OUT DX , AL
若( AL ) = 1010 0110B
执行后 (21BH 端口 )= (AL) = 0A6H
例
qiu 27 qiu
第 7 章第 7 章
OUT 43H, ALOUT 43H, AL
qiu 28 qiu
第 7 章第 7 章三、 I/O 地址的译码
目的: 确定端口的地址
参加译码的信号: IOR, IOW, A15 ~ A0 OUT指令将使总线的 IOW信号有效 IN指令将使总线的 IOR信号有效
qiu 29 qiu
第 7 章第 7 章
当接口只有一个端口时, 16位地址线一般应全部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则 16
位地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。
qiu 30 qiu
第 7 章第 7 章
某外设接口有 4个端口,地址为 2F0H~ 2F3H,则其基地址为 2F0H,由A15 ~ A2译码得到,而 A1、 A0用来确定 4个端口中的某一个。
qiu 31 qiu
第 7 章第 7 章
第三节 CPU 与外设间的数据传送方式
CPU 与外设的工作速度不一致,
如何使两者高效、可靠地进行数据传送,
是本节讨论的问题。
qiu 32 qiu
第 7 章第 7 章
一、程序控制传送方式
1. 无条件传送方式
2. 条件传送方式 ( 查询方式 )
二、 中断传送方式
三、 DMA 传送方式 ( Direct Memory Access )
有以下几种传送方式:
qiu 33 qiu
第 7 章第 7 章 概述概述11 。无条件传送。无条件传送( CPU 与外设同步工作):
外部控制过程各种动作时间是固定的,而且是已知的。
22 。查询方式。查询方式( CPU 与外设不同步工作):
传送前,先查询外设状态,准备好才传送,否则 CPU 处于等待状态。
33 。中断方式:。中断方式:
外设与 CPU 处于并行工作,一旦外设准备好,外设向 CPU 发中断申请,条件具备, CPU 暂停原程序执行,响应中断,外设与 CPU 串行工作。
44 。。 DMADMA 方式方式(高速 I/O 及成组交换数据):
CPU 不干予,由硬件实现存储器与外设之间交换数据,称直接存取存储器。
qiu 34 qiu
第 7 章第 7 章 一、无条件传送方式 ( 同步传送方式 )
实现方法若程序员能够确信一个外设已经准备就绪,那就不必查询外设的状态而进行信息传输,这称为无条件传送方式。
与外设速度的匹配通过在软件上延时完成, 在程序中直接用 I/O 指令,完成与外设的数据传送
特点 1. 适用于外设动作时间已知, 在 CPU 与外设进行数据传送时,外设保证已准备好的情况
2. 软硬件十分简单。这种方式用得较少,只用在对一些简单外设的操作,如开关、七段显示管等。
qiu 35 qiu
第 7 章第 7 章
无条件传送流程无条件传送流程
qiu 36 qiu
第 7 章第 7 章 例 1 无条件输入接口
接口电路,即硬件上保证 :只在 CPU 执行从 200H 端口输入数据时 , 三态门处于工作状态,使输入设备的数据送上总线侧,而 CPU 执行其它指令时 , 三态门均处于高阻状态 , 使输入设备的数据线与总线侧断开
三 态缓冲器
输入设备
数据 线
IOR
地址译码
地址线 200H
00
0
D7 ~D0
A15~
A0与
非
PC
总
线
qiu 37 qiu
第 7 章第 7 章
无条件输入输出编程 :
MOV DX, 200H ; 端口地址
IN AL, DX ; 读入数据 MOV DX, 200H ; 端口地址 MOV AL, [BX]
OUT DX, AL ; 输出数据
qiu 38 qiu
第 7 章第 7 章 二、条件传送方式 (查询传送方式 )
CPU 通过执行程序不断读取并测试外设的状态,根据外设的工作状态控制外设的输入 / 输出,即查询方式。
实现方法: 在与外设进行传送数据前, CPU先查询外设状态, 当外设准备好后,才执行 I/O 指令,实现数据传送
特点:1. CPU 通过不断查询外设状态,实现与外设的速度匹配2. CPU 的工作效率低
qiu 39 qiu
第 7 章第 7 章
对于条件传送方式来说,一个数据传送过程由 3 个环节组成:CPU 从接口中读取状态字CPU 检测状态字的对应位是否满足“就绪”条件,如果不满足,则回到前一步读取状态字。如状态字表明外设已处于“就绪”状态,则传送数据
qiu 40 qiu
第 7 章第 7 章
查询传送流程查询传送流程
qiu 41 qiu
第 7 章第 7 章查询传送方式,编程流程:
N
Y
从状态端口读入状态信息
从数据端口传送一个数据
外设准备好否?
qiu 42 qiu
第 7 章第 7 章例 1 查询方式输入假设 外设的状态端口为 21C H , 其中 D4=1时,表示外设数据准备好 外设的数据端口为 218 H 。 实现从外设读入 50H 个字节到内存缓冲区 buffer 中。
21CH 端口状态端口
218H 端口数据端口
地址译码
数据缓冲
控制电路
输入外备
C
P
U
地址线
数据线
控制线
qiu 43 qiu
第 7 章第 7 章 查询方式输入接口
状态端口 D4=1 表示外设准备好
三 态缓冲器
输入设备
数 据 线218H
数据端口地址译码
地址线
状态端口地址译码
锁存器
IOR
R
Q
D
三 态缓冲器
+5v
D4
21CH
STB
PC 总线
IOR
A15~
A0
D7~
D0
&
&
MOV DX, 218HIN AL, DX
MOV DX, 21CHIN AL, DX
qiu 44 qiu
第 7 章第 7 章
从 21CH 状态端口读入外设状态信息
从 218H 数据端口读入一个字节数据
Y
ND4=1, 外设准备好否?
N50H 个数据传送结束?
Y
编程从外设读入 50H 个字节到内存缓冲区 buffer中
qiu 45 qiu
第 7 章第 7 章
、、、 MOV AX, SEG buffer ;取缓冲区首地址 MOV DS, AX LEA DI, buffer MOV CX, 50H ; 传送个数
next: MOV DX, 21CH ask : IN AL, DX ; 从状态端口读入状态信息
TEST AL, 0001 0000B ;检测 D4 位 JZ ask ;D4=0,继续查询MOV DX, 218H IN AL, DX ; 从数据端口读入数据MOV [DI], AL ; 送缓冲区 INC DI ;修改缓冲区指针 LOOP next ; 传送下一个、、、
查询方式输入程序段 :
qiu 46 qiu
第 7 章第 7 章例 2 查询方式输出 假设 外设的状态端口为 21C H ,
其中 D0 = 0时,表示外设准备好 外设的数据端口为 219 H 。 编程将缓冲区 buffer 的 80H 个字节输出到外设。
21CH 端口状态端口
219H 端口数据端口
地址译码
数据缓冲
控制电路
输出外设
C
P
U
地址线
数据线
控制线
qiu 47 qiu
第 7 章第 7 章 查询方式输出接口
状态端口 D0 = 0 表示外设准备好
输出设备
数 据 线
219H
数据端口地址译码
地址线
锁存器
R
D Q
三 态缓冲器 +5v
ACK
PC
总
线
IOR
A15~
A0
D7~
D0
IOW
状态端口地址译码
D0
21CH
&
&
MOV DX, 219HOUT DX, AL
MOV DX, 21CHAsk: IN AL, DX TESTAL,01h JNZ ask
qiu 48 qiu
第 7 章第 7 章
从 21CH 状态端口读入外设状态信息
将一字节数据送至219H 数据端口
Y
ND0=0, 外设准备好否?
N80H 个数据传送结束?
Y
编程将缓冲区 buffer 的 80H 个字节输出到外设
qiu 49 qiu
第 7 章第 7 章
、、、 MOV AX, SEG buffer ;取缓冲区首地址 MOV DS, AX LEA SI, buffer MOV CX, 80H ; 传送个数
next: MOV DX, 21CH ask : IN AL, DX ; 从状态端口读入状态信息
TEST AL, 0000 0001B ;检测 D0 位 JNZ ask ;D0≠0,继续查询 MOV AL, [SI] ; 从缓冲区取数 MOV DX, 219H OUT DX, AL ; 从数据端口输出数据 INC SI ;修改缓冲区指针 LOOP next ; 输出下一个 、、、
查询方式输出程序段:
qiu 50 qiu
第 7 章第 7 章 多个外设的查询方式流程图主程序
启动外设 A 、 B 、C
查询 A
操作结束否 ?
查询 B
查询 C
继续主程序
设备 A 服务Y
N
设备 B 服务Y
设备 C 服务Y
N
N
N
Y
qiu 51 qiu
第 7 章第 7 章
三、中断传送方式
实现方法:
1. 当外设准备好,向 CPU发出中断请求
2. CPU 在满足响应中断的条件下,发出中断响应信号;
3. CPU 暂停当前的程序,转 去执行中断服务程序,
完成与外设的数据传送;
4. CPU 从中断服务程序返回,继续执行被中断的程序
qiu 52 qiu
第 7 章第 7 章
中断服务程序发申请
中断服务程序发申请
中断方式下CPU 执行程序流程
外设
qiu 53 qiu
第 7 章第 7 章
使用中断方式时 :•外设准备数据, CPU执行程序 ,
CPU与外设并行工作;
• 一旦外设准备就绪,外设向 CPU 发中断申请, CPU暂停原程序执行,响应中断,进行数据传输。此时, CPU与外设是串行工作。
qiu 54 qiu
第 7 章第 7 章
1. CPU 和外设大部分时间处在并行工作状态 ,
只在 CPU响应外设的中断申请后,
进入数据传送的过程
2. 中断传送方式提高了 CPU 的效率
中断传送方式的特点:
qiu 55 qiu
第 7 章第 7 章
中断传送流程中断传送流程
qiu 56 qiu
第 7 章第 7 章
特点: 外设在需要时向 CPU 提出请求, CPU 再去为它服务。服务结束后或在外设不需要时, CPU可执行自己的程序
优点: CPU效率高,实时性好,速度快。 缺点:程序编制较为复杂。
qiu 57 qiu
第 7 章第 7 章以上三种 I/O方式的共性
均需 CPU作为中介 (中心): 软件: 外设与内存之间的数据传送是通过 CPU执行 程序来完成的; 硬件: I/O 接口和存储器的读写控制信号、地址信 号都是由 CPU 发出的。 缺点:程序的执行速度限定了传送的最大速度
qiu 58 qiu
第 7 章第 7 章
四、 DMA 传送方式 ( 直接存储器存取方式 )
实现方法: 外设直接与存储器进行数据交换 , CPU 不再担当数据传
输的中介者;
1. 由专用接口芯片 DMA 控制器 ( 称 DMAC) 控制传送过程,
2. 当外设需传送数据时,通过 DMAC向 CPU发出总线请求;
3. CPU发出总线响应信号,释放总线;
4. DMAC 接管总线,控制外设、内存之间直接数据传送
qiu 59 qiu
第 7 章第 7 章 DMA 传送方式过程
CPU
DMAC
内存
外设
总线响应
总线请求
qiu 60 qiu
第 7 章第 7 章
DMA 传送方式的特点 1. 外设和内存之间,直接进行数据传送,
不通过 CPU, 传送效率高。 (可达几 MB/ 秒) 适用于在内存与高速外设、
或两个高速外设之间进行大批量数据传送。
2. 电路结构复杂,硬件开销较大。
qiu 61 qiu
第 7 章第 7 章
DMADMA 传送流程传送流程
qiu 62 qiu
第 7 章第 7 章三种传送方式比较
在查询方式下,通过程序来检测接口中状态寄存器中的 READY位,以确定当前是否可以进行数据传输。
在中断方式下,当接口中已经有数据要往 CPU输入或者准备好接收数据时,接口会向 CPU 发一个中断请求, CPU在接到中断请求后,如果响应中断,便通过运行中断处理程序来实现输入 /输出。
在 DMA方式下,外设要求传输数据时,接口会向 DMA控制器发 DMA 请求信号, DMA控制器转而往 CPU 发送一个总线请求信号,以请求得到总线控制权,如果得到 DMA 允许,那么,就可以在没有 CPU参与的情况下实现 DMA传输。
qiu 63 qiu
第 7 章第 7 章
第四节 接口技术的现状1.用简单的逻辑电路
2.用可编程集成接口芯片
3.用多功能的芯片组
qiu 64 qiu
第 7 章第 7 章
1. 用简单的逻辑电路
采用简单的逻辑部件完成接口电路
特点:原理清楚,但实际用得少。
例 1 无条件输入接口例 2 无条件输出接口例 3 查询输入接口例 4 查询输出接口
qiu 65 qiu
第 7 章第 7 章例 1 无条件输入接口
三 态缓冲器
输入设备
数据 线
IOR
地址译码
地址线 200H
00
0
D7 ~D0
A15~
A0与
非
PC
总
线
注意:在逻辑门前输入信号的 ,表示对信号求反。与锁存器、三态门等控制端的意义不同。
简单的逻辑电路:
qiu 66 qiu
第 7 章第 7 章 2. 用可编程集成接口芯片
将完成某一功能的接口电路集成在一个芯片上, 通过对接口芯片编程,设置接口芯片的工作状态。
特点:1. 体积小、功能强、可靠性高2. 通常是专门为配合微机系统中的各种适配器设计, 不必增加或增加很少的电路,就可直接与总线连接, 使用方便。
3. 应用时,应掌握芯片的工作原理、外部特性、编程方法。
qiu 67 qiu
第 7 章第 7 章
接口芯片举例:并行接口芯片 8255A 、 8155A 、 Z80-PIO
串行接口芯片 8251A 、 8250 、 Z80-SIO
定时 / 计数器 8253 、 8254 、 Z80-CTC
中断控制器 8259A
DMA 控制器 8237A 、 Z80-DMA
键盘控制器 8279
CRT 控制器 8275 、 6845
硬盘控制器 6843 D/A 转换器 DAC0832
A/D 转换器 ADC0809
qiu 68 qiu
第 7 章第 7 章
将完成多个功能的接口电路集成在一个芯片上,
通过编程,设置控制字,改变接口芯片的工作状态。
例 82206 集成外设控制器,内部包含:
2 个 8237DMA 控制器 2 个 8259A 中断控制器
1 个 8254 定时 / 计数器 1 个 MC 146818 实时时钟
以及其他接口芯片
特点:可靠性更高、功能更强
3. 用多功能的芯片组
qiu 69 qiu
第 7 章第 7 章 将主板上的外围芯片集成在一组 (2~4 片 )超大规模集成芯片上, 构成芯片组。
芯片组是主板的关键部件,通常固定在主板上, 不象 CPU 、内存条或其他插卡等可进行简单的替换和升级。
芯片组提供主板的核心逻辑,影响主板的性能和功能, 决定主板所支持的 CPU 类型、内存类型、 总线类型、总线速度等关键技
术配置