微型计算机接口及控制技术 教学课件 ppt 作者 古辉 第2章 IO端口地址译码技术

上传人:E**** 文档编号:89501229 上传时间:2019-05-26 格式:PPT 页数:58 大小:875.50KB
返回 下载 相关 举报
微型计算机接口及控制技术 教学课件 ppt 作者 古辉 第2章 IO端口地址译码技术_第1页
第1页 / 共58页
微型计算机接口及控制技术 教学课件 ppt 作者 古辉 第2章 IO端口地址译码技术_第2页
第2页 / 共58页
微型计算机接口及控制技术 教学课件 ppt 作者 古辉 第2章 IO端口地址译码技术_第3页
第3页 / 共58页
微型计算机接口及控制技术 教学课件 ppt 作者 古辉 第2章 IO端口地址译码技术_第4页
第4页 / 共58页
微型计算机接口及控制技术 教学课件 ppt 作者 古辉 第2章 IO端口地址译码技术_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《微型计算机接口及控制技术 教学课件 ppt 作者 古辉 第2章 IO端口地址译码技术》由会员分享,可在线阅读,更多相关《微型计算机接口及控制技术 教学课件 ppt 作者 古辉 第2章 IO端口地址译码技术(58页珍藏版)》请在金锄头文库上搜索。

1、1,第二章 I/O 端口地址译码技术,浙江工业大学信息学院 古辉 ,微机接口技术,2,第二章 I/O 端口地址译码技术,本章内容 2.1 I/O 端口及其编址方式 2.2 I/O 端口地址分配 2.3 I/O 端口地址译码 2.4 GAL器件及其在 I/O 地址译码中的作用,3,2.1 I/O 端口及其编址方式,接口与选择设备 接口电路根据需求选择所需的设备是由 I/O 端口地址译码电路实现的。 进行设备端口选择 是接口电路中必不可少的部分,4,2.1 I/O 端口及其编址方式,I/O 端口 通常把 I/O 接口电路中可以被CPU直接访问的寄存器或某些特定的器件称之为端口(Port) 。 每个

2、 I/O 端口都有一个地址:接口中的不同寄存器或电路的编号。 端口:命令口、状态口和数据口。 CPU通过 I/O 命令对接口进行控制。 I/O 操作 I/O 操作是指CPU通过接口的端口地址向接口电路中的寄存器发送命令,读取状态和传送数据,不是直接对 I/O 设备的操作。,5,2.1 I/O 端口及其编址方式,命令、接口与 I/O 端口关系 一个接口中可以有多个 I/O 端口。 如命令口、状态口和数据口,分别对应于命令寄存器、状态寄存器和数据寄存器 ; 接口中的端口数目可多可少。如8251、8259接口芯片只有两个端口;而8237有16个端口,8255有4个端口。 一个 I/O 端口可能接受多

3、种命令。 有的端口只能写或只能读,而有的端口则可读可写。比如,8255的一个命令口可以接收方式控制字和位控字这两种命令。,6,2.1 I/O 端口及其编址方式,端口地址有两种编址方式: 统一编址,也称为存储器映射方式。 将端口地址与存储器地址统一编址,所以这种编址方式也称之为统一编址方式; 独立编址,也称为 I/O 映射方式。 将 I/O 端口地址与存储器地址分别进行独立的编址,也称之为独立编址。,7,2.1 I/O 端口及其编址方式,统一编址 将 I/O 接口中的端口地址和存储器单元地址一样对待,统一编址,不设置专门的 I/O 指令。 I/O 操作能使用对存储器操作的指令,因此,指令类型多,

4、功能齐全,操作灵活、方便; 端口有较大的编址空间,对大型控制系统和数据通信系统有益; 统一编址方式的I/O指令长度比专用 I/O 指令长,译码较复杂,执行速度较慢。 Motorola系列、Apple系列微型机和一些小型机就是采用这种方式。,8,2.1 I/O 端口及其编址方式,I/O 端口与内存单元统一编址地址空间,9,2.1 I/O 端口及其编址方式,独立编址 内存地址空间和 I/O 端口地址是相对独立的, I/O 端口单独编址,不占用存储器空间。 设置专门的IN、OUT等 I/O 指令, 指令短, 速度快; I/O 操作和存储器操作层次清晰,程序的可读性强。 端口地址和存储器地址可重叠而不

