第三章 输入输出与接口技术
Post on 01-Jan-2016
99 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
第三章 输入输出与接口技术
2
第一节 接口概述一、 I/O 接口基本概念1 、接口定义
定义:是计算机系统中各部件与“外部世界”的连接电路,负责“中转”各种信息。
3
分类:存储器接口和 I/O 接口。 位置:介于系统总线与外部设备之间。2 、 I/O 接口与 I/O 设备 不同 I/O 设备对应相同或不同 I/O 接口。 I/O 接口受 CPU 控制, I/O 设备受 I/O 接口控制。 为增加通用性, I/O 接口一般均具有可编程功能。 微机应用离不开与 I/O 接口的设计、选用和连接。 微机接口技术是编程人员的一项基本技能。
4
二、 I/O 接口功能 数据缓冲功能:通过寄存器或锁存器实现。 接口中存放数据的寄存器或锁存器称之为数据口
接收和执行 CPU 命令功能: 存放来自 CPU 的命令信息的寄存器称之为命令口 存放来自外设的状态信息的寄存器称之为状态口
信号转换功能:协调总线信号与 I/O 设备信号。 转换包括信号的逻辑关系、时序配合和电平转换
可编程功能:增加接口的灵活性和智能性。 编程指改变 I/O 接口的工作模式、实现具体操作
5
三、 I/O 接口组成 I/O 接口由接口硬件和接口软件组成。1 、接口硬件
回下页 回 7 页 回 8 页
6
(1)CPU 侧引脚信号 思考: CPU 对接口有哪些操作?总线如何表示?这些信号由谁处理? 地址总线信号 ( 入 ) :接口判断自己是否被选中的主要依据,并可区分对哪个 REG( 端口 ) 操作; 数据总线信号 ( 入 / 出 ) :被选中时,按端口地址和操作类型,数据总线信号← /→ 对应 REG ; 控制总线信号 ( 入 ) :接口是否被选中的辅助依据,及数据期接口控制执行 ( 数据方向 ) 的依据; 状态总线信号 ( 出 ) :为完成总线命令,接口给出的符合总线协议的相关信号 ( 如响应 ) 。
转上页
7
(2) 外设侧引脚信号 数据信号:接口的缓冲 REG( 分输入缓冲和输出锁存 ) 与外设间的数据交换信号,有串行 / 并行、 I/O 分离 / 合并等形式; 状态信号:外设→接口的工作状态 / 握手信号; 控制信号:接口→外设的控制 / 握手信号。 控制信号与状态信号的时序配合是 I/O 接口与外设有效通信的保证; ☆ 控制信号、状态信号、数据信号可以合并,通过信号线时序或数据特性区分。
转 5 页
8
(3) 内部控制逻辑— I/O 接口的核心 a1. 识别总线状态功能: 能够识别出总线空闲、命令的地址期和数据期;
a2. 被选中检测功能:—总线命令地址期 主动检测总线控制信号和地址信号;
a3. 控制端口选择功能:—总线命令地址期和数据期 地址期—控制是否进行地址锁存、内部端口地址译码; 数据期—控制端口与总线缓冲器间传输方向。
b. 控制联络 / 数据信号功能:—根据控制 REG 实现 根据状态 REG ,控制联络信号的输出; 根据联络信号的输入,控制状态 REG 和 I/O 数据 REG 的改变。
转 5 页回下页
9
I/O 接口、总线、外设间时序关系:CPU
总线
I/O 接口控制逻辑
CPU侧
外设侧I/O 设备时间
REG 间命令空闲
未选中,无通信
按相关 REG 控制按联络信号通信
REG-I/O 接口命令I/O 总线命令
被选中时通信,并改变相关 REG按相关 REG( 旧 )控制按联络信号通信
REG-MEM 命令MEM 总线命令未选中,无通信
按相关 REG( 新 )控制按联络信号通信
CPU 对接口的控制与接口对外设的控制是独立的! 例:某 I/O 接口有三个独立的 8 位外设端通道,①其CPU 侧引脚应有哪些?②如何提高接口通用性? ① 全部地址线 + 全部数据线 + 部分控制线; ② 片选引脚 CS+ 内部地址引脚—代替全部地址线; WR+RD+ 外部门电路—代替部分控制线引脚。
转上页
10
(4) 接口与接口芯片 接口芯片为接口的核心电路; 接口一般由接口芯片及相关门电路组成。 接口芯片 CPU 侧引脚: 片选 CS 、内部地址、数据、读 / 写等引脚
D0-D7
RD
RESET
Ax-1
A0
外设侧引脚
WR
CS
……
接口的相关门电路: 片选引脚 CS 连接—控制线与地址高位线的门电路
D0-D7
RD
RESET
Ax-1
A0
外设侧引脚
WR
CS
……
I0/MA15~Ax
RDWR
数据总线
Ax-1
A0
11
2 、接口软件(设备驱动程序) 设备驱动程序是一个驱动设备功能的函数集。 初始化程序段:提供设置接口工作方式及初始条件功能; 传送方式处理程序段:提供对 I/O 设备的不同数据传输控制方式的处理功能 (简单的通信功能 ) ; 主控程序段:提供完成与设备通信功能 (复杂的通信功能 ) ,传送方式处理程序段是其子集; 终止与退出程序段:提供接口电路硬件保护及操作系统中数据恢复功能; 辅助程序段:提供人 - 机对话等内容。 设备驱动程序的各部分可单独使用,为应用程序提供友好的支持。
12
第二节 数据传输控制方式一、程序控制方式1 、无条件传送方式 输入时外设已准备好,输出时外设空闲 要求: I/O 接口输入时需缓冲器,输出时需锁存器; I/O 接口与外设间无联络 ( 控制和状态 ) 信号。 应用:适用于对简单外设 ( 如 LED显示器 ) 的操作。
回下页
13
2 、条件传送方式(查询方式) 查询外设已准备好后,才传送数据 要求: I/O 接口与外设间需联络 ( 控制和状态 ) 信号; 特点:程序查询状态与 I/O 传送串行、自然同步; (CPU在查询期间不可完成其他任务 )
应用:适用于 CPU 不太忙、且传输速度要求不高时。3 、中断传送方式 外设准备好后, I/O 接口产生中断请求,请求处理 要求: I/O 接口中须有中断控制逻辑; 特点: CPU 处理其他任务与 I/O 传送可同时进行; 应用:适用于非高速度、大批量数据传输时。
转上页 回下页
14
二、直接存储器存取 (DMA) 方式 I/O 设备 -I/O 接口 - 总线 -MEM 间直接传输。 要求:需要 DMA 控制器 ( 主设备 ) 及相关逻辑支持; 特点: I/O 传输不经过 CPU ,简化 CPU 对 I/O 的控制, I/O 设备的管理照样归 CPU 实现; 应用:适用于高速度、大批量数据传输时。三、 I/O 处理机 (IOP) 方式 I/O 设备 -I/O 接口 - 总线 -MEM 间传输、 I/O 设备管理 要求:需要 IOP支持 ( 实现 I/O 设备管理功能 ) 。 特点: IOP 接管了设备管理功能, CPU 与 IOP 可并行; 应用:高速 I/O 设备归 IOP 、低速 I/O 设备归 CPU
管理。 转上页
15
第三节 I/O 编址与访问一、 I/O 端口1 、 I/O 端口 供 CPU直接访问的 I/O 接口中的 REG 或电路。 接口中的 I/O 端口有:命令口、状态口和数据口。2 、 I/O 端口地址 标识所有接口中各个端口的统一编号。 CPU 通过命令中地址 (I/O 端口地址 ) 可寻址某接口的某 I/O 端口。 关系 1 :接口 :I/O 端口地址 : 命令—— 1:m:2*m
关系 2 : I/O 端口 :I/O 端口地址—— 1:1 或 2:1
或 n:1 回下页
16
3 、 I/O 端口地址空间 若 CPU 对 I/O 接口的操作命令中地址位数为 n ; 则 I/O 端口地址空间大小为 N=2n ; I/O 端口地址范围为 0~N-1 。 所有接口的所有 I/O 端口的地址<N 。 △避免各接口的 I/O 端口地址重叠的方法: 不同接口占用不同的 I/O 端口地址段。
转上页
17
二、 I/O 端口编址方式1 、 I/O 统一编址(存储器映象 I/O 编址) 一个 I/O 端口等同于一个 MEM单元,操作指令相同。
MEM
I/O 接口
N
XX-1
0
MOV 指令
2 、 I/O 独立编址 I/O 端口地址空间与 MEM 地址空间相互独立。 必须通过不同的指令 ( 操作码 ) 区分。
MEMI/O 接口
X-1
0
MOV 指令 IN/OUT 指令
N-X
0
应用: Z-80 系列和 x86 系列均采用独立编址方式; 68000 系列和 Apple 6502 均采用统一编址方式。
18
3 、 I/O两种编址方式比较统一编址 独立编址
指令种类 MOV MOV 和 IN/OUT指令长度 长 短指令执行速度 慢 快
存储空间
大小 略小 较好可扩展性 MEM 可扩展性差 均较好
地址译码时间 较长 较短总线信号复杂性 简单 复杂 ( 控制信号种类多 )接口电路复杂性 复杂 简单
4 、 Intel 系列微机 I/O 编址 Intel 系列微处理器—支持 I/O 独立编址方式和I/O 统一编址方式 (I/O 统一编址时, I/O 地址不能缓存 ) 。 Intel 系列微机系统—仅支持 I/O 独立编址方式。
19
三、 PC 系列微机 I/O 端口访问1 、 I/O 端口地址空间 I/O 端口地址空间: 64K 个 8 位 I/O 端口空间。 I/O 端口地址信号线:由 A15~A0 组成。 I/O 端口地址空间的使用约定: 不同 I/O 接口占用不同的地址空间段; 同一接口的不同 I/O 端口地址是连续的。2 、 I/O 端口地址寻址方式 I/O 端口支持直接寻址和间接寻址两种方式。 直接寻址时地址仅 8 位,间接寻址时可支持 16位。 OUT 60H , AL ;直接寻址 OUT DX , AL ;间接寻址转 I/O 命令寻址方式
20
3 、 I/O 端口与 CPU 的 REG 间的 I/O 指令 指令种类: IN 、 OUT 。 指令格式: IN AL , DX OUT DX , AL
4 、 I/O 端口与 MEM 间的 I/O 指令 种类: INSB(W 、 D) 、 OUTSB(W 、 D) ; INS 时 MEM 为目的操作数, OUTS 时为源操作数 参数: I/O 端口地址用 DX 指定, 目的 MEM 地址用 ES:DI(EDI) 指定, 源MEM 地址用 DS:SI(ESI) 指定; 扩展:通过 REP前缀实现连续传送 (MEM 地址自动增加 ) 。
21
5 、 I/O 端口与存储器单元访问的区别I/O 端口访问 MEM单元访问
命令类型 IN/OUT MOV
寻址方式 直接、间接方式 多种方式地址空间大小 64K=216 4G=232
控制总线信号 IO/M# 高、 WR# 或RD# 有效
IO/M#低、 WR# 或 RD#有效
地址总线信号 A15~A0 A31~A06 、 I/O 端口访问例题 写出向 8255A 第 0 和第 1 个端口写数据的指令,说明接口 CPU 侧信号变化过程。 空闲
8255A
DMA
FFFFH
0040H
0020H
0000H
……
…
MOV AL , 50H OUT 20H , AL MOV AL , 51H OUT 21H , AL
回下页
22
T1 T2 T3 T4 T5 T6 T7 T8 T9 T10
A15-A8AD7-AD0ALE
IO/MWDRD
MOVAL , 50H
OUT 20H , AL
IN AL, 21H命令
CLK
CS8255A
CS 其他
MOVAL , 51H
50H20H
00H
??H21H
00H
注意:接口的 CS# 无效期间,接口与外设间仍在通信。 转上页 回 33 页回 36 页
23
四、 Pentium 的 I/O 保护 I/O 保护在保护模式下有效,在实地址模式下无效。1 、 I/O 特权级 IOPL 保护 通过当前任务 TSS 中段 REG 的特权级 CPL 与标志REG(当前任务的标志 REG副本 ) 的 IOPL字段比较实现 I/O 保护。 CPL 、 IOPL值越小,优先级越高 注: TSS结构可查阅《计算机系统结构》课件 保护—若 CPL≤IOPL ,可执行 IN/OUT 、 INS/OU
TS 、 CLI/STI 等敏感指令 ( 对 IOPL敏感 ) ;否则不允许执行。 IOPL修改—每个任务均有自己的 IOPL , 0级特权的过程可通过 POPF 和 IRET 指令修改任务的IOPL 。
24
2 、 I/O允许位映像保护 I/O允许位映像保护可修正 IOPL 对 I/O敏感指令的影响,允许低特权的程序访问某些 I/O 端口。 I/O允许位映像是一个位向量 (在任务 TSS 中 ) ,每位对应一个端口的操作权限 (0 表示允许, 1 表示禁止 ) ; I/O允许位映像不必说明所有 I/O 地址,说明范围为0~(TSS 界限 -I/O映像域基地址 ) 。 I/O允许位映像修改—操作系统可修改。 思考:如何让普通任务访问 I/O 端口? 通过操作系统提供的接口函数; 通过设备驱动程序(其运行在 0级上); 通过操作系统的漏洞。
25
实模式虚拟 8086 模
式
I/O 指令
允许访问 不允许访问
CPL≤IOPL
I/O允许位映象允许
保护模式
Y
Y
N
N
3 、不同模式下的 I/O 保护
26
第四节 接口分析与设计方法一、 X86 系列微机接口分析1 、 I/O 接口分类 系统板上 I/O 接口芯片和 I/O扩展槽接口卡。2 、 I/O 端口地址空间及分配 不同微机系统的 I/O 端口地址空间及分配不同。 PC/XT/AT—I/O 地址线只使用 A9~A0 ,共 1K 个端口空间 ( 地址范围为 0000H~03FFH) ; PC/286起— I/O 地址线使用 A15~A0 ,共有 64K
个端口空间。
回 44 页回下页
27
PC/XT :前 512 个端口 (A9=0) 为系统板所用,其他端口为扩展槽所用。 PC/AT :前 256 个端口 (A9=A8=0) 为系统板所用,其他端口为扩展槽所用。 PC/AT 系统板 I/O 接口芯片端口地址 (0000H-00FFH): I/O 芯片名称 地址范围
DMAC1 DMAC2
DMA 页面寄存器
0000-001FH 00C0-00DFH 0080-009FH
中断控制器 1
中断控制器 2
0020-003FH 00A0-00BFH
定时器 并 行 接 口 芯 片 ( 键盘接口 ) RT/CMOS RAM
协处理器
0040-005FH 0060-006FH 0070-007FH 00F0-00FFH
回下页 回 36 页转上页
28
PC/AT扩展槽 I/O 接口卡端口地址 (0100H-03FFH) :I/O 接口名称 地址范围
游戏控制卡 0200-020FH
并行口控制卡 1
并行口控制卡 2
0370-037FH 0270-027FH
串行口控制卡 1
串行口控制卡 2
03F8-03FFH 02F8-02FFH
原型插件板 ( 用户可用 )
0300-031FH
同步通信卡 1
同步通信卡 2
03A0-03AF 0380-038FH
单显MDA
彩显 CGA
彩显 EGA/VGA
03B0-03BFH 03D0-03DFH 03C0-03CFH
软驱控制卡 硬驱控制卡
03F0-03FFH 01F0-01FFH
PC网卡 0360-036FH
转上页
29
用户扩展卡 I/O 端口地址选用原则: 系统配置占用的端口地址一律不能用; 厂家声明保留的端口地址不要用; 其余端口地址可用,为避免冲突最好采用 DIP 。
3 、 I/O 端口地址分配 ( 主动译码 ) 的实现 基本原则:一个 I/O 接口对应多个连续的 I/O 端口。
A15 … AX AX-1…A0
固定 0…0~1…1
I/O 接口芯片片选 (CS) 的实现: IO/M 高电平、 AEN 无效、地址线高位与分配相同; I/O 接口芯片内部 I/O 端口的实现: 地址线低位与内部地址引脚连接。
回下页
30
例 1 :并行接口使用 8255A 芯片,地址空间60H-63H ,试实现信号线连接。
D0-D7数据总线
RD
RESET
A1
A0
8255A
PA0-7
PB0-7
PC0-7
WR
CS
A1
A0
A15~A2地址总线
=0000 0000 0110 00
控制总线
RD
RESET
IO/MAEN
WR
思考:多个 I/O 接口同时存在时,如何简化接口的门电路?
转上页 回下页 回 39 页
31
例 2 :根据多个 I/O 接口的 I/O 端口地址分配,实现简化的 I/O 接口信号线连接—集中译码。
空闲
系统
8255
8253
8259
DMA
FFFFH
0020H
0000H
0080H
0040H
……
…
0060H
……
…
数据总线地址总线控制总线
CPU MEM
8259 8253
D7-D0
CSA0
设备侧信号
WR
RD
D7-D0
CSA1-A0
设备侧信号
WR
RD
Y0
Y7
ABC
G2B
G1
74LS
138G2A
转上页 回 33 页
32
4 、 I/O 端口访问 CPU 通过 I/O 指令对 I/O 接口进行访问。 汇编语言指令: IN 、 OUT
C语言指令:inportb(inport) 、 outportb(outport) VC++ 指令: _inp(_inpw) 、 _outp(_outpw) 例 3 :读取 CMOS 信息。
main(){ unsigned char c_CmosMsg[64] ; for (int i=0 ; i<=63 ; i++) { outportb(0x70,i); c_CmosMsg[i]=inportb(0x71) ; } printf("CMOS 信 息 读取完毕。 \n") ;}
;功能:读取 CMOS 信息;调用: AL=CMOS 地址;返回: AL=CMOS 内容PROC_READ_CMOS PROC CLI OUT 70H , AL JMP $+2 ;延迟 IN AL , 71H ;读 CMOS数据 STI RETPROC_READ_CMOS ENDP
33
例 4 :根据课件 31 页的连接,说明下列指令执行时总线、接口的信号变化情况: MOV AL , 8AH OUT 42H , AL
控制总线: IO/M 有效、 AEN 无效、 WR 有效、RD 无效; 地址总线:地址期将 0042H 写入 A15~ A0 ; 译码器:根据控制信号、地址高位译码, Y2 有效,其他 Yx 无效; 接口芯片: 8253 被选中,其他接口芯片未被选中; 8253 芯片:地址期—根据地址低位选择相应REG ; 数据期—接收数据总线 (D7~D0) 的数据(8AH) ,写入地址期所选 REG 。
转 22 页转 31 页
34
二、 I/O 端口地址译码电路的几种形式1 、固定端口地址的译码 应用:系统板中接口的地址译码,只有一个接口时可采用门电路构成。 常见的译码器有 74LS138 、 74LS154 等。 74LS138 译码器:
Y0
Y7
A
B
C
G2B
G2A
G1
15
14
13
12
11
10
9
7
1
2
3
4
5
6
74LS138
工作条件: G1=1 , G2A=G2B=0 。工作原理: 将复合的输入信号 (CBA) 变为枚举 ( 分离 ) 的输出信号。
35
74LS138 输入 / 输出真值表:输 入 输 出
G1G2AG2B C B A Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
1 0 0 0 0 0 1 1 1 1 1 1 1 0
1 0 0 0 0 1 1 1 1 1 1 1 0 1
1 0 0 0 1 0 1 1 1 1 1 0 1 1
1 0 0 0 1 1 1 1 1 1 0 1 1 1
1 0 0 1 0 0 1 1 1 0 1 1 1 1
1 0 0 1 0 1 1 1 0 1 1 1 1 1
1 0 0 1 1 0 1 0 1 1 1 1 1 1
1 0 0 1 1 1 0 1 1 1 1 1 1 1
0 X X X X X 1 1 1 1 1 1 1 1
X 1 X X X X 1 1 1 1 1 1 1 1
X X 1 X X X 1 1 1 1 1 1 1 1
CBA 连续时, Y0~ Y7 的有效亦为连续的。
36
例 1 : 74LS138在 PC 机 /AT 系统板端口译码的应用
Y0
Y7
A
B
C
G2B
G2A
G1
74LS138
A5
A6
A7
A8
A9
AEN
DMA CS(8237)
INTR CS(8259)
T/C CS(8253)
PPI CS(8255)
WRTDMAPG≥1
WRTNMIREG
WR
≥1
Y1
IO/M
思考 1 :为何中断控制器端口地址为 020H-
03FH ? 思考 2 :译码器无总线操作的地址期和数据期,指令执行期间,对于 A/D 线的复用,如何保证 Yx 有效? 转 27 页 转 22 页
37
例 2 :对 74LS138已知入端 (10 根地址线 ) ,计算出端口地址
每个出端对应的端口数量?Y1# 、 Y4# 对应开始端口地址?
8 个08H(88H) 、 20H
(A0H)
Y0
Y7
A
B
C
G2B
G2A
G1
74LS138
A3
A4
A5
A6
A9
AEN
Y1
IO/M
≥1A8
?~?
?~?
回下页
38
例 3 :对 74LS138已知出端,设计入端 (10 根地址线 ) 连接。
Y0
Y7
A
B
C
G2B
G2A
G1
74LS138
AEN
Y1
IO/M
300H~
330H~
GND
每个输出对应端口数量?C 、 B 、 A 对应地址线?G2B前与非门对应地址线?
16 个 (10H 个 )A6 、 A5 、 A4A9 、 A8 , A7取反 练习:若 Y0# 不变、 Y4# 为 318H~ ,则如何连
接?转上页
39
例 4 :用 74LS138 实现前 256 个 I/O 端口为系统板所用 A9 和 A8 或后接 74LS138 的 G2B , A7A6A5 接CBA 。 例 5 :续上例,使 8259A(2 个端口 ) 开始地址为20H 分析— Y1# 有效时覆盖范围为 20H~3FH
实现—必须使地址为 22H~3FH 时, 8259A CS# 无效Y1
8259A CSA4~A1 +
例 6 :续例 4 ,使 8253(4 个端口 ) 开始地址为44H 、 48H
8253 CSA4A3A2
Y2
+ 8253 CSA4A3A2
Y2
+
练习:续例 4 ,使 8259A 、 8253 开始地址为20H 和 24H 转 30 页回下页
40
思考: I/O 地址、译码器及接口电路地址三者关系?
AX-1-A0
AZ-1-AX
AY-1-AZ
A15-AY
0000H
FFFFH
I/O 地址空间
…
选定区域…
…
=S0 — 选择区域共 215-Y+1 个区域
A15-A0=S0 1…1
AY-
1~A0
…
A15-A0=S0 0…0
译码器
…
选择段共 2Y-Z 个段
…
选择片共 2Z-X 个
片
AZ-1-AX=0…0
AZ-1-AX=1…1
A15-AY=S0
译码输出=YX
AZ-1-AX=P0AX-1-A0
CS
AX-1-A0
控制信号 RD/WR
接口地址范围=
S0 X P0 0…0~1…1
转上页 回 44 页回下页
41
例 7 :用 73LS138 实现 8259A 、 8253 、 8250(8 个端口 ) 地址分别为 40H~41H 、 48H~4BH 、 50H~57H
实现方法一: 分析 1— 译码器输出端步距可为 08H ,故其 CBA 与A5A4A3 连接 分析 2— 译码器输入应固定 A15~A6 ,为 0000 0000
01B
译码器输出为40H~47H 、 48H~4FH 、 50H~57H 、… 分析 3— 各接口根据地址及端口数,实现 CS# 的门电路连接 Y0
8259A CSA2A1
+Y1
8253 CSA2 + Y2 8250 CS
实现方法二:译码器输出端步距为 10H ,故其 CBA 与A6A5A4 连接, A15~A7=0000 0000 0B ,各接口根据要求进行 CS# 连接Y0
8259A CSA3A2A1
+Y0
8253 CSA3A2
+ 8250 CSY1A3 +
实现方法三:译码器输出端步距为 20H ,作为练习完成转上页
42
2 、可选端口地址的译码 应用:扩展槽中接口板的地址译码。(1)使用比较器 ( 如 74LS688)+ 地址开关方法
P0P1P2P3P4P5P6P7
G1
74LS688
P=Q
+5V
Q0Q1Q2Q3Q4Q5Q6Q7
A3A4A5A6A7A8A9
AEN
CS
A1A0
RDWR
I0/MA2
A1A0
RDWR
SW0SW1SW2SW3SW4SW5
DIP
思考 1 :如何实现 DIP步距 (SW0 变化 - 接口开始地址变化 ) 为 4 ? 思考 2 :如何实现接口板开始地址为 200H 、 DIP步距为8 ? 回下页
43
(2)使用异或门 + 地址开关方法 用异或门代替比较器与地址开关比较。 74LS136 :
=1 =1
=1 =1
1 2 3 4 5 6 7
891011121314
VCC
GND
74LS136
逻辑:3=1○2 , 6=4○5 , 8=9○10 , 11=12○13 ;
+ ++ +
连线:异或门的输入端分别接地址线和地址开关线; 结果:各异或门的输出再“或”后与比较器等效。
转上页
44
三、与接口电路相关的主板设计问题1 、确定 I/O 接口的编址方式及 I/O 空间 统一 / 独立编址,使用地址信号数量。 延伸: I/O 指令,相关控制信号种类。2 、约定并实现各 I/O 接口地址空间 I/O 空间分配表,译码器选择及级联,各固定地址接口的 CS# 连线。3 、确定数据、地址总线是否复用 地址总线信号锁存及接口芯片地址引脚信号锁存。
转 26 页 转 40 页
45
四、接口电路分析与设计基本方法1 、接口硬件设计方法 接口主要完成数据、地址、控制总线与外设信号的转换和连接任务。 分析接口两侧的情况: CPU 侧:数据线宽度、地址线宽度、控制线逻辑定义及时序、实现端口空间划分或选择; 外设侧: I/O 设备工作原理与特点,引脚信号逻辑定义、时序和电平差异。 进行信号转换:找出差异并进行信号转换与改造。 选择合理外围接口芯片构成接口电路。
46
设计注意点: 资源使用冲突问题; 时序、缓冲、锁存措施; 负载与干扰问题。2 、接口软件设计方法 直接对硬件编程: 设计者必须对接口硬件细节 ( 特别是总线接口 )十分熟悉; 尽可能用汇编语言编写程序。 间接对硬件编程: 调用标准接口驱动程序。
top related