I/O接口
接口要解决的问题
速度匹配–数据的缓冲与暂存
信号的驱动能力–信号驱动
信号形式和电平的匹配–信号类型转换
信息格式–信号格式转换
时序匹配
总线隔离–三态门
端口:接口电路中用于缓存数据及控制信息的部件
数据端口
状态端口
控制端口
计算机中包含各类不同功能的接口电路
每个接口中含1个或者多个端口
端口编址:为确保CPU能够访问到每个不同的端口
寻址端口的方法:
片选:先找到端口所在的接口电路芯片
片内寻址:在在该芯片上找具体访问的端口
每个端口地址=片选地址(高位地址)+片内地址
8086/8088寻址端口的能力:
64K个端口
端口的编址方式:
与内存统一编址
独立编址
采用I/O独立编址方式,与内存共用地址总线,用IO/#M信号状态区分
为高电平时,表示访问端口,需要16位,A16~A19默认为0,无效
访问端口时仅使用A0 ~ A15
可寻址的I/O端口数为64K个,I/O地址范围为0~FFFFH
IBMPC只使用1024个I/O地址(0~3ffH)
I/O地址译码
目的:确定端口的地址
参加译码的信号:
#IOR,#IOW,高位地址信号
对端口读/写信号的产生的条件
IO/#M=1;//表示访问的是端口
#RD=0–>#IOR=0 //有效
#WR=0–>#IOW=0
out指令将使总线的#IOW有效
IN指令将使总线的#IN有效
当接口只有一个端口时:
无片内地址,全部地址信号均要为高位地址(可全部参与译码),译码输出直接选择该端口
当接口具有多个端口时:
则16位地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口
地址范围:
xxxx001011110000
xxxx001011110011
高四位任意状态,图中不接入