串行接口及串行通信技术.ppt
第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 第第6章章 串行接口及串行通信技术串行接口及串行通信技术 6.1 串行通信基础知识串行通信基础知识 6.2 AT89C51的串行接口的串行接口 6.3 AT89C51串行接口的应用与编程串行接口的应用与编程 习题与思考题习题与思考题 第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 6.1 串行通信基础知识串行通信基础知识 一、一、串行通信基本概念串行通信基本概念1.并行通信和串行通信 1)并行通信并行通信 并行通信是指构成信息的二进制字符的各位数据采用多条数据线同时传送的通信方法,如图6.1所示。特点:传输控制简单、速度快。但距离长时传输线多,成本高。2)串行通信串行通信 串行通信是指构成信息的二进制字符的各位数据一位一位顺序地传送的通信方式,如图6.2所示。特点:传输控制复杂、速度慢,但传输线少,成本低。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.1 并行通信示意图 第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.2 串行通信示意图 第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 2.异步通信和同步通信 串行通信串行通信又分为两种基本通信方式,即异步通信和同步通信。1)异步通信 在异步通信中,被传送的信息通常是一个字符代码或一个字节数据,它们都以规定的相同传送格式(字符帧格式)一帧一帧地发送或接收。字字符符帧帧格格式式由由四四部部分分组组成成:起起始始位位,数数据据位位,奇奇偶偶校校验验位位和和停停止止位位,如图6.3所示。下面介绍各部分的功能。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.3 异步通信帧格式第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 (1)起始位:在没有数据传送时,通信线上处于逻辑“1”状态,当信号变为0时表示起始位。(2)数据位:在起始位之后,发送端发出(接收端接收)的是数据位,数据的位数没有严格限制,如5位、6位、7位或8位等。由低位到高位逐位传送。(3)奇偶校验位:数据位发送完(接收完)之后,可发送奇偶校验位,它只占帧格式的一位,用于传送数据的有限差错检测或表示数据的一种性质,是发送和接收双方预先约定好的一种检验(检错)方式。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 (4)停止位:字符帧格式的最后部分为停止位,逻辑“1”电平有效,位数可以是1位、1/2位或2位。表示一个字符帧信息的结束,也为发送下一个字符帧信息做好准备。异异步步通通信信的的特特点点:不不要要收收发发双双方方时时钟钟严严格格一一致致,易易于于实实现现,但但每每个个字字符符要要附附加加23位位的的起起止止位位,各各帧帧之之间间还有间隔,因此传输效率不高。还有间隔,因此传输效率不高。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 2)同步通信 同步通信是一种连续串行传送连续串行传送数据的通信方式,一次通信只传输一帧信息一帧信息。这里的信息帧和异步通信的字信息帧和异步通信的字符帧不同,通常有若干个数据字符符帧不同,通常有若干个数据字符,如图6.4所示。其格格式由同步字符、数据字符和校验字符式由同步字符、数据字符和校验字符CRC三部分组成。三部分组成。在同步通信中,同步字符可以采用统一的标准格式,也可以由用户约定。同步通信时要建立发送方时钟对接收方时钟的直接同步通信时要建立发送方时钟对接收方时钟的直接控制,使数据传送完全同步。其特点是传输速率高,但控制,使数据传送完全同步。其特点是传输速率高,但硬件复杂。硬件复杂。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 同步字符数据字符1数据字符2数据字符n-1数据字符n校验字符校验字符图6.4 同步通信数据传送格式 第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 3.串行通信的制式制式 1)单工(Half duplex)制式 在单工方式下,通信线的A端只有发送器,B端只有接收器,信息数据只能单方向传送,即只能由A端传送到B端而不能反传。如图6.5所示。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.5 单工方式第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 2)半双工(Half duplex)制式 半双工方式中,通信线路两端的设备都有一个发送器和一个接收器,如图6.6所示。数据可双方向传送但不能同时传送,即A端送B端收或B端送A端收,A、B两端的发送/接收只能通过半双工通信协议切换交替工作。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.6 半双工方式第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 3)全双工)全双工(Full duplex)制式 在全双工方式下,通信线路A、B两端都有发送器和接收器,A、B之间有两个独立通信的回路,两端数据不是交替发送和接收,而是同时发送和接收。因此通信效率比前两种要高。该方式下所需的传输线至少要有三条,一条用于发送,一条用于接收,一条用于公用信号地,如图6.7所示。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.7 全双工方式第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 4.信号的信号的调制与解调调制与解调 计算机的通信要求传送的是数字信号。在远程数据通信时,通常要借用现存的公用电话网。但是电话网是为300-3 400 Hz的音频模拟信号设计的,对二进制数据的传输是不合适的。为此在发送时需要对二进制数据进行调制调制生成模拟信号,使之适合在电话网上传输。在接收时,需要进行解调解调以将模拟信号还原成数字信号。1)调制器 把数字信号转换成模拟信号,然后送到通信线路上去。2)解调器 把从通信线路上收到的模拟信号转换成数字信号。由于通信是双向的,调制器和解调器合并在一个装置中,这就是调制解调器调制解调器MODEM,如图6.8所示。由图可见,调制器和解调器是进行数据通信所需的设备,因此把它叫做数据通信设备(数据通信设备(DCE)。)。通信线路是电话线,也可以是专用线。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.8 调制解调通信图 第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 5.串行通信数据的校验 在通信过程中往往要对数据传送的正确与否进行校验。以保证准确无误的传输数据。常用的校验方法有奇偶校验及代码和校验常用的校验方法有奇偶校验及代码和校验。1)奇偶校验奇偶校验 奇偶校验的特点是按字符校验,即在数据发送时,在每一个字符的最高位之后都附加一个奇偶校验位“1”或“0”,使被传送字符(包括奇偶校验位)中含“1”的位数都为偶数(偶校验)或都为奇数(奇校验)。例:当约定为奇校验奇校验时,数据中数据中“1”的个数与校验位的个数与校验位“1”的个的个数之和应为奇数;数之和应为奇数;当约定为偶校验偶校验时,数据中数据中“1”的个数与校验位的个数与校验位“1”的个数之和应为偶数。的个数之和应为偶数。接收方与发送方的校验装置和方式应一致。接收字符时,对“1”的个数进行校验,若二者不一致,则说明传输数据过程中出现了差错。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 2)代码和校验 所谓和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 6.传输速率与传输距离传输速率与传输距离 1)波特率波特率 波特率(也叫比特率比特率),即数据传输的速率。它表示每秒钟它表示每秒钟传送二进制代码的位数。其单位是传送二进制代码的位数。其单位是b/s。在串行通信中,发送设备和接收设备之间除了采用相同的字符帧格式(异步通信)或相同的同步字符(同步通信)来协调同步工作外,两者之间发送数据的速度和接收数据的速度也必须相同两者之间发送数据的速度和接收数据的速度也必须相同,这样才能保证被传送数据的成功传送。波特率是串行通信的重要指标,对数据的成功传送至关重要。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 举例:设数据的传送率是240字符/s,而每个字符格式包含10 bit(1个起始位、1个停止位、8个数据位),这时传送的波特率是:10b240=2400 b/s 标准波特率标准波特率为:110bps、300bps、600bps、1200bps、2400bps、9600kbps,19.2kbps、56kbps等。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 2)传输距离与传输速率的关系 传输距离与波特率及传输线的电气特性有关。通通常传输距离随波特率的增加而减小。常传输距离随波特率的增加而减小。当传输线使用每0.3 m(约1英尺)有50 pF电容的非平衡屏蔽双绞线时,传输距离是随波特率增加而减小。当波特率超过1 000 bit/s时,最大传输距离迅速下降,如9600 bit/s时最大距离下降到只有76 m(约250英尺)。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 二、串行通信的标准接口二、串行通信的标准接口 RS-232C通信接口是一种标准的串行接口,它定义了数据终通信接口是一种标准的串行接口,它定义了数据终端设备(端设备(DTE)与数据通信设备()与数据通信设备(DCE)之间的物理接口标准。)之间的物理接口标准。普遍用于计算机之间及计算机与外设之间的串行通信。由于它符合EIA(电子工业协会)规格要求,在国际上得到了广泛的应用。RS-232C接口具有如下特点:信号线少特点:信号线少,在某些场合,完成双工通信只需使用几根线就即可;有多种可供选择的信息传输速率有多种可供选择的信息传输速率:110、150、300、600、1 200、2 400、4 800、9 600和19 200 bps。RS-232C接口特性包括电气特性、机械特性、功能特性和过程特性四个方面内容。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 1.机械特性 RS-232C接口规定使用规定使用25针连接器针连接器,称为DB-25插头或插座。如图6.9所示。RS-232C接口对标准的对标准的25针接口定义了针接口定义了22条可以条可以与外界连接的信号线与外界连接的信号线,并对它们的功能作了具体的规并对它们的功能作了具体的规定。定。实际用户并不一定用到RS-232C标准的全部信号线,常常使用常常使用9针非标准连接器替代针非标准连接器替代25针连接器,称针连接器,称为为DB-9。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 DTE:数据终端设备(如个入计算机)DCE:数据电路通信设备(如调制解调器)12345678910111213141516171819202122232425方向 名称 第2路发送数据 发送时钟 第2路接收数据 接收时钟未用 第2路请求发送 数据终端就绪 数据信号检测 振铃指示 数据信号速率选择 发送时钟未用未用保护地 N.A发送数据 到DCE接收数据 到DCE请求发送 到DCE允许发送 到DTE数据置位就绪 到DTE信号地 N.A载波检测 到DTE留作调试用第2路载波检测 到DTE第2路允许发送 到DTE名称 方向到DCE到DTE到DTE到DTE到DCE到DCE到DTE到DTE到DCE到DCE图6.9 RS-232C引脚图第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 2.功能特性 RS-232C接口的主要信号线定义如表6-1。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 3.电气特性 RS-232C的每一个引脚的信号性质和电平均由标准规定,采用负逻负逻辑电平辑电平,如:1)规定规定DC(-3-15 V)为逻辑)为逻辑1,DC(+3+15 V)为逻辑为逻辑0。(简称简称EIA电平电平)2)其逻辑电平与通常的)其逻辑电平与通常的TTL和和MOS电平(用电平(用0V0.8V表示表示0,2V+5V表示表示“1”)不兼容)不兼容。因此为了实现TTL或MOS电路的连接,要外加电路(如MAX232)实现电平转换。由于RS-232C发送端和接收端之间的信号采用多芯信号线,而多芯信号线的总负载电容不能超过2 500 pF,所以RS-232C的信号传信号传输距离仅为几十米,传输速率小于输距离仅为几十米,传输速率小于20kbps。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 4.过程特性 过程特性规定了信号之间的时序关系,以便正确地规定了信号之间的时序关系,以便正确地接收和发送数据接收和发送数据。如果通信双方均具备RS-232C接口,则二者可以直接连接,不必考虑电平转换问题。但是对于单片机与计算机通过对于单片机与计算机通过RS-232C的连接,必须考的连接,必须考虑电平转换问题,虑电平转换问题,因为MCS-51系列单片机串行口不是标准RS-232C接口。远程RS-232C通信需要调制解调器,如图6.10所示。近程通信RS-232C(通信距离15 m内)可以不使用调制解调器,其连接方法可有以下几种,如图6.11所示。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.10 远程RS-232C通信连接图6.11 近程RS-232C通信连接第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 5.RS-232C电平与TTL电平转换驱动电路 单片机与计算机通过RS-232C的连接,必须考虑电平转换问题。早期常用的电平转换芯片为MC1488、MC1489。近年来多采用片内带有自升压电路的芯片。近年来多采用片内带有自升压电路的芯片。如如MAXM232,它仅需,它仅需+5V电源,电源,内置电子升压泵将+5V转换成-10V+10V。该芯片内含2个发送器,2个接收器,且与TTL/CMOS电平兼容,使用非常方便。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 6.采用RS-232C接口存在的问题问题 1)传输距离短、速率低)传输距离短、速率低 RS-232C标准受电容允许值的约束,传输距离一般不超过15米。最高传输速率为20bps。2)有电平偏移)有电平偏移 RS-232C接口收发双方共地的情况下,当通信距离较远时,两端的地电位差别较大,信号地上会有较大的地电流并产生压降,一方输出的逻辑电平到达对方时,其逻辑电平可能偏移较大,严重时会发生逻辑错误。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 3)抗干扰能力差 RS-232C采用单端输入输出,传输过程中的干扰和噪声会混在正常的信号中。为了提高信噪比,RS-232C标准不得不采用较大的电压摆幅。针对RS-232C总线标准存在的问题,EIA协会制定了新的串行通信标准新的串行通信标准RS-422A和和RS-485。它们是平衡型电压数字接口电路的电气标准,这些标准改善了串行通信的传输特性。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 6.2 AT89C51的串行接口的串行接口 一、串行接口的结构及功能 AT89C51串行口的结构框图如图6.12所示,主要由发送器、接收器和串行控制寄存器组成。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.12 AT89C51串行口结构框图 第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图中有两两个个物物理理上上独独立立的的接接收收、发发送送缓缓冲冲器器 SBUF,它它们们占占用用同同一一地地址址99H,可同时发送、接收数据。发发送送缓缓冲冲器器只能写入,只能写入,不能读出;接收缓冲器只能读出接收缓冲器只能读出,不能写入。接收器主要由接收缓冲寄存器SBUF,接收移位寄存器和接收控制器组成。接接收收器器是是双双缓缓冲冲结结构构,在前一个字节被从接收缓冲器读出之前,第二个字节即开始被接收(串行输入至移位寄存器),但是在第二个字节接收完毕而前一个字节CPU未读取时,会丢失前一个字节的内容。发送器主要由发送缓冲寄存器SBUF和发送控制器组成。对于发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 二、串行口控制寄存器 串行口控制寄存器SCON(字节地址为98H)用于设置串行口的工作方式、监视串行口工作状态、发送与接收的状态控制等。它是一个既可字节寻址又可位寻址的特殊功能寄存器。其格式如图6.13所示。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.13 控制寄存器SCON的格式 位名称位号SM0SM1SM2RENTB8RB8TIRI76543210第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 SCON寄存器各位的功能如下:(1)SM0、SM1:串串行行口口工工作作方方式式选选择择位位,可构成四种工作方式,如表6-2所示。(2)SM2:在方式2和方式3中多机通信的控制位。(3)REN:串行接收允许位。:串行接收允许位。由软件置REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。(4)TB8:在方式2或方式3中,是将要发送的第九位数据,由软件置位或清零,它可作为数据奇偶校验位,也可在多机通信中作为地址帧或数据帧的标志位使用。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 表6-2 串行口工作方式选择SM0 SM1工作方式功能波特率0 00 11 01 1方式0方式1方式2方式3移位寄存器10位异步收发11位异步收发11位异步收发fosc/12可变fosc/6或fosc/32可变第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 (5)RB8:在方式2或方式3中,是已接收到的第九位数据第九位数据,可作为奇偶校验位作为奇偶校验位。(6)TI:发送中断标志位。:发送中断标志位。在方式0当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。(7)RI:接收中断标志位。:接收中断标志位。方式0中,在接收完第8位数据时由硬件置位。在方式0当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须在中断服务程序中,用软件将其清0,取消此中断申请 (8)SMOD:为波特率选择位为波特率选择位。电源控制寄存器PCON中的第八位也与串行口有关,如图6.14所示。当当SMOD=1时,波特率提时,波特率提高一倍,复位时,高一倍,复位时,SMOD=0。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.14 电源控制寄存器PCON的格式位号76543210位名称SMOD第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 三、三、串行通信的工作方式串行通信的工作方式 1工作方式工作方式0 在方式0下,串行口是作为同同步步移移位位寄寄存存器器使使用用的的。其波波特特率率固固定定为为单单片片机机振振荡荡频频率率(fosc)的的1/12,串串行行传传送数据送数据8位为一帧位为一帧(没有起始、停止、奇偶校验位)。数数据据由由RXD端端输输出出或或输输入入,低位在前,高位在后。TXD端端输输出出同同步步移移位位脉脉冲冲,可以作为外部扩展的移位寄存器的移位时钟,因因而而串串行行口口方方式式0常常用用于于扩扩展展外外部部并行并行I/O口。口。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 1)工作原理(1)发送(输出)执行指令(如MOV SBUF,A),就启动发送。在发送过程中由RXD端将写入SBUF寄存器中的数据依照从低位到高位的次序按位送数据依照从低位到高位的次序按位送出出,同时由TXD端输出移位时钟脉冲。一个字节的数据发送完毕数据发送完毕,串行口自动停止发送数据和移位时钟脉冲,并置位并置位TI申请申请中断。中断。TI必须由软件清零。以便下一次传送。从写SBUF到TI置位,相隔9个机器周期,完成了发送1帧数据的全过程。如图6.15所示。图6.15 方式0数据输出时序第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.16 方式方式0扩展并行输出口扩展并行输出口 串行发送时,外部可扩展一片(或几片)串入并出串入并出的移位寄存器(如74LS164),如图6.16所示。RXDTXD89C51ABCLK数据输出移位脉冲1233 4 5 6 10 11 12 1374LS164D7D6D5D4D3D2D1 D0第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 (2)接收(输入)当REN=1,RI=0时,就启动串行口接收。在接收过程中,由TXD端输出移位时钟脉冲,控制外围设备将8位数据按位移入串行口的RXD端,并通过串行口内部的输入移位寄存器将数据存入SBUF接收寄存器。当串行口控制电路检测到最后一次移位结束结束后,接收过程告终,并置位置位RI申请申请中断中断。RI也必须由软件清零。从启动接收到RI置位,相隔9个机器周期,完成了接收1帧数据的全过程。时序图如图6.17所示。图6.17 方式0数据输入时序第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.18 方式方式0扩展并行输入口扩展并行输入口 串行接收时,外部可扩展一片(或几片)并入串出并入串出的移位寄存器(如74LS165),如图6.18所示。QCLK654314 13 12 11数据输入移位脉冲RXDTXD80C5174LS165D7D6D5D4D3D2D1D0第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 2工作方式1 在方式在方式1下,串行口工作在下,串行口工作在10位帧格式位帧格式,发送或接收一帧信息中,除除8位数据移位外,还包含一个起始位位数据移位外,还包含一个起始位(0)和一个停止位和一个停止位(1),其格,其格式如图式如图6.19所示所示。工工作作方方式式1的的波波特特率率是是可可变变的的,由由定定时时器器T1的的计计数数溢溢出出率率决决定定。相应的公式为:波特率=定时器T1溢出率第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.19 串行口方式1的帧格式第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 定时器定时器T1的计数溢出率计算公式为:的计数溢出率计算公式为:定时器T1溢出率=式中,K为定时器为定时器T1的位数的位数,与定时器T1的工作方式有关(见第5章介绍),则波特率计算公式为:波特率=第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 1)发送发送 发送时,数据从TXD端输出,当数据写入发送缓冲器SBUF后,启动发送器发送。当发送完一帧数据后,置中断标志TI为1。方式1所传送的波特率取决于定时器1的溢出率和PCON中的SMOD位。2)接收接收 接收时,由REN置1,允许接收,串行口采样RXD,当采样由1到0跳变时,确认是起始位“0”,开始接收一帧数据。当RI=0,且停止位为1或SM2=0时,停止位进入RB8位,同时置中断标志RI;否则信息将丢失。所以,方式1接收时,应先用软件清除RI或SM2标志。方式1时串行口的发送和接收时序如图6.20所示。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.20 串行口方式1的时序图第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 3方式方式2和方式和方式3 在在方方式式2和和方方式式3下下,串串行行口口工工作作在在11位位异异步步通通信信方方式式。一一帧帧信信息息包包含含一一个个起起始始位位“0”,八八个个数数据据位位,一一个个可可编编程程第第九九数数据据位位和和一一个个停停止止位位“1”。其其中中可可编编程程位位是是SCON中中的的TB8位位,在在八八个个数数据据位位之之后后,可可作作奇奇偶偶校校验验位位或或地地址址/数数据据帧帧的的标标志志位位使使用用,由由使使用者确定。用者确定。其帧格式如图6.21所示。区区别别:方方式式2的的波波特特率率固固定定为为晶晶振振频频率率的的1/64或或1/32;方方式式3的的波波特特率率由由定定时时器器T1的的计计数数溢溢出出率率决决定定,确确定定方方法法与与工工作作方方式式1中中的完全一样。的完全一样。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.21 串行口方式2、3帧格式图第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 1)方式2和方式3输出 当CPU向发送SBUF写入一个数据时,串行口发送过程就被启动了。TB8写入输出移位寄存器的第9位,8位数据装入SBUF。发送开始时,先把起始位0输出到TXD端。经一位时间后,发送移位寄存器的输出位(D0)到TXD端。之后,每一个移位脉冲都使输出移位寄存器的各位右移一位,并由TXD端输出。结束时,控制电路进行最后一次移位,并置T11,向CPU请求中断。2)方式2和方式3输入 软件使接收允许位REN为1后,接收开始启动。接收时,数据从右边移入输入移位寄存器,1从左边移出,在起始位0移到最左边时,控制电路进行最后一次移位。当RI0,且SM2=0时,接收到的数据装入接收SBUF和RB8,置RI=1,向CPU请求中断。如果条件不满足,则数据丢失,且不置位RI,一位时间后继续搜索RXD端的负跳变。时序如图6.22所示。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.22 串行口方式2、3时序图第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 四、串行口波特率确定和初始化1.波特率计算 串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式波特率计算公式也不相同。具体如下:第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 2.波特率的选择 实际应用中,波特率要选择为标称值标称值,又由于TH1的初值是整数,为了减小波特率计算误差,晶振频率要选择为晶振频率要选择为11.0592MHZ。所以方式1和方式3波特率与TH1初值的对应基本上是确定的,如表6-3所示。波特率(bps)19.2K9600480024001200TH1初值FDHFDHFAHF4HE8HSMOD10000表6-3 方式1、3常用波特率与TH1的初值关系表注:此时,T1工作在方式2,晶振频率为11.0592MHZ。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 3.串行口的初始化 具体步骤如下:1)确定定时器1的工作方式(编程TMOD寄存器);2)计算定时器1的初值,装载TH1、TL1;3)启动定时器1(编程TCON中的TRl位);4)确定串行口控制(编程SCON寄存器)5)串行口在中断方式工作时,须开CPU的中断源(编程IE、IP寄存器)。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 6.3 AT89C51串行接口的应用与编程串行接口的应用与编程 一、利用单片机串行口扩展并行I/O口 串行口工作方式0主要用于扩展并行I/O口,扩展成并行输出口时,需要外接一片8位串行输入并行输出的同步移位寄存器74HC164。扩展成并行输入口时,需要外接一片或几片并行输入串行输出的同步移位寄存器74HC165。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 数据的串行输出或输入可采用中断方式,也可采用查询标志位TI、RI的方法,在移位初始化时,要进行相应的设置。例 利用串行口工作在方式0,外扩一片74HC164构成一个三位LED动态显示器,并将内部RAM显示单元65H、66H、67H中的内容输出显示。如图6.24所示。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.24 串行动态显示图 第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 主程序如下:ORG 0000HLJMP MAINORG 0030HMAIN:MOV SCON,#00H ;串行口初始化为方式0 SETB P1.2 ;消去最高显示位 SETB P1.1 MOV SBUF,65H ;传送最低显示位 JNB TI,$;传送没结束,等待第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 CLR P1.0 ;最低位显示 CLR TI ;清中断标志位 LCALL D10ms;调延时子程序,维持状态 SETB P1.0 ;消去最低显示位 MOV SBUF,66H ;传送中间显示位 JNB TI,$;等待传送结束 CLR P1.1 ;显示中间位 CLR TI ;清中断标志位第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 LCALL D10ms;调延时子程序,维持状态 SETB P1.1 ;消去中间显示位 MOV SBUF,67H;传送最高显示位 JNB TI,$;等待传送结束 CLR P1.2 ;显示最高显示位 CLR TI ;清中断标志位D10ms:MOV R5,#10D1ms:MOV R4,#249 DL:NOP NOP DJNZ R4,DL DJNZ R5,D1ms RETEND第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 二、单片机与单片机的通信 有两个单片机子系统,它们均能独立地完成主系统的某一功能,且这两个子系统具有一定的信息交换需求,这时就可以用串行通信的方式将两个子系统连接起来。1.硬件连接 若两个单片机系统距离近,只要将两个单片机系统的TXD和RXD引出线交叉相连即可;若两个单片机系统距离较远,要采用RS-232C接口进行连接,如图6.25所示。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.25 双机通信连接图第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 2.通信协议 采用方式1进行通信,每帧信息为10位,波特率为2400bps,T1作定时器用,工作在方式2,晶振频率用11.0592MHZ,查表6.3得TH1=TL1=0F4H,PCON寄存器的SMOD位为0。通信时,首先A机发送“E1H”请求传输数据。B机收到后回答一个”E2H”应答信号,表示同意接收。当A机收到应答信号”E2H“后,开始发送数据,每发送一个数据字节都要计算”校验和“,假定数据块长度为15个字节,起始地址为40H,数据块发送完毕后立即发送”校验和“。然后B机接收数据并转存到数据缓冲区,起始地址也为40H,每接收到一个数据字节便计算一次”校验和“,当收完数据块后,再接收A机发来的”校验和“,并将它与B机求出的校验和进行比较。若两者相等,说明接收正确,B机回答00H;若两者不等,说明接收不正确,B机回答FFH,请求重发。A机收到答复为00H则结束发送。若答复非0,则重新发送数据。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 3.程序及流程图A机程序:ORG 0000HLJMP AMAINORG 0030HAMAIN:MOV SP,#5FHMOV TMOD,#20H ;初始化定时器1为模式2MOV TH1,#0F4H;装载定时器初值MOV TLl,#0F4HMOV SCON,#50HMOV PCON,#00HSETB TR1;启动定时器CALL INIT;生成调试用数据DIALOG:MOV A,#0E1H;发联络信号CALL TXBYTECALL RXBYTE;接收B机返回信号CJNE A,#0E2H,DIALOG;B机允许发送?RETX:CALL TXDATACALL RXBYTECJNE A,#00H,DIALOG;B机接收正确?AJMP DIALOG第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 TXBYTE:MOV SBUF,A;发送子程序JNB TI,$CLR TIRETRXBYTE:JNB RI,$;接收子程序MOV A,SBUFCLR RIRETTXDATA:MOV R7,#15;发送数据块子程序MOV R0,#40HMOV R6,#00HLDATA:MOV A,R0CALL TXBYTEMOV A,R6ADD A,R0;求校验和MOV R6,A;保存校验和INC R0DJNZ R7,LDATA;数据块传送完否?第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 MOV A,R6;发送校验和CALL TXBYTERETINIT:MOV R0,#40H;测试数据MOV R7,#15MOV A,#30HL0:MOV R0,AINC AINC R0DJNZ R7,L0RETEND第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 B机程序:ORG 0000HLJMP BMAINORG 0030HBMAIN:MOV SP,#5FHMOV TMOD,#20H;初始化定时器1为模式2MOV TH1,#0F4H;装载定时器初值MOV TLl,#0F4HMOV SCON,#50HMOV PCON,#00HSETB TR1;启动定时器WDIALOG:CALL RXBYTECJNE A,#0E1H,WDIALOG;等待联络信号MOV A,#0E2HCALL TXBYTE;发送应答信号RERX:CALL RXDATA;接收数据块XRL A,R6;和校验正确否?JNZ NO;不正确转NOMOV A,#00H;正确CALL TXBYTEAJMP WDIALOGNO:MOV A,#0FFHCALL TXBYTEAJMP RERX第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 TXBYTE:MOV SBUF,A;发送子程序JNB TI,$CLR TIRETRXBYTE:JNB RI,$;接收子程序MOV A,SBUFCLR RIRETRXDATA:MOV R7,#15;接收数据块子程序MOV R0,#40HMOV R6,#00HLDATA:CALL RXBYTEMOV R0,AMOV A,R6ADD A,R0MOV R6,AINC R0DJNZ R7,LDATACALL RXBYTERETEND第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 图6.26 双机通信流程图第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 习题与思考题习题与思考题6.1 串行通信有几种基本通信方式?它们有什么区别?6.2 什么是串行通信的波特率?6.3 串行通信有哪几种制式?各有什么特点?6.4 简述AT89C51串行口控制寄存器SCON各位的定义。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 6.5 AT89C51单片机串行通信有几种工作方式?简述它们各自的特点。6.6 简述AT89C51单片机串行口在四种工作方式下波特率的产生方法。6.7 假设异步通信接口按方式1传送,每分钟传送6000个字符,则其波特率是多少?6.8 串行口工作在方式1和方式3时,其波特率由定时器T1产生,为什么常选T1工作在方式2?若已知fosc=6 MHz,需产生的波特率为2400 b/s,则如何计算T1的计数初值?实际产生的波特率是否有误差?第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 6.9 说明单片机多机通信的工作原理。6.10 试用查询法编写AT89C51串行口在方式2下的接收程序。设波特率为fosc/32,接收数据块长20H,接收后存在于片内RAM的40H开始单元,采用奇偶校验,放在接收数据的第九位上。6.11 设计一个发送程序,将芯片内RAM中的30H3FH单元数据从串行口输出,要求将串行口定义为方式3,TB8作奇偶校验位。第第9 9章章 串行接口及串行通信技术串行接口及串行通信技术 6.12 PC机与单片机间的串行通信为什么要进行电平转 换?6.13 RS-232C总线标准逻辑电平是怎样规定的?6.14 绘出用MAX232芯片实现两片