第九章-输入输出方法及常用的接口电路-1_第1页
第九章-输入输出方法及常用的接口电路-1_第2页
第九章-输入输出方法及常用的接口电路-1_第3页
第九章-输入输出方法及常用的接口电路-1_第4页
第九章-输入输出方法及常用的接口电路-1_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章输入输出方法及常用的接口电路

9.1I/O接口的概念与功能

1.概述

CPURAM/ROM总线接口接口接口接口

磁盘键盘打印机显示器接口和接口技术接口指CPU、存储器、外设之间通过总线进行连接的电路部分,是CPU与外界进行信息交换的中转站。接口技术是研究CPU如何与外部世界进行最佳耦合与匹配,实现双方高效、可靠地交换信息的一门技术,是软件、硬件结合的体现,是微机应用的关键。外设是用来实现人机交互的一些机电设备。外设处理信息的类型、速度、通信方式与CPU不匹配,不能直接挂在总线上,必须通过接口和系统相连为什么要用接口电路?接口电路的典型结构从编程角度看,接口内部主要包括一个或多个

CPU可以进行读/写操作的寄存器,又称为I/O端口。各I/O端口由端口地址区分。I/O端口1I/O端口2I/O端口3地址译码数据缓冲控制电路外设ABDBCBCPU按存放信息的不同,I/O端口可分为三种类型数据端口:用于存放CPU与外设间传送的数据信息状态端口:用于暂存外设的状态信息控制端口:用于存放CPU对外设或接口的控制信息,控制外设或接口的工作方式。10010101(状态端口)01101010(数据端口)11000110(控制端口)地址译码数据缓冲控制电路外设ABDBCBCPUCPU对外设输入/输出的控制,是通过对接口电路中各I/O端口的读/写操作完成。I/O端口1I/O端口2I/O端口3地址译码数据缓冲控制电路外设ABDBCBCPU2.I/O接口电路的基本功能对输入输出数据进行缓冲、隔离和锁存对信号的形式和数据格式进行交换与匹配提供信息相互交换的应答联络信号根据寻址信息选择相应的外设CPU与外设交换的信息大致可分为数据信息

状态信息

控制信息I/O接口电路芯片主要由以下几部分组成:数据端口

控制端口

状态端口地址译码电路控制逻辑电路数据缓冲电路I/O接口电路按不同方式分类主要有以下几种:按数据传送方式分类,可分为并行接口和串行接口;按功能选择的灵活性分类,可分为可编程接口和不可编程接口;按通用性分类、可分为通用接口和专用接口按数据控制方式分类,可分为程序型接口和DMA(DirectMemoryAccess)型接口。

9.2I/O端口的编址及基本的输入/输出方法

I/O端口的编址和译码一、

I/O端口的编址方式二、8088的输入/输出指令和时序三、I/O端口的译码一、I/O端口的编址方式1、端口与存储器分别独立编址2、端口与存储器统一编址特点:端口与存储器分别独立编址端口不占用内存空间设有专门的I/O指令对端口进行读写,对内存操作的指令不能用于I/O端口例Intel的80X86系列、Z80系列I/O空间内存空间1、端口与存储器分别独立编址(I/O映射方式)例MOV[10H],AL

对内存操作

IN10H,AL对端口操作

2、端口与存储器统一编址(存储器映射方式)特点:I/O端口相当于内存的一部分,

使内存容量减小对I/O端口的读/写与对存储器的读/写相同,所有可对内存操作的指令对I/O端口均可使用,

指令系统中不专设I/O指令。例

motorola的M6800系列日立H8S单片机系列内存空间I/O空间二、8088的输入/输出指令和时序1.输入指令IN2.输出指令OUT3.输入/输出指令时序输入/输出指令实现I/O端口与CPU之间的数据传送I/O端口1I/O端口2I/O端口3地址译码数据缓冲控制电路外设ABDBCBCPU可寻址220=1M个内存单元内存范围00000~FFFFFh

内存单元的地址有5种寻址

可寻址216=64K个I/O端口I/O端口范围0000~FFFFHI/O端口的地址由一个8位二进制数直接寻址或DX寄存器间接寻址

8088CPU采用I/O端口与存储器分别独立编址I/O空间内存空间1.输入指令IN格式执行操作INAL,port(AL)←

