第九章 输入输出方法及常用的接口电路
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
现,是微机应用的关键。
5
地址总线 AB
CPU
存 储 器
ቤተ መጻሕፍቲ ባይዱI/O 接 口
输 入 设 备
I/O 接 口
输 出 设 备 数据总线 DB 控制总线 CB
微型计算机的结构示意图
6
2、为什么要用接口电路?
外设是用来实现人机交互的一些机电设备。 外设处理信息的类型、速度、通信方式与CPU不匹配, 不能直接挂在总线上,必须通过接口和系统相连
第 九 章
输入/输出方法
及常用的接口电路
1
主机以外的设备称为外部设备,又称为输入/输出设备, 即I/O设备 主机与外部设备交换信息的缓冲电路称为I/O接口电路, 又称为I/O接口或简称接口
主机
接口
外部 设备
主机与外部设备之间进行输入/ 输出的方法
2
第一节 接口技术的基本概念
一、 接口的概念和功能 二、 接口电路的典型结构
27
8088CPU最小模式下, I/O端口读周期时序
T1 T2 T3 T4
CLK
IO/M
A19~A16 /S6~S3 A15~A8 AD7~AD0 ALE RD DT/R
A7 ~ A0
D7 ~ D0
DEN
GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND
例
指令 IN OUT IN OUT
AL, 20H, AL, DX,
21H AL DX AL
机器码 E421 ; 两个字节 E620 EC ; 一个字节 EE
24
(3)可进行字节或字传送
由指令中AL或AX的类型决定
IN IN IN IN
AL, 20H AX, 20H AL, DX AX, DX
;字节传送 ;字传送 ;字节传送 ;字传送
(A L ) ← ((D X )端 口 )
(A L ) ← ((D X )端 口 ) (A H ) ← ((D X )+ 1 端 口 )
port 为数字形式的端口地址, 大小为0~255 或0~FFH
18
例
(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
外
P
U
DB
CB
设
按存放信息的不同,I/O端口可分为三种类型 数据端口:用于存放CPU与外设间传送的数据信息 状态端口:用于暂存外设的状态信息 控制端口:用于存放CPU对外设或接口的控制信息,
控制外设或接口的工作方式。
9
AB
C
地址 译码 数据 缓冲 控制 电路
I/O端口1
外
I/O端口2
P
U
DB
CB
实现方法
CPU不查询外设工作状态, 与外设速度的匹配通过在软件上延时完成, 在程序中直接用I/O指令,完成与外设的数据传送
特点
1. 适用于外设动作时间已知,在CPU与外设进行数据传送 时,外设保证已准备好的情况。 2. 软硬件十分简单。
34
例 1 无条件输入接口
PC 总 线 D7 ~ D0 数据 线
29
IBM PC/XT 总线上I/O端口读周期
当CPU 执行 IN 指令时,进入I/O端口读周期, 从指定的端口读入数据到CPU中。 AB
C
P U
DB
地址 译码 数据 缓冲 控制 电路
I/O端口1
外
I/O端口2
CB
I/O端口3
设
30
第三节 CPU与外设间的数据传送方式
CPU与外设的工作速度不一致,
对输出指令OUT ,源操作数只能为AL, 或AX
OUT OUT 20H, AL DX, AX
OUT
DX, CX
22
(2)端口地址可由直接方式或间接方式给出
当端口号在0~FFH,即0~255时, 可在指令中直接指定端口号 例 IN AL, 21H OUT 20H, AL 当端口号>FFH,即>255时, 需把端口号放在DX寄存器中, DX是一个16位寄存器,范围在0~FFFFh之间。
8088
VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 SSO MN/MX RD HOLD HLDA WR IO/M DT/R DEN ALE INTA TEST READY RESET
28
8088CPU最小模式下, I/O端口写周期时序
T1 T2 T3 T4
CLK
IO/M
OUT OUT OUT OUT
20H, AL 20H, AX DX, AL DX, AX
;字节传送 ;字传送 ;字节传送 ;字传送
(4)注意端口地址与端口内容的区别
IN AL, 21H OUT DX, AL 不等于(AL) ← 21H 不等于 (DX) ← (AL)
25
3. 输入/输出指令时序 当CPU执行IN 指令时, 进入I/O端口读周期 当CPU执行OUT指令时,进入I/O端口写周期
3
一、 接口的概念和功能
1、接口和接口技术
2、为什么要用接口电路?
4
1、接口和接口技术
接口 :
指CPU、存储器、外设之间通过总线进行连接的电路部分,
是CPU与外设进行信息交换的中转站。
接口技术 :
是研究CPU如何与外部设备进行最佳耦合与匹配,实现双方
高效、可靠地交换信息的一门技术,是软件、硬件结合的体
19
2. 输出指令OUT
格式 OUT OUT OUT OUT p o r t, A L p o r t, A X DX, AL DX, AX 执行操作 (p o r t 端 口 ) ← (A L )
(p o r t 端 口 ) ← (A L ) (p o r t+ 1 端 口 ) ← (A H )
三 态 缓冲器
输入 设备
A15 地址线 ~ A0
IOR
地址 200H 译码 0 与 0 0 非
接口电路,即硬件上保证: 只在CPU执行从200H端口输入数据时, 三态门处于工作状态,使输入设备的数据送上总线侧, 而CPU执行其它指令时, 三态门均处于高阻状态, 使输入设备的数据线与总线侧断开
35
无条件输入编程:
(2) MOV DX , 21BH OUT DX, AL 若(AL)= 1010 0110B 执行后: (21BH端口)= (AL) = 0A6H
21
输入/输出指令(IN、OUT)特点:
(1)累加器AL、AX的专用指令
对输入指令IN ,目的操作数只能为AL, 或AX
IN IN IN AL, 21H AX, DX BX, 21H
内 存 空 间
I/O端口的地址由
一个8位二进制数直接寻址 或DX寄存器间接寻址
I/O 空 间
17
1. 输入指令IN
格式 IN IN IN IN A L , p ort A X , p ort AL, DX AX, DX 执行操作 (A L ) ← (p o r t 端 口 )
(A L ) ← (p o r t 端 口 ) (A H ) ← (p o r t+ 1 端 口 )
如何使两者高效、可靠地进行数据传送,
是本节讨论的问题。
31
有以下几种传送方式:
一、 无条件传送方式
二、 条件传送方式(查询方式)
三、 中断传送方式
四、 DMA传送方式
( Direct Memory Access )
32
概述
1、无条件传送(CPU与外设同步工作):
外部控制过程各种动作时间是固定的,而且是已知的。 2、查询方式(CPU与外设不同步工作): 传送前,先查询外设状态,准备好才传送,否则CPU处于 等待状态。
C PU 接口作用 模 /数 转 换 ( A / D ) 信息类型 数字量 数 /模 转 换 ( D / A ) 三态缓冲、锁存 工作速度 通信方式 快 并行 并 /串 转 换 三态缓冲、锁存 并行
7
外设 模拟量 数字量 慢 串行
解决传送方式 串 /并 转 换
二、接口电路的典型结构
AB 地址 译码 数据 缓冲 I/O端口1
掌握 (1)在最小模式下,I/O端口的读、写周期。
(2)IBM PC/XT 总线上I/O端口的读、写周期。
26
(1)在最小模式下,I/O端口的读、写周期
与读、写存储器的过程相似,不同之处: 1.IO/M变高,CPU操作I/O端口。 2.端口的地址信号出现在A15~A0上, A19~A16全为低电平。
例 motorola的M6800系列
日立H8S单片机系列
特点:
内 存 空 间
I/O 空 间
I/O端口相当于内存的一部分, 使内存容量减小 对I/O端口的读/写与对存储器的读/写相同, 所有可对内存操作的指令对I/O端口均可使用,
指令系统中不专设I/O指令。
14
二 、8088的输入/输出指令和时序
1. 输入指令IN 2. 输出指令OUT 3. 输入/输出指令时序
15
输入/输出指令实现I/O端口与CPU之间的数据传送
AB 地址 译码 数据 缓冲 控制 电路
I/O端口1
C
外
I/O端口2
P
U
DB
CB
I/O端口3
设
16
8088CPU采用I/O端口与存储器分别独立编址
可寻址220= 1M个内存单元 内存范围00000 ~FFFFFh 内存单元的地址有5种寻址 可寻址216= 64 K个I/O端口 I/O端口范围0000 ~ FFFFH
((D X )端 口 ) ← (A L )
((D X )端 口 ) ← (A L )
((D X )+ 1 端 口 ) ← (A H )
port 为数字形式的端口地址, 大小为0~255 或0~FFH
20
例
(1) OUT 21H, AL 若(AL)= 1100 1100B 执行后: (21H端口) = 0CCH
3、中断方式:
外设与CPU处于并行工作,一旦外设准备好,外设向CPU 发中断申请,条件具备,CPU暂停原程序执行,响应中断,外 设与CPU串行工作。 4、DMA方式(高速I/O及成组交换数据): CPU不干预,由硬件实现存储器与外设之间交换数据,称 直接存取存储器。 33
一、无条件传送方式 (同步传送方式)
从端口200H读入100个字节到内存缓冲区buffer中。 、、、 MOV AX, SEG buffer MOV DS, AX ;取缓冲区 ;延时子程 LEA DI, buffer ;首地址 delay PROC MOV CX, 100 ;传送个数 PUSH MOV DX, 200H ;端口地址 next: ;延时等待 MOV IN AL, DX ;读入数据 cc: LOOP CALL delay POP MOV [DI], AL ;送缓冲区 RET INC DI ;修改指针 delay ENDP LOOP next 、、、
C P
DB
外
I/O端口2
U
CB
控制 电路
I/O端口3
设
从编程角度看,接口内部主要包括一个或多个 CPU可以进行读/写操作的寄存器,又称为I/O端口。 各I/O端口由端口地址区分。
8
AB
C
地址 译码 数据 缓冲 控制 电路
1001 0101 (状态端口) 0110 1010 (数据端口) 1100 0110 (控制端口)
例 Intel的80X86系列、Z80系列
特点:
端口与存储器分别独立编址 端口不占用内存空间 设有专门的 I/O指令对端口进行读写, 对内存操作的指令不能用于I/O端口
内 存 空 间
例
MOV IN
[ 10H ], AL 对内存操作 10H, AL 对端口操作
I/O 空 间
13
2、端口与存储器统一编址 (存储器映射方式)
例 IN
IN
AL, 218H AL, DX
×
例
OUT 219H, AL
×
MOV DX, 218H
MOV DX, 219H
OUT DX, AL
23
当端口号在0~FFH,即0~255时,
可在指令中直接指定端口号,称长格式指令 当端口号>FFH,即>255时,
需把端口号放在DX寄存器中,称短格式指令
原因是使用直接端口方式的指令机器码相对长
I/O端口3
设
CPU对外设输入/输出的控制,是通过对接口电路中各I/O 端口的读/写操作完成。
10
第二节 I/O端口的编址和译码
一、I/O端口的编址方式
二、8088的输入/输出指令和时序
三、I/O端口的译码
11
一、I/O端口的编址方式
1、端口与存储器分别独立编址
2、端口与存储器统一编址
12
1、端口与存储器分别独立编址 (I/O映射方式)
A19~A16 /S6~S3 A15~A8 AD7~AD0 ALE WR DT/R DEN
A7 ~ A0 D7 ~ D0
GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND
8088
VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 SSO MN/MX RD HOLD HLDA WR IO/M DT/R DEN ALE INTA TEST READY RESET
5
地址总线 AB
CPU
存 储 器
ቤተ መጻሕፍቲ ባይዱI/O 接 口
输 入 设 备
I/O 接 口
输 出 设 备 数据总线 DB 控制总线 CB
微型计算机的结构示意图
6
2、为什么要用接口电路?
外设是用来实现人机交互的一些机电设备。 外设处理信息的类型、速度、通信方式与CPU不匹配, 不能直接挂在总线上,必须通过接口和系统相连
第 九 章
输入/输出方法
及常用的接口电路
1
主机以外的设备称为外部设备,又称为输入/输出设备, 即I/O设备 主机与外部设备交换信息的缓冲电路称为I/O接口电路, 又称为I/O接口或简称接口
主机
接口
外部 设备
主机与外部设备之间进行输入/ 输出的方法
2
第一节 接口技术的基本概念
一、 接口的概念和功能 二、 接口电路的典型结构
27
8088CPU最小模式下, I/O端口读周期时序
T1 T2 T3 T4
CLK
IO/M
A19~A16 /S6~S3 A15~A8 AD7~AD0 ALE RD DT/R
A7 ~ A0
D7 ~ D0
DEN
GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND
例
指令 IN OUT IN OUT
AL, 20H, AL, DX,
21H AL DX AL
机器码 E421 ; 两个字节 E620 EC ; 一个字节 EE
24
(3)可进行字节或字传送
由指令中AL或AX的类型决定
IN IN IN IN
AL, 20H AX, 20H AL, DX AX, DX
;字节传送 ;字传送 ;字节传送 ;字传送
(A L ) ← ((D X )端 口 )
(A L ) ← ((D X )端 口 ) (A H ) ← ((D X )+ 1 端 口 )
port 为数字形式的端口地址, 大小为0~255 或0~FFH
18
例
(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
外
P
U
DB
CB
设
按存放信息的不同,I/O端口可分为三种类型 数据端口:用于存放CPU与外设间传送的数据信息 状态端口:用于暂存外设的状态信息 控制端口:用于存放CPU对外设或接口的控制信息,
控制外设或接口的工作方式。
9
AB
C
地址 译码 数据 缓冲 控制 电路
I/O端口1
外
I/O端口2
P
U
DB
CB
实现方法
CPU不查询外设工作状态, 与外设速度的匹配通过在软件上延时完成, 在程序中直接用I/O指令,完成与外设的数据传送
特点
1. 适用于外设动作时间已知,在CPU与外设进行数据传送 时,外设保证已准备好的情况。 2. 软硬件十分简单。
34
例 1 无条件输入接口
PC 总 线 D7 ~ D0 数据 线
29
IBM PC/XT 总线上I/O端口读周期
当CPU 执行 IN 指令时,进入I/O端口读周期, 从指定的端口读入数据到CPU中。 AB
C
P U
DB
地址 译码 数据 缓冲 控制 电路
I/O端口1
外
I/O端口2
CB
I/O端口3
设
30
第三节 CPU与外设间的数据传送方式
CPU与外设的工作速度不一致,
对输出指令OUT ,源操作数只能为AL, 或AX
OUT OUT 20H, AL DX, AX
OUT
DX, CX
22
(2)端口地址可由直接方式或间接方式给出
当端口号在0~FFH,即0~255时, 可在指令中直接指定端口号 例 IN AL, 21H OUT 20H, AL 当端口号>FFH,即>255时, 需把端口号放在DX寄存器中, DX是一个16位寄存器,范围在0~FFFFh之间。
8088
VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 SSO MN/MX RD HOLD HLDA WR IO/M DT/R DEN ALE INTA TEST READY RESET
28
8088CPU最小模式下, I/O端口写周期时序
T1 T2 T3 T4
CLK
IO/M
OUT OUT OUT OUT
20H, AL 20H, AX DX, AL DX, AX
;字节传送 ;字传送 ;字节传送 ;字传送
(4)注意端口地址与端口内容的区别
IN AL, 21H OUT DX, AL 不等于(AL) ← 21H 不等于 (DX) ← (AL)
25
3. 输入/输出指令时序 当CPU执行IN 指令时, 进入I/O端口读周期 当CPU执行OUT指令时,进入I/O端口写周期
3
一、 接口的概念和功能
1、接口和接口技术
2、为什么要用接口电路?
4
1、接口和接口技术
接口 :
指CPU、存储器、外设之间通过总线进行连接的电路部分,
是CPU与外设进行信息交换的中转站。
接口技术 :
是研究CPU如何与外部设备进行最佳耦合与匹配,实现双方
高效、可靠地交换信息的一门技术,是软件、硬件结合的体
19
2. 输出指令OUT
格式 OUT OUT OUT OUT p o r t, A L p o r t, A X DX, AL DX, AX 执行操作 (p o r t 端 口 ) ← (A L )
(p o r t 端 口 ) ← (A L ) (p o r t+ 1 端 口 ) ← (A H )
三 态 缓冲器
输入 设备
A15 地址线 ~ A0
IOR
地址 200H 译码 0 与 0 0 非
接口电路,即硬件上保证: 只在CPU执行从200H端口输入数据时, 三态门处于工作状态,使输入设备的数据送上总线侧, 而CPU执行其它指令时, 三态门均处于高阻状态, 使输入设备的数据线与总线侧断开
35
无条件输入编程:
(2) MOV DX , 21BH OUT DX, AL 若(AL)= 1010 0110B 执行后: (21BH端口)= (AL) = 0A6H
21
输入/输出指令(IN、OUT)特点:
(1)累加器AL、AX的专用指令
对输入指令IN ,目的操作数只能为AL, 或AX
IN IN IN AL, 21H AX, DX BX, 21H
内 存 空 间
I/O端口的地址由
一个8位二进制数直接寻址 或DX寄存器间接寻址
I/O 空 间
17
1. 输入指令IN
格式 IN IN IN IN A L , p ort A X , p ort AL, DX AX, DX 执行操作 (A L ) ← (p o r t 端 口 )
(A L ) ← (p o r t 端 口 ) (A H ) ← (p o r t+ 1 端 口 )
如何使两者高效、可靠地进行数据传送,
是本节讨论的问题。
31
有以下几种传送方式:
一、 无条件传送方式
二、 条件传送方式(查询方式)
三、 中断传送方式
四、 DMA传送方式
( Direct Memory Access )
32
概述
1、无条件传送(CPU与外设同步工作):
外部控制过程各种动作时间是固定的,而且是已知的。 2、查询方式(CPU与外设不同步工作): 传送前,先查询外设状态,准备好才传送,否则CPU处于 等待状态。
C PU 接口作用 模 /数 转 换 ( A / D ) 信息类型 数字量 数 /模 转 换 ( D / A ) 三态缓冲、锁存 工作速度 通信方式 快 并行 并 /串 转 换 三态缓冲、锁存 并行
7
外设 模拟量 数字量 慢 串行
解决传送方式 串 /并 转 换
二、接口电路的典型结构
AB 地址 译码 数据 缓冲 I/O端口1
掌握 (1)在最小模式下,I/O端口的读、写周期。
(2)IBM PC/XT 总线上I/O端口的读、写周期。
26
(1)在最小模式下,I/O端口的读、写周期
与读、写存储器的过程相似,不同之处: 1.IO/M变高,CPU操作I/O端口。 2.端口的地址信号出现在A15~A0上, A19~A16全为低电平。
例 motorola的M6800系列
日立H8S单片机系列
特点:
内 存 空 间
I/O 空 间
I/O端口相当于内存的一部分, 使内存容量减小 对I/O端口的读/写与对存储器的读/写相同, 所有可对内存操作的指令对I/O端口均可使用,
指令系统中不专设I/O指令。
14
二 、8088的输入/输出指令和时序
1. 输入指令IN 2. 输出指令OUT 3. 输入/输出指令时序
15
输入/输出指令实现I/O端口与CPU之间的数据传送
AB 地址 译码 数据 缓冲 控制 电路
I/O端口1
C
外
I/O端口2
P
U
DB
CB
I/O端口3
设
16
8088CPU采用I/O端口与存储器分别独立编址
可寻址220= 1M个内存单元 内存范围00000 ~FFFFFh 内存单元的地址有5种寻址 可寻址216= 64 K个I/O端口 I/O端口范围0000 ~ FFFFH
((D X )端 口 ) ← (A L )
((D X )端 口 ) ← (A L )
((D X )+ 1 端 口 ) ← (A H )
port 为数字形式的端口地址, 大小为0~255 或0~FFH
20
例
(1) OUT 21H, AL 若(AL)= 1100 1100B 执行后: (21H端口) = 0CCH
3、中断方式:
外设与CPU处于并行工作,一旦外设准备好,外设向CPU 发中断申请,条件具备,CPU暂停原程序执行,响应中断,外 设与CPU串行工作。 4、DMA方式(高速I/O及成组交换数据): CPU不干预,由硬件实现存储器与外设之间交换数据,称 直接存取存储器。 33
一、无条件传送方式 (同步传送方式)
从端口200H读入100个字节到内存缓冲区buffer中。 、、、 MOV AX, SEG buffer MOV DS, AX ;取缓冲区 ;延时子程 LEA DI, buffer ;首地址 delay PROC MOV CX, 100 ;传送个数 PUSH MOV DX, 200H ;端口地址 next: ;延时等待 MOV IN AL, DX ;读入数据 cc: LOOP CALL delay POP MOV [DI], AL ;送缓冲区 RET INC DI ;修改指针 delay ENDP LOOP next 、、、
C P
DB
外
I/O端口2
U
CB
控制 电路
I/O端口3
设
从编程角度看,接口内部主要包括一个或多个 CPU可以进行读/写操作的寄存器,又称为I/O端口。 各I/O端口由端口地址区分。
8
AB
C
地址 译码 数据 缓冲 控制 电路
1001 0101 (状态端口) 0110 1010 (数据端口) 1100 0110 (控制端口)
例 Intel的80X86系列、Z80系列
特点:
端口与存储器分别独立编址 端口不占用内存空间 设有专门的 I/O指令对端口进行读写, 对内存操作的指令不能用于I/O端口
内 存 空 间
例
MOV IN
[ 10H ], AL 对内存操作 10H, AL 对端口操作
I/O 空 间
13
2、端口与存储器统一编址 (存储器映射方式)
例 IN
IN
AL, 218H AL, DX
×
例
OUT 219H, AL
×
MOV DX, 218H
MOV DX, 219H
OUT DX, AL
23
当端口号在0~FFH,即0~255时,
可在指令中直接指定端口号,称长格式指令 当端口号>FFH,即>255时,
需把端口号放在DX寄存器中,称短格式指令
原因是使用直接端口方式的指令机器码相对长
I/O端口3
设
CPU对外设输入/输出的控制,是通过对接口电路中各I/O 端口的读/写操作完成。
10
第二节 I/O端口的编址和译码
一、I/O端口的编址方式
二、8088的输入/输出指令和时序
三、I/O端口的译码
11
一、I/O端口的编址方式
1、端口与存储器分别独立编址
2、端口与存储器统一编址
12
1、端口与存储器分别独立编址 (I/O映射方式)
A19~A16 /S6~S3 A15~A8 AD7~AD0 ALE WR DT/R DEN
A7 ~ A0 D7 ~ D0
GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND
8088
VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 SSO MN/MX RD HOLD HLDA WR IO/M DT/R DEN ALE INTA TEST READY RESET