第九章-串行IO接口-微型计算机原理与应用-电子教案-教学课件_第1页
第九章-串行IO接口-微型计算机原理与应用-电子教案-教学课件_第2页
第九章-串行IO接口-微型计算机原理与应用-电子教案-教学课件_第3页
第九章-串行IO接口-微型计算机原理与应用-电子教案-教学课件_第4页
第九章-串行IO接口-微型计算机原理与应用-电子教案-教学课件_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章串行I/O接口【内容简介】

主要介绍串行通信的基本概念和串行通信接口的基本组成与工作原理,然后介绍可编程串行通信接口8251A的结构、特性、引脚及应用;最后,通过具体实例说明串行通信的实现方法与程序设计。【重点难点】重点是串行通信的基本概念、类型、工作方式、可编程串行通信接口8251A的组成原理、功能与初始化程序设计;难点是8251A的组成原理、功能与初始化程序设计。

第9章串行I/O接口【内容简介】1第9章串行I/O接口

9.1串行通信类型与方式9.2可编程串行通信接口8251A

9.38251A初始化程序设计与应用举例第9章串行I/O接口9.1串行通信类型29.1串行通信类型与方式

9.1.1概述

9.1.2串行通信类型

9.1.3串行通信方式

9.1.4RS-232C/485标准与接口电路9.1串行通信类型与方式9.1.1概述39.1.1概述

1.串行通信所谓串行通信,是用一条通信线路把两台设备连接起来,数据一位接一位地顺序传送,其示意如图9.1所示。特点是传输线少,传送距离远,成本低。

2.串行接口电路是把用于串行通信的电路集成在一起而构成的接口。计算机输入时,需要把外设的串行数据转换成并行数据,输入给计算机;计算机输出时需要把并行数据转换成串行数据,输出给外部设备。图9.2所示是用于串行通信的接口电路,支持同步与异步工作方式,故称为通用同步/异步接收器/发送器USART.

9.1.1概述1.串行通信2.串行接口电4

由图9.2可以看出,串行接口一般包含4个寄存器,即控制寄存器、状态寄存器、数据输入寄存器及数据输出寄存器。数据的并/串转换和串/并转换通过移位寄存器来进行。另外,还有总线缓冲器、地址译码器以及控制逻辑电路。其中控制寄存器接收CPU的控制命令,以确定工作方式;状态寄存器用来存储外部设备及接口的状态信息。数据输入输出寄存器与串行输入/并行输出移位寄存器配合使用,实现数据的输入输出与转换。由图9.2可以看出,串行接口一般包含4个寄存器,即控制5

3.数据输入(1)CPU向接口电路发控制命令,设置接口输入工作方式;同时,启动外设工作。(2)外设数据通过串行输入端送入串行输入/并行输出移位寄存器,经转换后送入数据输入寄存器。(3)向CPU发输入请求或由CPU查询接口状态标志位,然后读取数据。

4.数据输出(1)CPU发控制命令,设置接口输出工作方式;同时,启动外设工作。(2)CPU通过数据总线向接口电路发送数据和写命令,数据暂存在输出寄存器中。3.数据输入6

(3)经并行输入/串行输出移位寄存器转换后,数据串行输出。在一般串行接口电路中,控制与状态寄存器共用一个地址;数据输入与数据输出寄存器共用一个地址。(3)经并行输入/串行输出移位寄存器转换后,数据串行79.1.2串行通信类型

串行通信类型有三种,如图9.3所示,即单工、半双工和全双工方式。

1.单工方式数据按照一个固定的方向传送,不能反向传送。如图9.3(a)所示,由设备A发送给设备B。

2.半双工方式要求通信两端的设备均具备接收和发送的能力。但是在同一时间,数据只能沿着一个方向传送。若要双向传送,只能交替进行。如图9.3(b)所示。

3.全双工方式通信两端的设备即可以发送数据,也可以接收数据,发送与接收可以同时进行,其过程如图9.3(c)所示。9.1.2串行通信类型串行通信类型有三种,如图9.8第九章-串行IO接口-微型计算机原理与应用-电子教案-教学课件99.1.3串行通信方式

目前,串行通信主要有两种类型:异步通信ASYNC和同步通信SYNC方式。

1.异步通信方式在异步通信方式中,数据按照ASCII码的格式设定,因此也称为字符格式,如图9.4所示。9.1.3串行通信方式目前,串行通信主要有两种类10

有效数据5-8位,另有附加位。其中起始位1位,恒为低电平;奇偶校验位1位,可选;停止位可以是1位、1.5位或者2位,高电平。传送一个字符必须以起始位开始,停止位结束,称为一帧(Frame)。通信时每秒传送二进制数据的位数(bit)称为传输率,也称为波特率(BandRate),比如300、600、1200、4800、9600、19200等。异步数据传送时,发送设备按照格式约定插入起始位、奇偶校验位和停止位。接收设备不断地检测传输线。在高电平之后检测到0(低电平)时,启动内部计数器计数,当计数到一个数据位宽度的一半时,再次检测传输线,若仍为低电平,则确认1个起始位。然后继续计数,采样,移位接收到的数据和校验位。在收到停止位(高电平)后,组成1帧。若超过数据的位数而仍没有收到停止位时设置“帧错误”标志。若校验有错,则设置“校验错”标志。计算机异步通信的速率和有效数据的位数可由程序设置。有效数据5-8位,另有附加位。其中起始位1位,恒为低11

