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

下载本文档

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

文档简介

1、第6章 基本I/O接口,6.1 外设接口的基本模型 6.2 程序控制I/O方式 6.3 中断方式 6.4 直接存贮器存取(DMA)方式,6.1 外设接口的基本模型,1. 应答联络 大多数外设与计算机进行信息交换时都需要事先进行联络,只有双方建立好联络关系(即握手成功)之后,双方才能进行信息交换。例如,欲将计算机内部的数据输出给外设,常规的工作过程为:首先由CPU读外设与系统连接的状态端口,获得外设的工作状态,CPU根外设状态决定输出数据的时刻。,图6.1 外设接口基本模型,2. 端口地址 当计算机系统中有多个外设时,CPU在某个时刻只能与一个外设打交道。为了确定此刻哪一个外设可以与计算机打交道

2、,采取与内存同样的处理方法,利用二进制编码为外设编号,该编号被称为外设地址(又称I/O地址),也即通过外设地址来识别不同的外设。,3. 输入输出方法 外设与计算机间的信息交换可以用不同的输入输出方法完成。基本的输入输出方法有:程序控制I/O方式(无条件传送方式与查询方式)、中断方式、直接存贮器存取(DMA)方式。,6.2 程序控制I/O方式,6.2.1 无条件传送方式 所谓无条件传送方式是指可以在需要的时刻让CPU直接与外设进行输入输出操作,也即CPU仅需要通过I/O指令即可由接口获取外设数据或为外设提供数据。这种方式的实现很简单,硬件上只需要提供CPU与外设连接的数据端口,而软件上则只提供相

3、应的输入或输出指令即可。,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. 输出接口设计 作为无条件传送方式实现数据输出的例子,

4、下面给出CPU对发光二极管的控制。图6.4为发光二极管与微机系统连接的接口电路。锁存器作为发光二极管与微机系统数据总线连接的中间接口,接收来自CPU的输出数据。当锁存器的CP端出现上升沿信号时,数据总线上的数据被锁存于锁存器内部并输出。,图6.4 发光二极管与微机系统连接的接口电路,反相器对锁存器起保护作用,当发光二极管发亮时,反相器提供足够大的吸入电流,以保护锁存器不受损坏。对于图中电路,CPU执行下述指令可以使两个发光二极管发亮: MOV DX,0000H MOV AL,81H OUT DX,AL 而CPU执行下述指令可以使两个发光二极管不发亮: MOV DX,0000H MOV AL,0

5、0H 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,02

6、FAH 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. 多外设的查询控制 在微机系统中,希望以查询方式与微机进行信息交换的外设可能有多个。查询方式是一种同步机制,它以轮询的方式依次对各个外设

7、进行服务。轮询的顺序确定了外设的优先级,而轮询的顺序又是根据外设的重要性确定。通常是相对重要的和速度快的外设先被查询、服务,而相对不重要的和速度慢的外设后被查询、服务。,6.3 I/O接口地址译码方法,1. 地址译码电路 地址译码是接口的基本功能之一。CPU在执行输入输出指令时,向地址总线发送16位外部设备的端口地址。在接收到与本接口相关的地址后,译码电路应能产生相应的选通信号,使相关端口的寄存器/缓冲器进行数据、命令或状态的传输,完成一次IO操作。由于一个接口上的几个端口地址通常是连续排列的,可以把16位地址码分解为二个部分:高位地址码用作对接口的选择,低位地址码用来选择接口内不同的端口。为

8、了简化电路,IBM-PC微型计算机使用A0A9作为外部设备端口的地址。,设定端口地址时,注意不能和已有设备的端口地址重复。为了避免重复的发生,许多接口电路允许用“跳线器(JUMPER)”改变端口地址。图6-3-1(b)给出了一个“跳线器”的例子。异或门(半加器)的一个输入引脚来自跳线器的中间引脚,它可以由使用者选择连接“1”(+5V)或“0”(接地),另一个引脚分别连接A8和A9。将异或门的输出代替图6-3-1(a)中的A8,A9引脚连接到U2。二个跳线引脚均接地时,上面译码电路仍然产生330H333H的端口译码信号,而当二个跳线引脚均接“1”时,则上面译码电路会产生030H033H的端口译码

9、信号。同理还可以产生130H133H,230H233H的译码信号。,图6-3-1,由于读、写操作不会同时进行,一个输入端口和另一个输出端口可以使用同一个地址编码。例如,可安排数据输入端口、数据输出端口使用同一个地址330H,命令端口和状态端口共同使用地址331H,则图6-3-1(a)中右端的信号组合电路可作如图6-3-2的修改。 图中,Y0,Y1是译码器输出的二个地址选择信号。需要注意的是,数据输入端口和数据输出端口虽然使用相同的地址,但却是二个各自独立的不同的端口。 外部接口的端口地址还可以由指令来设置。图3-3中U1是一个称为“配置寄存器”的8位锁存器。在对接口初始化时,将选定的该接口内各

10、端口地址的高七位通过数据总线D6D0送入该锁存器。锁存器的输出送往8位“比较器”74LS688的Q输入端,比较器的P输入端连接地址总线的A3A9。CPU在执行IO指令时,如果由A9A3发来的地址与“配置寄存器”,图6-3-2,图6-3-3,6.4 可编程并行接口电路Intel 8255A,并行接口电路,在早期的微机中与串行口、软盘接口、硬盘接口等都放在一块多功能接口卡上,插在微机的扩展槽上使用。现在这部分电路已在微机的主板上由与CPU配套的芯片组北桥来实现其功能。如果要在其他的场合实现并行数据传送,在电路设计时采用专用的接口芯片最为方便。可编程的接口芯片8255A是完成并行通信的集成电路芯片。

11、,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的内部

12、结构框图如图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位的数据

13、输入缓冲器和一个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)。这两组控制电路的作用是:由它们内部的控制寄

14、存器接收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

15、脚,它不像大多数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位的接

16、口芯片在与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. 和外设端相连的引脚 PA7PA

17、0(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

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

评论

0/150

提交评论