5、会相互混淆。 大型计算机通常采用这种方式,有些微机,如IBM-PC系列和Z-80系列机也采用这种方式。,10,2.1 I/O 端口及其编址方式,I/O 端口与内存单元独立编址空间,11,2.1 I/O 端口及其编址方式,例 Intel的80X86系列、Z80系列 MOV 10H , AL ;对内存操作 IN 10H, AL ;对端口操作,12,2.1 I/O 端口及其编址方式,独立编址方式下可采用单字节地址或双字节地址寻址方式 单字节地址作为端口地址(系统板上的 I/O 接口芯片),则最多可访问28=256个端口。 双字节地址作为端口地址(扩展槽上的 I/O 接口控制卡),则最多可寻址216=

6、64K个端口。,13,2.1 I/O 端口及其编址方式,单字节地址 系统主板上接口芯片的端口,单字节地址(8位),256个地址,直接在指令中给出端口地址,其指令格式为: IN AL,PORT ;输入 OUT PORT,AL ;输出 其中,PORT是一个单字节8位地址, 例如: IN AL,2CH ;将地址为2CH端口的数据读入AL中 OUT 61H,AL ;将AL的值送入地址为61H的端口中,14,2.1 I/O 端口及其编址方式,双字节地址 I/O 扩展槽地址,双字节地址(16位,64K个地址),地址部是放在DX寄存器中。指令格式为: MOV DX,XXXXH ;XXXXH是双字节16位地址

7、 IN AL,DX ;8位输入 MOV DX,XXXXH OUT DX,AL ;8位输出 例如: MOV DX,300H ;300H为扩展板8255A的PA端口 IN AL,DX MOV DX,301H ;301H为扩展板8255A的PB端口 OUT DX,AL,15,2.1 I/O 端口及其编址方式,高级语言中读写端口 在PC系列微机上运行的几种C语言版本,都支持端口的输入输出操作。例如, C语言函数(头文件为dos.h ) inportb( ) outportb( ) VC+函数(头文件为conio.h ) int _inp( unsigned short port ); int _out

8、p( unsigned short port, int databyte ); ,16,2.1 I/O 端口及其编址方式,例 利用inportb( )函数从指定的输入端口 2F0H读取一个字节的数据,并显示在 屏幕上。 inportb( )的原形为:inportb(int port),头文件为dos.h main( ) unsigned char c; c=inportb( 0x2f0 ); printf(“data=%0x”,c); ,17,2.1 I/O 端口及其编址方式,例 将一个字节输出到输出端口360H outportb( )的原形: void outportb( int port,

9、unsigned char value ); 头文件为dos.h。 程序: main( ) outportb(0x360,0x55); ,18,2.1 I/O 端口及其编址方式,例:读取CMOS信息。 main( ) int i; unsigned char c_CmosMessage64; for (i=0;i=63;i+) outportb(0x70,i); c_CmosMessagei=inportb(0x71) ; printf(“CMOS信息读取完毕。n“); ,;功能:读取CMOS信息 ;调用:AL=CMOS地址 ;返回:AL=CMOS内容 proc_read_cmos proc

10、cli or al,80h ;屏蔽NMI out 70h,al jmp $+2 ;延迟 in al,71h ;读CMOS数据 sti ret proc_read_cmos endp,19,2.1 I/O 端口及其编址方式,I/O 端口访问 对端口的读/写操作仅限于 I/O 端口与CPU的累加器之间的数据传送。如接口的初始化、获取状态信息等操作。 读过程: CPU从端口读数据:IN AL, PORT 数据保存到存储器:MOV (存储器地址), AL 写过程: 数据先送入AL: MOV AL, (存储器地址) 将AL中数据送 I/O 端口:OUT PORT, AL,20,2.2 I/O 端口地址分

11、配,I/O 接口硬件分类 系统板上的 I/O 芯片 这些芯片大多都是可编程的大规模集成电路,完成相应的接口操作,如定时/计数器、中断控制器、DMA控制器、并行接口等。 I/O 扩展槽上的接口控制卡 这些控制卡(适配器)是由若干个集成电路按一定的逻辑组成的一个部件,如软驱卡、硬驱卡、图形卡、声卡、打印卡、串行通信卡等。,21,2.2 I/O 端口地址分配,I/O 端口地址分类 不同的微机系统对 I/O 端口地址的分配不同。 PC微机 I/O 地址线有16根, I/O 端口编址可达64K字节,由于采用非完全端口地址译码方式,即只考虑了低10位地址线A0A9 ,所以 I/O 端口地址范围是0000H