2.同步通信方式是用同步字符来标识传送数据的起始与结束,其格式如图9.5所示。在开始部位设置1~2个同步字符作为起始标志,后面是数据;在数据的末尾,设置两个循环冗余校验码(CRC),一方面进行数据校验,另一方面表示数据传送结束。

同步字符可以是1个或2个;也可以在起始部位设置1个,在末尾设置1个。按照同步方式工作时,发送设备自动插入同步字符和校验码。接收设备搜索到同步字符后开始接收数据。在传输过程中,发送设备和接收设备保持完全同步。2.同步通信方式129.1.4RS-232C/485标准与接口电路

1.RS-232C信号定义RS-232C是在计算机与数据终端串行通信中普遍采用的一种传输标准,有25条信号线,采用D型25针连接器,信号定义如表9.1所示。而在微型计算机中串行接口COM1和COM2使用的是D型9针连接器。其信号是对RS-232C的缩减,符合RS-232C标准。

由于RS-232C数据信号与计算机中的数据表示不一致,因此相互之间需要电平转换电路;在远程通信时需要配置调制解调器(Modem)。9.1.4RS-232C/485标准与接口电路113表9.1RS-232C标准信号

引脚功能说明引脚功能说明1保护地14(辅信道)发送数据2(3)发送数据TxD15发送信号源(DCE)定时3(2)接收数据RxD16(辅信道)接收数据4(7)请求发送RTS17接收信号源(DCE)定时5(8)允许发送CTS18未定义6(6)数据装置准备好DSR19(辅信道)请求发送RTS7(5)信号地(公共回路)20(4)数据终端准备好DTR8(1)接收信号线检测21信号质量检测9(保留供数传机测试)22(9)振铃指示RI10(保留供数传机测试)23数据信号速率(DTE/DCE)选择11未定义24发送信号源(DTE)定时12(辅信道)接收信号线检测25未定义13(辅信道)允许发送CTS表9.1RS-232C标准信号引脚功能说明引脚功能说14

在使用电话线远距离通信时,发送端要用调制器把数字信号附加到载波上接收端则用解调器进行解调,从载波上还原出数字信号,其示意如图9.6所示。计算机RS232CModem计算机RS232CModem数字信号数字信号模拟传输图9.6RS-232C串行通信在使用电话线远距离通信时,发送端要用调制器把数15TTL图9.7TTL电平与RS-232C电平转换示意图RS-232C电平MC1488MC1489TTL发送接收

3.RS-485接口电路RS-485标准接口可使用单一+5V(或+3V)电源,输入输出电平与TTL电路兼容,共模电压最大最小值分别为+12V和-7V,差分输入范围为-7V~+12V,接收器的灵敏度为200mV,支持半双工和全双工通信.

在RS-232C标准中,逻辑1用负电平(-3V~-15V)表示,逻辑0用(+3V~+15V)表示。而在计算机内部采用的是TTL电平,所以常用MC1488/MC1489进行信号转换,其示意如图9.7所示。

TTL图9.7TTL电平与RS-232C电平转换示意图R16

图9.8所示是用MAX481类芯片构成的半双工通信电路。其中每个芯片包含一个非对称转对称的驱动器D和一个对称转非对称的接收器R。DI表示数据输入端,RO表示数据输出端。特点是传输距离远,可靠性高,在传输速率为9600b/s时最大距离为1500m;在传输速率为100Mb/s时,传输距离可达15m。图9.8RS-485半双工通信电路VCDRDEDIROREVCDRDEDIROREDEDIROREDRVCDEDIROREDRVC……图9.8所示是用MAX481类芯片构成的半双179.2可编程串行通信接8251A9.2.18251A引脚与内部结构9.2.28251A控制与状态寄存器9.2可编程串行通信接8251A9.2.18251189.2.18251A引脚与内部结构

1.8251A外部引脚

8251A的引脚如图9.9所示,除地线和电源线外,可分为四组。

(1)与CPU连接引脚D7~D0:数据线,双向,与系统数据总线连接,传送数据、命令及8251A状态字。CS:片选信号,输入,低电平有效。RD:读信号,输入,低电平有效。WR:写信号,输入,低电平有效。

C/D:控制/数据选择,输入,高电平时CPU读/写8251A控制/状态寄存器,低电平时CPU读/写数据寄存器。9.2.18251A引脚与内部结构1.19

