1、第 10 章 并行和串行接口电路1教学目的和要求:掌握串行通信和并行通信的概念掌握并行接口电路 8255A 的使用掌握串行接口电路 8251A 的使用2教学重点:8255A 的使用8251A 的使用3掌握难点:8255A 的使用8251A 的使用5教学方法:课堂讲授6教学内容摘要:10.1 概述10.1.1 并行通信1. 并行接口图 10.1 并行接口与 CPU、外设的连接 2. 并行接口的组成状态寄存器状态寄存器用来存放外设的信息,CPU 通过访问这个寄存器来了解某个外设的状态,进而控制外设的工作,以便与外设进行数据交换。控制寄存器并行接口中有一个控制寄存器,CPU 对外设的操作命令都寄存在
2、控制寄存器中。数据缓冲寄存器在并行接口中还设置了输入缓冲寄存器和输出缓冲寄存器,缓冲器是用来暂存数据。因为外设与 CPU 交换数据, CPU 的速度远远高于外设的速度。例如,打印机的打印速度与 CPU 的速度相差的远不止是一个数量级,在并行接口中设置缓冲器,把要传送的数据先放入缓冲器中,打印机按照安排好的打印队列进行打印,这样可以保证输入,输出数据的可靠性。3. 数据输入过程数据输入过程,指的是外设向 CPU 输入数据。CPU AENCSA01IORW 当外设将数据通过数据输入线送给接口时,先使状态线“输入数据准备好” 为高电平。然后通过接口把数据接收到输入缓冲寄存器中,同时把“输入回答”信号
3、置成高电平“1” ,并发给外设。 外设接到回答信号后,将撤消“输入数据准备好”的信号。当接口收到数据后,会在状态寄存器中设置“准备好输入” 状态位,以便 CPU 对其进行查询。 接口向 CPU 发出一个中断请求信号,这样 CPU 可以用软件查询方式,也可以用中断的方式将接口中的数据输入到 CPU 中。 CPU 在接收到数据后,将“准备好输入”的状态位自动清除,并使数据总线处于高阻状态。准备外设向 CPU 输入下一个数据。4. 数据输出过程数据输出过程,指的是 CPU 向外设输出数据。 当外设从接口接收到一个数据后,接口的输出缓冲寄存器“空”,使状态寄存的“ 输出数据准备好”状态位置成高电平“1
4、”,这表示 CPU 可以向外设接口输出数据,这个状态位可供CPU 查询。 此时接口也可向 CPU 发出一个中断请求信号,同上面的输入过程相同,CPU 可以用软件查询方式,也可以用中断的方式将 CPU 中的数据通过接口输出到外设中。当输出数据送到接口的输出缓冲寄存器后,再输出到外设。 与此同时,接口向外设发送一个启动信号,启动外设接收数据。外设接收到数据后,向接口回送一个“输出回答” 信号。 接口电路收到该信号后,自动将接口状态寄存器中的“准备好输出” 状态位重新置为高电平“1”,通知 CPU 可以向外设输出下一个数据。10.1.2 串行通信图 10.2 串行接口与 CPU、外设的连接1. 串行
5、接口的组成串行接口是通过系统总线和 CPU 相连,串行接口部件的典型结构如图 10.2 所示。主要由控制寄存器、状态寄存器、数据输入寄存器和数据输出寄存器 4 部分组成。控制寄存器控制寄存器用来保存决定接口工作方式的控制信息。状态寄存器状态寄存器中的每一个状态位都可以用来标识传输过程中某一种错误或当前传输状态。数据寄存器数据输入寄存器:在输入过程中,串行数据一位一位地从传输线进入串行接口的移位寄存器,经过串入并出(串行输入并行输出 )电路的转换,当接收完一个字符之后,数据就从CPURxDY AENIOWTCSD/ MODE移位寄存器传送到数据输入寄存器,等待 CPU 读取。数据输出寄存器:在输
6、出过程中,当 CPU 输出一个数据时,先送到数据输出缓冲寄存器,然后,数据由输出寄存器传到移位寄存器,经过并入串出(并行输入串行输出) 电路的转换一位一位地通过输出传输线送到对方。串行接口中的数据输入移位寄存器和数据输出移位寄存器是为了和数据输入缓冲寄存器和数据输出缓冲寄存器配对使用的。在学习串行通信方式时,很有必要了解一下有关串行通信中的一些基本概念,这里仅做简单介绍。2. 串行通信中使用的术语发送时钟和接收时钟把二进制数据序列称为比特组,由发送器发送到传输线上,再由接收器从传输线上接收。二进制数据序列在传输线上是以数字信号形式出现,即用高电平表示二进制数 1,低电平表示二进制数 0。而且每
7、一位持续的时间是固定的,在发送时是以发送时钟作为数据位的划分界限,在接收时是以接收时钟作为数据位的检测。 发送时钟:串行数据的发送由发送时钟控制,数据发送过程是:把并行的数据序列送入移位寄存器,然后通过移位寄存器由发送时钟触发进行移位输出,数据位的时间间隔可由发送时钟周期来划分。接收时钟:串行数据的接收是由接收时钟来检测,数据接收过程是:传输线上送来的串行数据序列由接收时钟作为移位寄存器的触发脉冲,逐位打入移位寄存器。DTE 和 DCE数据终端设备(data terminal equipment,DTE):是对属于用户所有联网设备和工作站的统称,它们是数据的源或目的或者即是源又是目的。例如:数
8、据输入/输出设备,通信处理机或各种大、中、小型计算机等。DTE 可以根据协议来控制通信的功能。数据电路终端设备或数据通信设备(data circuit-terminating equipment 或 data communication equipment,DCE):前者为 CCITT 标准所用,后者为 EIA 标准所用。DCE是对网络设备的统称,该设备为用户设备提供入网的连接点。自动呼叫/应答设备、调制解调器 Modem 和其他一些中间设备均属 DCE。信道信道是传输信息所经过的通道,是连接 2 个 DTE 的线路,它包括传输介质和有关的中间设备。 3. 串行通信中的工作方式串行通信中的工作
9、方式分为:单工通信方式、半双工通信方式和全双工通信方式图 10.3 串行通信工作方式4. 同步通信和异步通信方式串行通信分为 2 种类型:一种是同步通信方式,另一种是异步通信方式。同步通信方式同步通信方式的特点是:由一个统一的时钟控制发送方和接收方,若干字符组成一个信息组,字符要一个接着一个传送;没有字符时,也要发送专用的“空闲”字符或者是同步ABABAB(a) (b) (c)011088-8012 字符,因为同步传输时,要求必须连续传送字符,每个字符的位数要相同,中间不允许有间隔。同步传输的特征是:在每组信息的开始(常称为帧头) 要加上 l 一 2 个同步字符,后面跟着 8 位的字符数据。同
10、步通信的数据格式如图 10.4 所示。10.4 同步通信字符格式图传送时每个字符的后面是否要奇、偶校验,由初始化时设同步方式字决定。异步通信方式异步通信的特点是:字符是一帧一帧的传送,每一帧字符的传送靠起始位来同步。在数据传输过程中,传输线上允许有空字符。所谓异步通信,是指通信中两个字符的时间间隔是不固定的,而在同一字符中的两个相邻代码间的时间间隔是固定的通信。异步通信中发送方和接收方的时钟频率也不要求完全一样,但不能超过一定的允许范围,异步传输时的数据格式如图 10.5 所示。图 10.5 异步通信字符格式字符的前面是一位起始位(低电平) ,之后跟着 58 位的数据位,低位在前、高位在后。数
11、据位后是奇、偶校验位,最后是停止位(高电平) 。是否要奇、偶校验位,以及停止位设定的位数是 1,1.5 位或 2 位都由初始化时设置异步方式字来决定。5. 通信中必须遵循的规定字符格式的规定通信中,传输字符的格式要按规定写,图 10.5 是异步通信的字符格式。在异步传输方式每个字符在传送时,前面必须加一个起始位,后面必须加停止位来结束,停止位可以为1 位,1.5 位,2 位。奇、偶校验位可以加也可以不加。比特率:比特率作为串行传输中数据传输速度的测量单位,用每秒传输的二进制数的位数 bit/s(位/秒)来表示。波特率:波特率是用来描述每秒钟内发生二进制信号的事件数,用来表示一个二进制数据位的持
12、续时间。 有关在远距离传输时,数字信号送到传输介质之前要调制为模拟信号,再用比特率来测量传输速度就不那么方便直观了。因此引入波特率作为速率测量单位即:波特率1/二进制位的持续时间比特率可以大于或等于波特率,假定用正脉冲表示“1”,负脉冲表示 “0”,这时比特率就等于波特率。假如每秒钟要传输 10 个数据位,则其速率为 l0 波特,若发送到传输介质时,把每位数据用 10 个脉冲来调制,则比特率就为 100b/s,即比特率大于波特率。发送时钟与波特率的关系是:时钟频率72波特率(n 可以是 l,16,32,64。 ,2 为波特率因子,是传输一位二进制数时所用的时钟周期数。不同芯片的 n 由手册中给
13、出)。波特率是表明传输速度的标准,国际上规定的一个标准的波特率系列是:110,300,600,1200,1800,2400,4800,9600,19200。大多数 CRT 显示终端能在1109600 波特率下工作,异步通信允许发送方和接收方的时钟误差或波特率误差在45。6.信号的调制与解调0/1/0/1/01/0/1-10/10/-77n7n1nn-1-计算机对数字信号的通信,要求传输线的频带很宽,但在实际的长距离传输中,通常是利用电话线来传输,电话线的频带一般都比较窄。为保证信息传输的正确,都普遍采用调制解调器(modem)来实现远距离的信息传输,现在还有很多家庭上网仍使用 modem 连接
14、。调制解调器,顾名思义主要是完成调制和解调的功能。经过调制器(modulator)可把数字信号转换为模拟信号,经过解调器(demodulator)把模拟信号转换为数字信号。使用modem 实现了对通信双方信号的转换过程,如图 10.6 所示。现在 modem 的数据传输速率理论值可达 72Kb/s,而实际速率仅为 33.6Kb/s 图 10.6 调制与解调过程 10.2 可编程并行接口电路 Intel 8255A10.2.1 8255A 的主要性能和内部结构8255A 是为 Intel 公司的 80 系列微机配套的通用可编程并行接口芯片,具有三个可编程的端口(A 端口、 B 端口和 C 端口)
15、,每个端口 8 条线,共有 24 条 I/O 引脚,也可分为 2组工作,每组 12 条线,并有三种工作方式。可编程是指可通过软件设置芯片的工作方式,因此这个芯片在与外部设备相连接时,通常不需要附加太多的外部逻辑电路,这给用户的使用带来很大方便。芯片的主要技术性能如下:(1) 输入、输出电平与 TTL 电平完全兼容。(2) 时序特性好。(3) 部分位可以直接置“1”/ 置“0”,便于实现控制接口使用。(4) 单一的+5 V 电源。AMODEAMODEBB010 010108255A 的内部结构框图如图 10.7(a)所示,图 10.7(b)为 8255A 的外引脚图。从图中可以看到,8255A
16、主要由 4 部分组成。图 10.7 8255 内部结构和引脚图(a) 8255A 内部结构;(b) 8255A 外引脚图1. 三个独立的数据口8255A 的三个数据口分别是 A 端口、B 端口、C 端口,它们彼此独立,都是 8 位的数据口,用来完成和外设之间的信息交换。三个口在使用上有所不同。1) A 端口A 端口对应一个 8 位的数据输入锁存器和一个 8 位的数据输出锁存器和缓冲器。因此A 端口适合用在双向的数据传输场合,用 A 端口传送数据,不管是输入还是输出,都可以锁存。2) B 端口和 C 端口这两个口分别是由一个 8 位的数据输入缓冲器和一个 8 位的数据输出锁存器和缓冲器组成。因此
17、用 B 端口和 C 端口传送数据作输出端口时,数据信息可以实现锁存功能;而用作输入口时,则不能对数据实现锁存,这一点在使用中要注意。在实际应用中,A 端口和B 端口通常作为独立的输入口和输出口,而 C 端口常用来配合 A 端口和 B 端口的工作使用。C 端口分成两个 4 位的端口,这两个 4 位的端口分别作为 A 端口和 B 端口的控制信号和输入状态信号使用。2. A 组控制电路和 B 组控制电路控制电路分成 A 组控制和 B 组控制两组,A 组控制电路控制 A 端口和 C 端口的高 4位(PC 4PC 7)。B 组控制电路控制 B 端口和 C 端口的低 4 位(PC 0PC 3)。这两组控制
18、电路的作用是:由它们内部的控制寄存器接收 CPU 输出的方式控制命令字,还接收来自读/写控制逻辑电路的读/写命令,根据控制命令决定 A 组和 B 组的工作方式和读/ 写操作。3. 读写控制逻辑电路这部分电路是用来完成对 8255A 内部三个数据口的译码工作,由 CPU 的地址总线A1、A 0 和 8255A 的片选信号 CS 和 WR、RD 信号组合后产生控制命令,并将产生的控制命令传送给 A 组和 B 组的控制电路,从而完成对数据信息的传输控制。4. 数据总线缓冲器 -BB(8)C(4)(4)A(8)ADBRWA01ESTCCPU-P70P74P30P7B0825A1234567910341
19、56789200987654319231A3210RDCSGNA0176C5412312 PA4567WRESTD0123456D7VCPB6543(a) (b)8这是一个双向、三态的 8 位数据总线缓冲器,是 8255A 和系统总线相连接的通道,用来传送输入/输出的数据、CPU 发出的控制字以及外设的状态信息。总之, 8255A 与 CPU之间的所有信息传输都要经过数据总线缓冲器。10.2.2 8255A 的外部特性8255A 是 40 条引脚的双列直插式芯片,引脚排列如图 10.7(b)所示。单一的+5 V 电源,使用时要注意它的+5V 电源引脚是第 26 脚,地线引脚是第 7 脚,它不像
20、大多数 TTL 芯片电源和地线在右上角和左下角的位置,除了电源和地线之外,其他引脚的信号按连接的功能可分为两大组。1. 与 CPU 相连的引脚RESET(35PIN):芯片的复位信号,高电平时有效。复位后把 8255A 内部的所有寄存器都清 0,并将三个数据口自动设置为输入口。CS(6PIN):片选信号,低电平时有效。只有当 CS=0 时,芯片被选中,才能对 8255A进行读、写操作。RD(5PIN):读信号,低电平有效。只有当 CS=0,RD=0,才允许从 8255A 的三个端口中读取数据。WR(36PIN):写信号,低电平有效。只有当 CS=0,WR=0,才允许从 8255A 的三个端口写
21、入数据或者是写入控制字。A1、A 0(8,9PIN) :端口译码信号。用来选择 8255A 内部的三个数据端口和一个控制端口的地址。其中对控制口只能进行写操作。(1) 当 A1A0=00 时,选中 A 端口。(2) 当 A1A0=01 时,选中 B 端口。(3) 当 A1A0=10 时,选中 C 端口。(4) 当 A1A0=11 时,选中控制端口。A1、A 0 与读、写信号组合对各端口所执行的操作如表 10-1 所示。D7D 0(2734PIN) :双向三态 8 位数据线,与系统的数据总线相连接。8255A 的数据线为 8 条,这样 8 位的接口芯片在与 8086 外部数据线为 16 条的 C
22、PU 相连接时,应考虑接口芯片本身对地址的要求。由于在 8086 这样的 16 位外部总线系统中,CPU 在进行数据传输时,低 8 位对应一个偶地址,高 8 位对应一个奇地址。如果将 8255A的数据线 D7D 0 与 8086CPU 的数据总线的低 8 位相连的话,从 CPU 这边看来,要求8255A 的 4 个端口地址都应为偶地址,这样才能保证对 8255A 的端口的读/ 写能在一个总线周期内完成,但又要满足 8255A 本身对 4 个端口规定的地址要求是 00,01,10,11。因此将 8255A 的 A1 和 A0 分别与 8086 系统总线的 A2 和 A1 相连,而将最低位 A0
23、总设置为 0。2. 和外设端相连的引脚PA7PA 0(3740 PIN,l4PIN):A 端口的输入/输出引脚PB7PB 0(2518 PIN):B 端口的输入 /输出引脚PC7PC 0(1013,1714 PIN):C 端口的输入/ 输出引脚 10.2.3 8255A 的控制字和编程由 CPU 执行输出指令,向 8255A 的端口输出不同的控制字来决定它的工作方式。控制字分为两种,分别称为方式选择控制字和端口 C 置 1/置 0 控制字。根据控制寄存器的D7 位的状态决定是哪一种控制字。1. 方式选择控制字方式选择控制字用来决定 8255A 三个数据端口各自的工作方式,它的格式如图 10.8
24、 所示。它由一个 8 位的寄存器组成。图 10.8 8255A 的方式选择控制字 2. C 端口置 1/置 0 控制字8255A 在和 CPU 传输数据的过程中,经常将 C 端口的某几位作为控制位或状态位来使用,从而配合 A 端口或 B 端口的工作。为了方便用户,在 8255A 芯片初始化时,C 端口置 1/置 0 控制字可以单独设置 C 端口的某一位为 0 或某一位为 1。控制字的 D7 位为“0”时,是 C 端口置 1/置 0 控制字中的标识位,具体的格式如图 10.9 所示。 图 10.9 8255A 的 C 端口置 1/置 0 控制字 10.2.4 8255A 的工作方式8255A 有
25、三种工作方式,分别称为方式 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 位的
26、端口和 2 个 4 位的端口。任何一个端口都可以作为输入或输出,输出的数据可以被锁存,输入的数据不能锁存。方式 0 的输入时序如图 10.10 所示,输出时序如图 10.11 所示。从输入时序图可以看到,对各信号的要求是:(1) 地址信号要领先于 RD 信号到达, 8255A 在 RD 信号有效以后,最长经过 250 ns 的时间,就可以使数据在数据总线上得到稳定。(2) 在一般的微处理器系统中都配备了地址锁存器,保证 CPU 对先发出的地址能够锁存,可以满足地址信号先于 RD 信号到达,对于从读信号有效到数据稳定的时间,应由输入设备给予满足。在使用时应注意,方式 0 对输入数据不做锁存。D7
27、6D54D32D10PC300 1x2A10P7C4B01D76D54D32D100C0 :P12 :30 :4156 :7/ :1图 10.10 8255A 方式 0 输入时序 图 10.11 8255A 方式 0 输出时序从输出时序图可以看到,为了将数据能可靠地输出到 8255A,对各信号的要求是:(1) 地址信号必须在写信号之前有效,同时要求在信号有效(也就是为低电平时) 期间内,地址信号不能发生变化,要保证一直有效,直到在撤消(变高后) 后的 20 ns 时间以后,地址信号才允许发生变化。(2) 写脉冲 (为低电平时间 )的宽度最小要求是 400 ns。(3) 要求数据也必须在写信号之
28、前最少有 100 ns 时间出现在数据总线上。写信号撤消后,数据的最小保持时间是 30 ns。满足上述条件,写信号结束后,最长经过 350 ns 的时间,CPU 输出的数据就可以出现在 8255A 的指定端口。方式 0 一般用于无条件传送的场合,不需要应答式联络信号,外设总是处于准备好的状态。也可以用作查询式传送,查询式传送时,需要有应答信号。可以将 A 端口、B 端口作为数据口使用。把 C 端口分为 2 部分,其中 4 位规定为输出,用来输出一些控制信息,另外 4 位规定为输入,用来读入外设的状态。利用 C 端口配合 A 端口和 B 端口完成查询式的 I/O 操作。2. 方式 1:选通输入/
29、输出方式在这种方式下,当 A 端口和 B 端口进行输入输出时,必须利用 C 端口提供的选通和应答信号,而且这些信号与 C 端口中的某些位之间有着固定的对应关系,这种关系是硬件本身决定的不是软件可以改变的。由于工作在方式 l 时,要由 C 端口中的固定位来作为选通和应答等控制信号,因此称方式 1 为选通的输入/输出方式。方式 1 的基本定义是,分成2 组(A 组和 B 组),每组包含一个 8 位的数据端口和 1 个 4 位的控制/数据端口。8 位的数据端口既可以作为输入,也可以作为输出,输入和输出都可以被锁存。4 位的控制/数据端口用于传送 8 位数据端口的控制和状态信息。1) 选通的输入方式方
30、式 1 在选通输入方式下对应的控制信号如图 10.12 所示。图 10.13 是方式 1 在选通输入方式的工作时序图。选通输入方式的工作过程是:当外设的数据已送到 8255A 某个端口的数据线上时,就发出选通输入信号 STB,将数据通过 A 端口或 B 端口锁存到 8255A 的数据输入寄存器,STB 信号的宽度至少是 500 ns。STB 信号变低后最多经过 300 ns 时间,使输入缓冲器满信号 IBF 变为高电平,如图10.13 中表示的箭头。tRtIRtAtRDtDFtRAtHA10D70RDCS270WWtDWDtWBW输入缓冲器满意味着将阻止外设输入新的数据,可供 CPU 来查询。
31、在选通输入信号结束后,最多经过 300 ns 时间,向 CPU 发出中断请求信号( 要在中断允许的情况下),如图10.13 中表示的箭头,使中断请求信号 INTR 变高,CPU 可以响应中断。当 CPU 响应中断后才发出读信号 RD,将数据读入到 CPU 中,读信号有效(低电平为有效)后,最多经过400 ns 时间,STB 就清除中断请求,使中断请求信号变低,如图 10.13 中表示的箭头。当读信号结束后,才使输入缓冲器满信号 IBF 变低,如图 10.13 中表示的箭头。IBF 变低表明输入缓冲器已空,通知外设可以输入新的数据。图 10.12 方式 1 选通输入下对应的控制信号(a) 对 A
32、 端口;(b) 对 B 端口图 10.13 8255A 方式 l 输入时序当 8255A 的 A 端口和 B 端口工作在选通输入方式时,对应的 C 端口固定分配,规定是 PC3PC 5 分配给 A 端口,PC 0PC 2 分配给 B 端口,C 端口剩下的 2 位 PC7、PC 6 可作为简单的输入/ 输出线使用。控制字的 D3 位为“1” 时,PC 7、PC 6作输入;控制字的 D3 位为“0”时,PC 7、PC 6 作输出。在方式 1 选通输入方式时,各控制信号的意义如下:STB(Strobe):选通输入信号,低电平有效。A 组方式控制字中对应 PC4;B 组方式控制字中对应 PC2。当该信
33、号有效时,从外部设备来的 8 位数据送入到 8255A 的输入缓冲器中,负脉冲宽度最小是 500 ns。IBF(Input Buffer Full):输入缓冲器满信号,高电平有效。A 组方式控制字中对应PC5;B 组方式控制字中对应 PC1。这是 8255A 送给外设的联络信号,当 8255A 的输入缓冲区已有一个新数据后,输出这个信号供 CPU 查询。该信号在选通输入信号 STB 变低后,300 ns 时间内即变为有效的高电平。在 RD 信号撤消后的 300 ns 时间内 IBF 信号才撤消,变为无效的低电平,这样保证了数据传输的可靠性。10I/O10I/O111D765432D1076D54320D765432D0AABBPC76PC76 STBAIFINRA/OPC453ITEA&PC76702RD8PC210INTEB&70D8ITRBIFSB(a) (b)STBIFNTRD1234tSTtSIBtITtRITtPHtPS tRIB