基本IO接口简介.ppt_第1页
基本IO接口简介.ppt_第2页
基本IO接口简介.ppt_第3页
基本IO接口简介.ppt_第4页
基本IO接口简介.ppt_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

第6章 基本I/O接口,6.1 外设接口的基本模型 6.2 程序控制I/O方式 6.3 中断方式 6.4 直接存贮器存取(DMA)方式,6.1 外设接口的基本模型,1. 应答联络 大多数外设与计算机进行信息交换时都需要事先进行联络,只有双方建立好联络关系(即握手成功)之后,双方才能进行信息交换。例如,欲将计算机内部的数据输出给外设,常规的工作过程为:首先由CPU读外设与系统连接的状态端口,获得外设的工作状态,CPU根外设状态决定输出数据的时刻。,图6.1 外设接口基本模型,2. 端口地址 当计算机系统中有多个外设时,CPU在某个时刻只能与一个外设打交道。为了确定此刻哪一个外设可以与计算机打交道,采取与内存同样的处理方法,利用二进制编码为外设编号,该编号被称为外设地址(又称I/O地址),也即通过外设地址来识别不同的外设。,3. 输入输出方法 外设与计算机间的信息交换可以用不同的输入输出方法完成。基本的输入输出方法有:程序控制I/O方式(无条件传送方式与查询方式)、中断方式、直接存贮器存取(DMA)方式。,6.2 程序控制I/O方式,6.2.1 无条件传送方式 所谓无条件传送方式是指可以在需要的时刻让CPU直接与外设进行输入输出操作,也即CPU仅需要通过I/O指令即可由接口获取外设数据或为外设提供数据。这种方式的实现很简单,硬件上只需要提供CPU与外设连接的数据端口,而软件上则只提供相应的输入或输出指令即可。,1.输入接口设计 对于简单的输入设备,在硬件上只需要设计一个数据输入接口即可以将该外设与CPU连接起来。实现数据输入接口的器件可选用三态门,如74LS244。,图6.2 开关K与微机系统连接的接口电路,如果希望完成如下任务:当开关接通时,CPU执行程序段ON;当开关断开时,CPU执行程序段OFF。下述指令的执行可以完成该任务: MOV DX, 0FFF7H IN AL,DX AND AL,01H JZON ;假定程序段ON与本程序段在同一内存段中 JMP OFF,图6.3 三态门作为数据输入接口的一般连接模式,2. 输出接口设计 作为无条件传送方式实现数据输出的例子,下面给出CPU对发光二极管的控制。图6.4为发光二极管与微机系统连接的接口电路。锁存器作为发光二极管与微机系统数据总线连接的中间接口,接收来自CPU的输出数据。当锁存器的CP端出现上升沿信号时,数据总线上的数据被锁存于锁存器内部并输出。,图6.4 发光二极管与微机系统连接的接口电路,反相器对锁存器起保护作用,当发光二极管发亮时,反相器提供足够大的吸入电流,以保护锁存器不受损坏。对于图中电路,CPU执行下述指令可以使两个发光二极管发亮: MOV DX,0000H MOV AL,81H OUT DX,AL 而CPU执行下述指令可以使两个发光二极管不发亮: MOV DX,0000H MOV AL,00H OUT DX,AL,图6.5 锁存器作为数据输出接口的一般连接模式,6.2.2 查询方式 1. 查询方式的实现 当外设已处于准备好数据的状: 在中断处理程序中要有开中断指令。 要设置足够大的堆栈。 要正确地操作堆栈。,图6.6 典型的查询方式工程流程,图6.7 查询方式实现I/O传送示例 (a)外设与微机接口电路; (b)外设工作时序,DAOUT: MOV AX, 0D200H MOV DS,AX MOV BX,0 ;初始化内存首地址 MOV CX,1000 ;初始化计数器 MOV DX,02F9H MOV AL,01H OUTDX,AL ;初始化选通信号,NEXT: MOV DX,02FAH WAT:IN AL,DX AND AL,80H JNZ WAT ;状态查询环 MOV DX,02F8H MOV AL, OUT DX,AL ;数据输出 MOV DX,02F9H MOV AL,00H OUT DX,AL,图6.8 几种轮询控制流程,CALL DLY100s ;DLY100s为100s的延迟子程序 MOV AL,01H OUT DX,AL ;产生选通信号 INC BX ;修改内存指针 LOOP NEXT ;输出次数的循环控制 RET,2. 多外设的查询控制 在微机系统中,希望以查询方式与微机进行信息交换的外设可能有多个。查询方式是一种同步机制,它以轮询的方式依次对各个外设进行服务。轮询的顺序确定了外设的优先级,而轮询的顺序又是根据外设的重要性确定。通常是相对重要的和速度快的外设先被查询、服务,而相对不重要的和速度慢的外设后被查询、服务。,6.3 I/O接口地址译码方法,1. 地址译码电路 地址译码是接口的基本功能之一。CPU在执行输入输出指令时,向地址总线发送16位外部设备的端口地址。在接收到与本接口相关的地址后,译码电路应能产生相应的选通信号,使相关端口的寄存器/缓冲器进行数据、命令或状态的传输,完成一次IO操作。由于一个接口上的几个端口地址通常是连续排列的,可以把16位地址码分解为二个部分:高位地址码用作对接口的选择,低位地址码用来选择接口内不同的端口。为了简化电路,IBM-PC微型计算机使用A0A9作为外部设备端口的地址。,设定端口地址时,注意不能和已有设备的端口地址重复。为了避免重复的发生,许多接口电路允许用“跳线器(JUMPER)”改变端口地址。图6-3-1(b)给出了一个“跳线器”的例子。异或门(半加器)的一个输入引脚来自跳线器的中间引脚,它可以由使用者选择连接“1”(+5V)或“0”(接地),另一个引脚分别连接A8和A9。将异或门的输出代替图6-3-1(a)中的A8,A9引脚连接到U2。二个跳线引脚均接地时,上面译码电路仍然产生330H333H的端口译码信号,而当二个跳线引脚均接“1”时,则上面译码电路会产生030H033H的端口译码信号。同理还可以产生130H133H,230H233H的译码信号。,图6-3-1,由于读、写操作不会同时进行,一个输入端口和另一个输出端口可以使用同一个地址编码。例如,可安排数据输入端口、数据输出端口使用同一个地址330H,命令端口和状态端口共同使用地址331H,则图6-3-1(a)中右端的信号组合电路可作如图6-3-2的修改。 图中,Y0,Y1是译码器输出的二个地址选择信号。需要注意的是,数据输入端口和数据输出端口虽然使用相同的地址,但却是二个各自独立的不同的端口。 外部接口的端口地址还可以由指令来设置。图3-3中U1是一个称为“配置寄存器”的8位锁存器。在对接口初始化时,将选定的该接口内各端口地址的高七位通过数据总线D6D0送入该锁存器。锁存器的输出送往8位“比较器”74LS688的Q输入端,比较器的P输入端连接地址总线的A3A9。CPU在执行IO指令时,如果由A9A3发来的地址与“配置寄存器”,图6-3-2,图6-3-3,6.4 可编程并行接口电路Intel 8255A,并行接口电路,在早期的微机中与串行口、软盘接口、硬盘接口等都放在一块多功能接口卡上,插在微机的扩展槽上使用。现在这部分电路已在微机的主板上由与CPU配套的芯片组北桥来实现其功能。如果要在其他的场合实现并行数据传送,在电路设计时采用专用的接口芯片最为方便。可编程的接口芯片8255A是完成并行通信的集成电路芯片。,6.4.1 8255A的主要性能和内部结构 8255A是为Intel公司的80系列微机配套的通用可编程并行接口芯片,具有三个可编程的端口(A端口、B端口和C端口),每个端口8条线,共有24条I/O引脚,也可分为2组工作,每组12条线,并有三种工作方式。 可编程是指可通过软件设置芯片的工作方式,因此这个芯片在与外部设备相连接时,通常不需要附加太多的外部逻辑电路,这给用户的使用带来很大方便。,芯片的主要技术性能如下: (1) 输入、输出电平与TTL电平完全兼容。 (2) 时序特性好。 (3) 部分位可以直接置“1”/置“0”,便于实现控制接口使用。 (4) 单一的+5 V电源。 8255A的内部结构框图如图10.7(a)所示,图10.7(b)为8255A的外引脚图。从图中可以看到,8255A主要由4部分组成。,图6.1 8255内部结构和引脚图 (a) 8255A内部结构;(b) 8255A外引脚图,1. 三个独立的数据口 8255A的三个数据口分别是A端口、B端口、C端口,它们彼此独立,都是8位的数据口,用来完成和外设之间的信息交换。三个口在使用上有所不同。 1) A端口 A端口对应一个8位的数据输入锁存器和一个8位的数据输出锁存器和缓冲器。因此A端口适合用在双向的数据传输场合,用A端口传送数据,不管是输入还是输出,都可以锁存。,2) B端口和C端口 这两个口分别是由一个8位的数据输入缓冲器和一个8位的数据输出锁存器和缓冲器组成。因此用B端口和C端口传送数据作输出端口时,数据信息可以实现锁存功能;而用作输入口时,则不能对数据实现锁存,这一点在使用中要注意。在实际应用中,A端口和B端口通常作为独立的输入口和输出口,而C端口常用来配合A端口和B端口的工作使用。C端口分成两个4位的端口,这两个4位的端口分别作为A端口和B端口的控制信号和输入状态信号使用。,2. A组控制电路和B组控制电路 控制电路分成A组控制和B组控制两组,A组控制电路控制A端口和C端口的高4位(PC4PC7)。B组控制电路控制B端口和C端口的低4位(PC0PC3)。这两组控制电路的作用是:由它们内部的控制寄存器接收CPU输出的方式控制命令字,还接收来自读/写控制逻辑电路的读/写命令,根据控制命令决定A组和B组的工作方式和读/写操作。,表6-1 8255A的控制信号与执行的操作之间的对应关系,4. 数据总线缓冲器 这是一个双向、三态的8位数据总线缓冲器,是8255A和系统总线相连接的通道,用来传送输入/输出的数据、CPU发出的控制字以及外设的状态信息。总之,8255A与CPU之间的所有信息传输都要经过数据总线缓冲器。,6.4.2 8255A的外部特性 8255A是40条引脚的双列直插式芯片,引脚排列如图10.7(b)所示。单一的+5 V电源,使用时要注意它的+5V电源引脚是第26脚,地线引脚是第7脚,它不像大多数TTL芯片电源和地线在右上角和左下角的位置,除了电源和地线之外,其他引脚的信号按连接的功能可分为两大组。,A1、A0(8,9PIN):端口译码信号。用来选择8255A内部的三个数据端口和一个控制端口的地址。其中对控制口只能进行写操作。 (1) 当A1A0=00时,选中A端口。 (2) 当A1A0=01时,选中B端口。 (3) 当A1A0=10时,选中C端口。 (4) 当A1A0=11时,选中控制端口。 A1、A0与读、写信号组合对各端口所执行的操作如表10-1所示。 D7D0(2734PIN):双向三态8位数据线,与系统的数据总线相连接。,8255A的数据线为8条,这样8位的接口芯片在与8086外部数据线为16条的CPU相连接时,应考虑接口芯片本身对地址的要求。由于在8086这样的16位外部总线系统中,CPU在进行数据传输时,低8位对应一个偶地址,高8位对应一个奇地址。如果将8255A的数据线D7D0与8086CPU的数据总线的低8位相连的话,从CPU这边看来,要求8255A的4个端口地址都应为偶地址,这样才能保证对8255A的端口的读/写能在一个总线周期内完成,但又要满足8255A本身对4个端口规定的地址要求是00,01,10,11。因此将8255A的A1和A0分别与8086系统总线的A2和A1相连,而将最低位A0总设置为0。,2. 和外设端相连的引脚 PA7PA0(3740 PIN,l4PIN):A端口的输入/输出引脚 PB7PB0(2518 PIN):B端口的输入/输出引脚 PC7PC0(1013,1714 PIN):C端口的输入/输出引脚,6.4.3 8255A的控制字和编程 由CPU执行输出指令,向8255A的端口输出不同的控制字来决定它的工作方式。控制字分为两种,分别称为方式选择控制字和端口C置1/置0控制字。根据控制寄存器的D7位的状态决定是哪一种控制字。 1. 方式选择控制字 方式选择控制字用来决定8255A三个数据端口各自的工作方式,它的格式如图10.8所示。它由一个8位的寄存器组成。,图6.2 8255A的方式选择控制字,D7位为“1”时,为方式选择控制字的标识位。 D6、D5位决定A端口的工作方式,D6D5位为00、01、1x时分别表示A端口工作在方式0、方式1和方式2下。 D4位决定A端口工作在输入还是输出方式。D4位为0时,A端口工作在输出方式;D4位为1时,A端口工作在输入方式。 D3位决定用于A端口的C端口高4位PC7PC4是作为输入端口,还是作为输出端口。D3位为0时,PC7PC4作输出;D3位为1时,PC7PC4作输入。 D2位用来选择B端口的工作方式。D2位为0时,B端口工作在方式0,D2位为1时,B端口工作在方式1。,D1位决定B端口作为输入还是输出端口。D1位为1时B端口工作在输入方式;D1位为0时B端口工作在输出方式。 D0位决定用于B端口的C端口低4位PC3PC0作为输入,还是输出。D0位为0时,PC3PC0作输出;D0位为1时,PC3PC0作输入。 如果要求8255A的A端口作输入,B端口和C端口作输出,A组工作在方式0,B组工作在方式1,用三条指令可完成对芯片工作方式的选择。,MOV AL,94H ;方式选择控制字送AL MOV DX,PortCtr ;控制端口地址PortCtr送DX OUT DX,AL ;方式选择控制字输出给8255A的控制端 口,完成方式选择,2. C端口置1/置0控制字 8255A在和CPU传输数据的过程中,经常将C端口的某几位作为控制位或状态位来使用,从而配合A端口或B端口的工作。为了方便用户,在8255A芯片初始化时,C端口置1/置0控制字可以单独设置C端口的某一位为0或某一位为1。控制字的D7位为“0”时,是C端口置1/置0控制字中的标识位,具体的格式如图10.9所示。,图6.3 8255A的C端口置1/置0控制字,D6D4位可为任意值,不影响操作。D3D1位用来决定对C端口8位中的哪一位进行操作。D0位用来决定对D3D1所选择的位是置1,还是置0。 例如,要将C端口的PC3置0,PC7置1,可用下列程序段实现。 MOV AL,06H ;PC3置0控制字送AL MOV DX,PortAdd ;控制端口地址PortAdd送DX OUT DX,AL ;对PC3完成置0操作 MOV AL,0FH ;PC7置1控制字送AC OUT DX,AL ;完成对PC7置1操作,6.4.4 8255A的工作方式 8255A有三种工作方式,分别称为方式0,方式1和方式2。其中A端口可以工作在三种方式中的任一种;B端口只能工作在方式0和方式1;C端口通常作为控制信号使用,配合A端口和B端口的工作。每种工作方式的具体内容如下所述。,1. 方式0:基本的输入/输出方式 方式0之所以被称为基本的输入/输出方式,是因为在这种方式下,A端口、B端口和C端口(C端口分为2个4位使用)都可提供简单的输入和输出操作,对每个端口不需要固定的应答式联络信号。工作在方式0时,在程序中可直接使用输入指令(IN)和输出(OUT)指令对各端口进行读写。方式0的基本定义是2个8位的端口和2个4位的端口。任何一个端口都可以作为输入或输出,输出的数据可以被锁存,输入的数据不能锁存。 方式0的输入时序如图10.10所示,输出时序如图10.11所示。从输入时序图可以看到,对各信号的要求是:,图6.4 8255A方式0输入时序,图6.5 8255A方式0输出时序,表6-2 8255方式0输入时序各参数说明,从输出时序图可以看到,为了将数据能可靠地输出到8255A,对各信号的要求是: (1) 地址信号必须在写信号之前有效,同时要求在信号有效(也就是为低电平时)期间内,地址信号不能发生变化,要保证一直有效,直到在撤消(变高后)后的20 ns时间以后,地址信号才允许发生变化。 (2) 写脉冲 (为低电平时间)的宽度最小要求是400 ns。 (3) 要求数据也必须在写信号之前最少有100 ns时间出现在数据总线上。写信号撤消后,数据的最小保持时间是30 ns。,表6-3 8255A方式0输出时序各参数说明,满足上述条件,写信号结束后,最长经过350 ns的时间,CPU输出的数据就可以出现在8255A的指定端口。 方式0一般用于无条件传送的场合,不需要应答式联络信号,外设总是处于准备好的状态。也可以用作查询式传送,查询式传送时,需要有应答信号。可以将A端口、B端口作为数据口使用。把C端口分为2部分,其中4位规定为输出,用来输出一些控制信息,另外4位规定为输入,用来读入外设的状态。利用C端口配合A端口和B端口完成查询式的I/O操作。,2. 方式1:选通输入/输出方式 在这种方式下,当A端口和B端口进行输入输出时,必须利用C端口提供的选通和应答信号,而且这些信号与C端口中的某些位之间有着固定的对应关系,这种关系是硬件本身决定的不是软件可以改变的。由于工作在方式l时,要由C端口中的固定位来作为选通和应答等控制信号,因此称方式1为选通的输入/输出方式。方式1的基本定义是,分成2组(A组和B组),每组包含一个8位的数据端口和1个4位的控制/数据端口。8位的数据端口既可以作为输入,也可以作为输出,输入和输出都可以被锁存。4位的控制/数据端口用于传送8位数据端口的控制和状态信息。,图6.6 方式1选通输入下对应的控制信号 (a) 对A端口;(b) 对B端口,图6.7 8255A方式l输入时序,表6-4 8255A方式1输入时序参数说明,当8255A的A端口和B端口工作在选通输入方式时,对应的C端口固定分配,规定是PC3PC5分配给A端口,PC0PC2分配给B端口,C端口剩下的2位PC7、PC6可作为简单的输入/输出线使用。控制字的D3位为“1”时,PC7、PC6作输入;控制字的D3位为“0”时,PC7、PC6作输出。,INTE(Interrupt Enable):中断允许信号,高电平有效。该信号为高时,允许中断请求,为低时则屏蔽中断请求。INTE的状态是用软件通过由C端口置1/置0控制字来控制的,在A组中,使PC4置“1”后INTEA变高;在B组中,使PC2置“1”后INTEB变高,A端口和B端口才允许中断。如果PC4和PC2都置“0”,与之对应的INTE信号为低,则禁止中断。 对于这种选通的输入方式,如果采用查询式输入时,CPU先查询8255A的输入缓冲器是否满了,也就是IBF是否为高? 如果输入缓冲器满信号IBF为高,则CPU就可以从8255A读入数据。如果采用中断方式传送数据时,应该先用C端口置1/置0的控制字使相应的端口允许中断,也就是要使PC4或PC2置1。,2) 选通的输出方式 方式1在选通输出情况下对应的控制信号如图10.14所示,图10.15是方式1选通输出情况下的工作时序图。这种方式的工作过程与选通输入的情况相类似。,图6.8 方式l输出时C端口对A、B端口的控制 (a) 对A端口;(b) 对B端口,图6.9 8255A方式1输出时序,当8255A的A端口和B端口工作在选通输出方式时,对应的C端口也是固定分配,规定是PC3、PC6、PC7分配给A端口;PC2、PC1、PC0分配给B端口,剩下的2位PC4、PC5可作为简单的输入/输出线使用。当控制字的D3位为“1”时,PC4、PC5作输入;当控制字的D3位为“0”时,PC4、PC5作输出。,表6-5 8255A方式1输出时序参数说明,INTE:中断允许信号,高电平有效。当该信号为“1”时,允许中断,为“0”时,A端口(B端口)处于中断屏蔽状态,即不发出中断请求信号INTR。在使用时,中断允许信号INTE是用软件通过对C端口置1/置0的控制字来设置的。当PC6置1时,A端口允许中断;PC2置1,B端口允许中断。反之,如果A、B端口所对应的PC6、PC2置0时,则处于中断屏蔽状态,即不允许中断。,3. 方式2:带选通的双向传输方式 在双向的传输方式中,8255A可以向外设发送数据,同时CPU通过这8位数据线又接收外设的数据,因此称为双向的传输方式。方式2的基本定义是,只能适用于A端口,一个8位的双向端口(A端口)和1个5位的控制端口(C端口)。A端口的输入和输出都可以被锁存。5位的控制端口用于传送8位双向端口的控制和状态信息。当A端口工作在方式2时,由PA7PA0作为8位数据线,因为要由C端口对A端口进行控制,所以称为带选通的双向传输方式。C端口对A端口的控制信号分别如图10.16和图10.17所示。在这种方式下,C端口中有5位PC7PC3作为控制信号和状态信息使用,剩下的3位PC2PC0可作为简单的

温馨提示

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

评论

0/150

提交评论