微机接口技术
2
一个简单的微机系统需要 CPU,存储器,
基本的输入/输出系统以及将它们连接在一起的各种信号线和接口电路 。
外部设备通过接口电路和系统总线相联,
接口电路的作用是把计算机输出的信息变成外设能够识别的信息,把外设输入的信息转化成计算机所能接受的信息 。
第六章 输入 /输出接口
3
为什么需要 I/O接口?
各种外设的操作方法不同,由 CPU统一控制不切合实际。
外设的数据传输速率比存储器和 CPU慢,使得高速总线不能直接与外设相连。
外设所使用的数据格式、时序等不一致。
1,I/O接口的基本概念计算机的输入输出是通过 I/O接口 来实现的。
4
I/O模块外部设备
5
I/O模块的一般结构
I/O
逻辑数据寄存器状态 /控制寄存器外部设备界面接口外部设备界面接口
…...
系统接口 外设接口数据线地址线控制线数据状态控制数据状态控制
6
接口与主机、外设间的连接系统接口 接口 设备接口主机地址信息
————— → 外设识别 设备控制器外设数据 (并 )← ———— → 数据 /命令 /状态 数据 (并 /串 )← ——— →
控制联络信息
← ———— → 控制电路控制联络
← ——— →
7
I/O接口的基本功能
(1)实现主机和外围设备之间的数据传送控制,
其中包括同步控制,设备选择和中断控制等,DMA还具有直接访问存储器功能,并给出存储器地址,
(2)实现主机同外围设备之间的数据缓冲,
在数据传送过程中,先将数据送入数据缓冲寄存器,然后再送到目的设备 (输出 )或主机 (输入 ).
(3)接受主机的命令,提供设备接口的状态,按照主机的命令控制设备,
(4)设置信号电平、信息转换与提供地址译码电路,
8
I/O接口类型
⑴ 按照数据传送的宽度可分为 并行接口 和 串行接口,
并行接口中,设备和接口是将一个字节 (或字 )的所有位同时传送,
串行接口中,设备和接口间的数据是一位一位串行传送的,
而接口和主机之间是按字节或字并行传送,接口要完成数据格式的串 — 并变换,
⑵ 按照数据传送的控制方式可分成 程序控制输入输出接口,程序中断输入输出接口 和 直接存储器存取
(DMA)接口 等。
9
I/O设备的编址
为了 CPU便于对 I/O设备进行寻址和选择,
必须给众多的 I/O设备进行编址,也就是给每一台设备规定一些地址码。
2,I/O设备的编址方式
10
有两种寻址方法
⑴ 专设 I/O指令,
例指令 IN完成输入,指令 OUT完成输出操作,其地址码指出 I/O设备的设备代码,这是 I/O空间独立于存储器空间的情况,即设备码的编码和存储器的存储单元的编码是平行存在的,
⑵ 利用访问存储器指令完成 I/O功能,
使用这种方法时,从主存的地址空间中分出一部分地址码作为 I/O的设备代码,当访问到这些地址时,表示被访的不是主存储器,而是 I/O设备寄存器 (例如,设备的数据缓冲器或设备的状态寄存器 ),这时 I/O空间和存储器空间是合在一起的,即 I/O设备和存储单元是统一编址的,
11
输入输出设备 占用地址数 地址码 (16进制 )
硬盘控制器 16 320~32FH
软盘控制器 8 3F0~3F7H
单色显示器 /并行打印机 16 3B0~3BFH
彩色图形显示器 16 3D0~3DFH
异步通信控制器 8 3F8~3FFH
12
( a )存储器映射方式示意图 ( b ) I/O 映射方式示意图
I /O 映射方式和存储器映射方式的示意图
I/O 空间
0000H
FFFFH
00000H
内存空间
FFFFFH
1M
00000H
供 I/O 接口使用内存空间
FFFFFH
图 6-4
13
存储器对应输入输出方式
把一个外设端口作为存储器的一个单元来对待,
故每个外设端口占有存储器的一个地址。
其优点是:
CPU对外设的操作可使用全部的存储器操作指令;
不需要专门的输出输出指令及控制信号。
缺点是,外设占用了内存单元,使内存容量减少。
14
端口寻址的输入输出方式
外设端口所在空间与存储器空间各自独立。
特点:
CPU有专门的 I/O指令,用地址来区分不同的外设;
一个外设往往有多个端口;
在硬件上,必须用控制线来区分是寻址内存还是外设。
15
3,8086的端口访问
8086/8088采用 IN和 OUT指令访问端口。
16
输入 /输出指令
IN输入指令
直接端口寻址方式
格式,IN AL(或 AX),PORT
操作,( AL字节 或 AX字 )?( PORT)
例 取端口 61H的内容,
IN AL,61H ;取数据
MOV BL,AL ;放入 BL中
17
间接端口寻址方式
格式,IN AL(或 AX),DX
操作,( AL字节 或 AX字 )?(( DX))
例 取异步串行接口( COM1)的端口 3F8H的内容,
MOV DX,3F8H ;取地址
IN AL,DX ;取数据
MOV BL,AL ;放入 BL中
18
OUT输出指令
直接端口寻址方式
格式,OUT PORT,AL(或 AX)
操作,( PORT)?( AL字节 或 AX字 )
例 将寄存器 BL的数据放入端口 61H中,
MOV AL,BL ;取数据
MOV 61H,AL ;放入 61H中
19
间接端口寻址方式
格式,OUT DX,AL(或 AX)
操作,(( DX))?( AL字节 或 AX字 )
例 将寄存器 BL的数据放入异步串行接口( COM1)
的端口 3F8H中,
MOV DX,3F8H ;取地址
MOV AL,BL ;取数据
OUT DX,AL ;放入 BL中
20
I/O指令的使用规则
I/O端口与 CPU之间的数据通信都是通过这两个指令实现的。
I/O端口使用 16位二进制编址,端口地址从 0000H
到 FFFFH。
前 256个端口( 0000H-00FFH)可以使用直接端口寻址和间接端口寻址两种方式;当端口号大于 255
时( 0100H-FFFFH)必须使用间接端口寻址方式。
I/O端口地址是绝对地址,并不分段。
I/O指令都不影响标志位。
21
地址范围 I/O接口名称
000H~01FH DMA控制器
020H~03FH 中断控制器
040H~05FH 定时器 8253/8254
060H~07FH 并行接口芯片 8255
0A0H~0BFH NMI屏蔽寄存器
080H~09FH DMA页面寄存器表 6-5 PC/XT机系统板配置的端口地址
22计算机 的端口地址地址范围 I/O接口名称
0000H~000FH DMA控制器
0020H~0021H 可编程中断控制器( Programmer
Interrupt Controller)
0040H~0043H 系统定时器( System Timer )
03F8H~03FFH
0778H~077BH 并行接口 1( LPT1)
0D000H~
0D0FFH
网络接口控制器( NIC)
串行接口 1( COM1)
23
图 6- 5 可选式译码电路
O J
12
O
7 4 L S30
A
3
A
4
A
5
A
6
A
7
A
9
A
8
O J
10
O
AEN
CS
7 4 L S04
24
J10通 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
1 0 1 1 1 1 1 0 0 0
~ 1 0 1 1 1 1 1 1 1 1
地址为,2F8H-2FFH