CS、RD、WR和C/D信号的作用如表9.2所示。RESET:复位信号,输入,高电平有效,宽度为6个时钟周期,复位后8251A处于空闲等待状态。CLK:时钟信号,同步方式时其频率≥数据传输频率的30倍;异步方式时,≥传输频率的4.5倍。表9.28251A的控制信号的功能组合

CSRDWRC/D方向功能0010CPU←8251A读数据0100CPU→8251A写数据0011CPU←8251A读状态0101CPU→8251A写控制命令011X高阻态1XXX高阻态CS、RD、WR和C/D信号的作用如表9.2所20

(2)与外部设备/调制解调器连接引脚

DTR:数据终端准备好,输出,低电平有效,通过编程使方式命令字的D1位置1,信号有效。

DSR:数据设备准备好,输入,低电平有效,是对DTR的响应,表示调制解调器或外设发送准备就绪,通过读入状态字的D7位检测该信号。

RTS:请求发送,输出,低电平有效,表示8251A发送准备就绪,通过编程使方式命令字的D5位置1,信号有效。

CTS:允许发送,输入,低电平有效,是对RTS的响应;有效时,表示外设或调制解调器允许8251A发送数据。

(3)与发送控制有关的引脚

TxD:数据发送端,输出。

TxRDY:发送器准备好,输出,高电平有效,表示8251A准备好接收CPU的数据。(2)与外部设备/调制解调器连接引脚21

TxE:发送器空,输出,高电平有效,表示8251A发送器空。

TxC:发送器时钟,输入,同步方式下TxC的频率等于波特率;异步方式下TxC的频率可以是数据速率的1、16或64倍。。

(4)与接收控制有关的引脚

RxD:数据接收端,输入。

RxRDY:接收器准备好,输出,高电平有效,表示8251A从外部设备/调制解调器上接收到一个字节的数据,等待CPU的读取。

SYNDET/BRKDET:同步/间断检测信号,双向。同步方式时作为同步监测端,异步方式时作为间断检测端。

RxC:接收器时钟,输入,用来控制8251A接收数据的速度,要求与TxC相同。TxE:发送器空,输出,高电平有效,表示82522

2.8251A的内部结构8251A的内部结构图如图9.10所示,由5个主要部分组成,即接收器、发送器、调制解调控制逻辑电路、读/写控制逻辑电路和数据总线缓冲器。2.8251A的内部结构23

(1)数据总线缓冲器数据总线缓冲器包括发送数据/命令缓冲器、状态缓冲器和接收数据缓冲器,用来与CPU传送数据、命令字和状态字。

(2)接收器包括接收缓冲器和控制电路,通过RxD引脚串行输入数据,并按规定的格式转换为并行数据,存放到数据缓冲器中。同步方式时,接收器首先检测同步字符,确认同步后接收串行数据,并经串/并转换后送接收缓冲器;异步方式时,首先检测起始位,然后接收数据,在接收到一帧数据后串/并转换,送数据接收缓冲器。这时,RxDRY引脚输出高电平,等待CPU读取。接收数据的速率由决定。RxDRY信号可供CPU查询,也可作为中断请求信号。(1)数据总线缓冲器24

(3)发送器包括发送缓冲器和控制电路,CPU输出的并行数据,按规定的格式转换。同步方式,在发送数据之前,由发送器自动输出一个(单同步)或两个(双同步)同步字符,然后数据串行输出。异步方式,是由发送控制电路在其首尾添加起始位和停止位,经并/串转换后由TxD端逐位串行输出。发送速率由决定。发送器做好接收数据的准备时,TxRDY输出高电平,表示数据输出缓冲器空,CPU可输出数据。TxRDY信号可供CPU查询,也可作为中断请求信号。

(4)调制解调控制逻辑电路远距离串行通信时,需经调制器把数字信号附加到载波上传送给通信线路;在接收端需经解调器从载波中还原出数字信号。

(5)读/写控制逻辑电路控制CPU对8251A的读/写操作。CPU执行IN指令,可读取8251A中的数据或状态;执行OUT指令,向8251A写入数据或控制字。(3)发送器259.2.28251A控制与状态寄存器

在8251A中设有控制与状态寄存器。其中控制寄存器包括方式选择寄存器和工作命令寄存器;状态寄存器记录和反映8251A的工作状态与错误信息。

1.工作方式选择寄存器工作方式选择寄存器共有8位,其格式与功能如图9.11所示。9.2.28251A控制与状态寄存器在8226第九章-串行IO接口-微型计算机原理与应用-电子教案-教学课件27

2.工作命令寄存器工作命令字用来控制8251A的发送与接收,其格式如图9.12所示。2.工作命令寄存器28

