1、8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用8.6.1 串行通信概述串行通信概述 8.6.2 可编程串行接口可编程串行接口Intel 8251A 8.6.3 Intel 8251A 编程地址与初始化编程地址与初始化8.6.4 Intel 8251A 应用案例应用案例习题习题88.6 可编程串行接口电路及其应用可编程串行接口电路及其应用8.6.1 串行通信概述串行通信概述 串行通信是微机和外部设备交换信息的方式之一。所谓串行通信是通过一位一位地进行数据传输来实现通信。与并行通信相比,串行通信具有传输线少,成本低等优点,适
2、合远距离传送。缺点是速度慢,若并行传送n位数据需时间T,则串行传送的时间最少为nT。在实际传输中,是通过一对导线传送信息。在传输中每一位数据都占据一个固定的时间长度。1.串行接口的组成串行接口的组成 串行接口是通过系统总线和CPU相连,串行接口部件的典型结构如图8.44所示。主要由控制寄存器、状态寄存器、数据输入寄存器和数据输出寄存器4部分组成。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用图8.44 串行接口与CPU、外设的连接控制寄存器状态寄存器数据输入寄存器数据输出寄存器CPU总线系统数据总线RxRDY地 址译码器
3、复位地址总线AENIORIOW串行数据输入TxRDY串入并出并入串出CSDC/接收时钟串行数据输出发送时钟MODEM控制8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 控制寄存器控制寄存器 控制寄存器用来保存决定接口工作方式的控制信息。状态寄存器状态寄存器 状态寄存器中的每一个状态位都可以用来标识传输过程中某一种错误或当前传输状态。数据寄存器数据寄存器 数据输入寄存器:在输入过程中,串行数据一位一位地从传输线进入串行接口的移位寄存器,经过串入并出(串行输入并行输出)电路的转换,当接收完一个字符之后,数据就从移位寄存器传送到数据输入寄存器,等待CPU读取。8.6 可编程串行接口电路
4、及其应用可编程串行接口电路及其应用 数据输出寄存器:在输出过程中,当CPU输出一个数据时,先送到数据输出缓冲寄存器,然后,数据由输出寄存器传到移位寄存器,经过并入串出(并行输入串行输出)电路的转换一位一位地通过输出传输线送到对方。串行接口中的数据输入移位寄存器和数据输出移位寄存器是为了和数据输入缓冲寄存器和数据输出缓冲寄存器配对使用的。在学习串行通信方式时,很有必要了解一下有关串行通信中的一些基本概念,这里仅做简单介绍。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 2.串行通信中使用的术语串行通信中使用的术语 发送时钟和接收时钟 把二进制数据序列称为比特组,由发送器发送到传输线
5、上,再由接收器从传输线上接收。二进制数据序列在传输线上是以数字信号形式出现,即用高电平表示二进制数1,低电平表示二进制数0。而且每一位持续的时间是固定的,在发送时是以发送时钟作为数据位的划分界限,在接收时是以接收时钟作为数据位的检测。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 发送时钟:串行数据的发送由发送时钟控制,数据发送过程是:把并行的数据序列送入移位寄存器,然后通过移位寄存器由发送时钟触发进行移位输出,数据位的时间间隔可由发送时钟周期来划分。接收时钟:串行数据的接收是由接收时钟来检测,数据接收过程是:传输线上送来的串行数据序列由接收时钟作为移位寄存器的触发脉冲,逐位打入
6、移位寄存器。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 DTE和DCE 数据终端设备(data terminal equipment,DTE):是对属于用户所有联网设备和工作站的统称,它们是数据的源或目的或者即是源又是目的。例如:数据输入/输出设备,通信处理机或各种大、中、小型计算机等。DTE可以根据协议来控制通信的功能。数据电路终端设备或数据通信设备(data circuit-terminating equipment或data communication equipment,DCE):前者为CCITT标准所用,后者为EIA标准所用。DCE是对网络设备的统称,该设备为用户设
7、备提供入网的连接点。自动呼叫/应答设备、调制解调器Modem和其他一些中间设备均属DCE。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 信道信道 信道是传输信息所经过的通道,是连接2个DTE的线路,它包括传输介质和有关的中间设备。3.串行通信中的工作方式串行通信中的工作方式 分为:单工通信方式、半双工通信方式和全双工通信方式 发送器接收器单工方式A站点B站点发送器接收器A站点发送器接收器B站点发送器接收器A站点接收器发送器B站点(a)(b)(c)图8.45 串行通信工作方式(a)单工 (b)半双工 (c)双工8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 半双工工
8、作方式半双工工作方式 如果在传输的过程中依然用一根线连接,这样在某一个时刻,只能进行发送,或只能进行接收。由于是一根线连接,发送和接收不可能同时进行,这种传输方式称为半双工工作方式,如图8.45(b)所示。半双工通信工方式类似对讲机,某时刻A方发送B方接收,另一时刻B方发送A方接收,双方不能同时进行发送和接收。单工工作方式单工工作方式 在这种方式下,传输的线路用一根线连接,通信的一端连接发送器,另一端连接接收器,即形成单向连接,只允许数据按照一个固定的方向传送,如图8.45(a)所示。即数据只能从A站点传送到B站点,而不能由B站点传送到A站点。单工通信类似无线电广播,电台发送信号,收音机接收信
9、号。收音机永远不能发送信号。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 全双工工作方式 对于相互通信的双方,都可以是接收器也都可以是发送器。分别用2根独立的传输线(一般是双绞线,或同轴电缆)来连接发送信号和接收信号,这样发送方和接收方可同时进行工作,称为全双工的工作方式,如图8.45(c)所示。全双工通信工方式类似电话机,双方可以同时进行发送和接收。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 4.同步通信和异步通信方式同步通信和异步通信方式 串行通信分为2种类型:一种是同步通信方式,另一种是异步通信方式。同步通信 同步通信的特点是:由一个统一的时钟控制发送方
10、和接收方,若干字符组成一个信息组,字符要一个接着一个传送;没有字符时,也要发送专用的“空闲”字符或者是同步字符,因为同步传输时,要求必须连续传送字符,每个字符的位数要相同,中间不允许有间隔。同步传输的特征是:在每组信息的开始(常称为帧头)要加上l一2个同步字符,后面跟着8位的字符数据。同步通信的数据格式如图8.46所示。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用图8.46 同步通信字符格式 传送时每个字符的后面是否要奇、偶校验,由初始化时设同步方式字决定。01111110011111108位数据8位数据8位数据8位数据 01111110同步字符1同步字符2数据结束标志8.6
11、可编程串行接口电路及其应用可编程串行接口电路及其应用 异步通信 异步通信的特点是:字符是一帧一帧的传送,每一帧字符的传送靠起始位来同步。在数据传输过程中,传输线上允许有空字符。所谓异步通信,是指通信中两个字符的时间间隔是不固定的,而在同一字符中的两个相邻代码间的时间间隔是固定的通信。异步通信中发送方和接收方的时钟频率也不要求完全一样,但不能超过一定的允许范围,异步传输时的数据格式如图8.47所示。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用图8.47 异步通信字符格式0/1 0/1 0/10/1 0/1 0/1 0/1 0/1 0/1 0/1 0/11011100/1 0/1
12、0/1 7位数据奇偶校验停止位起始位7位数据奇偶校验停止位空闲 n位 起始位7位数据第n1个字符第n个字符第n1个字符数据低位数据高位下降沿指示下一个字符开始8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 字符的前面是一位起始位(低电平),之后跟着58位的数据位,低位在前、高位在后。数据位后是奇、偶校验位,最后是停止位(高电平)。是否要奇、偶校验位,以及停止位设定的位数是1,1.5位或2位都由初始化时设置异步方式字来决定。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 5.通信中必须遵循的规定通信中必须遵循的规定 字符格式的规定 通信中,传输字符的格式要按规定写,图
13、8.47是异步通信的字符格式。在异步传输方式每个字符在传送时,前面必须加一个起始位,后面必须加停止位来结束,停止位可以为1位,1.5位,2位。奇、偶校验位可以加也可以不加。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 比特率、波特率(baudrate)比特率:比特率作为串行传输中数据传输速度的测量单位,用每秒传输的二进制数的位数bit/s(位/秒)来表示。波特率:波特率是用来描述每秒钟内发生二进制信号的事件数,用来表示一个二进制数据位的持续时间。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 有关在远距离传输时,数字信号送到传输介质之前要调制为模拟信号,再用比特率
14、来测量传输速度就不那么方便直观了。因此引入波特率作为速率测量单位即:波特率1/二进制位的持续时间比特率可以大于或等于波特率,假定用正脉冲表示“1”,负脉冲表示“0”,这时比特率就等于波特率。假如每秒钟要传输10个数据位,则其速率为l0波特,若发送到传输介质时,把每位数据用10个脉冲来调制,则比特率就为100b/s,即比特率大于波特率。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 发送时钟与波特率的关系是:时钟频率72波特率(n可以是l,16,32,64。,2为波特率因子,是传输一位二进制数时所用的时钟周期数。不同芯片的n由手册中给出)。波特率是表明传输速度的标准,国际上规定的一
15、个标准的波特率系列是:110,300,600,1200,1800,2400,4800,9600,19200。大多数CRT显示终端能在1109600波特率下工作,异步通信允许发送方和接收方的时钟误差或波特率误差在45。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 6.信号的调制与解调信号的调制与解调 计算机对数字信号的通信,要求传输线的频带很宽,但在实际的长距离传输中,通常是利用电话线来传输,电话线的频带一般都比较窄。为保证信息传输的正确,都普遍采用调制解调器(modem)来实现远距离的信息传输,现在还有很多家庭上网仍使用modem连接。8.6 可编程串行接口电路及其应用可编程串
16、行接口电路及其应用 调制解调器,顾名思义主要是完成调制和解调的功能。经过调制器(modulator)可把数字信号转换为模拟信号,经过解调器(demodulator)把模拟信号转换为数字信号。使用modem实现了对通信双方信号的转换过程,如图8.48所示。现在modem的数据传输速率理论值可达72Kb/s,而实际速率仅为33.6Kb/s。计算机AMODEMAMODEMB计算机B0 111100000 111100001010数字信号模拟信号数字信号电话线图8.48 调制与解调过程8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用8.6.2 可编程串行接口可编程串行接口Intel 825
17、1A1.8251A的主要性能和内部结构的主要性能和内部结构 825lA是可编程的串行通信接口芯片,它的基本性能如下:(1)可工作在同步方式,也可工作在异步方式。同步方式下波特率为064 000波特,异步方式下波特率为019 200波特。(2)在同步方式时,每个字符可定义为5、6、7或8位。两种方法实现同步,由内部自动检测同步字符或由外部给出同步信号。允许同步方式下增加奇/偶校验位进行校验。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (3)在异步方式下,每个字符可定义为5、6、7或8位,用1位作奇偶校验。时钟速率可用软件定义为波特率的l、16或64倍。另外,8251A在异步方式
18、下能自动为每个被输出的数据增加1个起始位,并能根据软件编程为每个输出数据设置1位、1.5位或2位停止位。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (4)能进行出错检测。带有奇偶、溢出和帧错误等检测电路,用户可通过输入状态寄存器的内容进行查询。8251A的内部结构框图如图8.49所示。从图中可以看出,它由数据总线缓冲器、读/写控制逻辑、发送缓冲器、发送控制器、接收缓冲器、接收控制器、调制/解调器控制逻辑、同步字符寄存器及控制各种操作的方式寄存器等组成。各部件实现的功能如下所示。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用图8.49 825lA内部结构原理框图同
19、步字符寄存器 1同步字符寄存器 2方式寄存器状态寄存器控制寄存器数据总线缓冲器读/写控制逻辑RESETCLKC/DRDWRCS调制/解调 器控 制逻 辑DSRDTRCTSRTS发送缓冲器发送移位寄存器数据输出寄存器接收缓冲器接收移位寄存器数据输入寄存器计数器发送控制器计数器接收控制器D7D0内部数据总线TXDTXRDYTXETXCRXDRXRDYRXCSYNDET8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 1)数据总线缓冲器 数据总线缓冲器通过8位数据线D7D0和CPU的数据总线相连,负责把接收口接收到的信息送给CPU,或把CPU发来的信息送给发送口。还可随时把状态寄存器中的
20、内容读到CPU中,在825lA初始化时,分别把方式字、控制字和同步字符送到方式寄存器、控制寄存器和同步字符寄存器中。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用2)读读/写控制逻辑写控制逻辑表表8-13 8251A的控制信号与执行的操作之间的对应关系的控制信号与执行的操作之间的对应关系CSRDWRDC/执行的操作0000010110100011CPU由8251A输入数据CPU向8251A输出数据CPU读取8251A的状态CPU向8251A写入控制命令8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 3)发送缓冲器与发送控制器 发送缓冲器包括发送移位寄存器和数据输出寄
21、存器,发送移位寄存器通过825lA芯片的TXD管脚将串行数据发送出去。数据输出寄存器寄存来自CPU的数据,当发送移位寄存器空时,数据输出寄存器的内容送给移位寄存器。发送控制电路对串行数据实行发送控制。发送器的另一个功能是发送中止符(BREAK),中止符由在通信线上的连续低电平信号组成,它是用来在全双工通信时中止发送终端的,只要8251A的命令寄存器的bit3为“1”,发送器就始终发送终止符。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 4)接收缓冲器与接收控制器 接收缓冲器包括接收移位寄存器和数据输入寄存器。串行输入的数据通过8251A芯片的RXD管脚逐位进入接收移位寄存器,然
22、后变成并行格式进入数据输入寄存器,等待CPU取走。接收控制电路是用来控制数据接收工作。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 5)调制/解调器控制逻辑 利用8251A进行远距离通信时,发送方要通过调制解调器将输出的串行数字信号变为模拟信号,再发送出去。接收方也必须将模拟信号经过调制解调器变为数字信号,才能由串行接口接收。在全双工通信方式下,每个收、发口都是要连接调制解调器。调制解调器控制电路是专为调制解调器提供控制信号用的。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用2.8251A的外部特性的外部特性图8.50 8251A引脚图8251A1D2234567
23、8910111213142827262524232221201918171615D3RXDGNDD4D5D6D7TXCWRCSC/DRDRXRDYD1D0VCCRXCDTRRTSDSRRESETCLKTXDTXEMPTYCTSSYNDET/BRKDETTXRDY8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 1)8251A与与CPU的接口信号的接口信号 8251A与CPU的接口信号可以分为五类,具体如下。(1)双向的数据信号线D7D0 825lA有8条数据线D7D0,D7为最高位,D0为最低位。825lA通过这8根线和CPU的数据总线相连接,实际上,数据线上不只是传输数据,还传输
24、CPU对825lA的编程命令字和825lA送往CPU的状态信息。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (2)片选信号CS CS(输入,11引脚)为片选信号,低电平有效,芯片被选中才能工作,如果8251A未被选中,数据线D7D0将处于高阻状态,读/写信号对芯片都不起作用。(3)读/写控制信号 RD(输入,13引脚)为读信号,低电平有效。当该信号有效时,并且CS也为低电平,CPU可以从8251A读取数据或状态信息。WR(输入,10引脚)为写信号,低电平有效。当该信号有效时,并且CS也为低电平,CPU可以向8251写入数据或控制字。8.6 可编程串行接口电路及其应用可编程串行
25、接口电路及其应用 C/D(输入,12引脚)为控制/数据信号,分时复用。用来区分当前读/写的是数据还是控制信息或状态信息。当C/D为高电平时,系统处理的是控制信息或状态信息,从D7D0端写入8251A的必须是方式字、控制字或同步字符。当C/D为低电平时,写入的是数据。RESET(输入,21引脚)为复位信号,高电平有效。当该信号为高时,8251A实现复位功能,内部所有的寄存器都被置为初始状态。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 CLK(输入,20引脚)为主时钟信号,用于芯片内部的定时。对于同步方式,它的频率必须大于发送时钟TXC和接收时钟RXC的30倍。对于异步方式,必须
26、大于它们的4.5倍。8251A的时钟频率规定在0.743.1 MHz的范围内。8251A共有三种时钟信号:CLK、TXC和RXC。其中发送时钟和接收时钟由波特率和波特率因子来决定。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (4)与发送有关的联络信号 TXRDY(输入,15引脚)为发送器准备好信号,高电平有效。当该信号为高电平时,通知CPU,8251A已经准备好发送一个字符,表示CPU可以输入数据。所谓发送器准备好,就是控制字的第0位TXEN为“1时,使8251A允许发送,并且调制解调器已做好接收准备,发出信号使8251A的CTS信号变低为有效,因此TXRDY为输出缓冲器空与
27、CTS与TXEN。TXRDY可作为中断申请信号,也可作为查询方式的联络信号使用。TXEMPTY(输入,18引脚)为发送器空信号,控制8251A发送器发送字符的速度。对于同步方式,它的输入时钟频率应等于发送数据的波特率,对于异步方式,它的频率应等于发送波特率和波特率因子的乘积。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (5)与接收有关的联络信号。RXRDY(输出,14引脚)为接收器准备好信号,高电平有效。当该信号为高时,表示825lA已从外部设备或调制解调器中收到一个字符,等待CPU取走。它可以作为中断请求信号或查询联络信号与CPU联系。8.6 可编程串行接口电路及其应用可编
28、程串行接口电路及其应用 SYNDET/BRKDET(输入/输出,16引脚)为同步检测/断缺检测信号,高电平有效。在同步方式下,SYNDET执行同步检测功能,可以工作在输入状态,也可以工作在输出状态。同步检测分为内同步和外同步两种方式。采用哪种同步方式要取决于8251A的工作方式,由初始化时写入方式寄存器的方式字来决定。当8251A工作在内同步方式时,SYNDET作为输出端,是在8251A内部检测同步字符。如果8251A检测到了所要求的一个或两个同步字符时,SYNDET输出高电平,表示已达到同步,后续收到的是有效数据。当8251A工作在外同步方式时,SYNDET作为输入端。8.6 可编程串行接口
29、电路及其应用可编程串行接口电路及其应用 RXC(输入,25引脚)为接收器时钟信号,控制8251A接收字符的速度。和一样,在同步方式时,它的频率等于接收数据的波特率,并由调制解调器供给(近距离不用调制解调器,传送时由用户自行设置)。在异步方式时,时钟频率等于波特率和波特率因子的乘积。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 2)8251A与外部装置之间的接口信号与外部装置之间的接口信号 8251A与外部装置进行远距离通信时,一般要通过调制解调器连接。连接的信号可大致分为数据信号和收发联络信号两类。(1)数据信号 TXD(输出,19引脚)为发送数据信号端。CPU送入825lA的
30、并行数据,在825lA内部转换为串行数据,通过TXD端输出。RXD(输入,3引脚)为接收数据信号端。RXD用来接收外部装置通过传输线送来的串行数据,数据进入825lA后转换为并行数据。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (2)发送数据时的联络信号 RTS(输出,23引脚)为请求发送信号,低电平有效。这是8251A向调制解调器或外设发送的控制信息,初始化时由CPU向825lA写控制命令字来设置。该信号有效时,表示CPU请求通过825lA向调制解调器发送数据。CTS(输入,17引脚)为发送允许信号,低电平有效。这是由调制解调器或外设送给8251A的信号,是RTS对的响应信
31、号,只有当CTS为低电平时,825lA才能执行发送操作。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (3)接收数据时的联络信号 DTR(输出,24引脚)为数据终端准备好信号,低电平有效。是由8251A送出的一个通用的输出信号,初始化时由CPU向8251A写控制命令字来设置。该信号有效时,表示为接收数据做好了准备,CPU可以通过8251A从调制解调器接收数据。DSR(输入,22引脚)为数据装置准备好信号,低电平有效。这是由调制解调器或外设向8251A送入的一个通用的输入信号,是DTR的回答信号,CPU可以通过读取状态寄存器的方法来查询DSR是否有效。8.6 可编程串行接口电路及
32、其应用可编程串行接口电路及其应用 以上发送数据和接收数据的联络信号,对于远距离串行通信时要通过调制解调器连接,实际上是和调制解调器之间的连接信号。如果近距离传输时,可不用调制解调器,而直接通过MCl488和MCl489来连接,外设不要求有联络信号时,这些信号可以不用。例如,RTS可以悬空,但CTS必须接低电平,否则发送器不工作。道理很简单,这是由于发送器的工作条件是当CTS有效时,才能使TXRDY成为有效的高电平,使用时可根据实际的情况来决定。如果外设需要一对联络信号就起用一对,需要两对就起用两对。例如,DTR为有效电平可以作为一个CPU发出的选通信号,DSR有效可以作为外设的状态信号。8.6
33、 可编程串行接口电路及其应用可编程串行接口电路及其应用 使用MC1488和MC1489芯片时,传输时的电平是RS-232 C标准电平,所能传输的最大距离是30 m,一般不超过15 m。数据传输的波特率低于20 000波特。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用8.6.3 8251A的编程的编程地址与初始化地址与初始化 1.8251A编程地址编程地址 从表8-13看到,8251A实际上只需要两个端口地址:一个用于数据端口,一个用于控制端口。数据输入端口和数据输出端口可合用一个端口;状态端口和控制端口也可合用一个端口。只用读信号RD和写WR信号即可区分是数据输入还是数据输出,
34、是状态端口还是控制端口,状态端口只能读不能写。这样在具体的硬件设计时可简化电路连接。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 由于825lA的D7D0通常与数据总线的低8位相连,又由于低8位的数据线是和内存的偶地址相连,因而8251A的数据用偶地址传送正好和内存的低8位数据相对应。读写时,当地址总线的A0=0时,必定选中偶地址;A01时,选定奇地址。因而对8251A编程时必须使A0总是为0。但C/端要求两种状态,C/D1要求选中数据输入/输出寄存器;C/D0要求选中方式寄存器,同步字符寄存器、控制寄存器和状态寄存器。C/D端要求有0和1两种电平,为满足这种要求,又要保持A0
35、总是为0,因此将地址线的A0和C/D相连接,片选通过地址译码得到,RD、WR分别与控制总线的IOR和IOW相连。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用图8.51 8251A异步通信方式的连接D7D0RDWRC/DTXDRXDDTRDSRCTSRTSTXCRXCCSD7D0地址译码地址总线AENIORIOWA0异步调制解调器RS-232C收发器时钟源BBBAABCDCCCBCA8251A8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用图8.52 8251A同步通信方式的连接D7D0RDWRC/DTXDRXDDTRDSRCTSRTSTXCRXCCSD7D0地址译码
36、地址总线AENIORIOWA0同步调制解调器RS-232C收发器BBBAABCDCCCACB8251ADB8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 异步方式时,TXRDY和RXRDY作为中断申请信号使用,与外部中断源连接;同步方式时,TXRDY和RXRDY与调制解调器连接。如果工作在查询方式,均由CPU执行输出指令向奇地址端口写入命令指令,使其开始进行输入/输出工作。8251A初始化编程的流程如图8.53所示。初始化编程主要是对8251A的方式寄存器、控制寄存器和状态寄存器进行编程设置,下面做具体介绍。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用图8.53
37、8251A初始化编程流程图系统复位输入方式指令异步方式?输入第一个同步字符一个同步字符?输入第二个同步字符输入命令指令内部复位?传送数据完成?YYYNYNNN结束8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用2.8251A的控制的控制字与初始化字与初始化 1)方式)方式寄存器寄存器 方式寄存器是8251A在初始化时,用来写入方式选择字用的。方式选择有两种:同步方式和异步方式。方式寄存器有8位,最低2位全为0时表示是同步方式,最低2位不全为0时表示是异步方式。具体格式如下。(1)8251A工作在同步方式下 当825lA工作在同步方式下时,方式寄存器的格式如图8.54所示。8.6 可
38、编程串行接口电路及其应用可编程串行接口电路及其应用图8.54 8251A同步方式下方式寄存器的格式D7SCS同步字符数0:2个字符1:1个字符D6ESDD5EPD4PEND3L2D2L1D10D00检验类型0:奇检验1:偶检验检验设置0:无校验1:有校验全0为同步模式否则为异步模式数据位数同步方式0:内同步,SDYNDET为输出1:外同步,SDYNDET为输入00:5位,01:6位10:7位,11:8位8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (1)D1D000是同步方式的标志特征,表示同步传送时波特率因子为1,此时芯片上TXC和RXC引脚上的输入时钟频率和波特率相等。(2
39、)D3D2(L2L1)是规定同步传送时每个字符的位数,当L2L1对应为00、01、10、11时,分别表示传输字符的位数是5、6、7、8位。(3)D4(PEN)是规定在传输数据时是否需要奇偶校验位,该位为“1”表示有校验位,为“0”则无校验位。(4)D5(EP)是用来规定校验位的类型,该位为“0”表示是奇校验,为“1”表示是偶校验。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (5)D6(ESD)是用来规定同步的方式,该位为“0”表示是内同步,芯片的SYNDET引脚为输出端;为“1”表示是外同步,SYNDET引脚为输入端。(6)D7(SCS)是用来规定同步字符的数目,该位为“0”
40、表示两个同步字符,为“1”表示一个同步字符。例如,要求825lA作为外同步通信接口,数据位8位,两个同步字符,偶校验,其方式选择字应为十六进制的7CH(01111100B7CH)。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用(2)8251A工作在异步方式下当8251A工作在异步方式下时,方式寄存器的格式如图8.55所示。图8.55 8251A异步方式下方式寄存器的格式D7S2停止位个数00:无定义D6S1D5EPD4PEND3L2D2L1D1B2D0B1检验类型0:奇检验1:偶检验检验设置0:无校验1:有校验01:1个10:1.5个11:2个波特率因子00:同步模式01:波特率
41、因子为110:波特率因子为1611:波特率因子为64数据位数00:5位,01:6位10:7位,11:8位8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (1)D1D0(B2B1)不全为0的情况表示是异步方式,当B2B101时,规定波特率的因子为1;B2B110时,规定波特率因子为16;B2B111时,规定波特率因子为64。(2)D3D2(L2L1)是规定在异步传送时每个字符的位数,与同步方式下的数据位数规定相同。(3)D4(PEN)是规定在异步传输时是否需要校验位,与同步方式下的规定相同。(4)D5(EP)是用来规定异步方式时,数据校验的类型,与同步方式下的规定相同。8.6 可编
42、程串行接口电路及其应用可编程串行接口电路及其应用 (5)D7D6(S2S1)是用来规定异步方式时,停止位的个数。为了和同步方式相区别,当D7D600时,没有定义停止位的个数;当D7D601时,表示1个停止位;当D7D610时,表示1.5个停止位;当D7D611时,表示2个停止位。例如,要求8251A芯片作为异步通信,波特率为64,字符长度8位,奇校验,2个停止位的方式选择字应为十六进制的DFH(1101111lBDFH)。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 2)控制控制寄存器寄存器 对8251A进行初始化时,按上面的方法写入了方式选择字后,接着要写入的是命令字,由命令
43、字来规定8251A的工作状态,才能启动串行通信开始工作或置位。这样就要对控制寄存器输入控制字,控制寄存器的格式如图8.56所示。控制寄存器也是8位,每位的定义如下:(1)D0(TXEN):允许发送选择。只有当D0l时,才允许8251A从发送端口发送数据。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (2)D1(DTR):该位与调制解调器控制电路的DTR端有直接联系,当工作在全双工方式时,D0、D2位要同时置1,D1才能置1,由于DTR1从而使STB端被置成有效的低电平,通知调制解调器或MC1488芯片等器件,CPU的数据终端已经就绪,可以接收数据了。(3)D2(RxEN):允许
44、接收选择。只有当D21时,才允许825lA从接收端口接收数据。(4)D3(SBRK):当该位被置1后,使串行数据发送管脚TXD变为低电平,输出“0”信号,表示数据断缺,而当处于正常通信状态时,SBRK0。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (5)D4(ER):当该位被置1后,将消除状态寄存器中的全部错误标志,PE、OE、FE这三位错误标志由状态寄存器的D3、D4、D5来指示。(6)D5(RTS):该位与调制解调器控制电路的请求发送信号RTS有直接联系,当D5位被置1,由于RTS1,从而使ACK输出有效的低电平,通知调制解调器或MCl489芯片等器件,CPU将要通过82
45、5lA输出数据。调制解调器控制电路的和的有效电平不是由8251A内部产生,而是通过对控制字的编程来设置,这样可便于CPU与外设直接联系。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用图8.56 8251A的控制寄存器格式D7EH置“1”为搜索同步字符D6IRD5RTSD4ERD3SBRKD2RXEND1DTRD0TXEN请求发送置“1”后RTS输出0置“1”后8251A内部复位送中止符置“1”后TXD输出0清除错误标志置“1”后清PE、OE、FE1:接收允许0:屏蔽1:发送允许0:屏蔽数据终端就绪置“1”后DTR 输出08.6 可编程串行接口电路及其应用可编程串行接口电路及其应用
46、 (7)D6(IR):当该位被置1后,使8251A内部复位。当对8251A初始化时,使用同一个奇地址,先写入方式选择字,接着写入同步字符(异步方式时不写入同步字符),最后写入的才是控制字,这个顺序不能改变,否则将出错。但是,当初始化以后,如果再通过这个奇地址写入的字,都将进入控制寄存器,因此控制字可以随时写入。如果要重新设置工作方式,写入方式选择字,必须先要将控制寄存器的D0位置1,也就是说内部复位的命令字为40H才能使8251A返回到初始化前的状态。当然,用外部的复位命令RESET,也可使825lA复位,而在正常的传输过程中D6=0。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应
47、用 (8)D7(EH):该位只对同步方式才起作用。当D7=l时表示开始搜索同步字符,但同时要求D2(RXEN)l,D4(ER)1,同步接收工作才开始进行。也就是说,写同步接收控制字时必须使D7、D4、D2同时为1。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 3)状态寄存器状态寄存器 状态寄存器是反映8251A内部工作状态的寄存器,只能读出,不能写入。CPU可用IN指令来读取状态寄存器的内容。状态寄存器的格式如图8.57所示。状态寄存器也是8位,每位的定义如下:(1)D0(TXRDY):D0=1是发送准备好标志,表明当前数据输出缓冲器空。要注意的是,这里状态位D0的TXRDY和
48、芯片引脚上的TXRDY的信号不同,这是状态位的TXRDY不受输入信号CTS和控制位TXEN的影响;而芯片引脚上的TXRDY必须在数据输出寄存器空,并且调制解调器控制电路的CTS端也为低电平时,控制寄存器的D0(TXEN)1时才有效。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (2)D1(RXRDY):接收器准备好信号,该位为“1”时,表明接口已接收到一个字符,当前正准备输入CPU中。当CPU从8251A输入一个字符时,RXRDY自动清0。(3)D2:(TXEMPTY),同8251A的18脚说明。(4)D6:(SYNDET/BRKDET),同8251A的16脚说明。8.6 可编
49、程串行接口电路及其应用可编程串行接口电路及其应用 (5)D7(DSR):数据终端准备好标志,当外设(调制解调器等)已准备好发送数据时,就向DSR端发出低电平信号,使DSR有效。此时DSR位被置1。上面Dl、D2、D6、D7这4位的状态与8251A芯片外部同名管脚的状态完全相同,反映这些管脚当前的状态。(6)D3(PE):奇偶出错标志位,PE1时,表示当前产生了奇偶错,但不终止8251A工作。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用图8.57 8251A的状态寄存器格式D7DSR数据设备就绪后为“1”D6S/BDETD5FED4OED3PED2TXEMPD1RXRDYD0TX
50、RDY发送器就绪为“1”帧格式出错标志,出错为“1”奇偶校验出错标志,出错为“1”接收器就绪为“1”发送器TXEMPTY空为“1”溢出出错标志出错为“1”反映同步方式SYNDET/异步方式BRKDET状态8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (7)D4(OE):溢出出错标志位,在接收字符时,如果数据输入寄存器的内容没有被CPU及时取走,下一个字符各位已从RXD端全部进入移位寄存器,然后进入数据输入寄存器,这时,在数据输入寄存器中,后一个字符覆盖了前一个字符,因而出错,这时D4位被置1。8.6 可编程串行接口电路及其应用可编程串行接口电路及其应用 (8)D5(FE):帧格