第八章 并行输入输出系统8-2.ppt_第1页
第八章 并行输入输出系统8-2.ppt_第2页
第八章 并行输入输出系统8-2.ppt_第3页
第八章 并行输入输出系统8-2.ppt_第4页
第八章 并行输入输出系统8-2.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1 第8章常用可编程接口芯片及应用 8 1可编程定时器 计数器82548 2常用可编程并行接口芯片及应用8 3可编程串行接口芯片及应用 2 1并行接口系统概述 2可编程并行接口芯片8255A 8 2并行输入 输出系统 3 并行接口系统概述 外部设备和主机之间进行数据交换 称为 数据通信 传输方式 串行通信 并行通信 串行通信 就是在一条传输线上一位一位地传送 外设通过串行接口与系统总线相连接 并行传送 同时在多条传输线上 数据以字节 字 为单位进行传输 外设通过并行接口与系统总线相连接 如打印机是通过并行接口与主机相连 需要指出的是 这里所说的串行 并行传送都是指接口与I O设备 或被控对象之间的数据传送方式 而不是指接口与CPU之间的数据传送方式 8 2并行输入 输出系统 4 并行接口系统概述 主要用于传输速率要求较高 而传输距离较短的场合 并行通信特点 速度快 信息率高 随着通信距离延长 线路成本不断上升 电磁干扰持续加大 适用场合 在一般计算机系统中 CPU与存储器之间 主机与显示器之间多采用并行通信方式 8 2并行输入 输出系统 5 一 内部结构 数据寄存器 控制寄存器 状态寄存器 其它控制电路 二 外部信号 1 与I O设备的接口信号 1 数据信号 用于接口电路与I O设备进行输入 输出数据 2 控制信号 用于接口电路向I O设备提供控制信号 3 状态信号 用于接口电路接收I O设备提供的状态信号 2 与CPU的接口信号 1 数据信息 用于实现接口电路与CPU的数据交换 2 地址信号 用于选择不同的接口电路以及接口电路内部不同的寄存器 3 读 写控制信号 用于确定CPU当前对接口电路的操作性质 是读或是写 4 中断应答信号 用于实现中断请求和中断响应操作 8 2并行输入 输出系统 并行接口系统概述 6 1 并行接口的输入过程 8 2并行输入 输出系统 并行接口系统概述 7 1 并行接口的输入过程 1 输入设备将数据送往I O接口 同时向接口发送数据输入选通 STB 信号 2 STB信号一方面将输入数据保存在接口内的输入寄存器 另一方面将接口内状态寄存器的输入数据就绪 READY 状态置位 供CPU查询 或者在中断控制方式下 向CPU发出数据输入中断请求 3 CPU通过查询状态得知数据进入接口或者收到中断请求后 执行输入指令读取数据 4 接口状态寄存器中的READY状态复位 同时向输入设备发送数据输入应答 ACK 信号 此后 周而复始 等待输入设备进入下一个数据输入过程 8 2并行输入 输出系统 并行接口系统概述 8 2 并行接口的输出过程 8 2并行输入 输出系统 并行接口系统概述 9 2 并行接口的输出过程 1 CPU执行输出指令 将数据送到接口中的数据输出寄存器 2 接口将寄存器中数据送往外设 同时向外设发出数据输出选通 STB 信号 并将接口内状态寄存器的设备忙 BUSY 状态置位 3 外设接收到数据 并将数据输出完成后 向接口发一个数据输出应答 ACK 信号 4 接口收到ACK信号 将状态寄存器中的设备忙 BUSY 状态复位 BUSY信号既可以作为状态信号供CPU查询 又可以作为向CPU发送的数据输出中断请求信号 此后 CPU可以开始进入下一个数据输出过程 8 2并行输入 输出系统 并行接口系统概述 10 1并行接口系统概述 2可编程并行接口芯片8255A 8 2并行输入 输出系统 11 8 2并行输入 输出系统 1 8255A内部结构和外部引脚2 8255A使用的控制字3 8255A的工作方式4 8255A应用举例 12 8 2可编程并行接口芯片8255 8 2 18255A的逻辑结构和引脚功能 一 逻辑结构 1 3个数据端口A B C8255A芯片内部有3个8位的输入输出接口 分别为A口 B口和C口 可用指令将它们分别设置成输入或输出端口 它们在结构和功能上有各自的特点 Intel8255是一个与Intel系列完全兼容的可编程并行接口芯片 它具有3个8位的I O端口 3种可编程工作方式 通常只需要少量的外部电路 便可实现CPU与外设之间的并行接口 13 逻辑结构 1 3个数据端口A B C 1 端口A 包含一个8位的数据输入锁存器和一个8位的数据输出锁存器 缓冲器 端口A无论用作输入口还是输出口 其数据均能受到锁存 2 端口B 包含一个8位的数据输入缓冲器和一个8位的数据输出锁存器 缓冲器 端口B作为输出口时 其数据能得到锁存 作为输入口时 它不具有锁存能力 因此 外设输入的数据必须维持到被CPU读取为止 8 2可编程并行接口芯片8255 3 端口C 包含一个8位的数据输入缓冲器和一个8位的数据输出锁存器 缓冲器 端口C作为输出口时 其数据能得到锁存 作为输入口时 它不具有锁存能力 14 逻辑结构 1 3个数据端口A B C端口A和端口B一般作为独立的I O口使用 与外设的数据线相连 端口C可以作为一个独立的8位I O口使用 也可以拆分为高4位和低4位端口 作为两个独立的4位I O使用 端口C拆分开的高4位和低4位还可以与端口A和端口B配合 用作它们的联络信号线 8 2可编程并行接口芯片8255 15 逻辑结构 2 A组控制 B组控制8255A将端口A B C分为两组 1 A组控制 端口A和端口C的高4位构成 2 B组控制 端口B和端口C的低4位构成 这两组控制电路一方面接收芯片内部总线上的控制字 一方面接收来自读写控制逻辑电路的读写命令 据此而决定两组端口的工作方式和读写操作 8 2可编程并行接口芯片8255 16 逻辑结构 3 数据总线缓冲器是一个双向三态的8位缓冲器 直接与系统数据总线连接 是8255A与CPU之间传输数据的必经之路 数据的输入输出以及控制字的写入都是通过这个缓冲器传递的 8 2可编程并行接口芯片8255 4 读 写控制逻辑读 写控制逻辑电路负责管理8255A的数据传输过程 1 接收来自控制总线的控制信号WR RD RESET 2 地址总线的A1 A0以及由地址译码电路输出的片选信号CS 由这些信号形成对端口的读 写控制 并通过A组控制和B组控制电路实现对数据 状态和控制信号的传输 17 8255A的引脚功能 8 2可编程并行接口芯片8255 18 8255A的引脚功能 1 面向CPU的引脚信号及功能 D0 D7 8位 双向 三态数据线 用来与系统数据总线相连 RESET 复位信号 高电平有效 输入 用来清除8255A的内部寄存器 并置A口 B口 C口置为方式0下的输入端口 8 2可编程并行接口芯片8255 读信号 低电平有效 输入 控制8255A将数据或状态信息送给CPU 写信号 低电平有效 输入 控制CPU将数据或控制信息送到8255A A1 A0 内部端口地址选择 输入 片选 输入 低电平有效 决定芯片是否被选中 19 8 2可编程并行接口芯片8255 20 8255A的引脚功能 2 面向外设的引脚信号及功能 PA0 PA7 A口与外设连接的数据线 由A口的工作方式决定这些引脚用作输入 输出或双向 PB0 PB7 B口与外设连接的数据线 由B口的工作方式决定这些引脚用作输入或输出 PC0 PC7 C口输入输出的数据线 这些引脚的用途由A组 B组的工作方式决定 这24根信号线均可用来连接I O设备 它们可以传送数字量或开关量信号 端口C还常用来传递控制和状态信号 8 2可编程并行接口芯片8255 21 8255A的控制字 8255A有两类控制字 一类用于定义各端口工作方式 称为方式选择控制字 另一类用于对端口C的一位进行置位操作 称为端口C置位 复位控制字 1 方式选择控制字 1 8255A共有3种基本工作方式 方式0 基本的输入输出方式方式1 带选通的输入输出方式方式2 双向传输方式8255A各数据端口的工作方式由方式选择控制字进行设置 8 2可编程并行接口芯片8255 22 8255A的控制字 2 8255A方式选择控制字 8 2可编程并行接口芯片8255 D7位是方式选择控制字的标志位 它必须是1 D6D5位用于选择A组的工作方式 D4 D3用于选择A口 C口高四位输入输出功能设置 D2位用于选择B组的工作方式 D1 D0用于选择B口 C口低四位输入输出功能设置 端口A可工作在3种工作方式中的任何一种 端口B只能工作在方式0或方式1 端口C则常常配合端口A和端口B工作 只有端口A可工作在方式2 23 8255A的控制字 例1 如果把端口A设定为方式0 输出 端口B设定为方式0 输入端口C高4位定为输入 低4位设定为输出 设控制口地址为303H 写出初始化程序段 解 初始化编程的目的是向8255A的控制寄存器写入方式控制字 以确定3个数据端口的工作方式 1 控制字 10001010B 2 初始化程序 8 2可编程并行接口芯片8255 2 8255A方式选择控制字 24 8255A的控制字 例2 某8255A的控制端口地址为273H 要求将某3个数据端口设置为基本的输入输出方式 其端口A和端口C的低4位为输入 端口B和端口C的高4位为输出 写出初始化程序段 解 1 控制字 10010001B 2 初始化程序 8 2可编程并行接口芯片8255 2 8255A方式选择控制字 25 8255A的控制字 1 方式选择控制字 3 端口C按位置位 复位控制字 端口C有一种特殊的控制方式 可以将端口C的某一位置1或清0 而不影响端口C的其他位的状态 作用 是使端口C的某一位输出为高电平或低电平 以用于控制或应答信号 如 在控制应用中 经常希望在某一位上产生一个TTL电平的控制信号 利用端口C的这一特点 就能很方便的实现 8 2可编程并行接口芯片8255 一个控制字只能完成使端口C中的某一位置0或置1 若要将多位置0或置1时 必须使用多个控制字 按位置位 复位控制字虽然是对端口C的操作 但必须写入8255A的控制口而不是写入端口C 26 8255A的控制字 例 如果要使端口C的PC4端输出高电平 写出按位置位 复位控制字 8255A的端口地址为60H 61H 62H 63H 写出PC4引脚得到一个高电平信号的程序 端口C按位置位 复位控制字D7D6D5D4D3D2D1D00000100109H 使PC4引脚得到一个高电平信号的程序段MOVAL 09HOUT63H AL 8 2可编程并行接口芯片8255 27 8 2可编程并行接口芯片8255 8255A的工作方式 方式0 简单输入 输出 无条件传送方式 查询传送方式 A B C三个端口均可使用 方式1 选通输入 输出 查询传送方式 中断传送方式 A B两个端口均可使用 方式2 双向输入 输出 查询传送方式 中断传送方式 只有A端口可以使用 三种工作方式 1 方式0 基本输入 输出方式 1 方式0的工作特点 A口和B口作为两个8位端口 可为输入或输出口 C口的高4位和低4位可以用作两个4位端口 为输入或输出口方式0有16种不同的输入输出组态 28 8 2可编程并行接口芯片8255 8255A的工作方式 29 8255A的工作方式 1 方式0 基本输入 输出方式 2 方式0下的输入时序 方式0输入时 PA PB PC7 4 PC3 0引脚状态被送入相应的数据输入寄存器 CPU可用输入指令IN从8255A数据引脚D7 D0读入这些寄存器的值 从而获得输入引脚的状态 此时输入口起缓冲器作用 当RD下降沿使三态的缓冲器接通时 输入的数据经内部稍许延迟 便放到数据总线上由CPU接走 8 2可编程并行接口芯片8255 30 8255A的工作方式 1 方式0 基本输入 输出方式 2 方式0的的输入时序 发出地址信号 使CS A1 A0有效 经tAR时间后发出RD 注意 在tAR前就开始输入数据了 CPU开始读数据 需要的时间tRD 8 2可编程并行接口芯片8255 31 8255A的工作方式 1 方式0 基本输入 输出方式 3 方式0下的输出时序 方式0输出时 PA PB PC7 4 PC3 0引脚状态由相应的数据输出寄存器决定 CPU可用输出指令OUT经8255A数据引脚D7 D0向数据输出寄存器送一个值 从而改变输出引脚PA PB PC7 4 PC3 0的状态 此时输出口起锁存器和缓冲器作用 8 2可编程并行接口芯片8255 32 8255A的工作方式 1 方式0 基本输入 输出方式 3 方式0下的输出时序 发出地址信号 使CS A1 A0有效 经tAW时间后 发出写信号WR 写信号WR结束前tDW CPU输出的数据就应出现在8255的数据引脚D7 D0上 且在写信号WR结束后 还应维持时间tWD CPU送出的数据被锁存在8255A数据输出寄存器中 且写信号WR结束后tWB时间 数据输出寄存器的值反应在8255A的输出引脚上 从而可以送到外部设备 8 2可编程并行接口芯片8255 33 8255A的工作方式 1 方式0 基本输入 输出方式 4 总结执行方式0输入操作时 若外设数据已经准备好 CPU可以通过输入指令从这个端口读入数据 执行方式0输出操作时 由输出指令把CPU的数据输出给外设 在CPU执行OUT指令以后 输出数据就锁存在相应的端口上 所以 方式0时 8255A在输入操作时相当于一个三态缓冲器 8255A在输出操作时相当于一个锁存器 8 2可编程并行接口芯片8255 5 应用范围方式0适合于两种情况 一种是无条件传送 另一种是查询方式传送 无条件传送 发送方与接受方不需要应答信号 即不需要查询外设的状态 这种情况下 对接口要求很简单 只要能传送数据就可以 查询方式传送 需要应答信号 由于方式0不提供固定的应答信号 所以 通常PA和PB作为数据端口 用PC的高4位 和低4位分别设置为输入和输出 作为控制信号的输出和状态信号的输入 34 1 方式0 基本输入 输出方式 6 应用举例1 开关断开 相应的LED点亮 开关合上 LED熄灭 例4 在工业控制等实际应用中 经常需要检测某些开关量的状态 例如 在某一系统中 有8个开关K7 K0 要求不断检测它们的通断状态 并随时在发光二极管LED7 LED0上显示出来 8 2可编程并行接口芯片8255 方式0应用实例 35 1 方式0 基本输入 输出方式 6 例1 开关断开 相应的LED点亮 开关合上 LED熄灭 地址译码 A7A6A5A4A3A2A1A0111100000F0HA口111100100F2HB口111101000F4HC口111101100F6H控制口 8 2可编程并行接口芯片8255 方式0应用实例 36 1 方式0 基本输入 输出方式 6 例1 开关断开 相应的LED点亮 开关合上 LED熄灭 地址译码 4个端口地址为 0F0H 0F2H 0F4H 0F6H初始化编程 控制字为10010000B 端口A工作于方式0 作数据输入端 端口B工作于方式0 作数据输出端 即可将A口的开关状态读入寄存器AL 若开关合上 AL中的相应位为 0 断开为 1 当把AL中的内容从B口输出时 相应的0位上的LED熄灭 表示对应的开关是合上的 否则LED点亮 指示开关断开 具体程序如下 8 2可编程并行接口芯片8255 方式0应用实例 37 例2 利用8255A的A口方式0与微型打印机相连 将内存缓冲区BUFF中的字符打印输出 工作流程是 主机将要打印的数据送上数据线 然后发选通信号 打印机将数据读入 同时使BUSY线为高 通知主机停止送数 这时 打印机内部对读入的数据进行处理 处理完以后使ACK有效 同时使BUSY失效 通知主机可以发下一个数据 方式0应用实例 8 2可编程并行接口芯片8255 38 说明 由PC0充当打印机的选通信号 通过对PC0的置位 复位来产生选通 同时 由PC7来接收打印机发出的 BUSY 信号作为能否输出的查询 8255A的控制字为 10001000B即88H A口方式0 输出 C口高位方式0输入 低位方式0输出 PC0置位 00000001B即01HPC0复位 00000000B即00H8255A的4个口地址分别为 00H 01H 02H 03H 8 2可编程并行接口芯片8255 方式0应用实例 39 8 2可编程并行接口芯片8255 方式0应用实例 40 8 2可编程并行接口芯片8255 方式0应用实例 41 8 2可编程并行接口芯片8255 2 方式1 主要功能 1 有2组选通工作方式的端口 每组包含一个8位数据端口和3条控制信号 控制线是指定的 不能用程序改变 2 每组端口提供有中断请求逻辑和中断允许触发器 3 2组端口若只有1组工作于方式1 剩下的13位都可以工作于方式0 4 若2组端口都工作于方式1 C口剩下的2位 还可以由方式控制字指定为输入或输出 同时具有置位复位功能 8255A的工作方式 42 8255A的工作方式 2 方式1 输入方式 联络信号的定义 STB 选通信号 低电平有效 由外设提供 当STB 0时 将输入设备送来的数据打入8255A的输入缓冲器中 端口A的选通信号STBA从PC4引入 端口B的选通信号STBB从PC2引入 IBF InputBufferFull 输入缓冲器满信号 高电平有效 输出联络信号 IBF 1时 表示输入数据已传送到8255A的输入缓冲器中 不再接受别的数据 IBF信号由STB前沿置高 RD信号的后沿置低 PC5作为端A的输入缓冲器满信号IBFAPC1作为端B的输入缓冲器满信号IBFB 8 2可编程并行接口芯片8255 43 2 方式1 输入方式 联络信号的定义 INTE 中断允许信号它控制8255A是否能向CPU发出中断申请 用按位置位 复位控制字 使PC4 1 INTEA置1 允许A口中断 使PC4 0 INTEA置0 禁止A口中断 同样 通过编程PC2位 INTEB 来允许或禁止B口中断 INTR 中断请求信号 高电平有效8255A输出信号 可用于向CPU提出中断请求 要求CPU读取外设数据 当STB 1 IBF 1 中断允许时被置为有效 RD信号的前沿将其恢复为低电平 INTRA A组的中断请求对应于PC3INTRB B组的中断请求对应于PC0 8 2可编程并行接口芯片8255 44 8255A的工作方式 2 方式1 输出方式 1 方式1的输出组态8255A的端口A 端口B工作于方式1输出时 端口组态如图所示 2 联络信号 OBF OutputBufferfull 输出缓冲器满 低电平有效 8255A输出给外设的控制信号 OBF 0时 有效 表示CPU已将数据输出给指定的端口 外设可将数据取走 它由WR的后沿置为有效 由ACK有效恢复为高电平 8 2可编程并行接口芯片8255 45 8255A的工作方式 2 方式1 输出方式 2 联络信号 ACK Acknowledge 外设应答信号 低电平有效 表示8255A的端口数据已被外设取走 INTR Interrupt 中断请求信号 高电平有效 当输出设备已接收数据后 8255A输出此信号向CPU提供中断请求 请求CPU继续提供数据 当ACK为高电平 OBF为高电平和INTE为高电平 允许中断 时 使其有效 而写信号WR的前沿使其复位 8 2可编程并行接口芯片8255 46 8255A的工作方式 3 方式1的状态字 作用 在方式1下8255A有固定的状态字 用输入指令读取C端口 可获得8255A的状态字 状态字为查询方式提供了状态标志 如IBF和OBF 同时 由于8255A采用中断方式时 CPU也要通过读状态字来确定中断源 实现查询中断 方式1的两种用法如下 中断方式 将INTE置为1 A组和B组可以使用各自的INTR信号申请中断 CPU接受中断请求后转到相应的中断服务程序 进行数据传输 查询方式 CPU通过读C端口 可

温馨提示

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

评论

0/150

提交评论