TxEN:发送允许位。TxEN=1时,允许TxD发送数据。DTR:数据终端准备好。DTR=1时,表示8251A准备好,引脚输出低电平;DTR=0时,引脚输出无效。RxE:接收允许位。RXE=1时,允许RxD接收数据;否则,不允许接收数据。SBRK:发送中止字符。SBRK=1,使TxD为低电平,连续输出0;SBRK=0,正常工作。ER:清除错误标志。ER=1,使错误标志(PE、OE、FE)清0。RTS:发送请求标志。RTS=1,使引脚输出低电平,有效,表示8251A发送准备就绪;RTS=0,使引脚无效。IR:内部复位。IR=1,使8251A返回到方式选择命令状态。EH:外部搜索方式,EH=1时,搜索同步字符,EH=0,不搜索同步字符。TxEN:发送允许位。TxEN=1时,允许Tx29

3.状态寄存器用来记录8251A工作状态与错误信息,如图9.13所示,CPU可通过IN指令读取。3.状态寄存器30

TxRDY:发送器准备好。发送缓冲寄存器空,该位置1;同时=0,TxE=1时,TxRDY引脚置高电平。PE:奇偶校验错标志。PE=1,奇偶校验错误,但是不中断8251A的工作。OE:溢出错误标志位。OE=1,发生溢出错误。FE:帧格式错误标志位,FE=1,未检测到停止位。其它RxRDY、TxE、SYNDET和DSR与引脚的定义完全相同。TxRDY:发送器准备好。发送缓冲寄存器空,319.38251A初始化程序设计与应用举例

9.3.18251A初始化程序设计

9.3.2应用举例9.38251A初始化程序设计与应用举例329.3.18251A初始化程序设计

1.初始化程序设计步骤(1)向8251A写入方式选择字,以确定通信方式、数据格式和波特率等项参数;(2)同步方式,需写入同步字符;(3)写入工作命令字,确定发送或者接收;(4)由于方式选择字和工作命令字是同一端口,且没有标志位,必须按照上述(1)、(2)、(3)的顺序。8251A初始化流程图如图9.14所示。

9.3.18251A初始化程序设计33

2.初始化编程举例

【例9.1】设8251A工作在异步方式下,波特率系数为64,字符长度8位,奇校验,1个停止位,清除出错标志位,请求发送,数据准备就绪位,允许接收/发送,内部不复位。数据和方式选择字/状态端口地址分别为20H和21H。初始化程序如下:MOVAL,01011111BOUT21H,AL;设置方式选择命令字MOVAL,00110111BOUT21H,AL;设置工作命令字2.初始化编程举例34

【例9.2】设8251A工作在同步方式下,有一个同步字符,外同步,清除出错标志,允许发送和接收,使CPU已准备好且请求发送,内部不复位,启动搜索同步字符;同步字符为0CCH,端口地址同例9.1。初始化程序如下:MOVAL,11000000BOUT21H,AL;设置方式选择命令字MOVAL,0CCHOUT21H,AL;写入同步字符MOVAL,10110111BOUT021H,AL;设置工作命令字【例9.2】设8251A工作在同步方式下,有一个同步字359.3.2应用举例

用8251A和RS-232C标准总线实现两台微机之间的串行通信,其结构框图如图9.15所示。试编写程序,使发送器A把数据0~9传送到接收机B中;采用异步方式,字符长度为8位,波特系数为16,偶校验,一位停止位。9.3.2应用举例用8251A和RS-2336

解:首先对发送器A和接收器B初始化,然后使用查询方式实现半双工通信。对于发送器A,在CPU查询到TxRDY有效(高电平)时,向8251A输出一个字节的数据;对于接收器B,在CPU查询到RxRDY有效(高电平)时,从8251A读取一个字节的数据。设8251A端口地址为0FF80H、0FF81H,程序设计如下:

(1)发送器A初始化程序STACKSEGMENTSTACKDW64DUP(?)STACKENDSDATASEGMENTDATAXDB‘0123456789’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK解:首先对发送器A和接收器B初始化,然后使用查询37

START:MOVAX,STACK;段寄存器的装入MOVSS,AXMOVAX,DATAMOVDS,AXLEASI,DATAX;设置发送区的首址MOVDX,0FF81H;8251A控制器端口地址MOVAL,00HOUTDX,AL;输出空操作MOVAL,40HOUTDX,AL;8251A内部复位NOP;空操作NOPSTART:MOVAX,STACK38MOVAL,7EH;异步方式,1个停止位,8位数据OUTDX,AL;波特系数为16,偶校验MOVAL,11H;允许发送,清除错误标志OUTDX,ALMOVCX,000AH;设置计数值为10A1:MOVDX,0FF81H;读8251A的状态字INAL,DXHANDAL,01H;查询TxRDY是否有效JZA1;无效,继续查询MOVAL,[SI];有效,向数据端口输出一个字符MOVAL,7EH39

MOVDX,0FF80HOUTDX,ALINCSI;SI指向下一个发送字符LOOPA1;CX≠0,继续发送MOVAH,4CH;发送完毕,返回DOSINT21HCODEENDSENDSTARTMOVDX,0FF80H40

(2)接收器B初始化程序

