




已阅读5页,还剩109页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章输入 输出接口 8 1微型计算机的输入 输出接口8 2并行通信与并行接口8 3可编程并行通信接口芯片8255A8 4串行通信及串行接口8 5可编程串行通信接口芯片8251A 输入 输出 I O 接口电路是计算机的重要组成部分 通过I O接口电路可实现计算机与外部设备通信 与外部设备交换信息 在微机系统中 最常用的外部设备有键盘 显示器 打印机 磁盘机等 在工业微机控制系统中 I O接口电路还可通过A D转换器或D A转换器与各种工业检测和控制仪表相连接 这些仪表装置也属于外部设备 8 1微型计算机的输入 输出接口8 1 1输入 输出接口的交换信号 计算机I O接口电路与外部设备间交换的信号 通常有以下4种类型 1 数字量 二进制形式的数据 或是已经过编码的二进制形式的数据 最小单位为 位 bit 8位称为一个字节 BYTE 2 模拟量 用模拟电压或模拟电流幅值大小表示的物理量 模拟量信号不能直接进入计算机 必须经过A D 模拟 数字 转换器 把模拟量转换成某种形式的数字量 才能输入计算机 当外部设备需要模拟量信号控制时 I O接口电路D A 数字 模拟 转换器又能把数字量转换成模拟量信号 3 开关量 开关量信号只有两种状态 即 开 或 闭 这样 只要用一位二进制数就可表示 4 脉冲量 在计算机控制系统中还经常用到计数脉冲 定时脉冲或控制脉冲 脉冲量信号是以脉冲形式表示的一种信号 8 1 2输入 输出的控制方式 在微机系统中 可采用的输入 输出控制方式一般有4种 程序控制方式 中断控制方式 直接存储器存取方式 DMA方式 和输入 输出处理机方法 1 程序控制方式这是指在程序控制下进行信息传送 1 无条件传送方式 当外设已准备就绪 那就不必查询外设的状态而进行信息传输 这就称为无条件传送 这种信息传送方式只适用于简单的外设 如开关和数码段显示器等 当简单外设作为输入设备时 输入数据保持时间要比CPU的处理速度慢得多 所以可直接使用三态缓冲存储器与数据总线相连 如图8 1所示 CPU执行输入指令时 读信号RD有效 选通信号M IO 0 因而三态缓冲存储器被选通 于是已准备好的输入数据便可进入数据总线 图8 1 当简单外部设备作为输出设备时 一般都需要锁存器 这是因为CPU送出的数据应在接口电路的输出端保持一段时间 在图8 1中 当CPU执行输出指令时 M IO 0及WR 0 于是接口中的输出锁存器被选中 CPU输出的信息经过数据总线送入输出锁存器 2 条件传送方式 CPU通过执行程序不断读取并测试外部设备状态 如果输入外部设备处于已准备好状态或输出外部设备为空闲状态时 则CPU执行传送信息指令 由于条件传送方式是CPU在不断调查外部设备的当前状态后才进行信息传送 所以也称为 查询式传送 因此 条件传送方式的接口电路应包括 传送数据端口及传送状态端口 当输入信 息时 查询到外部设备准备好后 则使接口的 准备好 标志位置1 当输出信息时 外部设备取走一个数据后 传送状态端口使标志为 空闲 状态 可以接收下一个数据 图8 2为查询式输入的接口电路 输入设备在数据准备好后便往接口发出一个选通信号 图8 2 这个选通信号起两个作用 一是把外部设备的数据送到接口的锁存器中 另一方面 它使接口中的一个D触发器置1 从而使三态缓冲存储器的READY 1 在查询输入过程中 CPU先从外部设备输入数据中读取状态字 检查 准备好 标志位是否为 1 若已准备好 这时数据已进入接口锁存器 则执行输入传送指令 同时把 准备好 标志位清 0 接着便可开始下一个数据传输过程 图8 3为查询式输出接口电路 CPU执行输出指令时 由选择信号M IO及写信号WR产生的选通信号把数据送入数据锁存器 同时使D触发器输出 1 此信号一方面告诉外部设备在接口中已有数据要输出 另一方面D触发器的输出信号使状态寄 存器的对应标志位置 1 告诉CPU 当前外部设备处于 忙 状态 从而阻止CPU输出新的数据 当外部设备从接口中取走数据后 通常也会送出一个应答信号ACK ACK使接口中的D触发器置 0 从而使状态寄存器中的对应标志位置 0 这样便可开始下一个数据的输出过程 图8 3 2 中断控制方式中断控制方式一般用来传送低速外部设备与CPU之间的信息交换 当外部设备需要与CPU进行数据交换时 由接口部件的CPU发出一个中断请求信号 CPU响应这一中断请求 便可在中断服务程序中完成一个字节或一个字的信息交换 这样每操作一次 CPU要打断原来执行的程序去执行一般中断服务程序 对速度较高的外部设备会产生信息丢失 因此不能采用 3 DMA控制方式DMA控制方式是一种成块传送数据的方式 当某一外部设备需要输入 输出一批数据时 向DMA控制器发出请求 DMA控制器接收到这一请求后 向CPU发出总线请求 若CPU响应DMA的请求把总线使用权赋给DMA控制器 数据不通过CPU 可直接在DMA控制器操纵下进行 当这批数据传送完毕后 DMA控制器再向CPU发出 结束中断请求 CPU响应这一中断请求 即可收回总线使用权 因此 采用DMA控制方式 CPU只需在数据传送结束时响应一次中断 减轻了CPU的负担 但DMA控制器一般只能对一台或几台同类型的外部设备完成控制功能 4 输入 输出处理机控制方式对于有大量输入 输出设备的微机系统 DMA控制方式已不能满足这种需要 Intel公司生产与86系列配套的输入 输出处理机 IOP 8089 系统中设置了 IOP后 86系列CPU必须工作在最大工作模式 当CPU需要进行输入或输出操作时 只需在存储器中建立一个规定格式的信息块 设置好需要执行的操作和有关参数 然后把这些参数送入8089 IOP即会执行输入 输出操作 如果在数据传送过程出现差错 8089会进行重复传送或做必要的处理 在整个数据块的传送过程中 CPU可去完成其他作业 在微型计算机系统中 通常是用各种类型的输入 输出接口芯片来完成CPU与其外部设备之间的信息交换 下面介绍几种常用接口芯片及工作原理 8 2并行通信与并行接口8 2 1并行通信 并行通信是把一个字符的各数位用几条线同时进行传输 传输速度快 信息率高 但它比串行通信所用的电缆多 因此 并行通信常用在传输距离较短 几米至几十米 和数据传输率较高的场合 8 2 2并行接口 实现并行通信的接口就是并行接口 一个并行接口可设计为只作为输出接口 如一个并行接口连接一台打印机 还可设计为只作为输入接口 如一个并行接口连接卡片读入机 另外 还可以设计成既作为输入又作为输出的接口 它可以用两种方法实现 一种是利用同一个接口中的两个通路 一个作输入通路 一个作输出通路 另一种是用一个双向通路 既作为输入又作为输出 前一种方法是用在主机需要同时输入和输出的情况 如此接口既接纸带读入机 又接纸带穿孔机 后一种方法是用在输入输出动作并不同时进行的主机与外部设备之间 如连接两台磁盘驱动器 图8 4 典型的并行接口和外部设备连接如图8 4所示 图中的并行接口用一个通道和输入设备相连 用另一个通道和输出设备相连 每个通道中除数据线外均配有一定的控制线和状态线 从图8 4中看到 并行接口中应该有一个控制寄存器用来接收CPU对它的控制命令 有一个状态寄存器提供各种状态位供CPU查询 为了实现输入和输出 并行接口中还必定有相应的输入缓冲寄存器和输出缓冲寄存器 1 并行接口的输入过程外部设备首先将数据送给接口 并使状态线 数据输入准备好 成为高电平 接口把数据接收到数据输入缓冲寄存器的同时 使 数据输入回答 线变为高电平 作为对外部设备的响应 外部设备接到此信号 便撤除数据和 数据输入准备好 信号 数据到达接口中后 接口会在状态寄存器中设置 输入准备好 状态位 以便CPU对其进行查询 接口也 可以在此时向CPU发一个中断请求 所以 CPU既可以用软件查询方式 也可以用中断方式来设法读取接口中的数据 CPU从并行接口中读取数据后 接口会自动清除状态寄存器中的 输入准备好 状态位 并且使数据总线处于高阻状态 此后 又可以开始下一个输入过程 2 并行接口的输出过程每当外部设备从接口取走一个数据之后 接口就会将状态寄存器中的 输出准备好 状态位置 1 以表示CPU当前可以往接口中输出数据 这个状态位可供CPU进行查询 此时 接口也可以向CPU发一个中断请求 所以 CPU既可以用软件查询方式 也可以用中断方式设法往接口中输出一个数据 当 CPU输出的数据到达接口的输出缓冲寄存器中后 接口会自动清除 输出准备好 状态位 并且将数据送往外部设备 同时 接口往外部设备发送一个 驱动信号 来启动外部设备接收数据 外部设备被启动后 开始接收数据 并往接口发一个 数据输出回答 信号 接口收到此信号 便将状态寄存器中的 输出准备好 状态位重新置 1 以便CPU输出下一个数据 8 3可编程并行通信接口芯片8255A 8255A是Intel86系列微处理机的配套并行接口芯片 它可为86系列CPU与外部设备之间提供并行输入 输出的通道 由于它是可编程的 可以通过软件来设置芯片的工作方式 所以 用8255A连接外部设备时 通常不用再附加外部电路 给使用者带来很大方便 8 3 18255A芯片内部结构及其功能 由图8 5和图8 6可见 8255A由以下几部分组成 图8 5 图8 6 1 并行输入 输出端口A B C8255A芯片内部包含3个8位端口 其中 端口A包含一个8位数据输出锁存 缓冲存储器和一个8位数据输入锁存器 端口B包含一个8位数据输入 输出 锁存 缓冲存储器和一个8位数据输入缓冲存储器 端口C包含一个输出锁存 缓冲存储器和一个输入缓冲存储器 必要时端口C可分成两个4位端口 分别与端口A和端口B配合工作 通常将端口A和端口B定义为输入 输出的数据端口 而端口C可作为状态或控制信息的传送端口 2 A组和B组控制部件端口A与端口C的高4位 PC7 PC4 构成A组 由A组控制部件实现控制功能 端口B与端口C的低4位 PC3 PC0 构成B组 由B组控制部件实现控制功能 它们各有一个控制单元 可接收来自读 写控制部件的命令和CPU通过数据总线 D7 D0 送来的控制字 并根据它们来定义各个端口的操作方式 3 数据总线缓冲存储器这是一个三态双向8位数据缓冲存储器 它是8255A与8086CPU之间的数据接口 CPU执行输出指令时 可将控制字或数据通过数据总线缓冲存储器传送给8255A CPU执行输入指令时 8255A可将状态信息或数据通过总线缓冲存储器向CPU输入 因此它是CPU与8255A之间交换信息的必经之路 4 读 写控制部件这是8255A内部完成读 写控制功能的部件 它能接收CPU的控制命令 并根据它们向片内各功能部件发出操作命令 可接收的控制命令如下 1 CS 片选信号 由CPU输入 通常由端口的高位地址码 A15 A2 译码得到 CS有效 表示该8255A被选中 2 RD WR 读 写控制信号 由CPU输入 RD有效 表示CPU读8255A 应由8255A向CPU传送数据或状态信息 WR有效 表示CPU写8255A 应由CPU将控制字或数据写入8255A 3 RESET 复位信号 由CPU输入 RESET有效时 清除8255A中所有控制字寄存器内容 并将各端口置成输入方式 4 A1和A0 端口选择信号 当A1A0 00 选择端口A 当A1A0 01 选择端口B 当A1A0 10 选择端口C 当A1A0 11 选择控制字寄存器 8 3 28255A芯片的控制字及其工作方式 8255A中各端口可有3种基本工作方式 方式0 基本输入 输出方式 方式1 选通输入 输出方式 方式2 双向传送方式 端口A可处于3种工作方式 方式0 方式1和方式2 端口B只可处于两种方式 方式0和方式1 端口C常常被分成高4位和低4位两部分 可分别用来传送数据或控制信息 用户可用软件来分别定义3个端口的工作方式 可使用的控制字有定义工作方式控制字和置位 复位控制字 1 控制字 1 定义工作方式控制字 格式如图8 7所示 通过定义工作方式控制字可将3个端口分别定义为3种不同方式的组合 当将端口A定义为方式1或方式2或将端口B定义为方式1时 要求使用端口C的某些位作控制用 这时需要使用一个专门的置位 复位控制字来对控制端口C的各位分别进行置位 复位操作 图8 7 2 置位 复位控制字 只对端口C有效 其使用格式如图8 8所示 图8 8 2 工作方式 1 工作方式0 这是8255A中各端口的基本输入 输出方式 它只完成简单的并行输入 输出操作 CPU可从指定端口输入信息 也可向指定端口输出信息 如果3个端口均处于工作方式0 则可由工作方式控制字定义16种工作方式的组合 这种情况下 工作方式控制字的具体格式应如图8 9所示 图8 9 2 工作方式1 被称作选通输入 输出方式 在这种工作方式下 数据输入 输出操作要在选通信号控制下完成 采用工作方式1进行输入操作时 需要使用的控制信号如下 STB 选通信号 由外部输入 低电平有效 STB有效时 将外部输入的数据锁存到所选端口的输入锁存器中 对A组来说 指定端口C的第4位 PC4 用来接收向端口A输入的STB信号 对B组来说 指定端口C的第2位 PC2 用来接收向端口B输入的STB信号 IBF 输入缓冲存储器满信号 向外部输出 高电平有效 IBF有效时 表示由输入设备输入的数据已占用该端口的输入锁存器 它实际上是对STB信号的回答信号 待CPU执行IN指令时 RD有效 将输入数据读入CPU 其后沿把IBF置 0 表示输入缓冲存储器已空 外部设备可继续输入后续数据 对A组来说 指定端口C的第5位 PC5 作为从端口A输出的IBF信号 对B组来说 指定端口的第一位 PC1 作为从端口B输出的IBF信号 INTR 中断请求信号 向CPU输出 高电平有效 在A组和B组控制电路中分别设置一个内部中断触发器INTEA和INTEB 前者由STBA PC4 控制置位 后者由STBB PC2 控制置位 当任一组中的STB有效 则把IBF置 1 表示当前输入缓冲存储器已满 并由STB后沿置 1 各组的INTE 于是输出INTR有效 向CPU发出中断请求信号 待CPU响应这一中断请求 可在中断服务程序中安排IN指令读取数据后置 0 于IBF 外部设备才可继续输入后续数据 显然 8255A中的端口A和端口B均可工作于工作方式1完成输入操作功能 这种情况下工作方式控制字的具体格式如图8 10所示 经这样定义的端口状态如图8 11所示 图8 10 图8 11 从图8 11中可看出 当端口A和端口B同时被定义为工作方式1完成输入操作时 端口C的PC5 PC0被用作控制信号 只有PC7和PC6位可完成数据输入或输出操作 因此这实际上可构成两种组合状态 它们是端口A B输入 PC7 PC6输入和端口A B输入 PC7 PC6输出 采用工作方式1也可完成输出操作 这时需要使用的控制信号如下 OBF 输出缓冲存储器满信号 向外部输出 低电平有效 OBF有效时 表示CPU已将数据写入该端口正等待输出 当CPU执行OUT指令 WR有效时 表示将数据锁存到数据输出缓冲存储器 由WR的上升 沿将OBF置为有效 对于A组 系统规定端口C的第7位 PC7 用作从端口A输出的OBF信号 对于B组 规定端口C的第1位 PC1 用作从端口B输出的OBF信号 ACK 外部应答信号 由外部输入 低电平有效 ACK有效 表示外部设备已收到由8255A输出的八位数据 它实际上是对OBF信号的回答信号 对于A组 指定端口C的第6位 PC6 用来接收向端口A输入的ACK信号 对于B组 指定端口C的第2位 PC2 用来接收向端口B输入的ACK信号 INTR 中断请求信号 向CPU输出 高电平有效 对于端口A 内部中断触发器INTEA由PC6 ACKA 置位 对于端口B INTEB由PC2 ACKB 置位 当ACK有效时 OBF被复位为高电平 并将相应端口的INTE置 1 于是INTR输出高电平 向CPU发出输出中断请求 待CPU响应该中断请求 可在中断服务程序中安排OUT指令继续输出后续字节 对于A组 指定端口C的第3位 PC3 作为由端口A发出的INTR信号 对于B组 指定端口C的第0位 PC0 作为由端口B发出的INTR信号 如果将8255A中的端口A和端口B均定义为工作方式1完成输出操作功能 那么工作方式控制字的具体格式如图8 12所示 图8 12 经这样定义的端口状态如图8 13所示 图8 13 从图8 13中可看出 当端口A和端口B同时被定义为工作方式1完成输出操作时 端口C的PC6 7和PC3 PC0被用作控制信号 只有PC4 5两位可完成数据输入或输出操作 因此可构成两种组合状态 端口A B输出 PC4 5输入 端口A B输出 PC4 5输出 采用工作方式1时 还允许将端口A和端口B分别定义为输入和输出端口 如果将端口A定义为方式1输入端口 而将端口B定义为方式1输出端口 则其方式控制字格式如图8 14所示 图8 14 经定义的端口状态如图8 15所示 图8 15 从图8 15 a 可看出 这种情况下端口C的PC5 PC0用作控制信号 只有PC7 6可作数据输入 输出用 这又能构成两种状态 端口A输入 端口B输出 PC7 6输入 端口A输入 端口B输出 PC7 6输出 反之 如果将端口A定义为方式1输出 将端口B定义为方式1输入 其方式控制字如图8 16所示 经过这样定义的端口状态如图8 15 b 所示 从图8 15 b 可看出 端口C的PC7和PC6 PC3 PC0分别用作控制信号 只有PC4和PC5可作数据输入 输出用 根据PC4 5的两种方式又可组合成两种端口状态 端口A输出 端口B输入 PC4 5输入 端口A输出 端口B输入 PC4 5输出 图8 16 综上所述 8255A中的端口A和端口B工作在方式1时 可构成8种不同的状态组合方式 端口C的低4位总是作控制用 而高4位中总是保持有两位仍然可作数据输入 输出用 因此控制字中的D0位可为任意值 由D1 D3 D4位的不同取值构成8种不同的状态组合方式 当然应该允许将端口A或端口B定义为方式0 与另一端口的方式1配合工作 这种组合状态下所需控制信号减少 情况更简单些 不再详细论述 3 工作方式2 被称作带选通的双向传送方式 8255A中只允许端口A处于工作方式2 可用来在两台处理机之间实现双向并行通信 其有关的控制信号由端口C提供 并可向CPU发出中断请求信号 当端口A工作于方式2时 允许端口B工作方式0或方式1完成输入 输出功能 其方式控制字格式如图8 17所示 图8 17 端口A工作于方式2的端口状态如图8 18所示 由图可看出 端口A工作于方式2所需要的5个控制信号分别由端口C的PC7 PC3来提供 如果端口B工作于方式0 那么PC2 PC0可用作数据输入 输出 如果端口B工作于方式1 那么PC2 PC0用来作端口B的控制信号 图8 18中未示出 端口A工作于方式2所需控制信号如下 OBFA 输出缓冲存储器满信号 向外部输出 低电平有效 OBFA有效 表示要求输出的数据已锁存到端口A的输出锁存器中 正等待向外部输出 CPU用OUT指令输出数据时 由WR信号后沿将OBFA置成有效 系统规定端口C的第7位 PC7 用作由端口A输出的OBFA信号 ACKA 应答信号 由外部输入 低电平有效 ACKA有效 表示外部已收到端口A输出的数据 由ACKA后沿将OBF置成无效 高电平 表示端口A输出缓冲存储器已空 CPU可继续向端口A输出后续数据 它实际上是OBFA的回答信号 系统规定端口C的第6位 PC6 用来接收输入的ACKA信号 STBA 数据选通信号 由外部输入 低电平有效 STBA有效 将外部输入的数据锁存到数据输入锁存器中 系统规定端口C的第4位 PC4 用来接收输入的STBA信号 图8 18 IBFA 输入缓冲存储器满信号 向外部输出 高电平有效 IBFA有效时 表示外部已将数据输入到端口A的数据输入锁存器中 等待向CPU输入 它实际上是对STBA的回答信号 系统规定端口C的第5位 PC5 用作输出的IBFA信号 INTR 中断请求信号 向本端CPU输入 高电平有效 无论是进行输入还是输出操作 都利用INTR向CPU发出中断请求 对于输出操作 ACKA有效时将内部触发器INTE1置 1 当OBFA被置成无效时 表示输出缓冲存储器已空 向CPU发出输出中断请求 INTRA有效 待CPU响应该中断请求可在中断服务程序中继续输出后续数据 对于输入操作 当STBA有效 外部将数据送入端口 A的输入锁存器后 使IBFA有效 STBA的后沿将内部触发器INTE2置 1 向CPU发出输入中断请求 INTRA有效 待CPU响应该中断请求可在中断服务程序中安排IN指令读入从端口A输入的数据 系统规定端口C的第3位 PC3 用作INTRA信号 8255A中端口A工作于方式2时 允许端口B工作于方式0或方式1 完成输入 输出功能 8255A芯片的4种端口状态如图8 19所示 图8 19 8 3 38255A并行接口应用举例 可编程并行接口8255A可为86系列微处理机提供3个独立的并行输入 输出端口 利用输出端口与数模转换器相连 可控制输出模拟量的大小 这个模拟量可以是电压的高低 电流的大小 速度的快慢 声音的强弱以及温度的升降等 利用模数转换器又可将它们变换为数字量 通过并行输入端口送回微机系统中 这样一种闭环的调节系统在实践中应用非常广泛 一个由8086CPU和8255A为主体构成的闭环调节系统的结构流程图如图8 20所示 由图可看出 8255A中端口A工作在方式0 完成输出功能 用来向数模转换器输出8位数字信息 端口B工作在方 式1 完成输入功能 用来接收由模数转换器输入的8位数字信息 端口C作控制用 PC7用作模数转换器ADC0809的启动信号 PC2用作输入的STBB信号 PC0用作中断请求信号INTRB 通过中断控制器8259A可向CPU发中断请求 这些都要由初始化程序来定义 图8 20 由8255A端口A输出的8位数字信息 经数模转换器DAC0832转换成模拟量 它输出的模拟量是电流值 因此 DAC0832常与运算放大器一起使用 以便将模拟电流放大并转换为模拟电压 经过调整可达到 当CPU输出的数字量从00H FFH时 运算放大器输出0 4 98V的模拟电压 该电压经传感器可调节控制现场的温度 速度 声音或流量等其他参数 控制现场的模拟信息经传感器和运算放大器可变换为一定范围内的电压值 这模拟电压经模数转换器ADC0809可变换为8位数字信息送回8255A的端口B 其转换速度取决于从CLK端引入的标准时钟 端口B可采用查询或中断方式与CPU联系 若采用中断方式 中断请求信号经8259A中断排队后送CPU的INTR端 如果采用中断方式 并定义中断类型码为40H 那么首先应将相应的中断服务程序定位到存储器中 并将其入口地址的段基址和偏移地址值置入中断入口地址表中从100H地址开始的四个字节中 可使用的初始化和控制程序如下 INTT MOVDX 8255A控制端口MOVAL 86HOUTDX AL初始化8255AMOVAL 05HOUTDX AL MOVDX 8259A偶地址端口MOVAL 13HOUTDX ALMOVDX 8259A奇地址端口MOVAL 40HOUTDX AL初始化8259AMOVAL 03HOUTDX ALMOVAL 0FEHOUTDX AL POUT MOVDX 8255A端口AMOVAL XXH从端口A输出8位数据OUTDX AL MOVDX 8255A端口CMOVAL 80HOUTDX AL启动ADC0809MOVAL 0OUTDX AL WAIT STIJMPWAIT40H类型中断服务程序 MOVDX 8255A端口BINAL DX IRET 上述程序将端口A定义为方式0输出端口 不需要任何控制信号 将端口B定义为方式1输入端口 需要PC2作输入信号 SIBB 用来接受ADC0809的转换结束命令EOC 由它将8位数字信息锁存到端口B的数据输入锁存器中 需要PC0用作输出信号 向CPU发出中断请求 由主程序完成初始化功能后 通过端口A输出预置的8位数字信息 用来控制现场的某种模拟参数 从现场收集到的模拟量通过端口B以中断方式向8086CPU报告 CPU响应该中断请求后可在中断服务程序中利用IN指令接收由端口B输入的数字信息 并完成必要的计算和处理后可向端口A输出新的数字信息 以实现对现场模拟信息的调整过程 对于中断服务程序的具体处理过程应根据实际需要来编制相应的程序 8 4串行通信及串行接口8 4 1串行通信线路的工作方式 串行通信指的是数据一位一位地依次传输 每一位数据占据一个固定的时间长度 这种情况只要少数几条线就可以在系统间交换信息 特别适用于计算机与计算机 计算机与外部设备之间的远距离通信 但串行通信的速度比较慢 串行通信线路有如下3种方式 1 单工通信 它只允许一个方向传输数据 如图8 21 a 所示 A只作为数据发送器 B只作为数据接收器 不能进行反方向传输 2 半双工通信 它允许两个方向传输数据 但不能同时传输 只能交替进行 A发B收或B发A收 如图8 21 b 所示 在这种情况下 为了控制线路换向 必须对两端设备进行控制 以确定数据流向 这种协调可以靠增加接口的附加控制线来实现 也可用软件约定来实现 3 全双工通信 它允许两个方向同时进行数据传输 A收B发的同时可A发B收 如图8 21 c 所示 显然 两个传输方向的资源必须完全独立 A与B都必须有独立的接收器和发送器 从A到B和从B到A的数据通路也必须完全分开 至少在逻辑上是分开的 图8 21 8 4 2串行接口 串行接口有许多种类 典型的串行接口如图8 22所示 它包括4个主要寄存器 控制寄存器 状态寄存器 数据输入寄存器及数据输出寄存器 图8 22 控制寄存器用来接收CPU送给此接口的各种控制信息 而控制信息决定接口的工作方式 状态寄存器的各位叫状态位 每一个状态位都可以用来指示传输过程中的某一种错误或者当前传输状态 数据输入寄存器总是和串行输入 并行输出移位寄存器配对使用的 在输入过程中 数据一位一位从外部设备进入接口的移位寄存器 当接收完一个字符以后 数据就从移位寄存器送到数据输入寄存器 再等待CPU来取走 输出的情况和输入过程类似 在输出过程中 数据输出寄存器和并行输入 串行输出移位寄存器配对使用 当CPU往数据输出寄存器中输出一个数据后 数据便传输到移位寄存器 然后一位一位地通过输出线送到外部设备 CPU可以访问串行接口中的4个主要寄存器 从原则上说 对这4个寄存器可以通过不同的地址来访问 不过 因为控制寄存器和数据输出寄存器是只写的 状态寄存器和数据输入寄存器是只读的 所以 可以用读信号和写信号来区分这两组寄存器 再用一位地址来区分两个只读寄存器或两个只写寄存器 由于这种串行接口控制寄存器的参数是可以用程序来修改的 所以称作可编程串行接口 8 4 3串行通信数据的收发方式 在串行通信中数据的收发可采用异步和同步两种基本的工作方式 1 异步通信方式异步通信所采用的数据格式是以一组不定 位数 数组组成 第1位称起始位 它的宽度为1位 低电平 接着传送一个字节 8位 的数据 以高电平为 1 低电平为 0 最后是停止位 宽度可以是1位 1 5位或2位 在两个数据组之间可有空闲位 异步通信的数据格式见图8 23 图8 23 每秒传送数据的位数称为传送速率 即波特率 bandrate 波特率一般在300 600 900 1 200 2 400 9 600波特之间 计算机之间的异步通信速率一经确定后 一般不应变动 但通信的数据是可变动的 也就是数据组之间的空闲位是可变的 2 同步通信方式在同步通信时所使用的数据格式根据控制规程分为面向字符及面向比特的两种 1 面向字符型的数据格式 面向字符型的同步通信数据格式可采用单同步 双同步及外同步3种数据格式 如图8 24所示 图8 24 单同步是指在传送数据之前先传送一个同步字符 SYNC 双同步则先传送两个同步字符 SYNC 接收端检测到该同步字符后开始接收数据 外同步通信的数据格式中没有同步字符 而是用一条专用控制线来传送同步字符 使接收方及发送端实现同步 当每一帧信息结束时均用两个字节的循环控制码CRC为结束 2 面向比特型的数据格式 根据同步数据链路控制规程 SDLC 面向比特型的数据以帧为单位传输 每帧由6个部分组成 第1部分是开始标志 7EH 第2部分是一个字节的地址场 第3部分是一个字节的控制场 第4部分是需要传送的数据 数据都是位 bit 的集合 第5部分是两个字节的循环控制码CRC 最后部分又是 7EH 作为结束标志 面向比特型的数据格式如图8 25所示 图8 25 在SDLC规程中不允许在数据段和CRC段中出现6个 1 否则会误认为是结束标志 因此要求在发送端进行检验 当连续出现5个 1 则立即插入一个 0 到接收端要将这个插入的 0 去掉 恢复原来的数据 保证通信的正常进行 通常 异步通信速率要比同步通信的低 最高同步通信速率可达到800k位 因此适用于传送信息量大 要求传送速率很高的系统中 8 5可编程串行通信接口芯片8251A 8251A是一个通用串行输入 输出接口 可用来将86系列CPU以同步或异步方式与外部设备进行串行通信 它能将并行输入的8位数据变换成逐位输出的串行信号 也能将串行输入数据变换成并行数据 一次传送给处理机 广泛应用于长距离通信系统及计算机网络 8 5 18251A芯片内部结构及其功能 8251A由发送器 接收器 数据总线缓冲存储器 读 写控制电路及调制 解调控制电路等5部分组成 如图8 26所示 引脚信号如图8 27所示 图8 26 图8 27 1 发送器8251A的发送器包括发送缓冲存储器 发送移位寄存器 并 串转换 及发送控制电路3部分 CPU需要发送的数据经数据发送缓冲存储器并行输入 并锁存到发送缓冲存储器中 如果是采用同步方式 则在发送数据之前 发送器将自动送出一个 单同步 或两个 双同步 同步字符 Sync 然后 逐位串行输出数据 如果采用异步方式 则由发送控制电路在其首尾加上起始位及停止位 然后从起始位开始 经移位寄存器从数据输出线TXD逐位串行输出 其发送速率由TXC端上收到的发送时钟频率决定 当发送器作好接收数据准备时 由发送控制电路向CPU发出TXRDY有效信号 CPU立即向8251A并行输出数据 如果8251A与CPU之间采用中断方式交换信息 那时TXRDY作为向CPU发出的发送中断请求信号 待发送器中的八位数据发送完毕时 由发送控制电路向CPU发出TXEMPTY有效信号 表示发送器中移位寄存器已空 因此 发送缓冲存储器和发送移位寄存器构成发送器的双缓冲结构 与发送器有关引脚信号如下 1 TXD 数据发送线 输出串行数据 2 TXRDY 发送器已准备信号 表示8251A的发送数据缓冲存储器已定 输出信号线 高电平有效 只要允许发送 TXEN 1及CTS端有效 则CPU就 可向8251A写入待发数据 TXRDY还可作为中断请求信号用 待CPU向8251A写入一个字符后 TXRDY便变为低电平 3 TXEMPTY 发送器空闲信号 表示8251A的发送移位寄存器已空 输出信号线 高电平有效 当TXEMPTY 1时 CPU可向8251A的发送缓冲存储器写入数据 4 TXC 发送器时钟信号 外部输入 对于同步方式 TXC的时钟频率应等于发送数据的波特率 对于异步方式 由软件定义的发送时钟是发送波特率的1倍 1 16倍 16 或64倍 64 在要求1倍情况时 TXC 64kHz 16倍情况时 TXC 310kHz 64倍情况时 TXC 615kHz 2 接收器8251A的接收器包括接收缓冲存储器 接收移位寄存器 串 并转换 及接收控制电路3部分 外部通信数据从RXT端 逐位进入接收移位寄存器中 如果是同步方式 则要检测同步字符 确认已经达到同步 接收器才可开始串行接收数据 待一组数据接收完毕 便把移位寄存器中的数据并行置入接收缓冲存储器中 如果是异步方式 则应识别并删除起始位和停止位 这时RXDRY线输出高电平 表示接收器已准备好数据 等待向CPU输出 8251A接收数据的速率由RXC端输入的时钟频率决定 接收缓冲存储器和接收移位寄存器构成接收器的双缓冲结构 与接收器有关的引脚信号如下 1 RXD 数据接收线 输入串行数据 2 RXRDY 接收器已准备好信号 表示接收缓冲寄存器中已接收到一个数据符号 等待向CPU输入 若8251采用中断方式与CPU交换数据 则RXRDY信号用作向CPU发出的中断请求 当CPU取走接收缓冲存储器中数据后 同时将RXRDY变为低电平 3 SYNDET BRKDET 双功能的检测信号 高电平有效 对于同步方式 SYNDET是同步检测端 若采用内同步 当RXD端上收到一个 单同步 或两个 双同步 同步字符时 SYNDET输出高电平 表示已达到同 步 后续接收到的便是有效数据 若采用外同步 外同步字符从SYNDET端输入 当SYNDET输入有效 表示已达到同步 接收器可开始接收有效数据 对于异步方式 BRKDET用于检测线路是处于工作状态还是断缺状态 当RXD端上连续收到八个 0 信号 则BRKDET变成高电平 表示当前处于数据断缺状态 4 RXC 接收器时钟 由外部输入 这时钟频率决定8251A接收数据的速率 若采用同步方式 接收器时钟频率等于接收数据的频率 若采用异步方式 可用软件定义接收数据的波特率 情况与发送器时钟TXC相似 一般 接收器时钟应与对方的发送器时钟相同 3 数据总线缓冲存储器数据总线缓冲存储器是CPU与8251A之间信息交换的通道 它包含3个8位缓冲寄存器 其中两个用来存放CPU向8251A读取的数据及状态 当CPU执行IN指令时 便从这两个寄存器中读取数据字及状态字 另一个缓冲寄存器存放CPU向8251A写入的数据或控制字 当CPU执行OUT指令时 可向这个寄存器写入 由于两者公用一个缓冲寄存器 这就要求CPU在向8251A写入控制字时 该寄存器中无将要发送的数据 为此 该接口电路必需要有一定的措施来防止 4 读 写控制电路读 写控制电路用来接收一系列的控制信号 由它 们可确定8251A处于什么状态 并向8251A内部各功能部件发出有关的控制信号 因此它实际上是8251A的内部控制器 由读 写控制电路接收的控制信号如下 1 RESET 复位信号 向8251A输入 高电平有效 RESET有效 迫使8251A中各寄存器处于复位状态 收 发线路上均处于空闲状态 2 CLK 主时钟 向8251A输入 CLK信号用来产生8251A内部的定时信号 对于同步方式 CLK必须大于发送时钟 TXC 和接收时钟 RXC 频率的30倍 对于异步方式 CLK必须大于发送和接收时钟的4 5倍 8251A还规定CLK频率要在0 74 3 1MHz范围内 3 CS 选片信号 由CPU输入 低电平有效 CS有效 表示该8251A芯片被选 通常由8251A的高位端口地址译码得到 4 RD和WR 读和写控制信号 由CPU输入 低电平有效 5 C D 控制 数据信号 C D 1 表示当前通过数据总经传送的是控制字或状态信息 C D 0 表示当前通过数据总线传送的是数据 均可由一位地址码来选择 5 调制 解调控制电路当使用8251A实现远距离串行通信时 8251A的数据输出端要经过调制器将数字信号转换成模拟信号 数据接收端收到的是经过解调器转换来的数字信号 因此8251A要与调制 解调器直接相连 它们之间的接口信号如下 1 DTR 数据终端准备好信号 向调制 解调器输出 低电平有效 DTR有效 表示CPU已准备好接收数据 它可软件定义 控制字中DTR位 1时 输出DTR为有效信号 2 DSR 数据装置准备好信号 由调制 解调器输入 低电平有效 DSR有效 表示调制 解调器或外部设备已准备好发送数据 它实际上是对DTR的回答信号 CPU可利用IN指令读入8251A状态寄存器内容 检测DSR位状态 当DSR 1时 表示DSR有效 3 RTS 请求发送信号 向调制 解调器输出 低电平有效 RTS有效 表示CPU已准备好发送数据 可由软件定义 控制字中RTS位 1时 输出RTS有效信号 4 CTS 清除发送信号 由调制 解调器输入 低电平有效 CTS有效 表示调制 解调器已作为接收数据准备 只要控制字中TXEN位 1 CTS有效时 发送器才可串行发送数据 它实际上是对RTS的回答信号 如果在数据发送过程中使CTS无效 或TXEN 0 发送器将正在发送的字符结束时停止继续发送 8 5 28251A芯片的控制字及其工作方式 可编程串行通信接口芯片8251A在使用前必须进行初始化 以确定它的工作方式 传送速率 字符格式以及停止位长度等 可使用的控制字如下 1 方式选择控制字其使用格式如图8 28所示 B2B1位用来定义8251A的工作方式是同步方式还是异步方式 如果是异步方式还可由B2B1的取值来确定传送速率 1表示输入的时钟频率与波特率相同 允许发送和接收波特率不同 RXC和TXC也可不相同 但是它们的波特率系数必须相同 16表示时钟频率是波特率的16倍 64表示时钟频率是波特率的64倍 图8 28 因此通常称1 16和64为波特率系数 它们之间存在如下的关系 发送 接收时钟频率 发送 接收波特率 波特率系数L2L1位用来定义数据字符的长度可为5 6 7或8位 PEN位用来定义是否带奇偶校验 称作校验允许位 在PEN 1情况下 由EP位定义是采用奇校验还是偶校验 S2S1位用来定义异步方式的停止位长度 1位 1 5位或2位 对于同步方式 S1位用来定义是外同步 S1 1 还是内同步 S1 0 S2位用来定义是单同步 S2 1 还是双同步 S2 0 2 操作命令控制字其使用格式如图8 29所示 TXEN位是允许发送位 TXEN 1 发送器才能通过TXD线向外部串行发送数据 图8 29 DTR位是数据终端准备好位 DTR 1 表示CPU已准备好接收数据 这时DTR引线端输出有效 RXE位是允许接收位 RXE 1 接收器才能通过RXD线从外部串行接收数据 SBRK位是发送断缺字符位 SBRK 1 通过TXD线一直发送 0 信号 正常通信过程中SBRK位应保持为 0 ER位是清除错误标志位 8251A设置有3个出错标志 分别是奇偶校验标志PE 越界错误标志OE和帧校验错标志FE ER 1时将PE OE和FE标志同时清 0 RTS位是请求发送信号 RTS 1 迫使8251A输出RTS有效 表示CPU已作好发送数据准备 请求向调制 解调器或外部设备发送数据 IR位是内部复位信号 IR 1 迫使8251A回到接收方式选择控制字的状态 EH位为跟踪方式位 EH位只对同步方式有效 EH 1 表示开始搜索同步字符 因此对于同步方式 一旦允许接收 RXE 1 必须同时使EH 1 并且使ER 1 清除全部错误标志 才能开始搜索同步字符 从此以后所有写入的8251A的控制字都是操作命令控制字 只有外部复位命令RESET 1或内部复位命令IR 1才能使8251A回到接收方式选择命令字状态 3 状态控制字CPU可在8251A工作过程中利用IN指令读取当前8251A的状态控制字 其使用格式如图8 30所示 图8 30 PE是奇偶错标志位 PE 1表示当前产生了奇偶错 它不中止8251A的工作 OE是溢出错标志位 OE 1 表示当前产生了溢出错 CPU没有来得及将上一字符读走 下一字符又来到RXD端 它不中止8251A继续接收下一字符 但上一字符将被丢失 FE是帧校验错标志位 FE只对异步方式有效 FE 1 表示未检测到停止位 不中止8251A工作 上述3个标志允许用操作命令控制字中的ER位复位 TXRDY位是发送准备好标志 它与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 链条装配工客户满意度考核试卷及答案
- 房子转让协议书
- 租赁土地合同协议书
- 钛真空熔炼工知识盲区填补考核试卷及答案
- 锁具装配工资源协调与分配考核试卷及答案
- 电子绝缘材料上胶工安全技术规程
- 2025合同模板股权投资合作合同范本
- 2026届广东省云浮数学九年级第一学期期末复习检测试题含解析
- 《2025安徽省学校保卫劳动合同》
- 四川省绵阳市绵阳外国语学校2026届数学八上期末学业质量监测试题含解析
- 吉林省松原市四校2025~2026学年度下学期九年级第一次月考试卷 物理(含答案)
- 2025云南昆明元朔建设发展有限公司第一批收费员招聘20人考试参考试题及答案解析
- 破局向新 持续向上-2025年人力资源发展趋势报告-智联招聘北大国发院
- 仓库环境管理办法
- 2025年大模型章节练习考试题库
- 三年级数学《毫米的认识》教学设计
- 人工智能基础与应用课件 项目1 初探人工智能
- 2025-2030年中国智能电网行业市场发展前景及投资战略研究报告
- 微积分学-P.P.t-标准课件00-第1讲微积分的发展历程
- 导数的应用-函数的零点问题(5题型分类)-2025年高考数学一轮复习(解析版)
- 第十中学八年级上学期语文10月月考试卷(含答案)
评论
0/150
提交评论