预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共42页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2024/8/211、接口信息 数据信号: 如:8位、16位、32位数据; 状态信号: 表示外设是否准备好信号。 如:READY、BUSY、ACK 控制信号: 表示启动、停止外设之类的信号. (STROBE) 二、接口软件(设备驱动程序) 初始化程序段:设置接口工作方式及初始条件。传送方式处理程序段:CPU针对不同的I/O设备有不同的处理方式。 主控程序段:完成接口任务的程序。程序终止与退出程序段:接口电路硬件保护及操作系统中数据恢复。 辅助程序段:提供人-机对话手段。3、接口的功能3.1I/O地址空间 3.2I/O端口 3.2.1什么是端口 端口(port)是接口(Interface)电路中能被CPU访问的寄存器的地址,是物理电路中寄存器的抽象。微机系统给接口电路中的每个寄存器分配一个端口,因此,CPU在访问这些寄存器时,只需指明它们的端口,不需指明什么寄存器。这样,我们在输入/输出程序中,只看到端口,而看不到相应的具体寄存器。也就是说,访问端口就是访问接口电路中的寄存器。可见,端口是为了编程从抽象的逻辑概念来定义的,而寄存器是从物理含义来定义的。 接口电路中有三种不同类型的端口,存储不同的信息,分别是数据口、状态口和控制口。 3.2.2I/O端口共用技术 一般情况下,一个端口只接收一种信息(命令、状态或数据) 的访问,但有些接口芯片,允许同一端口既作命令口用,又作状态口用, 或允许向同一个命令口写入多个命令字,这就产生端口共用的问题。 端口共用问题的处理方法是: 对命令口和状态口共用的处理方法是,根据读/写操作来区分。向该口 写,就是写命令,作命令口用;从该端口读,就是读状态,作状态口用 例如,串行接口芯片8251A采用这种办法。 对多个命令字写到同一个命令口时,可采用两种办法解决:其一,在 命令字中设置特征位,根据特征位的不同,就可以识别不同的命令,例如 82C55A接口芯片采用这种办法;其二,在编写初始化程序段时,按先后顺 序向同一个端口写入不同的命令字,命令寄存器就根据先后顺序的约定来 识别不同的命令,8251A接口芯片采用这种方法。 2024/8/213.2.4I/O端口访问 本节只讨论累加器I/O指令IN和OUT,它们用于在I/O端口和AL、AX、EAX之间交换数据。 例如: I/O指令表示,CPU从端口读数据或向端口写数据, 仅仅是指I/O端口与CPU的累加器之间的数据传输, 并未涉及数据是否传输到存储器的问题。若要将端口的数据传输到存储器,还得用MOV指令进行传输。 例如: 2024/8/21 它们是完成I/O操作这一共同任务的软件(逻辑)和硬件(物理),是相互依存、缺一不可的两个方面。 IOR和IOW是CPU对I/O设备进行读/写的硬件上的控制信号,低电平有效。 但是,这两个控制信号本身并不能激活自己,使之有效去控制读/写操作,必须由软件编程,在程序中执行IN/OUT指令才能激活。 执行IN指令使IOR信号有效,完成读操作。 执行OUT指令使IOW信号有效,完成写操作。 4.C语言I/O语句3.3I/O端口地址分配及选用的原则 3.3.1早期微机I/O地址的分配 I/O端口只使用了低10位地址线A0~A9,地址范围0000H~03FFH。I/O空间分成系统I/O支持芯片的端口地址和常规外设接口卡的端口地址两部分。如表3.1和表3.2所示。 3.3.2现代微机I/O地址的分配 3.3.3I/O端口地址选用的原则 3.4I/O端口地址译码 3.4.1I/O地址译码的方法 3.4.2I/O地址译码电路的输入与输出信号线 3.4.3CS的物理含义 3.5设计I/O端口地址译码电路应注意的问题 1.合理选用I/O端口地址范围 2.正确选用I/O地址译码方法 3.灵活选用I/O地址译码电路 I/O端口地址分配 PC微机I/O地址线有16根,对应的I/O端口编址可达64K字节。 其端口地址译码是采用非完全译码方式,即只考虑了低10位地址线A0~A9,而没有考虑高6位地址线A10~A15。 I/0端口地址范围是0000H~03FFH,总共只有1024个端口。 I/O端口地址选用的原则 凡是被系统配置占用了的地址一律不能使用; 未被占用的地址,用户可以使用。但申明保留的地址,不要使用。 用户可使用300H--31FH地址。I/O端口地址译码I/O地址译码方法3.6I/O端口地址译码电路设计 例1单个端口地址译码电路设计 1.要求 设计I/O端口地址为2F8H的只读译码电路。 2.分析 由于是单个端口地址的译码电路,不需产生片选信号,故采用全译码方法。地址线全部作为译码电路的输入线,