《基本IO接口简介》PPT课件.ppt_第1页
《基本IO接口简介》PPT课件.ppt_第2页
《基本IO接口简介》PPT课件.ppt_第3页
《基本IO接口简介》PPT课件.ppt_第4页
《基本IO接口简介》PPT课件.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 下述指令的执行可以完成该任务 MOVDX 0FFF7HINAL DXANDAL 01HJZON 假定程序段ON与本程序段在同一内存段中JMPOFF 图6 3三态门作为数据输入接口的一般连接模式 2 输出接口设计作为无条件传送方式实现数据输出的例子 下面给出CPU对发光二极管的控制 图6 4为发光二极管与微机系统连接的接口电路 锁存器作为发光二极管与微机系统数据总线连接的中间接口 接收来自CPU的输出数据 当锁存器的CP端出现上升沿信号时 数据总线上的数据被锁存于锁存器内部并输出 图6 4发光二极管与微机系统连接的接口电路 反相器对锁存器起保护作用 当发光二极管发亮时 反相器提供足够大的吸入电流 以保护锁存器不受损坏 对于图中电路 CPU执行下述指令可以使两个发光二极管发亮 MOVDX 0000HMOVAL 81HOUTDX AL而CPU执行下述指令可以使两个发光二极管不发亮 MOVDX 0000HMOVAL 00HOUTDX AL 图6 5锁存器作为数据输出接口的一般连接模式 6 2 2查询方式1 查询方式的实现当外设已处于准备好数据的状 在中断处理程序中要有开中断指令 要设置足够大的堆栈 要正确地操作堆栈 图6 6典型的查询方式工程流程 图6 7查询方式实现I O传送示例 a 外设与微机接口电路 b 外设工作时序 DAOUT MOVAX 0D200HMOVDS AXMOVBX 0 初始化内存首地址MOVCX 1000 初始化计数器MOVDX 02F9HMOVAL 01HOUTDX AL 初始化选通信号 NEXT MOVDX 02FAHWAT INAL DXANDAL 80HJNZWAT 状态查询环MOVDX 02F8HMOVAL OUTDX AL 数据输出MOVDX 02F9HMOVAL 00HOUTDX AL 图6 8几种轮询控制流程 CALLDLY100 s DLY100 s为100 s的延迟子程序MOVAL 01HOUTDX AL 产生选通信号INCBX 修改内存指针LOOPNEXT 输出次数的循环控制RET 2 多外设的查询控制在微机系统中 希望以查询方式与微机进行信息交换的外设可能有多个 查询方式是一种同步机制 它以轮询的方式依次对各个外设进行服务 轮询的顺序确定了外设的优先级 而轮询的顺序又是根据外设的重要性确定 通常是相对重要的和速度快的外设先被查询 服务 而相对不重要的和速度慢的外设后被查询 服务 6 3I O接口地址译码方法 1 地址译码电路地址译码是接口的基本功能之一 CPU在执行输入输出指令时 向地址总线发送16位外部设备的端口地址 在接收到与本接口相关的地址后 译码电路应能产生相应的选通信号 使相关端口的寄存器 缓冲器进行数据 命令或状态的传输 完成一次I O操作 由于一个接口上的几个端口地址通常是连续排列的 可以把16位地址码分解为二个部分 高位地址码用作对接口的选择 低位地址码用来选择接口内不同的端口 为了简化电路 IBM PC微型计算机使用A0 A9作为外部设备端口的地址 设定端口地址时 注意不能和已有设备的端口地址重复 为了避免重复的发生 许多接口电路允许用 跳线器 JUMPER 改变端口地址 图6 3 1 b 给出了一个 跳线器 的例子 异或门 半加器 的一个输入引脚来自跳线器的中间引脚 它可以由使用者选择连接 1 5V 或 0 接地 另一个引脚分别连接A8和A9 将异或门的输出代替图6 3 1 a 中的A8 A9引脚连接到U2 二个跳线引脚均接地时 上面译码电路仍然产生330H 333H的端口译码信号 而当二个跳线引脚均接 1 时 则上面译码电路会产生030H 033H的端口译码信号 同理还可以产生130H 133H 230H 233H的译码信号 图6 3 1 由于读 写操作不会同时进行 一个输入端口和另一个输出端口可以使用同一个地址编码 例如 可安排数据输入端口 数据输出端口使用同一个地址330H 命令端口和状态端口共同使用地址331H 则图6 3 1 a 中右端的信号组合电路可作如图6 3 2的修改 图中 Y0 Y1是译码器输出的二个地址选择信号 需要注意的是 数据输入端口和数据输出端口虽然使用相同的地址 但却是二个各自独立的不同的端口 外部接口的端口地址还可以由指令来设置 图3 3中U1是一个称为 配置寄存器 的8位锁存器 在对接口初始化时 将选定的该接口内各端口地址的高七位通过数据总线D6 D0送入该锁存器 锁存器的输出送往8位 比较器 74LS688的Q输入端 比较器的P输入端连接地址总线的A3 A9 CPU在执行IO指令时 如果由A9 A3发来的地址与 配置寄存器 图6 3 2 图6 3 3 6 4可编程并行接口电路Intel8255A 并行接口电路 在早期的微机中与串行口 软盘接口 硬盘接口等都放在一块多功能接口卡上 插在微机的扩展槽上使用 现在这部分电路已在微机的主板上由与CPU配套的芯片组北桥来实现其功能 如果要在其他的场合实现并行数据传送 在电路设计时采用专用的接口芯片最为方便 可编程的接口芯片8255A是完成并行通信的集成电路芯片 6 4 18255A的主要性能和内部结构8255A是为Intel公司的80系列微机配套的通用可编程并行接口芯片 具有三个可编程的端口 A端口 B端口和C端口 每个端口8条线 共有24条I O引脚 也可分为2组工作 每组12条线 并有三种工作方式 可编程是指可通过软件设置芯片的工作方式 因此这个芯片在与外部设备相连接时 通常不需要附加太多的外部逻辑电路 这给用户的使用带来很大方便 芯片的主要技术性能如下 1 输入 输出电平与TTL电平完全兼容 2 时序特性好 3 部分位可以直接置 1 置 0 便于实现控制接口使用 4 单一的 5V电源 8255A的内部结构框图如图10 7 a 所示 图10 7 b 为8255A的外引脚图 从图中可以看到 8255A主要由4部分组成 图6 18255内部结构和引脚图 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位 PC4 PC7 B组控制电路控制B端口和C端口的低4位 PC0 PC3 这两组控制电路的作用是 由它们内部的控制寄存器接收CPU输出的方式控制命令字 还接收来自读 写控制逻辑电路的读 写命令 根据控制命令决定A组和B组的工作方式和读 写操作 表6 18255A的控制信号与执行的操作之间的对应关系 4 数据总线缓冲器这是一个双向 三态的8位数据总线缓冲器 是8255A和系统总线相连接的通道 用来传送输入 输出的数据 CPU发出的控制字以及外设的状态信息 总之 8255A与CPU之间的所有信息传输都要经过数据总线缓冲器 6 4 28255A的外部特性8255A是40条引脚的双列直插式芯片 引脚排列如图10 7 b 所示 单一的 5V电源 使用时要注意它的 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所示 D7 D0 27 34PIN 双向三态8位数据线 与系统的数据总线相连接 8255A的数据线为8条 这样8位的接口芯片在与8086外部数据线为16条的CPU相连接时 应考虑接口芯片本身对地址的要求 由于在8086这样的16位外部总线系统中 CPU在进行数据传输时 低8位对应一个偶地址 高8位对应一个奇地址 如果将8255A的数据线D7 D0与8086CPU的数据总线的低8位相连的话 从CPU这边看来 要求8255A的4个端口地址都应为偶地址 这样才能保证对8255A的端口的读 写能在一个总线周期内完成 但又要满足8255A本身对4个端口规定的地址要求是00 01 10 11 因此将8255A的A1和A0分别与8086系统总线的A2和A1相连 而将最低位A0总设置为0 2 和外设端相连的引脚PA7 PA0 37 40PIN l 4PIN A端口的输入 输出引脚PB7 PB0 25 18PIN B端口的输入 输出引脚PC7 PC0 10 13 17 14PIN C端口的输入 输出引脚 6 4 38255A的控制字和编程由CPU执行输出指令 向8255A的端口输出不同的控制字来决定它的工作方式 控制字分为两种 分别称为方式选择控制字和端口C置1 置0控制字 根据控制寄存器的D7位的状态决定是哪一种控制字 1 方式选择控制字方式选择控制字用来决定8255A三个数据端口各自的工作方式 它的格式如图10 8所示 它由一个8位的寄存器组成 图6 28255A的方式选择控制字 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位PC7 PC4是作为输入端口 还是作为输出端口 D3位为0时 PC7 PC4作输出 D3位为1时 PC7 PC4作输入 D2位用来选择B端口的工作方式 D2位为0时 B端口工作在方式0 D2位为1时 B端口工作在方式1 D1位决定B端口作为输入还是输出端口 D1位为1时B端口工作在输入方式 D1位为0时B端口工作在输出方式 D0位决定用于B端口的C端口低4位PC3 PC0作为输入 还是输出 D0位为0时 PC3 PC0作输出 D0位为1时 PC3 PC0作输入 如果要求8255A的A端口作输入 B端口和C端口作输出 A组工作在方式0 B组工作在方式1 用三条指令可完成对芯片工作方式的选择 MOVAL 94H 方式选择控制字送ALMOVDX PortCtr 控制端口地址PortCtr送DXOUTDX 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 38255A的C端口置1 置0控制字 D6 D4位可为任意值 不影响操作 D3 D1位用来决定对C端口8位中的哪一位进行操作 D0位用来决定对D3 D1所选择的位是置1 还是置0 例如 要将C端口的PC3置0 PC7置1 可用下列程序段实现 MOVAL 06H PC3置0控制字送ALMOVDX PortAdd 控制端口地址PortAdd送DXOUTDX AL 对PC3完成置0操作MOVAL 0FH PC7置1控制字送ACOUTDX AL 完成对PC7置1操作 6 4 48255A的工作方式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 48255A方式0输入时序 图6 58255A方式0输出时序 表6 28255方式0输入时序各参数说明 从输出时序图可以看到 为了将数据能可靠地输出到8255A 对各信号的要求是 1 地址信号必须在写信号之前有效 同时要求在信号有效 也就是为低电平时 期间内 地址信号不能发生变化 要保证一直有效 直到在撤消 变高后 后的20ns时间以后 地址信号才允许发生变化 2 写脉冲 为低电平时间 的宽度最小要求是400ns 3 要求数据也必须在写信号之前最少有100ns时间出现在数据总线上 写信号撤消后 数据的最小保持时间是30ns 表6 38255A方式0输出时序各参数说明 满足上述条件 写信号结束后 最长经过350ns的时间 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 78255A方式l输入时序 表6 48255A方式1输入时序参数说明 当8255A的A端口和B端口工作在选通输入方式时 对应的C端口固定分配 规定是PC3 PC5分配给A端口 PC0 PC2分配给B端口 C端口剩下的2位PC7 PC6可作为简单的输入 输出线使用 控制字的D3位为 1 时 PC7 PC6作输入 控制字的D3位为 0 时 PC7 PC6作输出 INTE InterruptEnable 中断允许信号 高电平有效 该信号为高时 允许中断请求 为低时则屏蔽中断请求 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 98255A方式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 58255A方式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时 由PA7 PA0作为8位数据线 因为要由C端口对A端口进行控制 所以称为带选通的双向传输方式 C端口对A端口的控制信号分别如图10 16和图10 17所示 在这种方式下 C端口中有5位PC7

温馨提示

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

评论

0/150

提交评论