STACKSEGMENTSTACKDW64DUP(?)STACKENDSDATASEGMENTDATAYDB10DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,STACK;段寄存器的装入MOVSS,AXMOVAX,DATAMOVDS,AX(2)接收器B初始化程序41

LEADI,DATAY;设置接收区首址MOVDX,0FF81H;8251A控制器端口地址MOVAL,00HOUTDX,AL;输出空操作MOVAL,40HOUTDX,AL;8251A内部复位NOP;空操作NOPMOVAL,7EH;异步方式,1个停止位,8位数据OUTDX,AL;波特系数为16,偶校验MOVAL,14H;允许接收,清除错误标志OUTDX,ALMOVCX,000AH;设置计数值为10LEADI,DATAY42

A2:MOVDX,0FF81H;读8251A的状态字INAL,DXANDAL,02H;查询RxRDY是否有效JZA2;无效,继续查询MOVDX,0FF80H;有效,向数据端口输入一个字符INAL,DXMOV[DI],ALINCDI;DI指向下一个接收字符区LOOPA2;CX≠0,继续发送MOVAH,4CH;接收完毕,返回DOSINT21HCODEENDSENDSTARTA2:MOVDX,0FF81H43

第9章串行I/O接口【内容简介】

主要介绍串行通信的基本概念和串行通信接口的基本组成与工作原理,然后介绍可编程串行通信接口8251A的结构、特性、引脚及应用;最后,通过具体实例说明串行通信的实现方法与程序设计。【重点难点】重点是串行通信的基本概念、类型、工作方式、可编程串行通信接口8251A的组成原理、功能与初始化程序设计;难点是8251A的组成原理、功能与初始化程序设计。

第9章串行I/O接口【内容简介】44第9章串行I/O接口

9.1串行通信类型与方式9.2可编程串行通信接口8251A

9.38251A初始化程序设计与应用举例第9章串行I/O接口9.1串行通信类型459.1串行通信类型与方式

9.1.1概述

9.1.2串行通信类型

9.1.3串行通信方式

9.1.4RS-232C/485标准与接口电路9.1串行通信类型与方式9.1.1概述469.1.1概述

1.串行通信所谓串行通信,是用一条通信线路把两台设备连接起来,数据一位接一位地顺序传送,其示意如图9.1所示。特点是传输线少,传送距离远,成本低。

2.串行接口电路是把用于串行通信的电路集成在一起而构成的接口。计算机输入时,需要把外设的串行数据转换成并行数据,输入给计算机;计算机输出时需要把并行数据转换成串行数据,输出给外部设备。图9.2所示是用于串行通信的接口电路,支持同步与异步工作方式,故称为通用同步/异步接收器/发送器USART.

9.1.1概述1.串行通信2.串行接口电47

由图9.2可以看出,串行接口一般包含4个寄存器,即控制寄存器、状态寄存器、数据输入寄存器及数据输出寄存器。数据的并/串转换和串/并转换通过移位寄存器来进行。另外,还有总线缓冲器、地址译码器以及控制逻辑电路。其中控制寄存器接收CPU的控制命令,以确定工作方式;状态寄存器用来存储外部设备及接口的状态信息。数据输入输出寄存器与串行输入/并行输出移位寄存器配合使用,实现数据的输入输出与转换。由图9.2可以看出,串行接口一般包含4个寄存器,即控制48

3.数据输入(1)CPU向接口电路发控制命令,设置接口输入工作方式;同时,启动外设工作。(2)外设数据通过串行输入端送入串行输入/并行输出移位寄存器,经转换后送入数据输入寄存器。(3)向CPU发输入请求或由CPU查询接口状态标志位,然后读取数据。

4.数据输出(1)CPU发控制命令,设置接口输出工作方式;同时,启动外设工作。(2)CPU通过数据总线向接口电路发送数据和写命令,数据暂存在输出寄存器中。3.数据输入49

(3)经并行输入/串行输出移位寄存器转换后,数据串行输出。在一般串行接口电路中,控制与状态寄存器共用一个地址;数据输入与数据输出寄存器共用一个地址。(3)经并行输入/串行输出移位寄存器转换后,数据串行509.1.2串行通信类型

串行通信类型有三种,如图9.3所示,即单工、半双工和全双工方式。

1.单工方式数据按照一个固定的方向传送,不能反向传送。如图9.3(a)所示,由设备A发送给设备B。

2.半双工方式要求通信两端的设备均具备接收和发送的能力。但是在同一时间,数据只能沿着一个方向传送。若要双向传送,只能交替进行。如图9.3(b)所示。

3.全双工方式通信两端的设备即可以发送数据,也可以接收数据,发送与接收可以同时进行,其过程如图9.3(c)所示。9.1.2串行通信类型串行通信类型有三种,如图9.51第九章-串行IO接口-微型计算机原理与应用-电子教案-教学课件529.1.3串行通信方式

目前,串行通信主要有两种类型:异步通信ASYNC和同步通信SYNC方式。

