已阅读5页,还剩154页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章并行通信与串行通信 9 1概述9 2可编程并行接口芯片8255A9 3串行通信接口芯片8251A习题与思考题 微机系统的信息交换有两种方式 并行通信方式和串行通信方式 并行通信通常是以字节 Byte 或字节的倍数为传输单位 一次传送一个或一个以上字节的数据 适合于外部设备与微机之间进行近距离 大量和快速的信息交换 实现并行通信的接口称之为并行接口 串行通信则是将要传送的数据一位一位地依次顺序传送 利用一对传输线可传送多位长度的数据 从而降低了传输线路的成本 特别是在长距离数据传送中 9 1概述 9 1 1并行通信1 并行接口实现并行通信的接口电路 称为并行接口 根据并行接口的特点可以分输入并行接口 输出并行接口和输入 输出并行接口 并行通信以同步方式传输 其特点是 传输速度快 硬件开销大 只适合近距离传输 跟所有的接口一样 一个并行接口的信息传输中包括状态信息 控制信息和数据信息 1 状态信息 状态信息表示外设当前所处的工作状态 例如 准备好信号 READY 1表示输入接口已经准备好 可以和CPU交换数据 忙信号 BUSY 1表示接口正在处理信息 CPU需要等待 2 控制信息 控制信息是由CPU发出的 用于控制外设接口的工作方式以及外设的启动和复位等 3 数据信息 CPU与并行接口交换的主要内容 状态信息 控制信息和数据信息通过总线传送 这些信息在外设接口中分别存放在不同端口寄存器中 接口电路需要几个端口相互配合 才能协调外部设备的工作 图9 1是一个典型的并行接口与CPU 外设连接图 2 并行接口的组成一个并行接口电路通常由输入数据缓冲器 输出数据缓冲器 状态寄存器和控制寄存器组成 1 输入缓冲寄存器 输入数据缓冲器主要功能是负责接收设备送来的数据 CPU通过读操作指令IN执行读操作 从输入数据缓冲器读取数据 2 输出缓冲寄存器 输出数据缓冲器主要功能是负责接收CPU送来的数据 如果设备处于空闲状态 则从输出数据缓冲器取走数据 接口通知CPU进行下一次输出操作 3 状态寄存器 状态寄存器用来存放外设运行状态信息 CPU通过访问状态寄存器来了解外设状态 进而控制外设的工作 4 控制寄存器 并行接口中有一个控制寄存器 CPU对外设设置的工作方式命令 操作命令都存放在控制寄存器中 通过控制寄存器控制外设的运行 3 并行通信接口的基本输入 输出工作过程 1 输入过程 外设首先将并行传输的数据放到外设与接口之间的数据总线上 并使 数据输入准备好 状态选通信号有效 该选通信号使数据输入到接口的输入数据缓冲器内 当数据写入输入数据缓冲器后 接口使 数据输入应答 信号有效 作为对外设输入的响应 外设收到此信号后 便撤销输入数据和 数据输入准备好 信号 数据到达接口后 接口在状态寄存器中设置 输入准备好 状态位 以便CPU进行查询 接口也可以在此时向CPU发送中断请求 表示数据已输入到接口 CPU既可以用查询程序方式 也可以用程序中断方式来读取接口中的数据 CPU从输入缓冲器中读取数据后 接口自动清除状态寄存器中 输入准备好 状态位 并使数据总线处于高阻状态 至此 一个数据的传送结束 2 输出过程 当外设从接口取走数据后 接口就会将状态寄存器中 输出准备好 状态位置1 表示CPU当前可以向接口输出数据 这个状态位可供CPU进行查询 接口此时也可以向CPU发中断请求 CPU既可以用查询程序方式 也可以用程序中断方式向接口输出数据 当CPU将数据送到输出缓冲器后 接口自动清除 输出准备好 状态位 并将数据送往外设的数据线上 同时 接口将给外设发送 启动信号 来启动外设接收数据 外设被启动后 开始接收数据 并向接口发 数据输出应答 信号 接口收到此信号 便将状态寄存器中的 输出准备好 状态位置1 以便CPU输出下一个数据 9 1 2串行通信随着计算机通信和计算机网络的发展 串行通信得到越来越广泛的应用 如微机上常用的COM设备 USB设备和网络通信等设备都采用串行通信 所谓串行通信是指一位一位地进行数据传输 与并行通信相比 串行通信的优点是传输线少 成本低 适合远距离传送及易于扩展 缺点是速度慢 传输时间长等 1 串行接口的组成串行接口是通过系统总线和CPU相连 串行接口部件的典型结构如图9 2所示 跟并行接口一样 主要由控制寄存器 状态寄存器 数据输入寄存器和数据输出寄存器4部分组成 1 数据输入寄存器 在输入过程中 串行数据一位一位地从传输线进入串行接口的接收移位寄存器 经过串入并出电路的转换 当接收完一个字符之后 数据就从接收移位寄存器传送到数据输入缓冲器 等待CPU读取 2 数据输出寄存器 当CPU输出数据时 先送到数据输出缓冲器 然后 数据由输出寄存器传到发送移位寄存器 经过并入串出电路转换一位一位地通过输出传输线送到外设 3 状态寄存器 状态寄存器用来存放接口运行的状态信息 CPU通过访问这个寄存器来了解接口的状态 进而控制接口的工作 以便与外设进行数据交换 4 控制寄存器 串行接口中有一个控制寄存器 CPU对接口设置的工作方式命令 操作命令都存放在控制寄存器中 通过控制寄存器控制接口运行 串行通信将数据一位一位地依次传输 每一位数据占据一个固定的时间长度 输入过程中 数据通过传输数据线逐位进入移位寄存器 当接收完一个字节数据后 把数据从移位寄存器送到输入寄存器 等待CPU的读取 输出过程与输入过程类似 在输出过程中 数据输出寄存器和并行输入 串行输出移位寄存器配对使用 CPU往数据输出寄存器中输出一个数据后 数据便并行传输到移位寄存器 然后数据一位一位的通过输出线传送给外部设备 2 串行接口的基本输入输出过程 3 串行通信中使用的术语 1 串行通信中的工作方式串行通信中的工作方式分为 单工通信方式 半双工通信方式和全双工通信方式 单工通信方式 在这种方式下 通信双方用一根线连接 一端作为发送端 另一端作为接收端 只允许数据按照一个固定的方向传送 如图9 3 a 所示 数据只能从A站点传送到B站点 而不能由B站点传送到A站点 单工通信类似无线电广播 电台发送信号 收音机接收信号 收音机永远不能发送信号 半双工通信方式 通信双方使用一根线连接 某一时刻 某一方只能进行发送或接收 由于使用一根线连接 发送和接收不可能同时进行 这种传输方式称为半双工通信方式 如图9 3 b 所示 半双工通信方式类似对讲机 某时刻A方发送B方接收 另一时刻B方发送A方接收 双方不能同时进行发送和接收 全双工通信方式 相互通信双方 既可以是接收器也可以是发送器 分别用2根独立的传输线来连接发送方和接收方 这种发送方和接收方同时进行工作的方式 称为全双工通信方式 如图9 3 c 所示 全双工通信工方式类似电话机 双方可以同时进行数据的发送和接收 2 发送时钟和接收时钟在通信中把要传送的二进制数据序列称为比特组 由发送器发送到传输线上 再由接收器从传输线上接收 二进制数据序列在传输线上是以数字信号形式出现 每一位数据持续的时间是固定的 在发送时是以发送时钟作为数据位的划分界限 在接收时是以接收时钟作为数据位的划分界限 这样在串行通信中需要考虑发送端和接收端的时钟频率 发送时钟 控制串行数据的发送 把并行数据序列送入移位寄存器 然后由发送时钟触发进行移位输出 数据位的时间间隔可由发送时钟周期来划分 接收时钟 检测串行数据的接收 传输线上送来的串行数据序列由接收时钟作为移位寄存器的触发脉冲 逐位传入移位寄存器 波特率与比特率在串行通信中 衡量通信传输速率的术语有两个 波特率和比特率 波特率用来表示在通信信道上每秒传输的信号单元数 任意进制数据 比特率是表示在通信信道上每秒传输的二进制数的位数 当传送的数据是二进制数时 波特率与比特率相等 波特率与比特率的关系是 比特率 波特率 其中N表示传送的数据为N进制 例如对于每个信号携带4比特 即16进制数据 的一个模拟信号 如果每秒发送1000个信号单元 其通信的波特率和比特率分别是多少 波特率 信号单元数 秒 1000波特比特率 波特率 4000bit s 在串行通信中 二进制数据流是以数字信号波形的形式出现的 对这些连续的数字波型的发送和接收都是在时钟的控制下进行的 串行通信要求收发双发具有相同的波特率 在发送数据时 发送器在发送时钟的有效沿 下降沿 时刻将移位寄存器的数据按位串行输出 在接收数据时 接收器在接收时钟的有效沿 上升沿 时刻对接收数据按位采样 并按位串流送入移位寄存器 收 发时钟对传输数据信号的每一位进行同步控制 收 发时钟的快慢直接影响通信设备的通信速率 收 发时钟与波特率的关系 其中M为波特率因子 在串行通信中M的取值一般为1 16 32 64等 波特率因子可以理解为发送 接受1b数据所需的时钟脉冲个数 3 数据终端设备和数据通信设备 数据终端设备DTE DataTerminalEquipment 是对属于用户的所有联网设备和工作站的统称 数据的发送端或数据的接收端 例如 数据输入 输出设备 通信处理机等 DTE可以根据协议来控制通信的功能 数据通信设备DCE DataCommunicationEquipment 也称为数据电路终端设备 DataCircuit terminatingEquipment DCE是对网络设备的统称 为用户设备提供入网连接点 自动呼叫 应答设备 调制解调器Modem和其它一些中间设备均属DCE 4 同步通信和异步通信方式串行通信按传送信息流的通信协议规范方式分为2种类型 同步通信方式和异步通信方式 通信协议指通信双方共同遵守的数据传送规范 它包括数据通信格式 同步方式 传送速率 校验方式及控制符定义等 1 异步通信方式及协议异步通信方式也叫起止式异步协议 在传送信息流中相邻字符之间的时间间隔是不固定的 而同一字符内相邻各位之间的时间间隔是固定的 异步通信中发送方和接收方时钟频率也不要求完全一样 但不能超过一定允许范围 异步通信的特点为 通信信息流中 以字符为单位进行传送 字符之间异步 字符内各位间同步 字符传输以起始位为准 以相同速率进行数据位的收发 通信双方必须约定相同的字符数据格式 校验方法和传输速率 异步通信数据的格式如图9 4所示 起始位 1位 数据位 5 8位 奇偶校验位 1位 可选 和停止位 1 1 5或2位 停止位后面是不定长度的空闲位 停止位和空闲位都规定为高电平 保证起始位开始处一定有一个下降沿 从图中可以看出 这种格式靠起始位和停止位来实现字符的界定和同步的 故也称为起止式协议 从异步通信格式可以看出 传送一个字符以起始位开始 停止位结束 提供了区分和识别联络信号与数据信号的标志 传送开始前 发送与接收方要设置所采用的信息格式 包括数据位长度 停止位长度 奇偶校验位信息 和数据传送速率等参数 如要改变格式和比特率 双方必须同时修改 传送开始后 接收设备不断检测传输线 看是否有起始位到来 当收到一系列的 1 空闲位或停止位 之后 若检测到一个 0 表明起始位出现 然后继续接收所规定的数据位 奇偶位和停止位 最后接收设备将停止位屏蔽 并将数据位转换成一个并行数据 同时进行奇偶校验 无奇偶校验错误才算正确接收一个字符 为确保正确接收字符的各位信息 通常要求接收方电路采样时钟频率高于传送数据的比特率 如接收方的采样时钟频率为传输数据比特率的16倍 接收时钟与发送时钟的采样关系图如图9 5所示 异步通信是按字符传输的 每传送一个字符 就用起始位来通知接收方 以此来进行收发双方同步 若接收设备和发送设备两者时钟略有偏差 字符停止位和空闲位将为此提供缓冲 因而不会因偏差的累积导致错位 保证异步串行通信的可靠性 2 同步通信方式及协议同步通信是指传送信息流中每个二进制位都需要时钟同步 同步通信的特点 在通信的信息流中 以数据块为单位进行传送 数据块包含多个字节 字符 数据块内各位间同步 同步通信总是以同步字符作为数据块帧传送的开始 收发双方以相同速率进行数据位收发 通信双方必须约定相同的数据帧格式和传输速率 根据同步通信的协议类型 同步通信主要分为面向字符的同步协议和面向比特的同步协议 面向字符的同步协议特点与格式 这种协议的典型代表是IBM公司的二进制同步通信协议 BSC 它的特点是一次传送由若干个字符组成的数据块 而不是只传送一个字符 并规定了10个字符作为这个数据块开头与结束标志以及整个传输过程的控制信息 它们也叫做通信控制字 由于被传送的数据块是由字符组成 故被称作面向字符的协议 主要有单同步协议 双同步协议和外同步协议三种 如图9 6所示 常用控制字符的定义 SYN SYN是同步字符 SynchronousCharacter 每一帧开始处都有SYN 加一个SYN称单同步 加两个SYN称双同步 设置同步字符起联络作用 传送数据时 接收端不断检测 一旦出现同步字符 就知道是一帧数据开始 SOH SOH是序始字符 StartOfHeader 表示标题的开始 标题中包括源地址 目的地址和路由指示等信息 STX STX StartofText 是文始字符 它标志着正文传送的开始 ETB ETB EndofTransmissionBlock 是组终字符 ETX ETX EndofText 是文终字符 其中ETB用在正文很长 需要分成若干个分数据块 分别在不同帧中发送的场合 这时在每个分数据块后面用组终字符ETB 校验码 校验码对从SOH开始到ETX 或ETB 字段进行校验 校验方式可以是纵横奇偶校验或CRC 循环冗余校验 另外 在面向字符协议中还采用了一些其它通信控制字 可以在ASCII表中查找 面向比特的同步协议特点与格式 面向比特的协议中最具有代表性的是IBM的同步数据链路控制规程SDLC SynchronousDataLinkControl 和国际标准化组织ISO InternationalStandardOrganization 的高级数据链路控制规程HDLC HighLevelDatalinkControl 等 这些协议的特点是所传输的一帧数据可以是任意位 而且它是靠约定的位组合模式 而不是靠特定字符来标志帧的开始和结束 故称 面向比特 的协议 其格式如9 7所示 帧信息的分段 SDLC HDLC的一帧信息包括多个场 Filed 所有场都是从有效位开始传送 详细的格式介绍可查阅网络通信方面的参考资料 这里不详细介绍 3 异步通信与同步通信的比较根据异步通信与同步通信的特点可以看出 异步通信方式不要求发收双方使用同一时钟 容易实现 但它要求在每个字符前后附加起始位 停止位 增加了大量附加数据 因此传输效率不高 同步方式只需在每个数据块 往往长度很长 前附加1 2个同步字符 其附加信息少 因而传送效率高 但收发时钟频率要求一致 硬件电路较复杂 所以 一般在高速通信时采用同步方式 而在低速通信时采用异步方式 由于异步传送以字符为单位 所以接口与主机之间数据传送通常采用中断方式 而同步传送以数据块为单位 所以 接口与主机之间数据传送通常采用DMA方式 5 信号的调制与解调计算机通信是二进制数字信号的传输 它要求传送线的频带很宽 而远程数字通信时 往往是利用现有的模拟通信线路 如 电话线 其主要用途是传送音频信号 频带窄 一般为300 3400Hz 因此 若直接利用模拟信道作数字信号传输 信号必然会发生畸变而导致出错 解决的办法是利用调制解调器 即MODEM Modulator Demodulator 如图9 8所示 在发送方 用调制器把数字信号转换为模拟信号 经过模拟信道的传输到达接收方后 用解调器将模拟信号转换成数字信号进入接收方计算机 图9 8中MODEM由调制器和解调器合在一起形成的装置 用作双向通信 MODEM的类型一般可分为幅移键控 ASK 频移键控 FSK 和相移键控 PSK 等 当通信波特率小于300bit s时 常采用FSK调制方式 其基本原理是将数字信号 1 和 0 分别调制成不同频率的音频信号 例如将 1 转换成2400Hz的音频信号 而将 0 转换成1200Hz的音频信号 当到达接收方后 解调器通过鉴频电路 将2400Hz和1200Hz音频信号再还原为数字信号 1 和 0 12 7 2RS 232C总线RS 232C总线是一种串行外部总线 由EIA ElectronicIndustryAssociation 于1962年公布 并于1969年作了最后一次修订 RS是RecommendedStandard的缩写 232是标准的标识号 推出这种总线标准的最初目的是实现数据终端设备DTE DataTerminalEquipment 和数据通信设备DCE DataCommunicationEquipment 之间的串行通信 DCE一般指调制解调器 Modem 当计算机和DCE相连时 其串行接口的地位等同于DTE 后来人们将其广泛应用于计算机与终端之间 计算机与计算机之间或计算机与串行打印机及其它串行接口设备之间的近距离串行通信 RS 232C早期的典型应用如图12 8所示 RS 232C总线标准主要包括机械特性 引脚定义和电气特性三个方面 1 机械特性标准RS 232C的机械特性主要表现在接口连接器上 规定采用25脚D型插头 插座 如图12 9所示 阳性插头 DB 25 P 与DTE相连 阴性插座 DB 25 S 与DCE相连 然而RS 232C标准在连接器方面没有严格规定 以致后来出现了9脚D型插头 插座以及其它连接形式 如图12 10所示 2 引脚信号定义RS 232C是从DTE的角度来定义引脚信号的 尽管近距离通信不使用Modem 但是在说明引脚功能时还需要以使用电话线传输的最初设计来描述 RS 232C规定了两个信道 即通信通道 主信道和辅助信道 另有4个引脚未定义 辅助信道的传输速率比主信道慢 一般不使用 用于主信道的有15个引脚 掌握其中9个即9个信号的功能及连接方法基本就可以了 这9个信号的名称及功能如表12 3所示 表12 3RS 232C主信道引脚信号功能 图12 11表明了DTE已准备好一个字节数据 希望通过DCE传输的过程 从中可以看出 DSR和DTR RTS和CTS是两对握手联络信号 在规定的时间内这两对信号联络成功才能进行传输 3 电气特性标准RS 232C采用负逻辑 用 15 3V 通常取 12V 表示1 用 3 15V 通常取 12V 表示0 这种电平称为EIA电平 而计算机和终端一般采用TTL电平 所以通过RS 232C进行数据传输需要进行电平转换 MCl488和SN75150是典型的由TTL电平变EIA电平的器件 而MCl489和SN75154是典型的由EIA电平变TTL电平的器件 图12 12所示是通过MCl488和MCl489进行信号连接的示意图 RS 232C的电气特性还有其它规定 如驱动器要能经得起任意两脚的开路或短路 最大传输速率为20000bps 接口的负载电阻在3k 至7k 之间 接口的负载电容应小于等于2500PF等 2 RS 232C接口的连接执行RS 232C总线标准的接口电路称RS 232C接口 RS 232C接口的连接可从距离远近两方面考虑 1 远距离时的连接两个相距甚远的RS 232C接口相连需借助于DCE Modem或其它远传设备 和电话线 如图12 13所示 此时 只需将RS 232C接口与Modem序号相同的引脚号分别相连 2 近距离时的连接当两个RS 232C接口相距很近时 15m以内 可不使用DCE而直接相连 有以下三种基本接法 标准接法图12 14所示为两个近距离 RS 232C接口直接相连的标准接法 这里有三个要点 一方的发送接到另一方的接收 这是显然的 一方请求就认为得到对方的允许 所以将自身的RTS和CTS相连 再接到对方的DCD 因为 这一方请求后认为立即得到允许 因而立即发送数据 对方也就可认为已检测到数据 双方地位相同 彼此作为对方的数据传送设备DCE 所以将这一方的DTR接到对方的DSR 同时接到RI表明线路已接通 简单接法当串行通信设备驱动程序中未涉及请求发送等联络信号或准备自己编写通信驱动程序时可采用简单接法 这时 只需考虑3根线的连接 如图12 15所示 仅一方使用联络信号时的接法当一方使用联络信号而另一方不使用联络信号 如单片机应用系统 仪器 仪表等 时 可采用如图12 16所示的接法 使用联络信号的一方请求就认为得到允许 数据终端就绪就认为数据传送设备就绪 Intel8255A是通用的可编程的并行接口芯片 它有三个并行I O口 通过编程设置多种工作方式 价格低廉 使用方便 可以直接与Intel系列芯片连接使用 在中小系统中有着广泛的应用 9 2 18255A的内部结构8255A由以下几部分组成 如图9 9所示 9 2可编程并行接口芯片8255A 1 三个数据端口A B C这三个端口均可看作是I O口 但它们的结构和功能稍有不同 1 A口 独立的8位I O口 内部有数据输入 输出锁存功能 2 B口 独立的8位I O口 仅对输出数据有锁存功能 3 C口 可以看作独立的8位I O口 也可以看作两个独立的4位I O口 仅对输出数据进行锁存 2 A组和B组的控制电路这是两组根据CPU命令控制8255A工作方式的电路 这些控制电路内部设有控制寄存器 可以根据CPU送来的编程命令控制8255A的工作方式 也可以根据编程命令对C口指定位进行置位 复位操作 A组控制电路用来控制A口及C口高4位 B组控制电路用来控制B口及C口低4位 3 数据总线缓冲器8位双向三态缓冲器 作为8255A与系统总线连接的桥梁 输入 输出数据 CPU的编程命令以及状态信息等 都通过数据缓冲器传输 4 读 写控制逻辑读 写控制逻辑电路负责管理8255A数据传输过程 它接收片选信号及系统读信号 写信号 复位信号RESET 还有来自系统地址总线的口地址选择信号A1和A0 9 2 28255A引脚功能引脚信号可以分为两组 面向CPU的信号和面向外设的信号 如图9 10所示 1 面向CPU的引脚信号及功能8255A面向CPU的引脚信号按照传输信息种类不同 分成3组 地址信号 数据信号和控制信号 A1A0 内部口地址的选择 输入 这两个引脚信号的组合决定了对8255A内部哪一个口或寄存器进行操作 8255A内部共有4个端口 A口 B口 C口和控制口 片选 输入 用来决定芯片是否被选中 由地址总线高位经译码电路产生 D0 D7 8位双向三态数据线 与系统数据总线相连 用来与CPU之间进行信息交换 RESET 复位输入信号 高电平有效 用来清除8255A的内部寄存器 并置A口 B口 C口均为输入方式 读控制信号 控制CPU读取8255A数据或状态信息 写控制信号 控制CPU将数据或控制信息写入8255A 和两个地址引脚信号组合功能如表9 1所示 表9 18255A端口地址分配表 2 面向外设的引脚信号及功能PA0 PA7 A组数据信号 用来连接外设进行并行数据传送 PB0 PB7 B组数据信号 用来连接外设进行并行数据传送 PC0 PC7 C组数据信号 用来连接外设或者作为A口 B口的控制信号 9 2 38255A的工作方式8255A各端口共有3种基本工作方式 方式0 基本输入 输出方式 方式1 选通输入 输出方式 方式2 双向选通传送方式 端口A有3种工作方式 方式0 方式1或方式2 端口B只有2种方式 方式0或方式1 端口C只有1种工作方式 方式0 也常常被分成高4位和低4位两部分 可分别用来传送数据或控制信息 用户通过设置控制字来定义3个端口的工作方式 可使用的控制字有工作方式控制字和置位 复位控制字 它们共用同一个端口地址 方式0 基本输入 输出 无条件传送方式或查询方式 A B C3个端口均可 方式1 选通输入 输出 中断方式 A B端口均可方式2 双选通输入 输出 中断方式 只有A口才有 1 方式0方式0为一种基本的输入 输出方式 没有规定固定的应答联络信号 A B C三个口均可以工作在方式0下 每一个口均可设置为输入口或输出口 A口的8条线 B口的8条线 C口的高4位对应的4条线和低4位对应的4条线 在这种方式下 只能单方向传递数据 方式0主要应用于主机与外设间的无条件输入输出 不需要联络控制信号 也不需要查询状态 如果需要联络信号 可以通过软件编程将某些I O线设置为联络控制线 方式0也可以在查询方式下进行数据传输 这种方式下A口 B口作为8位数据口 C口的上C口 PC7 PC4 作为选通信号STB 下C口 PC3 PC0 用作状态输入信号RDY 2 方式1方式1被称作选通输入 输出方式也叫做中断式输入输出方式 在这种工作方式下 数据输入 输出操作要在选通信号控制下完成 方式1也可以工作在查询方式 此时用C口充当查询端口 采用工作方式1进行选通输入操作时 需要使用的控制信号如下 1 选通信号 Strobe 由外设输入的 选通信号 低电平有效 有效时 将外设输入的数据锁存到所选端口的输入锁存器中 对A口来说 指定端口C的PC4用来接收向端口A输入的信号 对B口来说 指定端口C的PC2用来接收向端口B输入的信号 2 输入缓冲存储器满信号IBF InputBufferFull 向外设输出 高电平有效 IBF有效时 表示由输入设备输入的数据已占用该端口的输入锁存器 它实际上是对信号的回答信号 待CPU执行IN指令时 有效 将输入数据读入CPU 其后沿将IBF置0 表示输入缓冲存储器已空 外部设备可继续输入后续数据 外设收到8255A有效的IBF信号后 信号就会变成无效 对A口来说 指定端口C的PC5作为从端口A输出的IBF信号 对B口来说 指定端口C的PC1作为从端口B输出的IBF信号 3 中断请求信号INTR InterruptRequest 高电平有效 INTR在 IBF均为高时被置为高电平 也就是说 当选通信号结束 已将一个数据送进输入缓冲存储器中 并且输入缓冲区满信号已为高电平时 8255A向CPU发出中断请求信号 将INTR端置为高电平 在CPU响应中断读取输入缓冲存储器中数据时 由的下降沿将INTR置为低电平 端口C的PC3作为A口的INTR输出信号 端口C的PC0作为B口的INTR输出信号 4 中断允许信号INTE InterruptEnable 是控制中断允许或中断屏蔽的信号 INTE没有外部引出端 通过事先对端口C的置1或清0指令来实现中断控制 具体讲 对PC4置1 则使端口A处于中断允许状态 即INTEA 1 对PC4清0 则使端口A处于中断屏蔽状态 INTEA 0 与此类似 对PC2置1 则使端口B处于中断允许状态 INTEB 1 对PC2清0 则使端口B处于中断屏蔽状态 INTEB 0 当然 如果要使用中断功能 应该用软件事先使相应的端口处于中断允许状态 8255A中的端口A和端口B均可工作于方式1输入方式 其工作方式的端口状态如图9 11所示 从图9 11可看出 当端口A和端口B同时被定义为工作方式1完成输入操作时 端口C的PC5 PC0被用作控制信号 只有PC7和PC6位可完成数据输入或输出操作 因此可构成两种组合状态 端口A B输入 PC7 PC6同时输入 端口A B输入 PC7 PC6同时输出 采用工作方式1也可完成选通输出操作 使用的控制信号如下 1 输出缓冲存储器满信号 OutputBufferFull 向外设输出 低电平有效 有效时 表示CPU已将数据写入该端口正等待输出 当CPU执行OUT指令 有效时 表示将数据锁存到数据输出缓冲器 由的上升沿将置为有效 对于A组 规定PC7用作从端口A输出的信号 对于B组 规定PC1用作从端口B输出的信号 2 外设应答信号 Acknowledge 由外设输入 低电平有效 有效 表示外部设备已收到由8255A输出的八位数据 它实际上是对信号的回答信号 8255A收到有效的信号 在其后沿信号就会变为无效 对于A口 指定PC6用来接收向端口A输入的信号 对于B口 指定PC2用来接收向端口B输入的信号 3 中断请求信号INTR InterruptRequest 高电平有效 当变为高电平且也为高电平时 INTR被置为高电平 而当写信号的下降沿来到时 INTR变为低电平 端口C的PC3作为A口的INTR输出信号 端口C的PC0作为B口的INTR输出信号 4 中断允许信号INTE InterruptEnable 与端口A 端口B工作在方式1输入情况时INTE的含义一样 INTE为1时 使端口处于中断允许状态 INTE为0时 则使端口处于中断屏蔽状态 INTE的状态可通过软件设置 具体来说 PC6置1 则使端口A的INTE为1 PC6置为0 使端口A的INTE为0 与此类似 PC2置1 则使端口B的INTE为1 PC2置0 使端口B的INTE为0 如果将8255A中的端口A和端口B均定义为工作方式1输出模式 其工作方式的端口状态如图9 12所示 从图9 12中可看出 当端口A和端口B同时被定义为工作方式1完成输出操作时 端口C的PC6 PC7和PC3 PC0被用作控制信号 只有PC4 PC5两位可完成数据输入或输出操作 因此可构成两种组合状态 端口A B输出 PC4 PC5同时输入 端口A B输出 PC4 PC5同时输出 采用工作方式1时 允许端口A和端口B工作于查询方式 C端口提供程序查询状态字 状态字的格式如图9 13所示 3 方式2方式2称作带选通的双向传送方式 8255A中只允许端口A处于工作方式2 可用来联接双向I O设备 在两台处理机之间实现双向并行通信 其有关控制信号由端口C提供 并可向CPU发出中断请求信号 端口A工作于方式2的端口状态如图9 14所示 由图可看出 端口A工作于方式2所需要的5个控制信号分别由端口C的PC7 PC3来提供 端口A工作于方式2所需控制信号如下 1 输出缓冲器满信号 向外设输出 低电平有效 有效 表示要求输出的数据已锁存到端口A的输出缓存器中 正等待向外部输出 CPU用OUT指令输出数据时 由信号后沿将置成有效 规定PC7用作端口A输出的信号 2 应答信号 由外设输入 低电平有效 有效 表示外设已收到端口A输出的数据 由后沿将置成无效 高电平 表示端口A输出缓冲器已空 CPU可继续向端口A输出数据 它实际上是的回答信号 规定PC6用来接收输入的信号 3 数据选通信号 由外设输入 低电平有效 有效 将外设输入的数据锁存到数据输入锁存器中 规定PC4用来接收输入的信号 4 输入缓冲器满信号IBFA 向外设输出 高电平有效 IBFA有效 外设已将数据输入到端口A的数据输入锁存器中 等待向CPU输入 它实际上是对的回答信号 规定PC5用作输出的IBFA信号 5 中断请求信号INTRA 高电平有效 不管是输入动作还是输出动作 当一个动作完成时 8255A都通过该引脚向CPU发中断请求信号 6 中断允许信号INTE1 INTE1为1时 端口A的输出处于中断允许状态 INTE1为0时 屏蔽输出的中断请求 CPU可通过软件对PC6进行设置来决定INTE1的状态 INTE1与PC6的状态相同 7 中断允许信号INTE2 INTE2为1时 端口A的输入处于中断允许状态 INTE2为0时 端口A的输入处于中断屏蔽状态 CPU可通过软件对PC4进行设置来决定INTE2的状态 PC4为1 则INTE2为1 PC4为0 则INTE2为0 8255A的A口在方式2也可以工作于查询方式 此时C口充当A口的查询字 其格式如图9 15所示 9 2 48255A的编程1 8255A的编程控制字8255A可以在3种方式下工作 在选通方式时需要C口来充当联络信号 其工作方式的设置 联络信号的启动都需要通过对8255A编程实现 8255A编程控制字有工作方式控制字 C口置位 复位控制字 下面分别介绍 1 方式控制字方式控制字写入8255A控制口 写入控制字之后 8255A才能按指定的工作方式工作 8255A的方式控制字格式与各位的功能如图9 16所示 A组 B组 控制字举例 A口方式2 B口输入方式1 11XXX11XA口方式2 B口输入方式0 11XXX01T上面两个例子中 X表示与其取值无关 T表示视情况为0和1 要从这两个例子中举一反三 8255A的方式控制字一般是在初始化程序中完成方式设置 CPU通过输出指令OUT将其送入8255A的控制寄存器 2 C口的置位 复位控制字置位 复位控制字专门针对C口操作 它是通过向控制口写入按指定置位 复位的控制字来实现的 C口的这个功能可用于设置方式1或2的中断允许 外设的启动和停止等信号 置位 复位控制字格式如图9 17所示 2 8255A编程应用举例例9 1利用8255A的A口方式0与微型打印机相连 将内存缓冲区BUFF中的字符打印输出 试完成相应的软硬件设计 微型打印机和主机之间的接口采用并行接口 采用Centronics标准引脚信号 Centronics标准引脚信号如表9 2所示 表9 2Centronics标准引脚信号 假设8255A的4个口地址为300H 303H 它的工作流程是 主机将要打印的数据送到数据线 发选通信号 打印机将数据读入 同时使BUSY置为高 通知主机停止送数 这时 打印机内部对读入的数据进行处理 处理完以后使ACK有效 同时使BUSY失效 通知主机发下一个数据 硬件连线如图9 18所示 由PC0充当打印机的选通信号 通过PC0的置位 复位来产生选通 同时 由PC7来接收打印机发出的 BUSY 信号作为能否输出的查询 根据要求可得如下控制字 8255A的方式控制字为 10001000B 88H A口方式0 输出 C口高位方式0输入 低位方式0输出 PC0置位 00000001B 01H PC0复位 00000000B 00H 完整的控制程序如下 DADASEGMENTBUFFDB Thisisaprintprogram DATAENDSCODESEGMENTASSUMECS CODE DS DATASTART MOVAX DATAMOVDS AXMOVSI OFFSETBUFFMOVDX 303HMOVAL 88H 8255A初始化 A口方式0 输出OUTDX AL C口高位输入 低位输出MOVAL 01H OUTDX AL 使PC0置位 即使选通无效WAIT MOVDX 302HINAL DXTESTAL 80H 检测PC7是否为1即是否忙 JNZWAIT 为忙则等待MOVAL SI CMPAL 是否结束符JZDONE 是则输出回车MOVDX 300HOUTDX AL 不是结束符 则从A口输出MOVAL 00HMOVDX 303HOUTDX AL 产生选通NOPMOVAL 01HOUTDX AL 撤销选通信号INCSI 修改指针 指向下一个字符JMPWAITDONE MOVAL 0DHMOVDX 300HOUTDX AL 输出回车符MOVAL 00H MOVDX 303HOUTDX AL 产生选通NOPMOVAL 01HOUTDX AL 撤销选通MOVDX 302HWAIT1 INALDXTESTAL 80H 检测PC7是否为1即是否忙JNZWAIT1 为忙则等待MOVDX 300HMOVAL 0AHOUTDX AL 输出换行符MOVDX 303HMOVAL 00H 产生选通OUTDX ALNOPMOVAL 01HOUTDX AL 撤销选通 MOVAH 4CHINT21HCODEENDSENDSTART 例9 2将上例中8255A的工作方式改为方式1 采用中断方式将BUFF开始的缓冲区中的100个字符从打印机输出 假设打印机接口仍采用Centronics标准 假设8255A的4个口地址为300H 303H 仍用PC0作为打印机的选通 打印机的接PC6 8255A的中断请求信号 PC3 接至系统中断控制器8259A的IR3 其它硬件连线同上例 如图9 19所示 图9 19中断方式硬件连线 分析 8255A的控制字为 1010X000PC0置位 00000001即01HPC0复位 00000000即00HPC6置位 00001101即0DH 允许8255A的A口输出中断假设8259A初始化时送ICW2为08H 则8255A端口A的中断类型码是0BH 此中断类型码对应的中断向量应放到中断向量表从2CH开始的4个单元中 假设8259A已经初始化好了 如果没有呢 假设8259A地址为20H 21H 主程序 首先初始化8259AMOVAL 13HOUT20H AL 写入ICW1 上升沿触发 单片方式 需要些ICW4MOVAL 08HOUT21H AL 写入ICW2 中断向量号08H 0FHMOVAL 01HOUT21H AL 写入ICW4 固定优先级 普通EOI结束MOVAL 0F7HOUT21H AL 写OCW1 只开放IR3中断请求 装填中断向量CLI 关中断PUSHDSPUSHDXMOVAX SEGROUTINTRMOVDS AXMOVDX OFFSETROUTINTRMOVAL 0BHMOVAH 25HINT21HPOPDXPOPDS MAIN MOVAL 0A0HMOVDX 303HOUTDX AL 设置8255A的控制字MOVAL 01H 使选通无效OUTDX ALMOVAL 0DOUTDX AL 使8255AA口输出允许中断MOVDI OFFSETBUFF 设置地址指针MOVCX 99 设置计数器初值MOVAL DI 取第一个字符给ALINCDI DI内容指向下一个要打印的字符MOVDX 300HOUTDX AL 输出一个字符 MOVDX 303HMOVAL 00HOUTDX AL 产生选通INCALOUTDX AL 撤消选通STI 开中断NEXT HLTLOOPNEXTMOVAH 4CHINT21H 中断服务子程序如下 ROUTINTRPROCNEARSTIMOVAL DI MOVDX 300HOUTDX AL 从A口输出一个字符MOVAL 00HMOVDX 303HOUTDX AL 产生选通INCALMOV03H AL 撤消选通INCDIMOVAL 20H 发中断结束指令OUT20H ALIRET 9 3 18251A基本性能8251A是可编程串行通信接口芯片 它可以管理信号变化范围很大的串行数据通信 其基本性能如下 1 通过编程可以设定两种工作方式 同步方式和异步方式 同步方式下 波特率为0 64Kbps 异步方式下 波特率为0 19 2Kbps 2 同步方式下 每个字符可以用5 6 7或8位来表示 内部能自动检测同步字符 实现同步 除此之外 8251A也允许同步方式下增加奇 偶校验位 9 3串行通信接口芯片8251A 3 异步方式下 每个字符可以用5 6 7或8位来表示 时钟频率为传输波特率的1 16或64倍 用1位作为奇 偶校验 1个启动位 并能根据编程为每个数据增加1个 1 5个或2个停止位 4 全双工的工作方式 在进行串行通信时 内部提供具有双缓冲器的发送器和接收器 5 提供出错检测 具有奇偶 溢出和帧错误3种校验类型 能够在通信过程中自动监测数据的3种错误 6 调制与解调 具有调制与解调控制电路 能够控制调制与解调器 9 3 28251A的内部结构8251A的内部结构主要有发送器 接收器 数据总线缓冲器 读 写控制电路和调制解调控制电路5部分组成 其内部结构如图9 20所示 1 发送器发送器由发送缓冲器和发送控制电路两部分组成 发送缓冲器由发送寄存器和发送移位寄存器组成 发送寄存器接收CPU送来的并行数据 通过发送移位寄存器一位一位的串行发送出去 采用异步方式时 由发送控制电路在其首尾加上起始位和停止位 然后从起始位开始 经移位寄存器从数据输出线TxD逐位串行输出 采用同步方式时 则在发送数据之前 发送器将自动送出1个或2个同步字符 然后才逐位串行输出数据 如果CPU与8251A之间采用中断方式交换信息 那么TxRDY可作为向CPU发出的中断请求信号 当发送器中的8位数据串行发送完毕时 由发送控制电路向CPU发出TxEMPTY有效信号 表示发送器中移位寄存器已空 2 接收器接收器由接收缓冲器和接收控制电路两部分组成 接收缓冲器由接收寄存器和接收移位寄存器组成 接收移位寄存器从RxD引脚上接收串行数据转换成并行数据后存入接收寄存器 在异步方式下 在RxD线上检测低电平 将检测到的低电平作为起始位 8251A开始进行采样 完成字符装配 并进行奇偶校验去掉停止位 转换成并行数据 送到数据输入寄存器 同时发出RxRDY信号送CPU 表示已经收到一个可用的数据 同步方式时 首先搜索同步字符 8251A监测RxD线 每当RxD线上出现一个数据时 接收下来并送入移位寄存器移位 与同步字符寄存器的内容进行比较 如果两者不相等 则接收下一数据 并且重复上述比较过程 当两者内容相等时 8251A的SYNDET升为高电平 表示同步字符已经找到 同步已经实现 采用双同步方式时 在测得输入移位寄存器的内容与第一个同步字符寄存器的内容相同后 再继续检测输入移位寄存器的内容是否与第二个同步字符寄存器的内容相同 如果相同 则认为同步已经实现 在外同步情况下 同步输入端SYNDET加一个高电位来实现同步 实现同步之后 接收器和发送器间就开始进行数据的同步传输 这时 接收器利用时钟信号对RxD引脚进行采样 并把收到的数据位送到移位寄存器中 在RxRDY引脚上发出一个信号 表示收到一个字符 3 数据总线缓冲器数据总线缓冲器是CPU与8251A之间数据交换接口 4 读 写控制电路读 写控制电路用来配合数据总线缓冲器的工作 功能如下 1 接收写信号 将来自数据总线的数据和控制字写入8251A 2 接收读信号 将数据或状态字从8251A送往数据总线 3 接收控制 数据信号 高电平时数据线上为控制或状态字 低电平时为数据 可以看做片内地址线 4 接收时钟信号CLK完成8251A的内部定时 5 接收复位信号RESET 使8251A处于空闲状态 5 调制解调控制电路调制解调控制电路用来控制8251A和调制解调器的连接 利用8251A进行远距离通信时 发送方要通过调制解调器将输出的串行数字信号变成模拟信号 再发送出去 接收方也必须将模拟信号经过调制解调器变成数字信号 才能由串行口接收 在全双工通信方式下 每个收 发口都要连接调制解调器 调制解调控制电路时专为调制解调器提供控制信号用的 9 3 38251A的引脚信号8251A引脚信号主要分为与CPU之间的连接信号和与外部设备之间的连接信号 其引脚分布如图9 21所示 1 8251A和CPU之间的连接信号 1 与地址有关的信号 片选信号 它由CPU的地址信号高位通过译码后得到 决定8251A端口地址范围 控制 数据信号 用来区分当前读 写的是数据还是控制信息或状态信息 该信号也可看作是8251A的地址信号A0 用来选择8251A的数据端口或者控制端口 2 数据信号D0 D7 8位 三态 双向数据线 与系统的数据总线相连 传输CPU对8251A的编程命令字和8251A送往CPU的状态信息及数据 3 读 写控制信号 读信号 低电平时 CPU从8251A读取数据或者状态信息 写信号 低电平时 CPU往8251A写入数据或者控制信息 由此可知 这4个信号的组合 决定了8251A的具体操作 它们的关系如表9 3所示 表9 38251A具体操作表 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025房地产合同住宅小区绿化维护合同书
- 江苏2025安全员b考试题库及答案解析
- 热能与动力工程测试技术习题及自动保存的
- 银行从业资格考试哈尔滨及答案解析
- 家庭护理学题库及答案解析
- 2025-2030绿色建筑行业市场深度分析及政策推动与可持续发展报告
- 2025-2030绿色建筑技术推广瓶颈与政策支持效果评估
- 2025-2030绿色债券认证标准与国际市场接轨报告
- 2025-2030绿氢电解槽催化剂寿命延长技术经济性评估报告
- 2025-2030细胞培养肉技术突破与产业化可行性评估
- 投资回报率测算-洞察及研究
- 团委干事面试题库及答案
- 医疗安全培训课件妇科
- 【《某66kV模式半高型变电站设计的环境因素及负荷统计计算案例》2500字】
- GB/T 45898.1-2025医用气体管道系统终端第1部分:用于压缩医用气体和真空的终端
- 天然气购销合同协议书范本
- GB/T 18277-2025收费公路收费制式和收费方式
- 会计行业巅峰备战:会计分录面试题解及例题集锦服务
- 2025年勘察设计注册土木工程师考试(水利水电工程·水土保持专业案例)历年参考题库含答案详解(5套)
- 经济师考试建筑与房地产经济专业知识和实务(初级)试题与参考答案(2025年)
- 鸿蒙应用开发案例实战(ArkTS版)(AI助学)(微课版) 课件全套 项目1-7 初探HarmonyOS开发 个性化设置应用 - 融会贯通 七彩天气App开发之旅
评论
0/150
提交评论