欢迎来到天天文库
浏览记录
ID:49393753
大小:1.65 MB
页数:42页
时间:2020-02-06
《微型计算机接口 第3章 IO端口地址译码技术.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2021/8/13计算机接口技术1第3章I/O端口地址译码技术本章主要内容I/O端口的基本概念I/O端口译码的基本原理I/O端口译码电路的设计1、接口信息数据信号:如:8位、16位、32位数据;状态信号:表示外设是否准备好信号。如:READY、BUSY、ACK控制信号:表示启动、停止外设之类的信号.(STROBE)一、接口信息与功能CPU地址数据控制数据控制状态I/O设备接口电路二、接口软件(设备驱动程序)初始化程序段:设置接口工作方式及初始条件。传送方式处理程序段:CPU针对不同的I/O设备有不
2、同的处理方式。主控程序段:完成接口任务的程序。程序终止与退出程序段:接口电路硬件保护及操作系统中数据恢复。辅助程序段:提供人-机对话手段。3、接口的功能数据缓冲功能:通过寄存器或锁存器实现。存放数据的寄存器或锁存器称之为数据口。接受和执行CPU命令功能:存放CPU命令代码的寄存器称之为命令口,存放执行状态信息的寄存器称之为状态口。设备选择功能:CPU通过地址译码选择不同外设。即CPU通过地址译码选择不同I/O接口。信号转换功能:协调总线信号与I/O设备信号。转换包括信号的逻辑关系、时序配合和电平转
3、换。可编程功能:增加接口的灵活性和智能性。3.1I/O地址空间2021/8/13计算机接口技术5如果忽略I/O地址空间的物理特征,仅从软件编程的角度来看,和存储器地址空间一样,I/O地址空间也是一片连续的地址单元,可供各种外设与CPU交换信息时,存放数据、状态和命令代码之用。实际上,一个I/O地址空间的地址单元是对应接口电路中的一个寄存器或控制器,所以把它们称为接口中的端口。I/O端口地址与存储器的存储单元一样,都是以数据字节来组织的。无论是早期微机还是现代微机的I/O地址线都只有16位,因此I/
4、O端口地址空间范围为0000H~FFFFH,是连续的64KB地址,每一个地址对应一个8位的I/O端口,两个相邻的8位端口可以构成一个16位的端口;4个相邻的8位端口可以构成一个32位的端口。3.2I/O端口3.2.1什么是端口端口(port)是接口(Interface)电路中能被CPU访问的寄存器的地址,是物理电路中寄存器的抽象。微机系统给接口电路中的每个寄存器分配一个端口,因此,CPU在访问这些寄存器时,只需指明它们的端口,不需指明什么寄存器。这样,我们在输入/输出程序中,只看到端口,而看不到相
5、应的具体寄存器。也就是说,访问端口就是访问接口电路中的寄存器。可见,端口是为了编程从抽象的逻辑概念来定义的,而寄存器是从物理含义来定义的。接口电路中有三种不同类型的端口,存储不同的信息,分别是数据口、状态口和控制口。2021/8/13计算机接口技术6CPU数据口状态口控制口外设3.2.2I/O端口共用技术一般情况下,一个端口只接收一种信息(命令、状态或数据)的访问,但有些接口芯片,允许同一端口既作命令口用,又作状态口用,或允许向同一个命令口写入多个命令字,这就产生端口共用的问题。端口共用问题的处理
6、方法是:对命令口和状态口共用的处理方法是,根据读/写操作来区分。向该口写,就是写命令,作命令口用;从该端口读,就是读状态,作状态口用例如,串行接口芯片8251A采用这种办法。对多个命令字写到同一个命令口时,可采用两种办法解决:其一,在命令字中设置特征位,根据特征位的不同,就可以识别不同的命令,例如82C55A接口芯片采用这种办法;其二,在编写初始化程序段时,按先后顺序向同一个端口写入不同的命令字,命令寄存器就根据先后顺序的约定来识别不同的命令,8251A接口芯片采用这种方法。2021/8/13计算
7、机接口技术73.2.3I/O端口地址编址方式2021/8/13计算机接口技术8接口中的端口地址单独编址而不和存储空间合在一起优点缺点I/O地址不占用存储器空间I/O指令类型少I/O指令短,执行速度快需要增加芯片引脚地址线少,简化译码电路指令区别明显,程序可读性好I/O端口有独立编址和统一编址两种方式2021/8/13计算机接口技术9从存储空间中划出一部分地址空间给I/O设备使用,把I/O接口中的端口当做存储器单元一样进行访问优点缺点使用访问存储器的指令,I/O处理能力增强占用存储器地址空间使其容量
8、减少拥有较大的寻址空间指令更长,执行时间长地址线多,译码电路复杂3.2.4I/O端口访问本节只讨论累加器I/O指令IN和OUT,它们用于在I/O端口和AL、AX、EAX之间交换数据。例如:2021/8/13计算机接口技术10分累加器I/O指令和串I/O指令INAL,0F4H;从端口0F4H输入8位数据到ALINAX,0F4H;将端口F4H和F5H的16位数据送AXINEAX,0F4H;将端口F4H、F5H、F6H和F7H的32位数据送;EAXINEAX,DX;从DX指出的端口输入3
此文档下载收益归作者所有