1.异步通信方式在异步通信方式中,数据按照ASCII码的格式设定,因此也称为字符格式,如图9.4所示。9.1.3串行通信方式目前,串行通信主要有两种类53

有效数据5-8位,另有附加位。其中起始位1位,恒为低电平;奇偶校验位1位,可选;停止位可以是1位、1.5位或者2位,高电平。传送一个字符必须以起始位开始,停止位结束,称为一帧(Frame)。通信时每秒传送二进制数据的位数(bit)称为传输率,也称为波特率(BandRate),比如300、600、1200、4800、9600、19200等。异步数据传送时,发送设备按照格式约定插入起始位、奇偶校验位和停止位。接收设备不断地检测传输线。在高电平之后检测到0(低电平)时,启动内部计数器计数,当计数到一个数据位宽度的一半时,再次检测传输线,若仍为低电平,则确认1个起始位。然后继续计数,采样,移位接收到的数据和校验位。在收到停止位(高电平)后,组成1帧。若超过数据的位数而仍没有收到停止位时设置“帧错误”标志。若校验有错,则设置“校验错”标志。计算机异步通信的速率和有效数据的位数可由程序设置。有效数据5-8位,另有附加位。其中起始位1位,恒为低54

2.同步通信方式是用同步字符来标识传送数据的起始与结束,其格式如图9.5所示。在开始部位设置1~2个同步字符作为起始标志,后面是数据;在数据的末尾,设置两个循环冗余校验码(CRC),一方面进行数据校验,另一方面表示数据传送结束。

同步字符可以是1个或2个;也可以在起始部位设置1个,在末尾设置1个。按照同步方式工作时,发送设备自动插入同步字符和校验码。接收设备搜索到同步字符后开始接收数据。在传输过程中,发送设备和接收设备保持完全同步。2.同步通信方式559.1.4RS-232C/485标准与接口电路

1.RS-232C信号定义RS-232C是在计算机与数据终端串行通信中普遍采用的一种传输标准,有25条信号线,采用D型25针连接器,信号定义如表9.1所示。而在微型计算机中串行接口COM1和COM2使用的是D型9针连接器。其信号是对RS-232C的缩减,符合RS-232C标准。

由于RS-232C数据信号与计算机中的数据表示不一致,因此相互之间需要电平转换电路;在远程通信时需要配置调制解调器(Modem)。9.1.4RS-232C/485标准与接口电路156表9.1RS-232C标准信号

引脚功能说明引脚功能说明1保护地14(辅信道)发送数据2(3)发送数据TxD15发送信号源(DCE)定时3(2)接收数据RxD16(辅信道)接收数据4(7)请求发送RTS17接收信号源(DCE)定时5(8)允许发送CTS18未定义6(6)数据装置准备好DSR19(辅信道)请求发送RTS7(5)信号地(公共回路)20(4)数据终端准备好DTR8(1)接收信号线检测21信号质量检测9(保留供数传机测试)22(9)振铃指示RI10(保留供数传机测试)23数据信号速率(DTE/DCE)选择11未定义24发送信号源(DTE)定时12(辅信道)接收信号线检测25未定义13(辅信道)允许发送CTS表9.1RS-232C标准信号引脚功能说明引脚功能说57

在使用电话线远距离通信时,发送端要用调制器把数字信号附加到载波上接收端则用解调器进行解调,从载波上还原出数字信号,其示意如图9.6所示。计算机RS232CModem计算机RS232CModem数字信号数字信号模拟传输图9.6RS-232C串行通信在使用电话线远距离通信时,发送端要用调制器把数58TTL图9.7TTL电平与RS-232C电平转换示意图RS-232C电平MC1488MC1489TTL发送接收

3.RS-485接口电路RS-485标准接口可使用单一+5V(或+3V)电源,输入输出电平与TTL电路兼容,共模电压最大最小值分别为+12V和-7V,差分输入范围为-7V~+12V,接收器的灵敏度为200mV,支持半双工和全双工通信.

在RS-232C标准中,逻辑1用负电平(-3V~-15V)表示,逻辑0用(+3V~+15V)表示。而在计算机内部采用的是TTL电平,所以常用MC1488/MC1489进行信号转换,其示意如图9.7所示。

TTL图9.7TTL电平与RS-232C电平转换示意图R59

图9.8所示是用MAX481类芯片构成的半双工通信电路。其中每个芯片包含一个非对称转对称的驱动器D和一个对称转非对称的接收器R。DI表示数据输入端,RO表示数据输出端。特点是传输距离远,可靠性高,在传输速率为9600b/s时最大距离为1500m;在传输速率为100Mb/s时,传输距离可达15m。图9.8RS-485半双工通信电路VCDRDEDIROREVCDRDEDIROREDEDIROREDRVCDEDIROREDRVC……图9.8所示是用MAX481类芯片构成的半双609.2可编程串行通信接8251A9.2.18251A引脚与内部结构9.2.28251A控制与状态寄存器9.2可编程串行通信接8251A9.2.18251619.2.18251A引脚与内部结构