12、03FFH,总共有210=1024个端口。 PC微机根据 I/O 接口的硬件分类,把 I/O 空间分成主板端口、扩展槽上的常规外设端口进行分配。如表2.1、表2.2所示。两部分。,22,表2.1 系统板上接口芯片的端口地址,2.2 I/O 端口地址分配,表2.1看出,实际中分配给每个接口芯片的端口地址并未全部用完,23,2.2 I/O 端口地址分配,表2.2 扩展槽上接口控制卡的端口地址,表2.2看出,实际中分配给每个接口芯片的端口地址并未全部用完;允许用户使用的端口地址是300H31FH。,24,2.2 I/O 端口地址分配,I/O 端口地址分配小结 PC系列 I/O 地址线有16根,对应6

13、4K空间; I/O 端口译码只使用了A0-A9,共1024个端口,地址范围为0000H03FFH; 初期:A9=0端口(512个)为系统板所用,其他端口(512个)为扩展槽所用; PC/AT:A8=A9=0端口(256个端口,0000FFH)为系统板所用,其他端口(768个端口,1003FFH)为扩展槽上的 I/O 接口卡使用。,25,2.2 I/O 端口地址分配,I/O 端口地址选用原则(避免端口地址冲突) 不能使用被系统配置所占用的地址; 不要使用计算机厂家声明保留的地址,以免造成用户开发的产品与系统不兼容而失去使用价值; 一般,用户可使用30031FH地址。但由于每个用户都可以使用这段地

14、址,为了避免与其他用户开发的接口发生地址冲突,常常采用地址开关。,26,2.3 I/0端口地址译码,I/O 端口地址译码器(电路) CPU在与 I/O 端口进行读写操作时,首先需要通过地址译码电路将地址总线上的地址代码翻译成为所需要访问的端口(寄存器)的地址。,27,2.3 I/0端口地址译码,I/O 地址译码电路的输入信号 输入信号包括地址信号和控制信号 地址译码电路将输入的地址和控制信号进行逻辑组合,产生接口芯片的选择信号。 确定数据交换的流向(R/W)、数据宽度、传送方式等控制信号。,28,2.3 I/0端口地址译码,I/O 地址译码电路的输出信号 I/O 地址译码电路的输出信号就是地址

15、信号和控制信号经过逻辑组合后所产生的一根选中线,通常是低电平有效。 当一个接口芯片被选中时,该芯片的数据线就与系统总线间构成了通路,进而可以交换数据。,29,2.3 I/0端口地址译码,I/O 地址译码方法 译码方法一般分两步:先选择端口所在的芯片,然后选择端口。 IOW/IOR信号、AEN信号和高位地址线组合作为选择接口芯片(CS)的译码输入,译码工作是由接口芯片外部的译码电路来完成。 低位地址线(一位或几位)直接连在接口芯片上,用于内部端口的译码,由接口芯片内部的地址译码电路完成。 例: 一个接口内有三个端口 A7A6 A5A4 A3A2 A1A0,30,2.3 I/0端口地址译码,I/O

16、 端口地址译码示例,31,2.3 I/0端口地址译码,I/O 端口地址译码示例,32,2.3 I/0端口地址译码,1. 固定式端口地址译码 固定式地址译码电路中,分为单个端口地址译码和多个端口地址译码两种情况。 单个端口地址译码多采用逻辑门电路进行译码。 当系统中有多个接口芯片或有多个端口时,可选用集成的译码器进行译码。常见的译码器有74LS138、74LS154等。,33,2.3 I/0端口地址译码,逻辑门电路符号 与门电路符号 或门电路符号 非门电路符号,34,2.3 I/0端口地址译码,例1:设系统地址总线为10位,单端口地址(2F8H)的接口电路,选用电路芯片: 74LS04 反向器 74LS20 4-1与非门 74LS30 8-1与非门 74LS32 2输入或门,图2.1 固定式端口地址译码电路(a),35,2.3 I/0端口地址译码,图2.1(b)是能够执行读/写操作,端口地址 为2E2H的译

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号