(port端口)INAX,port(AL)←

(port端口)(AH)←

(port+1端口)

INAL,DX(AL)←

((DX)端口)

INAX,DX(AL)←

((DX)端口)(AH)←

((DX)+1端口)port为数字形式的端口地址,大小为0~255或0~FFH例(1)INAL,28H

若(28H端口)=10101111B

执行后(AL)=(28H端口)=0AFH(2)INAX,28H

若(28H端口)=10101111B

(29H端口)=01010000B

执行后(AL)=(28H端口)=0AFH

(AH)=(29H端口)=50H(3)MOVDX,300HINAL,DX

若(300H端口)=69H

执行后(AL)=(300H端口)=69H2.输出指令OUTport为数字形式的端口地址,大小为0~255或0~FFH格式执行操作OUTport,AL

(port端口)

←(AL)OUTport,AX

(port端口)

←(AL)

(port+1端口)

←(AH)OUTDX,AL((DX)端口)←(AL)OUTDX,AX

((DX)端口)

(AL)((DX)+1端口)

←(AH)(1)OUT21H,AL

若(AL)=11001100B

执行后(21H端口)=0CCH(2)MOVDX,21BH

OUTDX,AL

若(AL)=10100110B

执行后(21BH端口)=(AL)=0A6H例(1)累加器AL、AX的专用指令

对输入指令IN,目的操作数只能为AL,或AX

INAL,21HINAX,DXINBX,21H 错

对输出指令OUT,源操作数只能为AL,或AXOUT20H,ALOUTDX,AXOUTDX,CX 错

输入/输出指令(IN、OUT)特点:(2)端口地址可由直接方式或间接方式给出

OUT219H,AL

MOVDX,219HOUTDX,AL例

INAL,218H

MOVDX,218HINAL,DX当端口号>FFH,即>255时,

需把端口号放在DX寄存器中,

DX是一个16位寄存器,范围在0~FFFFh之间。当端口号在0~FFH,即0~255时,可在指令中直接指定端口号例

INAL,21HOUT20H,AL当端口号在0~FFH,即0~255时,可在指令中直接指定端口号,称长格式指令当端口号>FFH,即>255时,

需把端口号放在DX寄存器中,称短格式指令原因是使用直接端口方式的指令机器码相对长例指令机器码

INAL,21HE421;两个字节OUT20H,ALE620INAL,DXEC;一个字节OUTDX,ALEE(3)可进行字节或字传送

由指令中AL或AX的类型决定(4)注意端口地址与端口内容的区别

INAL,21H不等于(AL)←21HOUTDX,AL不等于(DX)←(AL)INAL,20H;字节传送INAX,20H;字传送INAL,DX;字节传送INAX,DX;字传送OUT20H,AL;字节传送OUT

20H,AX;字传送OUTDX,AL;字节传送OUTDX,AX;字传送

3.输入/输出指令时序当CPU执行IN指令时,进入I/O端口读周期当CPU执行OUT指令时,进入I/O端口写周期 (1)在最小模式下,I/O端口的读、写周期。(2)IBMPC/XT总线上I/O端口的读、写周期。(1)在最小模式下,I/O端口的读、写周期

与读、写存储器的过程相似,不同之处:1.IO/M变高,CPU操作I/O端口。2.端口的地址信号出现在A15~A0上,

A19~A16全为低电平。T1T2T3T4IO/MA15~A8A19~A16/S6~S3ALERDDT/RDENCLKA7~A0

D7~D0AD7~AD08088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCA15A16/S3A17/S4A18/S5A19/S6SSOMN/MXRDHOLDHLDAWRIO/MDT/RDENALEINTATESTREADYRESET8088CPU最小模式下,I/O端口读周期时序8088CPU最小模式下,I/O端口写周期时序T1T2T3T4IO/MA15~A8AD7~AD0ALEWRDT/RDENCLKA7~A0

D7~D08088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCA15A16/S3A17/S4A18/S5A19/S6SSOMN/MXRDHOLDHLDAWRIO/MDT/RDENALEINTATESTREADYRESETA19~A16/S6~S3(2)IBMPC/XT总线上I/O端口的读、写周期