1.8251A外部引脚

8251A的引脚如图9.9所示,除地线和电源线外,可分为四组。

(1)与CPU连接引脚D7~D0:数据线,双向,与系统数据总线连接,传送数据、命令及8251A状态字。CS:片选信号,输入,低电平有效。RD:读信号,输入,低电平有效。WR:写信号,输入,低电平有效。

C/D:控制/数据选择,输入,高电平时CPU读/写8251A控制/状态寄存器,低电平时CPU读/写数据寄存器。9.2.18251A引脚与内部结构1.62

CS、RD、WR和C/D信号的作用如表9.2所示。RESET:复位信号,输入,高电平有效,宽度为6个时钟周期,复位后8251A处于空闲等待状态。CLK:时钟信号,同步方式时其频率≥数据传输频率的30倍;异步方式时,≥传输频率的4.5倍。表9.28251A的控制信号的功能组合

CSRDWRC/D方向功能0010CPU←8251A读数据0100CPU→8251A写数据0011CPU←8251A读状态0101CPU→8251A写控制命令011X高阻态1XXX高阻态CS、RD、WR和C/D信号的作用如表9.2所63

(2)与外部设备/调制解调器连接引脚

DTR:数据终端准备好,输出,低电平有效,通过编程使方式命令字的D1位置1,信号有效。

DSR:数据设备准备好,输入,低电平有效,是对DTR的响应,表示调制解调器或外设发送准备就绪,通过读入状态字的D7位检测该信号。

RTS:请求发送,输出,低电平有效,表示8251A发送准备就绪,通过编程使方式命令字的D5位置1,信号有效。

CTS:允许发送,输入,低电平有效,是对RTS的响应;有效时,表示外设或调制解调器允许8251A发送数据。

(3)与发送控制有关的引脚

TxD:数据发送端,输出。

TxRDY:发送器准备好,输出,高电平有效,表示8251A准备好接收CPU的数据。(2)与外部设备/调制解调器连接引脚64

TxE:发送器空,输出,高电平有效,表示8251A发送器空。

TxC:发送器时钟,输入,同步方式下TxC的频率等于波特率;异步方式下TxC的频率可以是数据速率的1、16或64倍。。

(4)与接收控制有关的引脚

RxD:数据接收端,输入。

RxRDY:接收器准备好,输出,高电平有效,表示8251A从外部设备/调制解调器上接收到一个字节的数据,等待CPU的读取。

SYNDET/BRKDET:同步/间断检测信号,双向。同步方式时作为同步监测端,异步方式时作为间断检测端。

RxC:接收器时钟,输入,用来控制8251A接收数据的速度,要求与TxC相同。TxE:发送器空,输出,高电平有效,表示82565

2.8251A的内部结构8251A的内部结构图如图9.10所示,由5个主要部分组成,即接收器、发送器、调制解调控制逻辑电路、读/写控制逻辑电路和数据总线缓冲器。2.8251A的内部结构66

(1)数据总线缓冲器数据总线缓冲器包括发送数据/命令缓冲器、状态缓冲器和接收数据缓冲器,用来与CPU传送数据、命令字和状态字。

(2)接收器包括接收缓冲器和控制电路,通过RxD引脚串行输入数据,并按规定的格式转换为并行数据,存放到数据缓冲器中。同步方式时,接收器首先检测同步字符,确认同步后接收串行数据,并经串/并转换后送接收缓冲器;异步方式时,首先检测起始位,然后接收数据,在接收到一帧数据后串/并转换,送数据接收缓冲器。这时,RxDRY引脚输出高电平,等待CPU读取。接收数据的速率由决定。RxDRY信号可供CPU查询,也可作为中断请求信号。(1)数据总线缓冲器67

(3)发送器包括发送缓冲器和控制电路,CPU输出的并行数据,按规定的格式转换。同步方式,在发送数据之前,由发送器自动输出一个(单同步)或两个(双同步)同步字符,然后数据串行输出。异步方式,是由发送控制电路在其首尾添加起始位和停止位,经并/串转换后由TxD端逐位串行输出。发送速率由决定。发送器做好接收数据的准备时,TxRDY输出高电平,表示数据输出缓冲器空,CPU可输出数据。TxRDY信号可供CPU查询,也可作为中断请求信号。

(4)调制解调控制逻辑电路远距离串行通信时,需经调制器把数字信号附加到载波上传送给通信线路;在接收端需经解调器从载波中还原出数字信号。

(5)读/写控制逻辑电路控制CPU对8251A的读/写操作。CPU执行IN指令,可读取8251A中的数据或状态;执行OUT指令,向8251A写入数据或控制字。(3)发送器689.2.28251A控制与状态寄存器

在8251A中设有控制与状态寄存器。其中控制寄存器包括方式选择寄存器和工作命令寄存器;状态寄存器记录和反映8251A的工作状态与错误信息。

