《并行和串行接口电路》由会员分享,可在线阅读,更多相关《并行和串行接口电路(168页珍藏版)》请在金锄头文库上搜索。
1、第10章 并行和串行接口电路第10章 并行和串行接口电路10.1 概述概述 10.2 可编程并行接口电路可编程并行接口电路Intel 8255A 10.3 可编程串行接口电路可编程串行接口电路Intel 8251A 习题习题10 第10章 并行和串行接口电路10.1 概述概述10.1.1 并行通信并行通信 1. 并行接口并行接口并行通信由并行接口来完成的,在并行数据传输中并行接口连接CPU与并行外设的通道,并行接口中各位数据都是并行传输的,它以字节(或字)为单位与I/O设备或被控对象进行数据交换。并行通信以同步方式传输,其特点是:传输速度快;硬件开销大;只适合近距离传输。一个并行接口中包括状态
2、信息、控制信息和数据信息。第10章 并行和串行接口电路状态信息状态信息表示外设当前所处的工作状态。例如,准备好信号表示输入设备已经准备好信息,可以和CPU交换数据;忙信号(BUSY)表示输出设备正在输出信息,即在“忙”着,同时也等于指示CPU要处于等待状态。控制信息控制信息是由CPU发出的,用于控制外设接口的工作方式以及外设的启动和停机信息等。第10章 并行和串行接口电路数据信息CPU与并行外设数据交换的内容。状态信息、控制信息和数据信息,通常都是通过数据总线传送,这些信息在外设接口中分别存取在不同的口中。所谓口是指可以由CPUCPU、外设的连接图。第10章 并行和串行接口电路图10.1并行接
3、口与CPU、外设的连接第10章 并行和串行接口电路2. 并行接口的组成并行接口的组成状态寄存器状态寄存器用来存放外设的信息,CPU通过访问这个寄存器来了解某个外设的状态,进而控制外设的工作,以便与外设进行数据交换。控制寄存器并行接口中有一个控制寄存器,CPU对外设的操作命令都寄存在控制寄存器中。第10章 并行和串行接口电路数据缓冲寄存器在并行接口中还设置了输入缓冲寄存器和输出缓冲寄存器,缓冲器是用来暂存数据。因为外设与CPU交换数据,CPU的速度远远高于外设的速度。例如,打印机的打印速度与CPU的速度相差的远不止是一个数量级,在并行接口中设置缓冲器,把要传送的数据先放入缓冲器中,打印机按照安排
4、好的打印队列进行打印,这样可以保证输入,输出数据的可靠性。第10章 并行和串行接口电路3. 数据输入过程数据输入过程数据输入过程,指的是外设向CPU输入数据。当外设将数据通过数据输入线送给接口时,先使状态线“输入数据准备好”为高电平。然后通过接口把数据接收到输入缓冲寄存器中,同时把“输入回答”信号置成高电平“1”,并发给外设。外设接到回答信号后,将撤消“输入数据准备好”的信号。当接口收到数据后,会在状态寄存器中设置“准备好输入”状态位,以便CPU对其进行查询。第10章 并行和串行接口电路接口向CPU发出一个中断请求信号,这样CPU可以用软件查询方式,也可以用中断的方式将接口中的数据输入到CPU
5、中。CPU在接收到数据后,将“准备好输入”的状态位自动清除,并使数据总线处于高阻状态。准备外设向CPU输入下一个数据。第10章 并行和串行接口电路4. 数据输出过程数据输出过程数据输出过程,指的是CPU向外设输出数据。当外设从接口接收到一个数据后,接口的输出缓冲寄存器“空”,使状态寄存的“输出数据准备好”状态位置成高电平“1”,这表示CPU可以向外设接口输出数据,这个状态位可供CPU查询。此时接口也可向CPU发出一个中断请求信号,同上面的输入过程相同,CPU可以用软件查询方式,也可以用中断的方式将CPU中的数据通过接口输出到外设中。当输出数据送到接口的输出缓冲寄存器后,再输出到外设。第10章
6、并行和串行接口电路与此同时,接口向外设发送一个启动信号,启动外设接收数据。外设接收到数据后,向接口回送一个“输出回答”信号。接口电路收到该信号后,自动将接口状态寄存器中的“准备好输出”状态位重新置为高电平“1”,通知CPU可以向外设输出下一个数据。第10章 并行和串行接口电路10.1.2 串行通信串行通信串行通信是微机和外部设备交换信息的方式之一。所谓串行通信是通过一位一位地进行数据传输来实现通信。与并行通信相比,串行通信具有传输线少,成本低等优点,适合远距离传送。缺点是速度慢,若并行传送n位数据需时间T,则串行传送的时间最少为nT。在实际传输中,是通过一对导线传送信息。在传输中每一位数据都占
7、据一个固定的时间长度。1. 串行接口的组成串行接口的组成串行接口是通过系统总线和CPU相连,串行接口部件的典型结构如图10.2所示。主要由控制寄存器、状态寄存器、数据输入寄存器和数据输出寄存器4部分组成。第10章 并行和串行接口电路图10.2串行接口与CPU、外设的连接第10章 并行和串行接口电路控制寄存器控制寄存器用来保存决定接口工作方式的控制信息。状态寄存器状态寄存器中的每一个状态位都可以用来标识传输过程中某一种错误或当前传输状态。第10章 并行和串行接口电路数据寄存器数据输入寄存器:在输入过程中,串行数据一位一位地从传输线进入串行接口的移位寄存器,经过串入并出(串行输入并行输出)电路的转
8、换,当接收完一个字符之后,数据就从移位寄存器传送到数据输入寄存器,等待CPU读取。第10章 并行和串行接口电路数据输出寄存器:在输出过程中,当CPU输出一个数据时,先送到数据输出缓冲寄存器,然后,数据由输出寄存器传到移位寄存器,经过并入串出(并行输入串行输出)电路的转换一位一位地通过输出传输线送到对方。串行接口中的数据输入移位寄存器和数据输出移位寄存器是为了和数据输入缓冲寄存器和数据输出缓冲寄存器配对使用的。在学习串行通信方式时,很有必要了解一下有关串行通信中的一些基本概念,这里仅做简单介绍。第10章 并行和串行接口电路2. 串行通信中使用的术语串行通信中使用的术语发送时钟和接收时钟把二进制数
9、据序列称为比特组,由发送器发送到传输线上,再由接收器从传输线上接收。二进制数据序列在传输线上是以数字信号形式出现,即用高电平表示二进制数1,低电平表示二进制数0。而且每一位持续的时间是固定的,在发送时是以发送时钟作为数据位的划分界限,在接收时是以接收时钟作为数据位的检测。第10章 并行和串行接口电路发送时钟:串行数据的发送由发送时钟控制,数据发送过程是:把并行的数据序列送入移位寄存器,然后通过移位寄存器由发送时钟触发进行移位输出,数据位的时间间隔可由发送时钟周期来划分。接收时钟:串行数据的接收是由接收时钟来检测,数据接收过程是:传输线上送来的串行数据序列由接收时钟作为移位寄存器的触发脉冲,逐位
10、打入移位寄存器。第10章 并行和串行接口电路DTE和DCE数据终端设备(dataterminalequipment,DTE):是对属于用户所有联网设备和工作站的统称,它们是数据的源或目的或者即是源又是目的。例如:数据输入/输出设备,通信处理机或各种大、中、小型计算机等。DTE可以根据协议来控制通信的功能。第10章 并行和串行接口电路数据电路终端设备或数据通信设备(datacircuit-terminatingequipment或datacommunicationequipment,DCE):前者为CCITT标准所用,后者为EIA标准所用。DCE是对网络设备的统称,该设备为用户设备提供入网的连接
11、点。自动呼叫/应答设备、调制解调器Modem和其他一些中间设备均属DCE。信道信道是传输信息所经过的通道,是连接2个DTE的线路,它包括传输介质和有关的中间设备。第10章 并行和串行接口电路3. 串行通信中的工作方式串行通信中的工作方式串行通信中的工作方式分为:单工通信方式、半双工通信方式和全双工通信方式单工工作方式在这种方式下,传输的线路用一根线连接,通信的一端连接发送器,另一端连接接收器,即形成单向连接,只允许数据按照一个固定的方向传送,如图10.3(a)所示。即数据只能从A站点传送到B站点,而不能由B站点传送到A站点。单工通信类似无线电广播,电台发送信号,收音机接收信号。收音机永远不能发
12、送信号。第10章 并行和串行接口电路半双工工作方式如果在传输的过程中依然用一根线连接,这样在某一个时刻,只能进行发送,或只能进行接收。由于是一根线连接,发送和接收不可能同时进行,这种传输方式称为半双工工作方式,如图10.3(b)所示。半双工通信工方式类似对讲机,某时刻A方发送B方接收,另一时刻B方发送A方接收,双方不能同时进行发送和接收。第10章 并行和串行接口电路图10.3串行通信工作方式第10章 并行和串行接口电路全双工工作方式对于相互通信的双方,都可以是接收器也都可以是发送器。分别用2根独立的传输线(一般是双绞线,或同轴电缆)来连接发送信号和接收信号,这样发送方和接收方可同时进行工作,称
13、为全双工的工作方式,如图10.3(c)所示。全双工通信工方式类似电话机,双方可以同时进行发送和接收。第10章 并行和串行接口电路4. 同步通信和异步通信方式同步通信和异步通信方式串行通信分为2种类型:一种是同步通信方式,另一种是异步通信方式。同步通信方式同步通信方式的特点是:由一个统一的时钟控制发送方和接收方,若干字符组成一个信息组,字符要一个接着一个传送;没有字符时,也要发送专用的“空闲”字符或者是同步字符,因为同步传输时,要求必须连续传送字符,每个字符的位数要相同,中间不允许有间隔。同步传输的特征是:在每组信息的开始(常称为帧头)要加上l一2个同步字符,后面跟着8位的字符数据。同步通信的数
14、据格式如图10.4所示。第10章 并行和串行接口电路图10.4同步通信字符格式传送时每个字符的后面是否要奇、偶校验,由初始化时设同步方式字决定。第10章 并行和串行接口电路异步通信方式异步通信的特点是:字符是一帧一帧的传送,每一帧字符的传送靠起始位来同步。在数据传输过程中,传输线上允许有空字符。所谓异步通信,是指通信中两个字符的时间间隔是不固定的,而在同一字符中的两个相邻代码间的时间间隔是固定的通信。异步通信中发送方和接收方的时钟频率也不要求完全一样,但不能超过一定的允许范围,异步传输时的数据格式如图10.5所示。第10章 并行和串行接口电路图10.5异步通信字符格式第10章 并行和串行接口电
15、路字符的前面是一位起始位(低电平),之后跟着58位的数据位,低位在前、高位在后。数据位后是奇、偶校验位,最后是停止位(高电平)。是否要奇、偶校验位,以及停止位设定的位数是1,1.5位或2位都由初始化时设置异步方式字来决定。第10章 并行和串行接口电路5. 通信中必须遵循的规定通信中必须遵循的规定字符格式的规定通信中,传输字符的格式要按规定写,图10.5是异步通信的字符格式。在异步传输方式每个字符在传送时,前面必须加一个起始位,后面必须加停止位来结束,停止位可以为1位,1.5位,2位。奇、偶校验位可以加也可以不加。第10章 并行和串行接口电路比特率、波特率(baudrate)比特率:比特率作为串
16、行传输中数据传输速度的测量单位,用每秒传输的二进制数的位数bit/s(位/秒)来表示。波特率:波特率是用来描述每秒钟内发生二进制信号的事件数,用来表示一个二进制数据位的持续时间。第10章 并行和串行接口电路有关在远距离传输时,数字信号送到传输介质之前要调制为模拟信号,再用比特率来测量传输速度就不那么方便直观了。因此引入波特率作为速率测量单位即:波特率1/二进制位的持续时间比特率可以大于或等于波特率,假定用正脉冲表示“1”,负脉冲表示“0”,这时比特率就等于波特率。假如每秒钟要传输10个数据位,则其速率为l0波特,若发送到传输介质时,把每位数据用10个脉冲来调制,则比特率就为100b/s,即比特
17、率大于波特率。第10章 并行和串行接口电路发送时钟与波特率的关系是:时钟频率72波特率(n可以是l,16,32,64。,2为波特率因子,是传输一位二进制数时所用的时钟周期数。不同芯片的n由手册中给出)。波特率是表明传输速度的标准,国际上规定的一个标准的波特率系列是:110,300,600,1200,1800,2400,4800,9600,19200。大多数CRT显示终端能在1109600波特率下工作,异步通信允许发送方和接收方的时钟误差或波特率误差在45。第10章 并行和串行接口电路计算机对数字信号的通信,要求传输线的频带很宽,但在实际的长距离传输中,通常是利用电话线来传输,电话线的频带一般都
18、比较窄。为保证信息传输的正确,都普遍采用调制解调器(modem)来实现远距离的信息传输,现在还有很多家庭上网仍使用modem连接。第10章 并行和串行接口电路调制解调器,顾名思义主要是完成调制和解调的功能。经过调制器(modulator)可把数字信号转换为模拟信号,经过解调器(demodulator)把模拟信号转换为数字信号。使用modem实现了对通信双方信号的转换过程,如图10.6所示。现在modem的数据传输速率理论值可达72Kb/s,Kb/s。第10章 并行和串行接口电路图10.6调制与解调过程第10章 并行和串行接口电路10.2 可编程并行接口电路可编程并行接口电路Intel 8255
19、A 并行接口电路,在早期的微机中与串行口、软盘接口、硬盘接口等都放在一块多功能接口卡上,插在微机的扩展槽上使用。现在这部分电路已在微机的主板上由与CPU配套的芯片组北桥来实现其功能。如果要在其他的场合实现并行数据传送,在电路设计时采用专用的接口芯片最为方便。可编程的接口芯片8255A是完成并行通信的集成电路芯片。第10章 并行和串行接口电路10.2.1 8255A的主要性能和内部结构的主要性能和内部结构8255A是为Intel公司的80系列微机配套的通用可编程并行接口芯片,具有三个可编程的端口(A端口、B端口和C端口),每个端口8条线,共有24条I/O引脚,也可分为2组工作,每组12条线,并有
20、三种工作方式。可编程是指可通过软件设置芯片的工作方式,因此这个芯片在与外部设备相连接时,通常不需要附加太多的外部逻辑电路,这给用户的使用带来很大方便。第10章 并行和串行接口电路芯片的主要技术性能如下:(1)输入、输出电平与TTL电平完全兼容。(2)时序特性好。(3)部分位可以直接置“1”/置“0”,便于实现控制接口使用。(4)单一的+5V电源。8255A的内部结构框图如图10.7(a)所示,图10.7(b)为8255A的外引脚图。从图中可以看到,8255A主要由4部分组成。第10章 并行和串行接口电路图10.78255内部结构和引脚图(a)8255A内部结构;(b)8255A外引脚图第10章
21、 并行和串行接口电路1. 三个独立的数据口三个独立的数据口8255A的三个数据口分别是A端口、B端口、C端口,它们彼此独立,都是8位的数据口,用来完成和外设之间的信息交换。三个口在使用上有所不同。1)A端口A端口对应一个8位的数据输入锁存器和一个8位的数据输出锁存器和缓冲器。因此A端口适合用在双向的数据传输场合,用A端口传送数据,不管是输入还是输出,都可以锁存。第10章 并行和串行接口电路2)B端口和C端口这两个口分别是由一个8位的数据输入缓冲器和一个8位的数据输出锁存器和缓冲器组成。因此用B端口和C端口传送数据作输出端口时,数据信息可以实现锁存功能;而用作输入口时,则不能对数据实现锁存,这一
22、点在使用中要注意。在实际应用中,A端口和B端口通常作为独立的输入口和输出口,而C端口常用来配合A端口和B端口的工作使用。C端口分成两个4位的端口,这两个4位的端口分别作为A端口和B端口的控制信号和输入状态信号使用。第10章 并行和串行接口电路2. A组控制电路和组控制电路和B组控制电路组控制电路控制电路分成A组控制和B组控制两组,A组控制电路控制A端口和C端口的高4位(PC4PC7)。B组控制电路控制B端口和C端口的低4位(PC0PC3)。这两组控制电路的作用是:由它们内部的控制寄存器接收CPU输出的方式控制命令字,还接收来自读/写控制逻辑电路的读/写命令,根据控制命令决定A组和B组的工作方式
23、和读/写操作。第10章 并行和串行接口电路3. 读写控制逻辑电路读写控制逻辑电路这部分电路是用来完成对8255A内部三个数据口的译码工作,由CPU的地址总线A1、A0和8255A的片选信号CS和WR、RD信号组合后产生控制命令,并将产生的控制命令传送给A组和B组的控制电路,从而完成对数据信息的传输控制。8255A的控制信号与执行的操作之间的对应关系如表10-1所示。第10章 并行和串行接口电路表表10-1 8255A的控制信号与执行的操作之间的对应关系的控制信号与执行的操作之间的对应关系A1A0执行的操作000000000010101011101x1010100011x000001011010
24、111111xxxx读A端口(A端口数据数据总线)写A端口(A端口数据总线数据)读B端口(B端口数据数据总线)写B端口(B端口数据总线数据)读C端口(C端口数据数据总线)写C端口(C端口数据总线数据)当D71时,对8255A写入控制字当D70时,对C端口置位/复位非法的信号组合数据线D7D0进入高阻状态未选择第10章 并行和串行接口电路 4. 数据总线缓冲器数据总线缓冲器这是一个双向、三态的8位数据总线缓冲器,是8255A和系统总线相连接的通道,用来传送输入/输出的数据、CPU发出的控制字以及外设的状态信息。总之,8255A与CPU之间的所有信息传输都要经过数据总线缓冲器。第10章 并行和串行
25、接口电路10.2.2 8255A的外部特性的外部特性8255A是40条引脚的双列直插式芯片,引脚排列如图10.7(b)所示。单一的+5V电源,使用时要注意它的+5V电源引脚是第26脚,地线引脚是第7脚,它不像大多数TTL芯片电源和地线在右上角和左下角的位置,除了电源和地线之外,其他引脚的信号按连接的功能可分为两大组。第10章 并行和串行接口电路1. 与与CPU相连的引脚相连的引脚RESET(35PIN):芯片的复位信号,高电平时有效。复位后把8255A内部的所有寄存器都清0,并将三个数据口自动设置为输入口。CS(6PIN):片选信号,低电平时有效。只有当CS=0时,芯片被选中,才能对8255A
26、进行读、写操作。RD(5PIN):读信号,低电平有效。只有当CS=0,RD=0,才允许从8255A的三个端口中读取数据。WR(36PIN):写信号,低电平有效。只有当CS=0,WR=0,才允许从8255A的三个端口写入数据或者是写入控制字。第10章 并行和串行接口电路A1、A0(8,9PIN):端口译码信号。用来选择8255A内部的三个数据端口和一个控制端口的地址。其中对控制口只能进行写操作。(1)当A1A0=00时,选中A端口。(2)当A1A0=01时,选中B端口。(3)当A1A0=10时,选中C端口。(4)当A1A0=11时,选中控制端口。A1、A0与读、写信号组合对各端口所执行的操作如表
27、10-1所示。D7D0(2734PIN):双向三态8位数据线,与系统的数据总线相连接。第10章 并行和串行接口电路8255A的数据线为8条,这样8位的接口芯片在与8086外部数据线为16条的CPU相连接时,应考虑接口芯片本身对地址的要求。由于在8086这样的16位外部总线系统中,CPU在进行数据传输时,低8位对应一个偶地址,高8位对应一个奇地址。如果将8255A的数据线D7D0与8086CPU的数据总线的低8位相连的话,从CPU这边看来,要求8255A的4个端口地址都应为偶地址,这样才能保证对8255A的端口的读/写能在一个总线周期内完成,但又要满足8255A本身对4个端口规定的地址要求是00
28、,01,10,11。因此将8255A的A1和A0分别与8086系统总线的A2和A1相连,而将最低位A0总设置为0。第10章 并行和串行接口电路2. 和外设端相连的引脚和外设端相连的引脚PA7PA0(3740PIN,l4PIN):A端口的输入/输出引脚PB7PB0(2518PIN):B端口的输入/输出引脚PC7PC0(1013,1714PIN):C端口的输入/输出引脚第10章 并行和串行接口电路10.2.3 8255A的控制字和编程的控制字和编程由CPU执行输出指令,向8255A的端口输出不同的控制字来决定它的工作方式。控制字分为两种,分别称为方式选择控制字和端口C置1/置0控制字。根据控制寄存
29、器的D7位的状态决定是哪一种控制字。1. 方式选择控制字方式选择控制字方式选择控制字用来决定8255A三个数据端口各自的工作方式,它的格式如图10.8所示。它由一个8位的寄存器组成。第10章 并行和串行接口电路图10.88255A的方式选择控制字第10章 并行和串行接口电路D7位为“1”时,为方式选择控制字的标识位。D6、D5位决定A端口的工作方式,D6D5位为00、01、1x时分别表示A端口工作在方式0、方式1和方式2下。D4位决定A端口工作在输入还是输出方式。D4位为0时,A端口工作在输出方式;D4位为1时,A端口工作在输入方式。D3位决定用于A端口的C端口高4位PC7PC4是作为输入端口
30、,还是作为输出端口。D3位为0时,PC7PC4作输出;D3位为1时,PC7PC4作输入。D2位用来选择B端口的工作方式。D2位为0时,B端口工作在方式0,D2位为1时,B端口工作在方式1。第10章 并行和串行接口电路D1位决定B端口作为输入还是输出端口。D1位为1时B端口工作在输入方式;D1位为0时B端口工作在输出方式。D0位决定用于B端口的C端口低4位PC3PC0作为输入,还是输出。D0位为0时,PC3PC0作输出;D0位为1时,PC3PC0作输入。如果要求8255A的A端口作输入,B端口和C端口作输出,A组工作在方式0,B组工作在方式1,用三条指令可完成对芯片工作方式的选择。第10章 并行
31、和串行接口电路MOV AL,94H;方式选择控制字送ALMOV DX,PortCtr ;控制端口地址PortCtr送DXOUTDX,AL;方式选择控制字输出给8255A的控制端口,完成方式选择第10章 并行和串行接口电路2. C端口置端口置1/置置0控制字控制字8255A在和CPU传输数据的过程中,经常将C端口的某几位作为控制位或状态位来使用,从而配合A端口或B端口的工作。为了方便用户,在8255A芯片初始化时,C端口置1/置0控制字可以单独设置C端口的某一位为0或某一位为1。控制字的D7位为“0”时,是C端口置1/置0控制字中的标识位,具体的格式如图10.9所示。第10章 并行和串行接口电路
32、图10.98255A的C端口置1/置0控制字第10章 并行和串行接口电路D6D4位可为任意值,不影响操作。D3D1位用来决定对C端口8位中的哪一位进行操作。D0位用来决定对D3D1所选择的位是置1,还是置0。例如,要将C端口的PC3置0,PC7置1,可用下列程序段实现。MOVAL,06H;PC3置0控制字送ALMOVDX,PortAdd;控制端口地址PortAdd送DXOUTDX,AL;对PC3完成置0操作MOVAL,0FH;PC7置1控制字送ACOUTDX,AL;完成对PC7置1操作第10章 并行和串行接口电路10.2.4 8255A的工作方式的工作方式8255A有三种工作方式,分别称为方式
33、0,方式1和方式2。其中A端口可以工作在三种方式中的任一种;B端口只能工作在方式0和方式1;C端口通常作为控制信号使用,配合A端口和B端口的工作。每种工作方式的具体内容如下所述。第10章 并行和串行接口电路1. 方式方式0:基本的输入:基本的输入/输出方式输出方式方式0之所以被称为基本的输入/输出方式,是因为在这种方式下,A端口、B端口和C端口(C端口分为2个4位使用)都可提供简单的输入和输出操作,对每个端口不需要固定的应答式联络信号。工作在方式0时,在程序中可直接使用输入指令(IN)和输出(OUT)指令对各端口进行读写。方式0的基本定义是2个8位的端口和2个4位的端口。任何一个端口都可以作为
34、输入或输出,输出的数据可以被锁存,输入的数据不能锁存。方式0的输入时序如图10.10所示,输出时序如图10.11所示。从输入时序图可以看到,对各信号的要求是:第10章 并行和串行接口电路(1)地址信号要领先于RD信号到达,8255A在RD信号有效以后,最长经过250ns的时间,就可以使数据在数据总线上得到稳定。(2)在一般的微处理器系统中都配备了地址锁存器,保证CPU对先发出的地址能够锁存,可以满足地址信号先于RD信号到达,对于从读信号有效到数据稳定的时间,应由输入设备给予满足。在使用时应注意,方式0对输入数据不做锁存。第10章 并行和串行接口电路图10.108255A方式0输入时序第10章
35、并行和串行接口电路图10.118255A方式0输出时序第10章 并行和串行接口电路表表10-2 8255方式方式0输入时序各参数说明输入时序各参数说明参数说明8255A最小时间/ns最大时间/nstRR读脉冲的宽度300tAR地址稳定领先于读信号的时间0tIR输入数据领先于的时间0tHR读信号过后数据继续保持时间0tRA读信号无效后地址保持时间0tRD从读信号有效到数据稳定的时间250tDF读信号撤除后数据保持时间10150第10章 并行和串行接口电路从输出时序图可以看到,为了将数据能可靠地输出到8255A,对各信号的要求是:(1)地址信号必须在写信号之前有效,同时要求在信号有效(也就是为低电
36、平时)期间内,地址信号不能发生变化,要保证一直有效,直到在撤消(变高后)后的20ns时间以后,地址信号才允许发生变化。(2)写脉冲(为低电平时间)的宽度最小要求是400ns。(3)要求数据也必须在写信号之前最少有100ns时间出现在数据总线上。写信号撤消后,数据的最小保持时间是30ns。第10章 并行和串行接口电路表表10-3 8255A方式方式0输出时序各参数说明输出时序各参数说明参数说明8255A最小时间/ns最大时间/nstAW地址稳定领先于读信号的时间0tWW写脉冲的宽度400tDW数据有效时间100tWD数据保持时间30tWA写信号撤消后的地址保持时间20tWB写信号结束到数据有效的
37、时间350第10章 并行和串行接口电路满足上述条件,写信号结束后,最长经过350ns的时间,CPU输出的数据就可以出现在8255A的指定端口。方式0一般用于无条件传送的场合,不需要应答式联络信号,外设总是处于准备好的状态。也可以用作查询式传送,查询式传送时,需要有应答信号。可以将A端口、B端口作为数据口使用。把C端口分为2部分,其中4位规定为输出,用来输出一些控制信息,另外4位规定为输入,用来读入外设的状态。利用C端口配合A端口和B端口完成查询式的I/O操作。第10章 并行和串行接口电路2. 方式方式1:选通输入:选通输入/输出方式输出方式在这种方式下,当A端口和B端口进行输入输出时,必须利用
38、C端口提供的选通和应答信号,而且这些信号与C端口中的某些位之间有着固定的对应关系,这种关系是硬件本身决定的不是软件可以改变的。由于工作在方式l时,要由C端口中的固定位来作为选通和应答等控制信号,因此称方式1为选通的输入/输出方式。方式1的基本定义是,分成2组(A组和B组),每组包含一个8位的数据端口和1个4位的控制/数据端口。8位的数据端口既可以作为输入,也可以作为输出,输入和输出都可以被锁存。4位的控制/数据端口用于传送8位数据端口的控制和状态信息。第10章 并行和串行接口电路1)选通的输入方式方式1在选通输入方式下对应的控制信号如图10.12所示。图10.13是方式1在选通输入方式的工作时
39、序图。选通输入方式的工作过程是:当外设的数据已送到8255A某个端口的数据线上时,就发出选通输入信号STB,将数据通过A端口或B端口锁存到8255A的数据输入寄存器,STB信号的宽度至少是500ns。STB信号变低后最多经过300ns时间,使输入缓冲器满信号IBF变为高电平,如图10.13中表示的箭头。第10章 并行和串行接口电路输入缓冲器满意味着将阻止外设输入新的数据,可供CPU来查询。在选通输入信号结束后,最多经过300ns时间,向CPU发出中断请求信号(要在中断允许的情况下),如图10.13中表示的箭头,使中断请求信号INTR变高,CPU可以响应中断。当CPU响应中断后才发出读信号RD,
40、将数据读入到CPU中,读信号有效(低电平为有效)后,最多经过400ns时间,STB就清除中断请求,使中断请求信号变低,如图10.13中表示的箭头。当读信号结束后,才使输入缓冲器满信号IBF变低,如图10.13中表示的箭头。IBF变低表明输入缓冲器已空,通知外设可以输入新的数据。第10章 并行和串行接口电路图10.12方式1选通输入下对应的控制信号(a)对A端口;(b)对B端口第10章 并行和串行接口电路图10.138255A方式l输入时序第10章 并行和串行接口电路表表10-4 8255A方式方式1输入时序参数说明输入时序参数说明参数说明8255A最小时间/ns最大时间/nstST选通脉冲的宽
41、度500tSIB选通脉冲有效到IBF有效之间的时间300tSIT=1到中断请求INTR有效之间的时间300tPH数据保持时间180tPS数据有效到无效之间的时间0tRIT有效到中断请求撤除之间的时间400tRIB为1到IBF为0之间的时间300第10章 并行和串行接口电路当8255A的A端口和B端口工作在选通输入方式时,对应的C端口固定分配,规定是PC3PC5分配给A端口,PC0PC2分配给B端口,C端口剩下的2位PC7、PC6可作为简单的输入/输出线使用。控制字的D3位为“1”时,PC7、PC6作输入;控制字的D3位为“0”时,PC7、PC6作输出。第10章 并行和串行接口电路在方式1选通输
42、入方式时,各控制信号的意义如下:STB(Strobe):选通输入信号,低电平有效。A组方式控制字中对应PC4;B组方式控制字中对应PC2。当该信号有效时,从外部设备来的8位数据送入到8255A的输入缓冲器中,负脉冲宽度最小是500ns。第10章 并行和串行接口电路IBF(InputBufferFull):输入缓冲器满信号,高电平有效。A组方式控制字中对应PC5;B组方式控制字中对应PC1。这是8255A送给外设的联络信号,当8255A的输入缓冲区已有一个新数据后,输出这个信号供CPU查询。该信号在选通输入信号STB变低后,300ns时间内即变为有效的高电平。在RD信号撤消后的300ns时间内I
43、BF信号才撤消,变为无效的低电平,这样保证了数据传输的可靠性。第10章 并行和串行接口电路INTR(InterruptRequest):中断请求信号,高电平有效。A组方式控制字中对应PC3;B组方式控制字中对应PC0。这是8255A向CPU发出的中断请求信号。当STB信号撤消变为高电平后最多300ns时间内,并且IBF信号也为高电平,INTR信号产生变为有效的高电平。INTR信号变高后可以请求CPU读取数据。当CPU发出的RD信号有效后,400ns的时间内INTR信号将撤消,变为低电平。第10章 并行和串行接口电路INTE(InterruptEnable):中断允许信号,高电平有效。该信号为高
44、时,允许中断请求,为低时则屏蔽中断请求。INTE的状态是用软件通过由C端口置1/置0控制字来控制的,在A组中,使PC4置“1”后INTEA变高;在B组中,使PC2置“1”后INTEB变高,A端口和B端口才允许中断。如果PC4和PC2都置“0”,与之对应的INTE信号为低,则禁止中断。对于这种选通的输入方式,如果采用查询式输入时,CPU先查询8255A的输入缓冲器是否满了,也就是IBF是否为高?如果输入缓冲器满信号IBF为高,则CPU就可以从8255A读入数据。如果采用中断方式传送数据时,应该先用C端口置1/置0的控制字使相应的端口允许中断,也就是要使PC4或PC2置1。第10章 并行和串行接口
45、电路2)选通的输出方式方式1在选通输出情况下对应的控制信号如图10.14所示,图10.15是方式1选通输出情况下的工作时序图。这种方式的工作过程与选通输入的情况相类似。第10章 并行和串行接口电路图10.14方式l输出时C端口对A、B端口的控制(a)对A端口;(b)对B端口第10章 并行和串行接口电路图10.158255A方式1输出时序第10章 并行和串行接口电路当8255A的A端口和B端口工作在选通输出方式时,对应的C端口也是固定分配,规定是PC3、PC6、PC7分配给A端口;PC2、PC1、PC0分配给B端口,剩下的2位PC4、PC5可作为简单的输入/输出线使用。当控制字的D3位为“1”时
46、,PC4、PC5作输入;当控制字的D3位为“0”时,PC4、PC5作输出。第10章 并行和串行接口电路方式1选通输出方式时,各控制信号的意义如下:OBF(OutputBufferFu11):输出缓冲器满信号,低电平有效。A组方式控制字中对应PC7;B组方式控制字中对应PC1,这是8255A与外设的联络信号。当CPU向8255A的端口中传送了数据以后,由8255A向外设发出低电平的OBF信号,通知外设可以把数据取走。由输出指令产生的写信号WR的上升沿出现后,最多经过650ns时间,将OBF信号置成有效即变为低电平,如图10.15中表示的箭头。当应答信号ACK变为有效的低电平后350ns时间,OB
47、F信号撤消变为高电平,如图10.15中表示的箭头。第10章 并行和串行接口电路表表10-5 8255A方式方式1输出时序参数说明输出时序参数说明参数说明8255A最小时间/ns最大时间/nstWIT从写信号有效到中断请求无效的时间850tWOB从写信号无效到输出缓冲器清的时间650tAOB有效到无效的时间350tAK脉冲的宽度300tAIT为1到发新的中断请求的时间350tWB写信号撤除到数据有效的时间350第10章 并行和串行接口电路ACK(Acknowledge):数据接收应答信号,低电平有效。A组方式控制字中对应PC6;B组方式控制字中对应PC2,这是外设的响应信号,当CPU输出给825
48、5A的数据已由外设接收后,外设就向8255A回送一个低电平的应答信号ACK。INTR:中断请求信号,高电平有效。A组方式控制字中对应PC3;B组方式控制字中对应PC0。当外设已经接受了CPU输出的数据后,由8255A向CPU发出中断请求,要求CPU输出新的数据。当ACK撤消后为高电平,OBF也为高电平,中断允许信号INTE也为高时,INTR中断请求信号被置位为高电平,如图10.19中表示的箭头。作为请求CPU进行下一次数据输出的中断请求信号,是在WR有效的下降沿出现后850ns时间内使它变为无效的低电平,如图10.19中表示的箭头。第10章 并行和串行接口电路INTE:中断允许信号,高电平有效
49、。当该信号为“1”时,允许中断,为“0”时,A端口(B端口)处于中断屏蔽状态,即不发出中断请求信号INTR。在使用时,中断允许信号INTE是用软件通过对C端口置1/置0的控制字来设置的。当PC6置1时,A端口允许中断;PC2置1,B端口允许中断。反之,如果A、B端口所对应的PC6、PC2置0时,则处于中断屏蔽状态,即不允许中断。第10章 并行和串行接口电路当8255A工作在方式l输出选通方式时,一般是采用中断方式与CPU通信。从图10.19方式1输出工作时序图中可以看到,CPU响应中断以后,就向8255A输出数据,写信号出现。当写信号WR撤消,其上升沿一方面撤消中断请求信号INTR,如图10.
50、19中表示的箭头使INTR变低,表示CPU对上一次中断已经响应过。另一方面使OBF信号变为有效的低电平,如图10.19中表示的箭头,以通知外设可以接收下一个数据。第10章 并行和串行接口电路实际上,CPU在发出写信号后要经过最长350ns时间,数据才能出现在端口的输出缓冲器中。当外设收到数据后,便发出一个ACK信号,ACK信号有效后使OBF变成无效的高电平,如图10.19中表示的箭头,表示数据已经取走,当前缓冲器空。ACK信号结束时使INTR信号变为有效的高电平,如图10.19中表示的箭头,向CPU发出中断请求信号,从而开始新的数据输出过程。第10章 并行和串行接口电路3. 方式方式2:带选通
51、的双向传输方式:带选通的双向传输方式在双向的传输方式中,8255A可以向外设发送数据,同时CPU通过这8位数据线又接收外设的数据,因此称为双向的传输方式。方式2的基本定义是,只能适用于A端口,一个8位的双向端口(A端口)和1个5位的控制端口(C端口)。A端口的输入和输出都可以被锁存。5位的控制端口用于传送8位双向端口的控制和状态信息。当A端口工作在方式2时,由PA7PA0作为8位数据线,因为要由C端口对A端口进行控制,所以称为带选通的双向传输方式。C端口对A端口的控制信号分别如图10.16和图10.17所示。在这种方式下,C端口中有5位PC7PC3作为控制信号和状态信息使用,剩下的3位PC2P
52、C0可作为简单的输入/输出线使用。当控制字的D0位为1时,PC2PC0作输入;当控制字的D0位为0时,PC2PC0作输出。第10章 并行和串行接口电路STB:选通信号,低电平有效。对应于PC4,由外设提供给8255A。该信号负责把外设送到8255A的数据送入输入锁存器。IBF:输入缓冲器满信号,高电平有效。对应PC5,是8255A送给CPU的状态信息,供CPU查询用。当该信号有效时,表示当前已经有一个新的数据送到了输入锁存器中,CPU可以取走。OBF:输出缓冲器满信号,低电平有效。对应PC7,由8255A发给外设的选通信号,当OBF有效时,表明CPU已经将一个数据写入8255A的A端口中,通知
53、外设可以取走数据。第10章 并行和串行接口电路INTR:中断请求信号,高电平有效。对应PC3,不论A端口工作在输入方式还是工作在输出方式,当一个操作完成,并且要进入下一个操作时,8255A都要向CPU发出中断请求信号。ACK:数据接收应答信号,低电平有效。对应PC6,这是外设对信号OBF的响应信号,该信号为低电平时,使A端口的输出缓冲器打开,送出数据到外设。否则,当该信号为高电平时,方式2时输出缓冲器处于高阻状态。第10章 并行和串行接口电路图10.16方式2时C端口对A端口的控制信号第10章 并行和串行接口电路INTEl:输出中断允许信号。当该信号为“1”时,允许8255A向CPU发出由A端
54、口输出数据的中断请求信号。反之,如果该信号为“0”时,即使输出缓冲器空,也不允许8255A向CPU发中断请求信号。INTEl信号的置1或置0,是用软件使C端口的PC6置1或置0来实现的。第10章 并行和串行接口电路INTE2:输入中断允许信号。当该信号为“1”时,允许8255A中A端口的输入处于中断允许状态,反之,如果该信号为“0”时,A端口的输入处于中断屏蔽状态,即不允许中断。INTE2信号的置1或置0,同样是用软件通过C端口的PC4置1或置0来实现。第10章 并行和串行接口电路通过仔细分析方式2的工作时序图10.17,会发现方式2的时序基本相当于方式1的选通输入时序和选通输出的时序的组合。
55、从图10.17中可以看到,对于输入过程,当外设向A端口送来数据时,选通信号STB也跟着有效变为低电平,选通信号将数据锁存到8255A的A端口的输入锁存器中。同样也正是由于STB信号的变低,才使得输入缓冲器满信号IBF变为高电平,如图10.17中表示的箭头。当选通信号STB结束,也就是变为高电平时,又使中断请求信号INTR有效,变为高电平,如图10.17中表示的箭头。当CPU响应输入中断,执行输入指令时,会产生RD信号,在读信号RD有效期间,将数据从A端口读入到CPU中。当RD信号结束后输入缓冲器满信号IBF又变为低电平,如图10.17中表示的箭头。中断请求信号INTR虽然为高也不再起作用。第1
56、0章 并行和串行接口电路对于输出过程,当CPU响应中断后,在中断服务程序中执行输出指令时,将发出写脉冲WR,WR的下降沿使中断请求信号INTR变低,如图10.17中表示的箭头。WR信号结束其上升降沿使输出缓冲器满OBF信号变为有效的低电平,如图10.17中表示的箭头。OBF信号送到外设,当外设接到OBF信号后,发出应答信号ACK,如图10.17中表示的箭头。由ACK信号打开8255A的输出缓冲器,使数据出现在A端口和数据总线上,ACK信号结束时使输出缓冲器满信号OBF变为无效的高电平,如图10.17中表示的箭头,从而开始下一个数据传输过程。由于方式2是双向传输的工作方式,如果一个外设既可以作为
57、输入,又可以作为输出时,采用8255A的方式2与它相连就十分方便。第10章 并行和串行接口电路图10.178255A方式2时序第10章 并行和串行接口电路表表10-6 8255A方式方式2时序的参数说明时序的参数说明参数说明8255A最小时间/ns最大时间/nstST选通脉冲的宽度500tPH数据保持时间180tSIB选通脉冲有效到IBFA有效之间的时间300tPS数据有效到无效之间的时间0tWOD从写信号无效到,有效的时间650tAOD有效到无效的时间350tAD有效到数据输出的时间350tHD数据保持时间200第10章 并行和串行接口电路10.2.5 8255A的应用举例的应用举例8255
58、A初始化时,先要写入控制字,指定它的工作方式,然后才能通过编程,将总线上的数据从8255A输出给外设,或者将外部设备的数据通过8255A送到CPU中。举一个通过8255A把CPU中的数据输出到打印机上的例子。图10.18(a)采用查询方式传送数据,A端口作为8位数据的输出端口,工作在方式1输出方式。C端口作为状态端口和控制端口使用,一般的打印机有3个主要的控制状态信号线。BUSY表示打印机是否处于“忙”状态,高电平有效;DATASTB选通信号,低电平有效,当该信号有效时,将CPU的数据输出到打印机中;ACK是打印机对主机的应答信号,当打印机接收完字符后发出这个信号。当DATASTB信号有效时,
59、将BUSY信号置为高电平,ACK有效使BUSY置为低电平,图中的单稳定用来展宽脉冲,以满足DATASTB打印机对信号要求的时间宽度。第10章 并行和串行接口电路图10.188255A与打印机的接口方式(a)查询方式电路图;(b)中断方式电路图第10章 并行和串行接口电路A端口地址用PortA表示,C端口地址用PortC表示,控制端口地址用PortCtr表示。输出500个字符程序段如下:MOV AL,0A8H;A端口方式1输出,PC4输入MOV DX,PortCtr;控制口送DXOUTDX,AL;输出控制字MOV CX,500;传送500个字符MOV DI,Buffer;送字符缓冲区首址LOOP
60、1:MOVAL,DIMOV DX,PortA;A端口地址送DX第10章 并行和串行接口电路OUTDX,AL;从A端口输出一个字符MOVDX,PonC;C端口地址送DXNEXT:INAL,DX;从C端口读入打印机状态TESTAL,10H;测试BUSY信号JNZNEXT;如果打印机忙,等待INCDI;缓冲区首址加1LOOPLOOP1;继续输出下一个字符第10章 并行和串行接口电路如果采用中断方式传送数据,电路的连接形式如图10.18(b)所示。由CPU控制PC4产生选通脉冲,PC4作输出用,这里OBF没有用。PC3作为中断请求INTR,由ACK信号上升沿产生,使用IRQ3,中断向量0BH。在编写有
61、关中断的程序时,中断服务程序要尽量短,把其他的处理工作都放在主程序中。第10章 并行和串行接口电路程序段如下:MOVAL,0A0HMOVDX,PortCtrOUTDX,AL;A端口,方式1输出方式,PC4作输出MOVAL,00001000B;置PC4=1,令DATASTB1选通无效CLI;关中断MOVAH,35HMOVAL,0BHINT21H;将0BH中断向量取到ES、BX中第10章 并行和串行接口电路PUSHESPUSHBX;保存0BH中断向量PUSHDSMOVDX,OFFSETINTSERV;中断子程序的偏移地址送DXMOVAX,SEGINTSERVMOVDS,AX;中断子程序段地址送DS
62、;设置0BH中断向量,即将DS,DX的内容传送到中断向量表中MOVAL,0BHMOVAH,25HINT21H第10章 并行和串行接口电路POPDSMOVAL,0DHMOVDX,PortCtrOUTDX,AL;将PC6置“1”,使INTE为“1”,允许8255A端口中断STI;开中断,允许中断请求信号进入CPUCLIPOPDXPOPDS;将开始压栈的ES、BX的内容弹入DX中MOVAL,0BHMOVAH,25HINT21H;恢复0BH原中断向量STI第10章 并行和串行接口电路中断服务程序INTSERV:PUSHAD;通用寄存器进栈MOVAL,CL;打印字符送ALMOVDX,PortAOUTDX
63、,AL;打印字符送A端口MOVAL,00HMOVDX,PortCtrOUTDX,AL;置PC40,产生选通信号,使DATASTB为低电平INCALOUTDX,AL;使PC4=1,撤消选通信号MOVDX,20HOUTDX,20H;发EOI命令POPAD;通用寄存器出栈IRET;中断返回第10章 并行和串行接口电路10.3 可编程串行接口电路可编程串行接口电路Intel 8251A10.3.1 8251A的主要性能和内部结构的主要性能和内部结构825lA是可编程的串行通信接口芯片,它的基本性能如下:(1)可工作在同步方式,也可工作在异步方式。同步方式下波特率为064000波特,异步方式下波特率为0
64、19200波特。(2)在同步方式时,每个字符可定义为5、6、7或8位。两种方法实现同步,由内部自动检测同步字符或由外部给出同步信号。允许同步方式下增加奇/偶校验位进行校验。第10章 并行和串行接口电路(3)在异步方式下,每个字符可定义为5、6、7或8位,用1位作奇偶校验。时钟速率可用软件定义为波特率的l、16或64倍。另外,8251A在异步方式下能自动为每个被输出的数据增加1个起始位,并能根据软件编程为每个输出数据设置1位、1.5位或2位停止位。第10章 并行和串行接口电路(4)能进行出错检测。带有奇偶、溢出和帧错误等检测电路,用户可通过输入状态寄存器的内容进行查询。8251A的内部结构框图如
65、图10.19所示。从图中可以看出,它由数据总线缓冲器、读/写控制逻辑、发送缓冲器、发送控制器、接收缓冲器、接收控制器、调制/解调器控制逻辑、同步字符寄存器及控制各种操作的方式寄存器等组成。各部件实现的功能如下所示。第10章 并行和串行接口电路图10.19825lA内部结构原理框图第10章 并行和串行接口电路1)数据总线缓冲器数据总线缓冲器通过8位数据线D7D0和CPU的数据总线相连,负责把接收口接收到的信息送给CPU,或把CPU发来的信息送给发送口。还可随时把状态寄存器中的内容读到CPU中,在825lA初始化时,分别把方式字、控制字和同步字符送到方式寄存器、控制寄存器和同步字符寄存器中。第10
66、章 并行和串行接口电路2) 读读/写控制逻辑写控制逻辑表表10-7 8251A的控制信号与执行的操作之间的对应关系的控制信号与执行的操作之间的对应关系C/执行的操作0000010110100011CPU由8251A输入数据CPU向8251A输出数据CPU读取8251A的状态CPU向8251A写入控制命令第10章 并行和串行接口电路3)发送缓冲器与发送控制器发送缓冲器包括发送移位寄存器和数据输出寄存器,发送移位寄存器通过825lA芯片的TXD管脚将串行数据发送出去。数据输出寄存器寄存来自CPU的数据,当发送移位寄存器空时,数据输出寄存器的内容送给移位寄存器。发送控制电路对串行数据实行发送控制。发
67、送器的另一个功能是发送中止符(BREAK),中止符由在通信线上的连续低电平信号组成,它是用来在全双工通信时中止发送终端的,只要8251A的命令寄存器的bit3为“1”,发送器就始终发送终止符。第10章 并行和串行接口电路4)接收缓冲器与接收控制器接收缓冲器包括接收移位寄存器和数据输入寄存器。串行输入的数据通过8251A芯片的RXD管脚逐位进入接收移位寄存器,然后变成并行格式进入数据输入寄存器,等待CPU取走。接收控制电路是用来控制数据接收工作。第10章 并行和串行接口电路5)调制/解调器控制逻辑利用8251A进行远距离通信时,发送方要通过调制解调器将输出的串行数字信号变为模拟信号,再发送出去。
68、接收方也必须将模拟信号经过调制解调器变为数字信号,才能由串行接口接收。在全双工通信方式下,每个收、发口都是要连接调制解调器。调制解调器控制电路是专为调制解调器提供控制信号用的。第10章 并行和串行接口电路10.3.2 8251A的外部特性的外部特性图10.208251A引脚图第10章 并行和串行接口电路1. 8251A与与CPU的接口信号的接口信号8251A与CPU的接口信号可以分为五类,具体如下。1)双向的数据信号线D7D0825lA有8条数据线D7D0,D7为最高位,D0为最低位。825lA通过这8根线和CPU的数据总线相连接,实际上,数据线上不只是传输数据,还传输CPU对825lA的编程
69、命令字和825lA送往CPU的状态信息。第10章 并行和串行接口电路2)片选信号CSCS(输入,11引脚)为片选信号,低电平有效,芯片被选中才能工作,如果8251A未被选中,数据线D7D0将处于高阻状态,读/写信号对芯片都不起作用。第10章 并行和串行接口电路3)读/写控制信号RD(输入,13引脚)为读信号,低电平有效。当该信号有效时,并且CS也为低电平,CPU可以从8251A读取数据或状态信息。WR(输入,10引脚)为写信号,低电平有效。当该信号有效时,并且CS也为低电平,CPU可以向8251写入数据或控制字。第10章 并行和串行接口电路C/D(输入,12引脚)为控制/数据信号,分时复用。用
70、来区分当前读/写的是数据还是控制信息或状态信息。当C/D为高电平时,系统处理的是控制信息或状态信息,从D7D0端写入8251A的必须是方式字、控制字或同步字符。当C/D为低电平时,写入的是数据。RESET(输入,21引脚)为复位信号,高电平有效。当该信号为高时,8251A实现复位功能,内部所有的寄存器都被置为初始状态。第10章 并行和串行接口电路CLK(输入,20引脚)为主时钟信号,用于芯片内部的定时。对于同步方式,它的频率必须大于发送时钟TXC和接收时钟RXC的30倍。对于异步方式,必须大于它们的4.5倍。8251A的时钟频率规定在0.743.1MHz的范围内。8251A共有三种时钟信号:C
71、LK、TXC和RXC。其中发送时钟和接收时钟由波特率和波特率因子来决定。第10章 并行和串行接口电路4)与发送有关的联络信号TXRDY(输入,15引脚)为发送器准备好信号,高电平有效。当该信号为高电平时,通知CPU,8251A已经准备好发送一个字符,表示CPU可以输入数据。所谓发送器准备好,就是控制字的第0位TXEN为“1时,使8251A允许发送,并且调制解调器已做好接收准备,发出信号使8251A的CTS信号变低为有效,因此TXRDY为输出缓冲器空与CTS与TXEN。TXRDY可作为中断申请信号,也可作为查询方式的联络信号使用。TXEMPTY(输入,18引脚)为发送器空信号,控制8251A发送
72、器发送字符的速度。对于同步方式,它的输入时钟频率应等于发送数据的波特率,对于异步方式,它的频率应等于发送波特率和波特率因子的乘积。第10章 并行和串行接口电路5)与接收有关的联络信号。RXRDY(输出,14引脚)为接收器准备好信号,高电平有效。当该信号为高时,表示825lA已从外部设备或调制解调器中收到一个字符,等待CPU取走。它可以作为中断请求信号或查询联络信号与CPU联系。第10章 并行和串行接口电路SYNDET/BRKDET(输入/输出,16引脚)为同步检测/断缺检测信号,高电平有效。在同步方式下,SYNDET执行同步检测功能,可以工作在输入状态,也可以工作在输出状态。同步检测分为内同步
73、和外同步两种方式。采用哪种同步方式要取决于8251A的工作方式,由初始化时写入方式寄存器的方式字来决定。当8251A工作在内同步方式时,SYNDET作为输出端,是在8251A内部检测同步字符。如果8251A检测到了所要求的一个或两个同步字符时,SYNDET输出高电平,表示已达到同步,后续收到的是有效数据。当8251A工作在外同步方式时,SYNDET作为输入端。第10章 并行和串行接口电路外同步是由外部其他机构来检测同步字符,当外部检测到同步字符以后,从SYNDET端向8251A输入一个高电平信号,表示已达到同步,接收器可以串行接收数据。芯片复位时,SYNDET为低电平。在异步方式下BRKDET
74、实现断缺检测功能,当RXC端连续收到8个0信号时,BRK-DET端呈高电平,表示当前处于数据断缺状态,RXC端没有收到数据。当RXC端收到1信号时,BRKDET端变为低电平。第10章 并行和串行接口电路RXC(输入,25引脚)为接收器时钟信号,控制8251A接收字符的速度。和一样,在同步方式时,它的频率等于接收数据的波特率,并由调制解调器供给(近距离不用调制解调器,传送时由用户自行设置)。在异步方式时,时钟频率等于波特率和波特率因子的乘积。第10章 并行和串行接口电路2. 8251A与外部装置之间的接口信号与外部装置之间的接口信号8251A与外部装置进行远距离通信时,一般要通过调制解调器连接。
75、连接的信号可大致分为数据信号和收发联络信号两类。1)数据信号TXD(输出,19引脚)为发送数据信号端。CPU送入825lA的并行数据,在825lA内部转换为串行数据,通过TXD端输出。RXD(输入,3引脚)为接收数据信号端。RXD用来接收外部装置通过传输线送来的串行数据,数据进入825lA后转换为并行数据。第10章 并行和串行接口电路2)发送数据时的联络信号RTS(输出,23引脚)为请求发送信号,低电平有效。这是8251A向调制解调器或外设发送的控制信息,初始化时由CPU向825lA写控制命令字来设置。该信号有效时,表示CPU请求通过825lA向调制解调器发送数据。CTS(输入,17引脚)为发
76、送允许信号,低电平有效。这是由调制解调器或外设送给8251A的信号,是RTS对的响应信号,只有当CTS为低电平时,825lA才能执行发送操作。第10章 并行和串行接口电路3)接收数据时的联络信号DTR(输出,24引脚)为数据终端准备好信号,低电平有效。是由8251A送出的一个通用的输出信号,初始化时由CPU向8251A写控制命令字来设置。该信号有效时,表示为接收数据做好了准备,CPU可以通过8251A从调制解调器接收数据。DSR(输入,22引脚)为数据装置准备好信号,低电平有效。这是由调制解调器或外设向8251A送入的一个通用的输入信号,是DTR的回答信号,CPU可以通过读取状态寄存器的方法来
77、查询DSR是否有效。第10章 并行和串行接口电路以上发送数据和接收数据的联络信号,对于远距离串行通信时要通过调制解调器连接,实际上是和调制解调器之间的连接信号。如果近距离传输时,可不用调制解调器,而直接通过MCl488和MCl489来连接,外设不要求有联络信号时,这些信号可以不用。例如,RTS可以悬空,但CTS必须接低电平,否则发送器不工作。道理很简单,这是由于发送器的工作条件是当CTS有效时,才能使TXRDY成为有效的高电平,使用时可根据实际的情况来决定。如果外设需要一对联络信号就起用一对,需要两对就起用两对。例如,DTR为有效电平可以作为一个CPU发出的选通信号,DSR有效可以作为外设的状
78、态信号。第10章 并行和串行接口电路使用MC1488和MC1489芯片时,传输时的电平是RS-232C标准电平,所能传输的最大距离是30m,一般不超过15m。数据传输的波特率低于20000波特。第10章 并行和串行接口电路10.3.3 8251A的编程地址的编程地址从表10-7看到,8251A实际上只需要两个端口地址:一个用于数据端口,一个用于控制端口。数据输入端口和数据输出端口可合用一个端口;状态端口和控制端口也可合用一个端口。只用读信号RD和写WR信号即可区分是数据输入还是数据输出,是状态端口还是控制端口,状态端口只能读不能写。这样在具体的硬件设计时可简化电路连接。第10章 并行和串行接口
79、电路由于825lA的D7D0通常与数据总线的低8位相连,又由于低8位的数据线是和内存的偶地址相连,因而8251A的数据用偶地址传送正好和内存的低8位数据相对应。读写时,当地址总线的A0=0时,必定选中偶地址;A01时,选定奇地址。因而对8251A编程时必须使A0总是为0。但C/端要求两种状态,C/D1要求选中数据输入/输出寄存器;C/D0要求选中方式寄存器,同步字符寄存器、控制寄存器和状态寄存器。C/D端要求有0和1两种电平,为满足这种要求,又要保持A0总是为0,因此将地址线的A0和C/D相连接,片选通过地址译码得到,RD、WR分别与控制总线的IOR和IOW相连。第10章 并行和串行接口电路图
80、10.218251A异步通信方式的连接第10章 并行和串行接口电路图10.228251A同步通信方式的连接第10章 并行和串行接口电路异步方式时,TXRDY和RXRDY作为中断申请信号使用,与外部中断源连接;同步方式时,TXRDY和RXRDY与调制解调器连接。如果工作在查询方式,均由CPU执行输出指令向奇地址端口写入命令指令,使其开始进行输入/输出工作。8251A初始化编程的流程如图10.23所示。初始化编程主要是对8251A的方式寄存器、控制寄存器和状态寄存器进行编程设置,下面做具体介绍。第10章 并行和串行接口电路图10.238251A初始化编程流程图第10章 并行和串行接口电路10.3.
81、4 8251A的控制字的控制字 1. 方式寄存器方式寄存器方式寄存器是8251A在初始化时,用来写入方式选择字用的。方式选择有两种:同步方式和异步方式。方式寄存器有8位,最低2位全为0时表示是同步方式,最低2位不全为0时表示是异步方式。具体格式如下。1)8251A工作在同步方式下当825lA工作在同步方式下时,方式寄存器的格式如图10.24所示。第10章 并行和串行接口电路图10.248251A同步方式下方式寄存器的格式第10章 并行和串行接口电路(1)D1D000是同步方式的标志特征,表示同步传送时波特率因子为1,此时芯片上TXC和RXC引脚上的输入时钟频率和波特率相等。(2)D3D2(L2
82、L1)是规定同步传送时每个字符的位数,当L2L1对应为00、01、10、11时,分别表示传输字符的位数是5、6、7、8位。(3)D4(PEN)是规定在传输数据时是否需要奇偶校验位,该位为“1”表示有校验位,为“0”则无校验位。(4)D5(EP)是用来规定校验位的类型,该位为“0”表示是奇校验,为“1”表示是偶校验。第10章 并行和串行接口电路(5)D6(ESD)是用来规定同步的方式,该位为“0”表示是内同步,芯片的SYNDET引脚为输出端;为“1”表示是外同步,SYNDET引脚为输入端。(6)D7(SCS)是用来规定同步字符的数目,该位为“0”表示两个同步字符,为“1”表示一个同步字符。例如,
83、要求825lA作为外同步通信接口,数据位8位,两个同步字符,偶校验,其方式选择字应为十六进制的7CH(01111100B7CH)。第10章 并行和串行接口电路2)8251A工作在异步方式下当8251A工作在异步方式下时,方式寄存器的格式如图10.25所示。图10.258251A异步方式下方式寄存器的格式第10章 并行和串行接口电路(1)D1D0(B2B1)不全为0的情况表示是异步方式,当B2B101时,规定波特率的因子为1;B2B110时,规定波特率因子为16;B2B111时,规定波特率因子为64。(2)D3D2(L2L1)是规定在异步传送时每个字符的位数,与同步方式下的数据位数规定相同。(3
84、)D4(PEN)是规定在异步传输时是否需要校验位,与同步方式下的规定相同。(4)D5(EP)是用来规定异步方式时,数据校验的类型,与同步方式下的规定相同。第10章 并行和串行接口电路(5)D7D6(S2S1)是用来规定异步方式时,停止位的个数。为了和同步方式相区别,当D7D600时,没有定义停止位的个数;当D7D601时,表示1个停止位;当D7D610时,表示1.5个停止位;当D7D611时,表示2个停止位。例如,要求8251A芯片作为异步通信,波特率为64,字符长度8位,奇校验,2个停止位的方式选择字应为十六进制的DFH(1101111lBDFH)。第10章 并行和串行接口电路2. 控制寄存
85、器控制寄存器对8251A进行初始化时,按上面的方法写入了方式选择字后,接着要写入的是命令字,由命令字来规定8251A的工作状态,才能启动串行通信开始工作或置位。这样就要对控制寄存器输入控制字,控制寄存器的格式如图10.26所示。控制寄存器也是8位,每位的定义如下:(1)D0(TXEN):允许发送选择。只有当D0l时,才允许8251A从发送端口发送数据。第10章 并行和串行接口电路(2)D1(DTR):该位与调制解调器控制电路的DTR端有直接联系,当工作在全双工方式时,D0、D2位要同时置1,D1才能置1,由于DTR1从而使STB端被置成有效的低电平,通知调制解调器或MC1488芯片等器件,CP
86、U的数据终端已经就绪,可以接收数据了。(3)D2(RxEN):允许接收选择。只有当D21时,才允许825lA从接收端口接收数据。(4)D3(SBRK):当该位被置1后,使串行数据发送管脚TXD变为低电平,输出“0”信号,表示数据断缺,而当处于正常通信状态时,SBRK0。第10章 并行和串行接口电路(5)D4(ER):当该位被置1后,将消除状态寄存器中的全部错误标志,PE、OE、FE这三位错误标志由状态寄存器的D3、D4、D5来指示。(6)D5(RTS):该位与调制解调器控制电路的请求发送信号RTS有直接联系,当D5位被置1,由于RTS1,从而使ACK输出有效的低电平,通知调制解调器或MCl48
87、9芯片等器件,CPU将要通过825lA输出数据。调制解调器控制电路的和的有效电平不是由8251A内部产生,而是通过对控制字的编程来设置,这样可便于CPU与外设直接联系。第10章 并行和串行接口电路图10.268251A的控制寄存器格式第10章 并行和串行接口电路(7)D6(IR):当该位被置1后,使8251A内部复位。当对8251A初始化时,使用同一个奇地址,先写入方式选择字,接着写入同步字符(异步方式时不写入同步字符),最后写入的才是控制字,这个顺序不能改变,否则将出错。但是,当初始化以后,如果再通过这个奇地址写入的字,都将进入控制寄存器,因此控制字可以随时写入。如果要重新设置工作方式,写入
88、方式选择字,必须先要将控制寄存器的D0位置1,也就是说内部复位的命令字为40H才能使8251A返回到初始化前的状态。当然,用外部的复位命令RESET,也可使825lA复位,而在正常的传输过程中D6=0。第10章 并行和串行接口电路(8)D7(EH):该位只对同步方式才起作用。当D7=l时表示开始搜索同步字符,但同时要求D2(RXEN)l,D4(ER)1,同步接收工作才开始进行。也就是说,写同步接收控制字时必须使D7、D4、D2同时为1。第10章 并行和串行接口电路3. 状态寄存器状态寄存器状态寄存器是反映8251A内部工作状态的寄存器,只能读出,不能写入。CPU可用IN指令来读取状态寄存器的内
89、容。状态寄存器的格式如图10.27所示。状态寄存器也是8位,每位的定义如下:(1)D0(TXRDY):D0=1是发送准备好标志,表明当前数据输出缓冲器空。要注意的是,这里状态位D0的TXRDY和芯片引脚上的TXRDY的信号不同,这是状态位的TXRDY不受输入信号CTS和控制位TXEN的影响;而芯片引脚上的TXRDY必须在数据输出寄存器空,并且调制解调器控制电路的CTS端也为低电平时,控制寄存器的D0(TXEN)1时才有效。第10章 并行和串行接口电路(2)D1(RXRDY):接收器准备好信号,该位为“1”时,表明接口已接收到一个字符,当前正准备输入CPU中。当CPU从8251A输入一个字符时,
90、RXRDY自动清0。(3)D2:(TXEMPTY),同8251A的18脚说明。(4)D6:(SYNDET/BRKDET),同8251A的16脚说明。第10章 并行和串行接口电路(5)D7(DSR):数据终端准备好标志,当外设(调制解调器等)已准备好发送数据时,就向DSR端发出低电平信号,使DSR有效。此时DSR位被置1。上面Dl、D2、D6、D7这4位的状态与8251A芯片外部同名管脚的状态完全相同,反映这些管脚当前的状态。(6)D3(PE):奇偶出错标志位,PE1时,表示当前产生了奇偶错,但不终止8251A工作。第10章 并行和串行接口电路图10.278251A的状态寄存器格式第10章 并行
91、和串行接口电路(7)D4(OE):溢出出错标志位,在接收字符时,如果数据输入寄存器的内容没有被CPU及时取走,下一个字符各位已从RXD端全部进入移位寄存器,然后进入数据输入寄存器,这时,在数据输入寄存器中,后一个字符覆盖了前一个字符,因而出错,这时D4位被置1。第10章 并行和串行接口电路(8)D5(FE):帧格式出错标志位,只适用于异步方式。在异步接收时,接收器根据方式寄存器规定的字符位数、有无奇偶校验位、停止位位数等,都由计数器计数接收,若停止位不为0,说明帧格式错位。字符出错,此时FE1。上面的PE=1,OE1和FE1只是记录接收时的三种错误,并没有终止8251A工作的功能,由CPU通过
92、IN指令读取状态寄存器来发现错误。第10章 并行和串行接口电路10.3.5 8251A的编程应用举例的编程应用举例 1. 同步方式下的初始化同步方式下的初始化同步方式下8251A的工作特点是:发送方和接收方是同一时钟源。也就是说数据和发送时钟(或接收时钟)是同步的,图10.22是同步方式下的连接。检测同步字符分为内同步方式和外同步方式两种。如果是内同步方式,靠8251A自身检测,检测到同步字符后,从芯片的16管脚SYNDET输出一个有效的高电平信号。如果是外同步方式,则由调制解调器或有关设备来检测同步字符,当检测到同步字符后,调制解调器通过芯片的16管脚SYNDET给825lA一个信号,通知8
93、251A已经实现同步。第10章 并行和串行接口电路例如,要求2个同步字符,外同步,奇校验,每个字符8位,方式选择字应是:01011100B=5CH。工作状态要求出错标志复位。启动发送器和接收器,控制字应是10110111BB7H。第一个同步字符为A5H,第二个同步字符为E7H(2个同步字符也可以是相同的)。编程初始化时,先用内部复位命令将40H送入8251A奇地址,复位后重新写入奇地址,程序段如下:第10章 并行和串行接口电路MOVAL,40HOUTPortE,AL;40H写入奇地址PortE,使8251A复位MOVAL,5CHOUTPortE,AL;设置方式选择字MOVAL,0A5HOUTP
94、ortE,AL;写入第一个同步字符MOVAL,0E7HOUTPortE,AL;写入第二个同步字符MOVAL,0B7HOUTPortE,AL;设置控制源,启动发送器和接收器。第10章 并行和串行接口电路 2. 异步方式下的初始化异步方式下的初始化异步方式下8251A的工作特点是:发送方和接收方的时钟是不一样的,图10.21是异步方式下的连接。例如,要求异步方式下,波特率因子为16,8位数据,1位停止位,方式选择字应是01011101B5DH。在异步方式下输入50个字符,采用查询状态字的方法,在程序中需对状态寄存器的RXRDY位进行测试,查询8251A是否已经从外设接收了一个字符。如果收到,D1位
95、RXRDY变为“1”。CPU用输入指令从偶地址端口取回数据送入内存缓冲区中,当CPU读取字符后,RXRDY自动复位,变为“0”。除检测RXRDY位以外,还要检测D3位(PE)、D4位(OE)、D5位(FE)是否出错,如果出错,转错误处理程序,工作状态的要求同上边的同步方式相同。第10章 并行和串行接口电路MOVAL,40HOUTPortE,AL;复位8251AMOVAL,50H;OUTPortE,AL;写入异步方式选择字MOVAL,37HOUTPortE,AL;控制字写入奇地址PortEMOVDI,0;变址寄存器置“0”MOVCX,32H;送入计数初值50个字符第10章 并行和串行接口电路IN
96、PUT: INAL,PortE;读取状态字TESTAL,02H;测试状态字第2位RXRDYJZINPUT;8251A未收到字符则重新取状态字INAL,PortO;RXRDY有效,从偶地址口PortO输入数据MOVDX,Buffer;缓冲区首址送DXMOVDX十D1,AL ;将字符送入缓冲区INCDI;缓冲区指针加1INAL,PortE;再读状态字TESTAL,38H;测试有无三种错误JNZERROR;有错转出错处理LOOPINPUT;没错,又不够50个字符,转InputJMPEXIT;如已输入50个字符,则转结束ERROR:EXIT:第10章 并行和串行接口电路习习 题题 10 10.1当数据
97、从8255A的C端口往数据总线上读出时,8255A的几个控制信号、A1、A0、分别是什么?8255A的方式选择控制字和置1/置0都是写入控制端口的,那么他们是由什么来区分的?10.28255A有哪几种基本工作方式?对这些工作方式有什么规定?10.38255A的方式0一般使用在什么场合?在方式0时,如果使用应答方式进行联络,应该怎么办?10.4当8255A工作在方式2(中断)时,CPU是如何来区分输入/输出的?第10章 并行和串行接口电路10.58255A与打印机的连接如图10.28所示,利用8255A工作在方式0实现与打印机连接。编写初始化程序。若将存于AL中的字符送打印机打印,试编写打印程序。若采用8255A工作在方式1与打印机连接,如图10.29所示,编写初始化程序。图10.28第10章 并行和串行接口电路图10.29第10章 并行和串行接口电路10.6设异步传输时,每个字符对应1个启始位、7个信息位、1个奇/偶校验位和1个停止位,如果波特率为9600b/s,则每秒钟能传输的最大字符数是什么?10.7什么叫异步工作方式?画出异步工作方式时8255A的TXD和RXD线上的数据格式。什么叫同步工作方式?什么叫双同步字符方式?外同步和内同步有什么区别?写出双同步工作时8251A的TXD和RXD线上的数据格式。