要设计输入/输出接口,首先应了解与之相连的cPu或系统总线的I/O接口信号。对于数据线和地址线不同种类的CPU或不同的系统总线基本相同,如果有差别,也在于数据线和地址线的位数可能不同,或者有的cPu由于地址/数据复用而在外部设置了地址锁存器。对于I/0读/写等控制信号,不同种类的CPU或不同的系统总线可能有所区别。这里以8086为例。
3 ?6 n! w8 Z4 r" d. g' T/ R
当8086工作在最小模式时,与I/0接口电路的接口信号全部由本身产生。它们是
( h" j1 i. y$ W# i( }( B
; E1 w9 H6 w# n8 y
、
. v& c5 y& h8 @+ _) w; K' p- c
5 [4 Z- `4 H: `
、M/
* D+ P. Y- W+ Z. R5 l
0 S% T$ f, U5 b6 Q' k
、ALE、DT/
4 s$ r) A. ~% t7 \" K1 c
+ [& y8 h/ o# m/ g2 s, y# @7 i7 M: g
和
2 z) H5 u* y2 h' Y
, S2 w7 u3 T1 c, \) Y I" [# J! U
,如图4.17所示。当8086工作在最大模式时,与I/O接口电路的接口信号由总线控制器8288产生,如图4.18所示。注意,此时I/O读/写信号已与存储器读/写信号区分开了,如
. w# n* w4 I- [9 T& c5 |* v
( } e% }. I$ Q1 W/ D% R有效时就表示I/O读,而不必像最小模式那样,RD和M/
! @) E N, ~/ X! C
# @+ i- P& v3 ]1 X6 v
都为低电平才表示I/0读。最大模式时,I/0写有两个信号:
9 T) E& d, f% c$ ]
& s6 _: Q6 O7 S1 u e) a
和
" L) ~) A4 N- z
1 _* {' E: u% c' C1 v
,一般用后者,因为它比前者提前有效,可使外设有更多的时间去完成写操作。在最大模式时,8086本身也产生读信号RD,但一般不用。
5 K( L4 e( @# O+ {+ v; d: o
3 g! g: r2 d& t& x! F
; f c5 U6 _) x8 o9 G3 q
* i8 `3 T$ ~/ [. \7 _9 {
{5 t$ V+ j* Q& x! b/ p2 b
