1.38k likes | 1.56k Views
第 8 章 串并行通信接口技术. 8.1 概述 8.2 可编程并行通信接口芯片 8255A 8.3 可编程串行通信接口芯片 8251A 8.4 通用的异步接收发送芯片 8250. 教学目的和要求 1. 掌握并行传输和串行传输的基本概念; 2. 掌握 8255A 和 8250 的基本结构和工作原理; 3. 掌握串行通信的数据格式; 4. 初步学会对 8255A 和 8250 的编程应用。(实验). 第 8 章 串并行通信接口技术. 教学重点 1 . 串、并行接口的特点; 2. 8255A 的工作方式和编程;
E N D
第8章 串并行通信接口技术 • 8.1 概述 • 8.2 可编程并行通信接口芯片8255A • 8.3 可编程串行通信接口芯片8251A • 8.4 通用的异步接收发送芯片8250
教学目的和要求 1.掌握并行传输和串行传输的基本概念; 2.掌握8255A和8250的基本结构和工作原理; 3.掌握串行通信的数据格式; 4.初步学会对8255A和8250的编程应用。(实验)
第8章 串并行通信接口技术 • 教学重点 1. 串、并行接口的特点; 2. 8255A的工作方式和编程; 3.8255A的方式0和方式1的应用; 4.8250的初始化编程。
教学难点 1. 8255A方式1、方式2与CPU的连接和应用; 2. 8250与CPU的连接和应用 。
8.1 概述 微型计算机与I/O设备的接口按照数据传送格式的不同,可分为并行传输接口和串行传输接口两种。
一、并行传输与串行传输 数据传输的基本方式可分为并行传输与串行传输两种: 并行传输:是指利用多条数据传输线将一个数据的各位同时传送。传输速度快,适用于短距离传输。 串行传输:是指利用一条传输线将数据一位位地顺序传送。通信线路简单,利用网络、电话或电报线路就可实现通信,降低成本,适用于远距离通信,但传输速度相对慢一些。
二、并行传输的特点 1.以计算机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据。 2.适合于外部设备与微机之间进行近距离、大量和快速的信息交换。 • 例如:微机与并行接口打印机、磁盘驱动器 3.微机系统中最基本的信息交换方法。 • 例如:系统板上各部件之间,接口电路板上各部件之间。
三、串行传输的特点 1.将数据分解成二进制位用一条信号线,既传送数据信息,又传送控制信息; 2.要求数据格式固定,分为异步和同步数据格式; 3.串行传输中对信号的逻辑定义与TTL不兼容,需进行逻辑关系和逻辑电平转换; 4.串行传送信息的速率需要控制,要求双方约定通信传输的波特率。
8.2 可编程并行通信接口芯片8255A 一、8255A的主要特性(功能) 1.8255A有两个8位(端口A与端口B)和两个4位(端口C高/低4位)的并行输入/输出端口。 2.端口A有三种工作方式:方式0、方式1、方式2;端口B口有两种工作方式:方式0、方式1;可适应CPU与I /O接口的多种数据传送方式,如无条件传送、查询式传送和中断方式传送等。 3.端口C的使用较特殊,除工作在方式0作为数据端口之外,当工作在方式1和方式2时,它的大部分引脚被用作联络信号,端口C还可以进行按位置位/复位操作。
二、8255A芯片的引脚信号及其功能 8255A的引脚信号如图8-1所示。它为双列直插式封装,除了电源和地线以外,其外部引脚信号可分为两组,一组是面向CPU的信号,一组是面向外设的信号。
1.面向CPU一侧的引脚信号 ⑴D7~D0,8位,双向,三态数据线 ⑵RESET,复位信号 ⑶CS*,片选信号 ⑷RD*,读信号 ⑸WR*,写信号 ⑹A1、A0,端口选择信号
2.面向外设一侧的引脚信号 • 端口A:PA0~PA7 • A组,支持工作方式0、1、2 • 端口B:PB0~PB7 • B组,支持工作方式0、1 • 端口C:PC0~PC7 • 仅支持工作方式0 • A组控制高4位PC4~PC7 • B组控制低4位PC0~PC3
功能: • 端口A:PA0~PA7 • 常作数据端口,功能最强大 • 端口B:PB0~PB7 • 常作数据端口 • 端口C:PC0~PC7 • 可作数据、状态和控制端口 • 分两个4位,每位可独立操作 • 控制最灵活,最难掌握
四、 8255A工作方式字和编程 • 8255A有两种控制字: • 工作方式选择控制字 • 端口C的按位置位/复位控制字
3.关于两个控制字的讨论 • 工作方式命令——指定8255A的3个端口的工作方式,必须初始化。 • 按位置位/复位命令——只对端口C的输出进行控制,可放到初始化程序的任何地方。 • 特征位的设置—— D7=1,为工作方式命令;D7=0为按位置位/复位命令。 • 按位置位/复位命令代码只能写入命令口。
4. 8255A的初始化编程 • 初始化编程:一个方式控制字 • 采用控制I/O地址:A1A0=11 • 工作过程中:通过数据端口对外设数据进行读写。 • 数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、01、10 • IBM PC/XT机上,端口A、B、C和控制端口的I/O地址为60H、61H、62H和63H。
(1)写入方式控制字:示例 • 要求: • 端口A:方式1输入 • 端口C上半部:输出,端口C口下半部:输入 • 端口B:方式0输出 • 方式控制字:10110001B或B1H • 初始化的程序段: MOV DX,303H ;假设控制端口为303H MOV AL,0B1H ;方式控制字 OUT DX,AL ;送到控制端口
(2)读写数据端口 • 初始化编程后: • 当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据 • 当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备 • 8255A具有锁存输出数据的能力: • 对输出方式的端口同样可以输入 • 不是读取外设数据 • 读取的是上次CPU给外设的数据
读写数据端口示例: • 利用8255A的输出锁存能力,可实现按位输出控制。 • 例如对输出端口B的PB7位置位的程序段: MOV DX,301H;端口B假设为301H IN AL,DX;读出端口B原输出内容 OR AL,80H;使PB7=1 OUT DX,AL;输出新的内容
(3)读写端口C:归纳1 • 端口C被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出。 • 在控制上,端口C上半部和端口A编为A组,端口C下半部和端口B编为B组。
(3)读写端口C:归纳2 • 当端口A和端口B工作在方式1或方式2时,端口C的部分或全部引脚将被征用。 • 其余引脚仍可设定工作在方式0。
(3) 读写端口C:归纳3 • 对端口C的数据输出有两种办法: • 通过端口C的I/O地址:向端口C直接写入字节数据。这一数据被写进端口C的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效。 • 通过控制端口:向端口C写入位控字,使端口C的某个引脚输出1或0,或置位复位内部的中断允许触发器。
(3)读写端口C:归纳4 • 读取的端口C数据有两种情况: • 未被端口A和端口B征用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息。 • 被端口A和端口B征用作为联络线的引脚:将读到反映8255A状态的状态字。
五、8255A的工作方式 • 方式0:基本输入输出方式 • 适用于无条件传送和查询方式的接口电路 • 方式1:选通输入输出方式 • 适用于查询和中断方式的接口电路 • 方式2:双向选通传送方式 • 适用于与双向传送数据的外设 • 适用于查询和中断方式的接口电路
1.方式0 方式0的特点: • 0方式是一种基本输入/输出方式 • 在0方式下,24根I /O线全部由用户支 配 • 不设置专用的联络信号线 • 单向I /O
2. 方式1 • 方式1为选通输入输出方式,需要专用的联络信号线,该方式通常用于查询(条件)传送,数据的输入输出均有能力。 • 端口A和端口B为数据口,端口C的大部分引脚作专用的联络信号. • 各联络信号线之间有固定的时序关系,传送时,要严格按时序进行 输入/输出操作过程中,产生固定的状态字,这些状态字可作为查询或中断请求字用。状态字从端口C读取。 • 单向传送
PA7~PA0 PC4 INTEA STBA PC5 IBFA PC3 INTRA 中断允许触发器 (1)端口A方式1作输入: 数据选通信号 表示外设已经准备好数据 输入缓冲器满信号 表示A口已经接收数据 中断请求信号 请求CPU接收数据
数据选通信号 表示外设已经准备好数据 PB7~PB0 PC2 INTEB STBB PC1 IBFB 输入缓冲器满信号 表示A口已经接收数据 PC0 INTRB 中断请求信号 请求CPU接收数据 中断允许触发器 端口B方式1作输入:
方式1输入联络信号定义 • STB*——选通信号,低电平有效: 由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器。 • IBF——输入缓冲器满信号,高电平有效: 8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器。 • INTR——中断请求信号,高电平有效: 8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据。 • INTE ——中断允许信号,高电平有效: 用于控制中断允许或中断屏蔽。
PA7~PA0 PC6 INTEA ACKA PC7 OBFA PC3 INTRA 中断允许触发器 (3)端口A方式1作输出: 外设响应信号 表示外设已经接收到数据 输出缓冲器满信号 表示CPU已经输出了数据 中断请求信号 请求CPU再次输出数据
外设响应信号 表示外设已经接收到数据 PB7~PB0 PC2 INTEB ACKB PC1 OBFB 输出缓冲器满信号 表示CPU已经输出了数据 PC0 INTRB 中断请求信号 请求CPU再次输出数据 中断允许触发器 端口B方式1作输出:
方式1输出联络信号 • OBF*——输出缓冲器满信号,低有效 • 8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走 • ACK*——响应信号,低有效 • 外设的响应信号,指示8255A的端口数据已由外设接受 • INTR——中断请求信号,高有效 • 当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据
3. 方式2(双向选通方式) • 方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据 • 只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同 • 方式2的数据输入过程与方式1的输入方式一样 • 方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF*有效时向外设输出数据,而是在外设提供响应信号ACK*时才送出数据
PA7~PA0 PC6 INTE1 ACKA PC7 OBFA PC4 STBA INTE2 PC5 IBFA PC3 INTRA (1)方式2的信号定义 用PC6设置INTE1(输出) 用PC4设置INTE2(输入) 输入和输出中断通过 或门输出INTRA信号
六、8255A的应用 1.开关量的检测 例【8-3】在工业控制过程中,经常需要检测某些开关的状态。例如,在某一系统中,有8个开关K7~K0,要求不断地检测它们的通断状态,并随时在发光二极管上显示。通过8255A的端口A读入开关状态信息,使端口B、端口C连接的发光二极管的状态与端口A开关状态相呼应,并重复执行。假设8255A在系统中端口A、B、C及控制口的地址分别为100H,101H,102H,103H,试设计出硬件电路图,并编写程序。
(2) 相应的8255A初始化程序为: MOV DX,103H ;控制寄存器的地址送给DX MOV AL, 90H ;控制字 OUT DX, AL ;写入控制字 L1: MOV DX,100H ;端口A 地址的送给DX IN AL,DX ;从端口A读入开关状态 MOV DX,101H ;指向端口B OUT DX,AL ;从端口B输出,控制LED XORAL,0FFH ;AL← AL取反 MOVDX,102H ;端口C 的地址送给DX OUTDX,AL ;从端口C输出 JMP L1 ;循环
2.步进电机控制 例【8-4】利用Intel 8255A对四相步进电机进行控制,如图8-12所示。如果对步进电机施加一定规则的连续控制的脉冲电压,它可以连续不断地转动。每相的脉冲信号控制步进电机的某一相绕阻,若按照某一相序改变一次绕组的通电状态,对应转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行。常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A-…),双(双绕组通电)四拍(AB-BC-CD-DA-AB-…),单双八拍(A-AB-B-BC-C-CD-D-DA-A-…)等等。按正
序方向送电则正转,按反序方向送电则反转,本例采用双四拍通电方式控制步进电机正转运行。通过改变脉冲信号的频率,就可改变步进电机的转速。利用Intel 8255A的PA3~ PA0各控制一相,端口A工作在方式0的输出。三态缓冲器74LS244的恒接地,该芯片处于直通状态,74LS244用作对三极管TIP122的驱动。步进电机控制的相序和对应的控制字如表8-5所示。假设8255A的端口地址为300H,301H,302H,303H,试编写连续正转的控制程序。