首页 微机接口技术第2章 IO端口地址译码技术

微机接口技术第2章 IO端口地址译码技术

举报
开通vip

微机接口技术第2章 IO端口地址译码技术第二章I/O端口地址译码技术 本章内容2.1I/O端口及其编址方式2.2I/O端口地址分配2.3I/O端口地址译码2.4GAL器件及其在I/O地址译码中的作用*2.1I/O端口及其编址方式 接口与选择设备 接口电路根据需求选择所需的设备是由I/O端口地址译码电路实现的。 进行设备端口选择 是接口电路中必不可少的部分*2.1I/O端口及其编址方式 I/O端口 通常把I/O接口电路中可以被CPU直接访问的寄存器或某些特定的器件称之为端口(Port)。 每个I/O端口都有一个地址:接口中的不同寄存器或电路的编号。 端口:...

微机接口技术第2章 IO端口地址译码技术
第二章I/O端口地址译码技术 本章内容2.1I/O端口及其编址方式2.2I/O端口地址分配2.3I/O端口地址译码2.4GAL器件及其在I/O地址译码中的作用*2.1I/O端口及其编址方式 接口与选择设备 接口电路根据需求选择所需的设备是由I/O端口地址译码电路实现的。 进行设备端口选择 是接口电路中必不可少的部分*2.1I/O端口及其编址方式 I/O端口 通常把I/O接口电路中可以被CPU直接访问的寄存器或某些特定的器件称之为端口(Port)。 每个I/O端口都有一个地址:接口中的不同寄存器或电路的编号。 端口:命令口、状态口和数据口。 CPU通过I/O命令对接口进行控制。 I/O操作 I/O操作是指CPU通过接口的端口地址向接口电路中的寄存器发送命令,读取状态和传送数据,不是直接对I/O设备的操作。*2.1I/O端口及其编址方式 命令、接口与I/O端口关系 一个接口中可以有多个I/O端口。 如命令口、状态口和数据口,分别对应于命令寄存器、状态寄存器和数据寄存器; 接口中的端口数目可多可少。如8251、8259接口芯片只有两个端口;而8237有16个端口,8255有4个端口。 一个I/O端口可能接受多种命令。 有的端口只能写或只能读,而有的端口则可读可写。比如,8255的一个命令口可以接收方式控制字和位控字这两种命令。*2.1I/O端口及其编址方式 端口地址有两种编址方式: 统一编址,也称为存储器映射方式。 将端口地址与存储器地址统一编址,所以这种编址方式也称之为统一编址方式; 独立编址,也称为I/O映射方式。 将I/O端口地址与存储器地址分别进行独立的编址,也称之为独立编址。*2.1I/O端口及其编址方式 统一编址 将I/O接口中的端口地址和存储器单元地址一样对待,统一编址,不设置专门的I/O指令。 I/O操作能使用对存储器操作的指令,因此,指令类型多,功能齐全,操作灵活、方便; 端口有较大的编址空间,对大型控制系统和数据通信系统有益; 统一编址方式的I/O指令长度比专用I/O指令长,译码较复杂,执行速度较慢。 Motorola系列、Apple系列微型机和一些小型机就是采用这种方式。*2.1I/O端口及其编址方式 I/O端口与内存单元统一编址地址空间*2.1I/O端口及其编址方式 独立编址 内存地址空间和I/O端口地址是相对独立的,I/O端口单独编址,不占用存储器空间。 设置专门的IN、OUT等I/O指令,指令短,速度快; I/O操作和存储器操作层次清晰,程序的可读性强。 端口地址和存储器地址可重叠而不会相互混淆。 大型计算机通常采用这种方式,有些微机,如IBM-PC系列和Z-80系列机也采用这种方式。*2.1I/O端口及其编址方式 I/O端口与内存单元独立编址空间*2.1I/O端口及其编址方式 例Intel的80X86系列、Z80系列 MOV[10H],AL;对内存操作 IN10H,AL;对端口操作*2.1I/O端口及其编址方式 独立编址方式下可采用单字节地址或双字节地址寻址方式 单字节地址作为端口地址(系统板上的I/O接口芯片),则最多可访问28=256个端口。 双字节地址作为端口地址(扩展槽上的I/O接口控制卡),则最多可寻址216=64K个端口。*2.1I/O端口及其编址方式 单字节地址 系统主板上接口芯片的端口,单字节地址(8位),256个地址,直接在指令中给出端口地址,其指令格式为: INAL,PORT;输入 OUTPORT,AL;输出 其中,PORT是一个单字节8位地址,例如: INAL,2CH;将地址为2CH端口的数据读入AL中 OUT61H,AL;将AL的值送入地址为61H的端口中*2.1I/O端口及其编址方式 双字节地址 I/O扩展槽地址,双字节地址(16位,64K个地址),地址部是放在DX寄存器中。指令格式为:MOVDX,XXXXH;XXXXH是双字节16位地址INAL,DX;8位输入MOVDX,XXXXHOUTDX,AL;8位输出例如:MOVDX,300H;300H为扩展板8255A的PA端口INAL,DXMOVDX,301H;301H为扩展板8255A的PB端口OUTDX,AL*2.1I/O端口及其编址方式 高级语言中读写端口 在PC系列微机上运行的几种C语言版本,都支持端口的输入输出操作。例如, C语言函数(头文件为dos.h)inportb()outportb()…… VC++函数(头文件为conio.h)int_inp(unsignedshortport);int_outp(unsignedshortport,intdatabyte);……*2.1I/O端口及其编址方式 例利用inportb()函数从指定的输入端口2F0H读取一个字节的数据,并显示在屏幕上。 inportb()的原形为:inportb(intport),头文件为dos.h main() {unsignedcharc; c=inportb(0x2f0); printf(“data=%0x”,c); }*2.1I/O端口及其编址方式 例将一个字节输出到输出端口360Houtportb()的原形:voidoutportb(intport,unsignedcharvalue);头文件为dos.h。程序:main(){outportb(0x360,0x55);}*2.1I/O端口及其编址方式 例:读取CMOS信息。main(){inti;unsignedcharc_CmosMessage[64];for(i=0;i<=63;i++){outportb(0x70,i);c_CmosMessage[i]=inportb(0x71);}printf("CMOS信息读取完毕。\n");} ;功能:读取CMOS信息 ;调用:AL=CMOS地址 ;返回:AL=CMOS内容 proc_read_cmosproc cli oral,80h;屏蔽NMI out70h,al jmp$+2 ;延迟 inal,71h;读CMOS数据 sti ret proc_read_cmosendp*2.1I/O端口及其编址方式 I/O端口访问 对端口的读/写操作仅限于I/O端口与CPU的累加器之间的数据传送。如接口的初始化、获取状态信息等操作。 读过程: CPU从端口读数据:INAL,PORT 数据保存到存储器:MOV(存储器地址),AL 写过程: 数据先送入AL:MOVAL,(存储器地址) 将AL中数据送I/O端口:OUTPORT,AL*2.2I/O端口地址分配 I/O接口硬件分类 系统板上的I/O芯片 这些芯片大多都是可编程的大规模集成电路,完成相应的接口操作,如定时/计数器、中断控制器、DMA控制器、并行接口等。 I/O扩展槽上的接口控制卡 这些控制卡(适配器)是由若干个集成电路按一定的逻辑组成的一个部件,如软驱卡、硬驱卡、图形卡、声卡、打印卡、串行通信卡等。*2.2I/O端口地址分配 I/O端口地址分类 不同的微机系统对I/O端口地址的分配不同。 PC微机I/O地址线有16根,I/O端口编址可达64K字节,由于采用非完全端口地址译码方式,即只考虑了低10位地址线A0~A9,所以I/O端口地址范围是0000H~03FFH,总共有210=1024个端口。 PC微机根据I/O接口的硬件分类,把I/O空间分成主板端口、扩展槽上的常规外设端口进行分配。如 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 2.1、表2.2所示。两部分。*表2.1系统板上接口芯片的端口地址2.2I/O端口地址分配 表2.1看出,实际中分配给每个接口芯片的端口地址并未全部用完* I/O芯片名称 地址范围 DMAC1DMAC2DMA页面寄存器 0000-001FH00C0-00DFH0080-009FH 中断控制器1中断控制器2 0020-003FH00A0-00BFH 定时器并行接口芯片(键盘接口)RT/CMOSRAM协处理器 0040-005FH0060-006FH0070-007FH00F0-00FFH2.2I/O端口地址分配表2.2扩展槽上接口控制卡的端口地址 表2.2看出,实际中分配给每个接口芯片的端口地址并未全部用完;允许用户使用的端口地址是300H~31FH。* I/O接口名称 地址范围 游戏控制卡 0200-020FH 并行口控制卡1并行口控制卡2 0370-037FH0270-027FH 串行口控制卡1串行口控制卡2 03F8-03FFH02F8-02FFH 原型插件板(用户可用) 0300-031FH 同步通信卡1同步通信卡2 03A0-03AF0380-038FH 单显MDA彩显CGA彩显EGA/VGA 03B0-03BFH03D0-03DFH03C0-03CFH 软驱控制卡硬驱控制卡 03F0-03FFH01F0-01FFH PC网卡 0360-036FH2.2I/O端口地址分配 I/O端口地址分配小结 PC系列I/O地址线有16根,对应64K空间; I/O端口译码只使用了A0-A9,共1024个端口,地址范围为0000H~03FFH; 初期:A9=0端口(512个)为系统板所用,其他端口(512个)为扩展槽所用; PC/AT:A8=A9=0端口(256个端口,000~0FFH)为系统板所用,其他端口(768个端口,100~3FFH)为扩展槽上的I/O接口卡使用。*2.2I/O端口地址分配 I/O端口地址选用原则(避免端口地址冲突) 不能使用被系统配置所占用的地址; 不要使用计算机厂家声明保留的地址,以免造成用户开发的产品与系统不兼容而失去使用价值; 一般,用户可使用300~31FH地址。但由于每个用户都可以使用这段地址,为了避免与其他用户开发的接口发生地址冲突,常常采用地址开关。*2.3I/0端口地址译码 I/O端口地址译码器(电路) CPU在与I/O端口进行读写操作时,首先需要通过地址译码电路将地址总线上的地址代码 翻译 阿房宫赋翻译下载德汉翻译pdf阿房宫赋翻译下载阿房宫赋翻译下载翻译理论.doc 成为所需要访问的端口(寄存器)的地址。*2.3I/0端口地址译码 I/O地址译码电路的输入信号 输入信号包括地址信号和控制信号 地址译码电路将输入的地址和控制信号进行逻辑组合,产生接口芯片的选择信号。 确定数据交换的流向(R/W)、数据宽度、传送方式等控制信号。*2.3I/0端口地址译码 I/O地址译码电路的输出信号 I/O地址译码电路的输出信号就是地址信号和控制信号经过逻辑组合后所产生的一根选中线,通常是低电平有效。 当一个接口芯片被选中时,该芯片的数据线就与系统总线间构成了通路,进而可以交换数据。*2.3I/0端口地址译码 I/O地址译码方法 译码方法一般分两步:先选择端口所在的芯片,然后选择端口。 IOW/IOR信号、AEN信号和高位地址线组合作为选择接口芯片(CS)的译码输入,译码工作是由接口芯片外部的译码电路来完成。 低位地址线(一位或几位)直接连在接口芯片上,用于内部端口的译码,由接口芯片内部的地址译码电路完成。例:一个接口内有三个端口A7A6A5A4A3A2A1A0*2.3I/0端口地址译码I/O端口地址译码示例*2.3I/0端口地址译码I/O端口地址译码示例*2.3I/0端口地址译码1.固定式端口地址译码 固定式地址译码电路中,分为单个端口地址译码和多个端口地址译码两种情况。 单个端口地址译码多采用逻辑门电路进行译码。 当系统中有多个接口芯片或有多个端口时,可选用集成的译码器进行译码。常见的译码器有74LS138、74LS154等。*2.3I/0端口地址译码 逻辑门电路符号 与门电路符号 或门电路符号 非门电路符号*2.3I/0端口地址译码 例1:设系统地址总线为10位,单端口地址(2F8H)的接口电路选用电路芯片:74LS04反向器74LS204-1与非门74LS308-1与非门74LS322输入或门* 地址线 00A9A8 A7A6A5A4 A3A2A1A0 二进制 0010 1111 1000 十进制 2 F 82.3I/0端口地址译码 图2.1(b)是能够执行读/写操作,端口地址 为2E2H的译码电路。*2.3I/0端口地址译码 接口中有多个端口时一般采用译码器电路构成,常见的译码器有4-16译码器(74LS154)、双2-4译码器(74LSl39)和3-8译码器(74LSl38)等。 74LS138译码器:工作条件:G1=1,G2A=G2B=0输出:输出的状态由C、B、A这三个输入信号的编码来决定*2.3I/0端口地址译码 74LSl38的真值表(表2.5)如下:* 输入 输出 G1G2AG2B CBA Y7Y6Y5Y4Y3Y2Y1Y0 100 000 11111110 100 001 11111101 100 010 11111011 100 011 11110111 100 100 11101111 100 101 11011111 100 110 10111111 100 111 01111111 0XX XXX 11111111 X1X XXX 11111111 XX1 XXX 111111112.3I/0端口地址译码 双2-4译码器74LS139*2.3I/0端口地址译码 4-16译码器74LS154*2.3I/0端口地址译码 例2:在IBMPC/XT机的系统板上,接口芯片的端口地址译码电路采用了3-8译码器74LSl38.A9A8A7A6A5A4A3A2A1A000000xxxxx?请自己分析上图端口地址范围。*2.3I/0端口地址译码 分析: 译码电路输入地址线的取值范围可见,译码电路输入地址线的取值范围在:0000~00FFH* 地址线 00A9A8 A7A6A5 A4A3A2A1A0 用途 控制 片选 片内端口寻址 十六进制 0H 0~7H 0~1FH2.3I/0端口地址译码 地址线的高5位参加译码,其中A5~A9经译码器,分别产生DMACS(8237)、INTRCS(8259)、T/CCS(8253)、PPICS(8255)的片选信号。当满足条件,即AEN=0(非DMA)、A9=0、A8=0时,根据A7A6A5三条地址线上的信号进行译码。 地址线的低5位A0~A4作为芯片内部寄存器的访问地址。 从74LSl38译码器的真值表可知,8237A的端口地址范围是000~01FH,8259A的端口地址范围是020~03FH等等,每个接口芯片内部的端口数目为32个,正好和前面表2.1所列出的端口地址分配表一致。*2.3I/0端口地址译码 例3:已知并行接口芯片8255A有4个端口,片选信号CS为低电平有效。试 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 一个译码电路,使该芯片的4个端口地址为2F0H~2F3H。*2.3I/0端口地址译码 分析注意两点: CBA=A4A3A2=100,使Y4为低电平 A9~A0=2F0H~2F3H* A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 AEN 2F0H 1 0 1 1 1 1 0 0 0 0 2F3H 1 0 1 1 1 1 0 0 1 1 G2B C B A G2A2.3I/0端口地址译码 例4:设计一个译码电路, 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 产生2A8H~2AFH共8个端口地址的选通信号 分析:由于要产生8个端口的地址信号,因此适合选用3-8译码器74LS138。对应的地址关系为:* A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 AEN 2A8H 1 0 1 0 1 0 1 0 0 0 2AFH 1 0 1 0 1 0 1 1 1 1 C B A G2A2.3I/0端口地址译码 选用3-8译码器74LS138设计的译码电路*2.3I/0端口地址译码2.可选式端口地址译码 根据要求,用拨动开关(如,跳线开关)来改变端口地址而无需改动硬件线路。 能适应不同的地址分配场合,为系统以后的扩充留有余地。 电路由地址开关、译码器、比较器或异或门等器件组成。*2.3I/0端口地址译码 例5:用4位比较器组成的可选式译码电路: 当A9A8A7A6的地址值与S3S2S1S0开关设定值匹配时,才能根据A5A4A3A2和AEN进一步译码。*2.3I/0端口地址译码 例6:用8位比较器74LS688组成的可选式    译码电路。当P0~7≠Q0~7时,P=1,输出高电平。当P0~7=Q0~7时,P=0,输出低电平。*2.3I/0端口地址译码 例7:用异或门组成的可选式译码电路* 当A11A10A9A8A7A6A5A4A3=011100010时,才能根据A2A1A0进一步译码,地址范围710H~717H。2.3I/0端口地址译码*2.3I/0端口地址译码 例8:采用跳接开关设计I/O端口地址译码电路 右图所示的可选式译码电路可有1024种选择,这种电路在主板、插卡中常用。*2.3I/0端口地址译码 例9:I/O端口地址共用。在由于读、写操作不会同时进行,一个输入端口和另一个输出端口可以使用同一个地址编码。例如,可安排数据输入端口、数据输出端口使用同一个地址,命令端口和状态端口使用同一个地址。*2.4GAL器件及其在I/O地址译码中的应用一、GAL器件的特点 GAL器件(GenericArrayLogic)是美国LATTICE公司推出的可编程逻辑器件PLD,具有以下特点: 可以实现组合逻辑电路和时序逻辑电路的多种功能。 采用电擦除 工艺 钢结构制作工艺流程车尿素生产工艺流程自动玻璃钢生产工艺2工艺纪律检查制度q345焊接工艺规程 ,可以反复修改,便于产品的开发和研制。 具有硬件的加密单元,可以防止抄袭和非法复制。 速度高而功耗低,其功耗只有双极型器件的1/2~1/4。*2.4GAL器件及其在I/O地址译码中的应用二、采用GAL器件设计地址译码电路的步骤1.硬件分析与设计 由端口地址范围来确定地址线的分配和使用。例如, 端口地址是300~3FFH:需要10位地址线; 每个芯片内部有4个端口:用A1、A0作为片内寄存器寻址; 每个段包含4个芯片:A3、A2两位地址进行组合,实现片选; 要分为16个段,A7、A6、A5、A4四位地址作为段选。 A9A8=(11)2=(3)10*2.4GAL器件及其在I/O地址译码中的应用 决定参加译码的控制线。一般只需要IOR、IOW和AEN三根控制线。 GAL器件的选择。根据输入/输出线的多少来决定。例如,GAL16V8芯片为20脚的器件。有8个输入端,8个输出端(也可配置作为输入端),1个时钟输入端和1个输出允许端。这个芯片最多可有16个输入引脚,故满足需求。*2.4GAL器件及其在I/O地址译码中的应用2.软件设计 使用GAL器件的软件设计过程包括: 选择满足要求的GAL编程器。 掌握开发装置中配置的编程工具的要求和使用方法,编写输入的源程序,生成GAL器件熔丝状态分布图等文件。 最后将设计的数据在GAL编程器上“烧”到GAL器件中。*第二章作业 1~8,12,15,16*
本文档为【微机接口技术第2章 IO端口地址译码技术】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
孟子73代
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:工学
上传时间:2018-08-21
浏览量:36