1.工作方式选择寄存器工作方式选择寄存器共有8位,其格式与功能如图9.11所示。9.2.28251A控制与状态寄存器在8269第九章-串行IO接口-微型计算机原理与应用-电子教案-教学课件70

2.工作命令寄存器工作命令字用来控制8251A的发送与接收,其格式如图9.12所示。2.工作命令寄存器71

TxEN:发送允许位。TxEN=1时,允许TxD发送数据。DTR:数据终端准备好。DTR=1时,表示8251A准备好,引脚输出低电平;DTR=0时,引脚输出无效。RxE:接收允许位。RXE=1时,允许RxD接收数据;否则,不允许接收数据。SBRK:发送中止字符。SBRK=1,使TxD为低电平,连续输出0;SBRK=0,正常工作。ER:清除错误标志。ER=1,使错误标志(PE、OE、FE)清0。RTS:发送请求标志。RTS=1,使引脚输出低电平,有效,表示8251A发送准备就绪;RTS=0,使引脚无效。IR:内部复位。IR=1,使8251A返回到方式选择命令状态。EH:外部搜索方式,EH=1时,搜索同步字符,EH=0,不搜索同步字符。TxEN:发送允许位。TxEN=1时,允许Tx72

3.状态寄存器用来记录8251A工作状态与错误信息,如图9.13所示,CPU可通过IN指令读取。3.状态寄存器73

TxRDY:发送器准备好。发送缓冲寄存器空,该位置1;同时=0,TxE=1时,TxRDY引脚置高电平。PE:奇偶校验错标志。PE=1,奇偶校验错误,但是不中断8251A的工作。OE:溢出错误标志位。OE=1,发生溢出错误。FE:帧格式错误标志位,FE=1,未检测到停止位。其它RxRDY、TxE、SYNDET和DSR与引脚的定义完全相同。TxRDY:发送器准备好。发送缓冲寄存器空,749.38251A初始化程序设计与应用举例

9.3.18251A初始化程序设计

9.3.2应用举例9.38251A初始化程序设计与应用举例759.3.18251A初始化程序设计

1.初始化程序设计步骤(1)向8251A写入方式选择字,以确定通信方式、数据格式和波特率等项参数;(2)同步方式,需写入同步字符;(3)写入工作命令字,确定发送或者接收;(4)由于方式选择字和工作命令字是同一端口,且没有标志位,必须按照上述(1)、(2)、(3)的顺序。8251A初始化流程图如图9.14所示。

9.3.18251A初始化程序设计76

2.初始化编程举例

【例9.1】设8251A工作在异步方式下,波特率系数为64,字符长度8位,奇校验,1个停止位,清除出错标志位,请求发送,数据准备就绪位,允许接收/发送,内部不复位。数据和方式选择字/状态端口地址分别为20H和21H。初始化程序如下:MOVAL,01011111BOUT21H,AL;设置方式选择命令字MOVAL,00110111BOUT21H,AL;设置工作命令字2.初始化编程举例77

【例9.2】设8251A工作在同步方式下,有一个同步字符,外同步,清除出错标志,允许发送和接收,使CPU已准备好且请求发送,内部不复位,启动搜索同步字符;同步字符为0CCH,端口地址同例9.1。初始化程序如下:MOVAL,11000000BOUT21H,AL;设置方式选择命令字MOVAL,0CCHOUT21H,AL;写入同步字符MOVAL,10110111BOUT021H,AL;设置工作命令字【例9.2】设8251A工作在同步方式下,有一个同步字789.3.2应用举例

用8251A和RS-232C标准总线实现两台微机之间的串行通信,其结构框图如图9.15所示。试编写程序,使发送器A把数据0~9传送到接收机B中;采用异步方式,字符长度为8位,波特系数为16,偶校验,一位停止位。9.3.2应用举例用8251A和RS-2379

解:首先对发送器A和接收器B初始化,然后使用查询方式实现半双工通信。对于发送器A,在CPU查询到TxRDY有效(高电平)时,向8251A输出一个字节的数据;对于接收器B,在CPU查询到RxRDY有效(高电平)时,从8251A读取一个字节的数据。设8251A端口地址为0FF80H、0FF81H,程序设计如下:

(1)发送器A初始化程序STACKSEGMENTSTACKDW64DUP(?)STACKENDSDATASEGMENTDATAXDB‘0123456789’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK解:首先对发送器A和接收器B初始化,然后使用查询80

START:MOVAX,STACK;段寄存器的装入MOVSS,AXMOVAX,DATAMOVDS,AXLEASI,DATAX;设置发送区的首址MOVDX,0FF81H;8251A控制器端口地址MOVAL,00HOUTDX,AL;输出空操作MOVAL,40HOUTDX,AL;8251A内部复位NOP;空操作NOPSTART:MOVAX,STACK81MOVAL,7EH;异步方式,1个停止位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论