与读、写存储器的过程相似,不同之处:1.IOR、IOW变低,CPU操作I/O端口。2.端口的地址信号出现在A15~A0上,

A19~A16全为低电平。3.增加了一个TW等待周期

IBMPC/XT总线上I/O端口读周期当CPU执行IN指令时,进入I/O端口读周期,从指定的端口读入数据到CPU中。I/O端口1I/O端口2I/O端口3地址译码数据缓冲控制电路外设ABDBCBCPU

I/O端口读周期时序D7~D0IORA15~A0ALECLKT4T1T2T3TwGNDRESET+5VIRQ2-5VDRQ2-12V+12VGNDMEMWMEMRIOWIORDACK3DRQ3DACK1DRQ1DACK0CLOCKIRQ7IRQ6IRQ5IRQ4IRQ3DACK2T/CALE+5VOSCGNDI/OCHCKD7D6D5D4D3D2D1D0I/OCHRDYAENA19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

IBMPC/XT总线插槽引脚信号例

假设端口218H的内容为7BHMOVDX,218HINAL,DX信号变化过程:①A15~A0上出现地址信号

0000001000011000B(由CPU发出)②ALE上出现正脉冲信号③IOR变低④D7~D0上出现有效信号

01111011B(由端口送出)⑤IOR变高,数据进入ALD7~D0IORA15~A0ALECLKT4T1T2T3Tw

IBMPC/XT总线上I/O端口写周期当CPU执行OUT指令时,进入I/O端口写周期,将数据写入指定的端口。I/O端口1I/O端口2I/O端口3地址译码数据缓冲控制电路外设ABDBCBCPU

I/O端口写周期时序A15~A0ALEIOWCLKD7~D0T4T1T2T3TwGNDRESET+5VIRQ2-5VDRQ2-12V+12VGNDMEMWMEMRIOWIORDACK3DRQ3DACK1DRQ1DACK0CLOCKIRQ7IRQ6IRQ5IRQ4IRQ3DACK2T/CALE+5VOSCGNDI/OCHCKD7D6D5D4D3D2D1D0I/OCHRDYAENA19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

IBMPC/XT总线插槽引脚信号例

假设(AL)=92HMOVDX,319HOUTDX,AL

信号变化过程:①A15~A0上出现地址信号

0000001100011001B(由CPU发出)②ALE上出现正脉冲信号③IOW变低④D7~D0上出现有效信号

10010010B(由CPU送出)⑤IOW变高,数据写入319H端口A15~A0ALEIOWCLKD7~D0T4T1T2T3Tw三、I/O端口的译码

1.

译码电路的作用

2.译码电路的构成

3.设计译码电路的方法

4.片内译码和片选译码1、译码电路的作用将CPU执行IN/OUT指令发出的地址信号,“翻译”成欲操作端口的选通信号,解决存储器、I/O设备与CPU连接时地址总线失配问题。

此信号常作为接口内三态门或锁存器的控制信号,接通或断开接口数据线与系统的连接。IN指令时序A15~A0IORCLKD7~D0T4T1T2T3TwA15~A0CLKIOWD7~D0T4T1T2T3TwOUT指令时序该电路在CPU执行指令

MOVDX,200HINAL,DX将输入设备的数据读入CPU内AL中图中译码电路的作用:只当A15~A0上出现200H时,(即0000001000000000B)输出0,其他输出1。例

一个输入设备的简单接口电路三态缓冲器输入设备数据线IOR地址译码地址线

200H000D7~D0A15~A0与非PC总线执行:MOVDX,200H

INAL,DX

三态缓冲器输入设备数据线IOR地址译码地址线

200H000D7~D0A15~A0与非PC总线IN指令时序A15~A0IORCLKD7~D0T4T1T2T3Tw0000001000000000输入设备接口电路,即硬件上保证:只在CPU执行从200H端口输入数据时,三态门处于工作状态,使输入设备的数据送上总线侧,而CPU执行其它指令时,

三态门均处于高阻状态,使输入设备的数据线与总线侧断开三态缓冲器输入设备数据线IOR地址译码地址线

200H000D7~D0A15~A0与非PC总线MOVDX,200HINAL,DX该电路在CPU执行指令

MOVDX,300HOUTDX,AL

将CPU内AL中的数据送至输出设备图中译码电路的作用:只当A15~A0上出现300H时,(即0000001100000000B)输出0,其他输出1。例一个输出设备的简单接口电路PC总线锁存器输出设备数据线IOW地址译码地址线

300H000D7~D0A15~A0与非OUT指令时序执行:

MOVDX,300HOUTDX,AL

A15~A0CLKIOWD7~D0T4T1T2T3TwPC总线锁存器输出设备数据线IOW地址译码地址线

300H000D7~D0A15~A0与非0000001100000000输出设备接口电路,即硬件上保证:只在CPU执行从300H端口输出数据时,锁存器处于触发状态,其输出随输入变化,而CPU执行其它指令时,

锁存器均处于锁存状态,其输出不随输入变化,PC总线锁存器输出设备数据线IOW地址译码地址线

300H000D7~D0A15~A0与非MOVDX,300HOUTDX,AL2、译码电路的构成74LS138译码器门电路:与门、非门、或门、与非门、或非门等译码器:

2-4线译码器74LS1393-8线译码器74LS1384-16线译码器74LS154等可用门电路、译码器或者两者的组合实现。AY0BY1CY2Y3G1Y4G2AY5G2BY6Y7据端口地址确定地址信号A15~A0的取值,用门电路、译码器或两者组合实现满足此取值情况的电路。3、设计译码电路的方法设计译码电路时:

1.端口的选通信号通常为低电平有效

2.除端口的地址信号参加译码外,控制信号IOW、IOR(IO/M、AEN也可参加译码)译码电路A0A1A14A15IORIOWAEN译码电路示意图例设计端口地址为218H的译码电路分析

CPU执行IN/OUT指令时,发出端口的地址信号

MOVDX,218HINAL,DX或

OUTDX,AL对应218H端口的地址信号为(取A9~A0):

A9A8A7A6A5A4A3A2A1A0(地址信号)

1000011000B218H只要满足此地址取值的译码电路均可方法一、用门电路实现218H的地址译码数据线DBRDWRCS端口译码电路0A9A8A7A6A5A4A3A2A1A0AENIORIOWI/O接口PC总线D0~D7D0~D710000110000&译码电路部分满足:只当地址信号A9~A0为:A9A8A7A6A5A4A3A2A1A01000011000即218H时,输出0,使I/O接口的CS有效否则输出1

使I/O接口的CS无效数据线DBRDWRCS端口译码电路0A9A8A7A6A5A4A3A2A1A0AENIORIOWI/O接口PC总线D0~D7D0~D710000110000&注意译码电路中:由于高位地址线A15~A10未参与译码,即:地址A15~A0为:××××××1000011000均能输出0,所以该电路使:一个端口对应多个地址

共26=64个

218,618,

A18,E18等等采用实际芯片PC总线RDWRCSI/O接口D0~D7数据线DB端口译码电路0A9A8A7A6A5A4A3A2A1A0AEN+5VIORIOWD0~D710000110000&&≥10074LS3074LS2074LS3274LS30为8输入与非门74LS20为4输入与非门74LS32为2输入或门当地址信号为:A9A8A7A6A5A4A3A2A1A01000011000即地址为218H或门74LS32输出0,使I/O接口的CS有效。当端口地址信号为:A9A8A7A6A5A4A3A2A1A01000011000即218H时,Y0输出0,使I/O接口的CS有效方法二、用译码器、门电路组合实现218H的地址译码74LS1383-8译码器218HAY0BY1CY2G1Y3Y4G2AY5Y6G2BY70000110000100&A0A1A2AENA3A4A5A6A7A8A9IORIOWPC总线CSI/O接口D0~D7&RDWR数据线DBD0~D7端口译码电路片内译码:在芯片内部的译码电路用于区分芯片内部不同的端口片选译码:在芯片外部的译码电路用于选择不同的芯片或端口4、片内译码和片选译码片选译码通常译出的是一个地址范围并行接口8255ACS外设数据线A0A1RDWRPC总线IORA0A1IOWA2A3A4A5A6A7A8A9AEN片选译码片内译码端口A端口B端口C端口D串行接口8251

数/模转换0832模/数转换0809218

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论