《单片机串行口课件.ppt》由会员分享,可在线阅读,更多相关《单片机串行口课件.ppt(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机串行口课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 目前串行通信在单片机双机、多机以及单片机目前串行通信在单片机双机、多机以及单片机与与PC机之间的通信等方面得到了广泛应用。机之间的通信等方面得到了广泛应用。图图8.1 并行通信示意图并行通信示意图 P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0P2.7RDWRRDWRCSD7D6D5D4D3D2D1D0825588C51图图8.2 串行通信示意图串行通信示意图 88C51外设TXD
2、TXDRXDRXD发送接收一、异步通信和同步通信一、异步通信和同步通信 串行通信按同步方式可分为串行通信按同步方式可分为异步通信异步通信和和同步通同步通信信两种基本通信方式。两种基本通信方式。1.同步通信同步通信(Synchronous Communication)同步通信是一种连续传送数据的通信方式,一同步通信是一种连续传送数据的通信方式,一次通信传送多个字符数据,称为一帧信息。数据传次通信传送多个字符数据,称为一帧信息。数据传输速率较高,通常可达输速率较高,通常可达56000bps或更高。其缺点是或更高。其缺点是要求发送时钟和接收时钟保持严格同步。要求发送时钟和接收时钟保持严格同步。同步同
3、步字符字符数数 据据字符字符1数数 据据字符字符2数据字数据字符符n-1数数 据据字符字符n校校 验验字字 符符(校验校验字符字符)图图8.3 8.3 同步通信数据传送格式同步通信数据传送格式 2.异步通信异步通信(Asynchronous Communication)在异步通信中,数据通常是以字符或字节为单位在异步通信中,数据通常是以字符或字节为单位组成数据帧进行传送的。收、发端各有一套彼此独组成数据帧进行传送的。收、发端各有一套彼此独立,互不同步的通信机构,由于收发数据的帧格式立,互不同步的通信机构,由于收发数据的帧格式相同,因此可以相互识别接收到的数据信息。相同,因此可以相互识别接收到的
4、数据信息。同步通信的数据帧格式如图同步通信的数据帧格式如图8.3所示。所示。D0 D1 D2 D3 D4D0 D1 D2 D3 D4 D5D5 D6D6 D7D7 0/1 1 1 1 1 0/1 1 1 1 1 D7 0/1 1 0D7 0/1 1 00 D0 D10 D0 D1第第n字符帧字符帧空闲位空闲位停停止止位位奇奇偶偶校校验验停停止止位位8位数据位数据8位数据位数据起起始始位位起起始始位位奇奇偶偶校校验验第第n-1字符字符帧帧第第n+1字符帧字符帧图图8.4 8.4 异步通信帧格式异步通信帧格式8位数据位数据 异步通信异步通信信息帧格式信息帧格式如图如图8.4所示。所示。(1)起始位
5、起始位:在没有数据传送时,通信线上处于逻辑在没有数据传送时,通信线上处于逻辑“1”状态状态。当发送端要发送。当发送端要发送1个字符数据时,首先发送个字符数据时,首先发送1个逻个逻辑辑“0”信号,这个低电平便是帧格式的起始位。信号,这个低电平便是帧格式的起始位。其作用是其作用是向接收端表示发送端开始发送一帧数据。向接收端表示发送端开始发送一帧数据。接收端检测到这个低电平后,就准备接收数据信号。接收端检测到这个低电平后,就准备接收数据信号。(2)数据位数据位:在起始位之后,发送端发出在起始位之后,发送端发出(或接收端接收或接收端接收)的是的是数据位,数据的位数没有严格的限制,数据位,数据的位数没有
6、严格的限制,58位均位均可。由低位到高位逐位传送。可。由低位到高位逐位传送。(3)奇偶校验位奇偶校验位:数据位发送完数据位发送完(接收完接收完)之后,可发送一位用来检之后,可发送一位用来检验数据在传送过程中是否出错的奇偶校验位。奇验数据在传送过程中是否出错的奇偶校验位。奇偶校验是收发双方预先约定好的差错检验方式之偶校验是收发双方预先约定好的差错检验方式之一。有时也可不用奇偶校验。一。有时也可不用奇偶校验。(4)停止位停止位:字符帧格式的最后部分是停止位,逻辑字符帧格式的最后部分是停止位,逻辑“1”电平电平有效,它可占有效,它可占1/2位、位、1位或位或2位(在串行通信时每位(在串行通信时每位的
7、传送时间是固定的)。停止位表示传送一帧信位的传送时间是固定的)。停止位表示传送一帧信息的结束,也为发送下一帧信息作好准备。息的结束,也为发送下一帧信息作好准备。二、串二、串行通信的波特率行通信的波特率 波特率波特率(Baud Rate)是串行通信中一个重要概念,是串行通信中一个重要概念,它是指传输数据的速率它是指传输数据的速率,亦称亦称比特率比特率。波特率的定。波特率的定义是每秒传输二进制数码的位数。如:波特率为义是每秒传输二进制数码的位数。如:波特率为1200bps是指每秒钟能传输是指每秒钟能传输1200位二进制数码。位二进制数码。波特率的倒数即为每位波特率的倒数即为每位数据传输时间数据传输
8、时间。例如:。例如:波特率为波特率为1200bps,每位的传输时间为:,每位的传输时间为:1 1)(833833.0 012001200msmsd dT T=波特率和字符帧的传输速率不同,若采用图波特率和字符帧的传输速率不同,若采用图8.4的数据帧格式,并且数据帧连续传送(无空闲的数据帧格式,并且数据帧连续传送(无空闲位),则实际的字符传输速率为位),则实际的字符传输速率为1200/11=108.08帧帧/秒。秒。三、三、串行通信的制式串行通信的制式 1.单工制式单工制式(Simplex)单工制式是指甲乙双方通信只能单工制式是指甲乙双方通信只能单向单向传送数传送数据。单工制式如图据。单工制式如
9、图8.5所示。所示。在串行通信中,数据是在两个站之间传送的。在串行通信中,数据是在两个站之间传送的。按照数据传送方向,串行通信可分为三种制式。按照数据传送方向,串行通信可分为三种制式。发送器A接收器B图图8.5 8.5 单工制式单工制式 2.半双工制式半双工制式(Half duplex)半双工制式是指通信双方都具有发送器和接半双工制式是指通信双方都具有发送器和接收器,双方既可发送也可接收,但接收和发送不收器,双方既可发送也可接收,但接收和发送不能同时进行,即发送时就不能接收,接收时就不能同时进行,即发送时就不能接收,接收时就不能发送。半双工制式如图能发送。半双工制式如图8.6所示。所示。发送接
10、收发送接收A端B端图图8.6 8.6 半双工制式半双工制式 3.全双工制式全双工制式(Full duplex)全双工制式是指通信双方均设有发送器和接全双工制式是指通信双方均设有发送器和接收器,并且将信道划分为收器,并且将信道划分为发送信道和接收信道发送信道和接收信道,两端数据允许同时收发,因此通信效率比前两种两端数据允许同时收发,因此通信效率比前两种高。全双工制式如图高。全双工制式如图8.7所示。所示。发送接收接收发送A端B端图图8.7 8.7 全双工制式全双工制式四、四、串行通信的校验串行通信的校验 串行通信的目的不只是传送数据信息,更重要串行通信的目的不只是传送数据信息,更重要的是应确保准
11、确无误地传送。的是应确保准确无误地传送。因此必须考虑在通信因此必须考虑在通信过程中对数据差错进行校验,校验方法有奇偶校验、过程中对数据差错进行校验,校验方法有奇偶校验、累加和校验以及循环冗余码校验等。累加和校验以及循环冗余码校验等。1.奇偶校验奇偶校验 奇偶校验的特点是按字符校验,即在发送每个奇偶校验的特点是按字符校验,即在发送每个字符数据之后都附加一位奇偶校验位字符数据之后都附加一位奇偶校验位(1或或0),当设置当设置为奇校验时,为奇校验时,数据中数据中1的个数与校验位的个数与校验位1的个数之和的个数之和应为奇数;反之则为偶校验。应为奇数;反之则为偶校验。收、发双方应具有一收、发双方应具有一
12、致的差错检验设置,当接收致的差错检验设置,当接收1帧字符时,对帧字符时,对1的个数的个数进行检验,若奇偶性进行检验,若奇偶性(收、发双方收、发双方)一致则说明传输一致则说明传输正确。奇偶校验只能检测到那种影响奇偶位数的错正确。奇偶校验只能检测到那种影响奇偶位数的错误,比较低级,一般只用在异步通信中。误,比较低级,一般只用在异步通信中。2.累加和校验累加和校验 累加和校验是指发送方将所发送的数据块求和累加和校验是指发送方将所发送的数据块求和,并将,并将“校验和校验和”附加到数据块末尾。接收方接收附加到数据块末尾。接收方接收数据时也是先对数据块求和,将数据时也是先对数据块求和,将所得结果所得结果与
13、发送方与发送方的的“校验和校验和”进行比较,若两者相同,表示传送正进行比较,若两者相同,表示传送正确,若不同则表示传送出了差错。确,若不同则表示传送出了差错。“校验和校验和”的加的加法运算可用逻辑加,也可用算术加。法运算可用逻辑加,也可用算术加。3.循环冗余码校验循环冗余码校验(CRC)循环冗余码校验的基本原理是循环冗余码校验的基本原理是将一个数据块将一个数据块看成一个位数很长的二进制数,然后用一个特定看成一个位数很长的二进制数,然后用一个特定的数去除它,将余数作校验码附在数据块之后一的数去除它,将余数作校验码附在数据块之后一起发送。起发送。接收端收到该数据块和校验码后,进行接收端收到该数据块
14、和校验码后,进行同样的运算来校验传送是否出错。目前同样的运算来校验传送是否出错。目前CRC已广已广泛用于数据存储和数据通信中,并在国际上形成泛用于数据存储和数据通信中,并在国际上形成规范,市面上已有不少现成的规范,市面上已有不少现成的CRC软件算法。软件算法。五、五、8051单片机单片机的串行接口的串行接口 8051内部有一个可编程全双工串行通信接口。内部有一个可编程全双工串行通信接口。该部件不仅能同时进行数据的发送和接收,也可该部件不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。作为一个同步移位寄存器使用。下面将对其内部结构、工作方式以及波特率下面将对其内部结构、工作方式以及
15、波特率进行介绍。进行介绍。1、串行接口的结构及寄存器、串行接口的结构及寄存器图图8.8 AT88C51串行口结构框图串行口结构框图发送SBUF(99H)接收SBUF(99H)时钟门电路发送控制器接收控制器输入移位寄存器内内部部总总线线1串行口中断TIRITXD(P3.1)RXD(P3.0)(1).串行数据缓冲器串行数据缓冲器SBUF SBUF是串行口缓冲寄存器,包括是串行口缓冲寄存器,包括发送寄存发送寄存器器和和接收寄存器接收寄存器,以便能以全双工方式进行通信。,以便能以全双工方式进行通信。此外,在接收寄存器之前还有移位寄存器,从而此外,在接收寄存器之前还有移位寄存器,从而构成了串行接收的双缓
16、冲结构,这样可以避免在构成了串行接收的双缓冲结构,这样可以避免在数据接收过程中出现帧重叠错误。发送数据时,数据接收过程中出现帧重叠错误。发送数据时,由于由于CPU是主动的,不会发生帧重叠错误,因此是主动的,不会发生帧重叠错误,因此发送电路不需要双重缓冲结构。发送电路不需要双重缓冲结构。在逻辑上,在逻辑上,SBUF只有一个,它既表示发送寄只有一个,它既表示发送寄存器,又表示接收寄存器,具有同一个单元地址存器,又表示接收寄存器,具有同一个单元地址99H。但在物理结构上,则有两个完全独立的。但在物理结构上,则有两个完全独立的SBUF,一个是发送缓冲寄存器,一个是发送缓冲寄存器SBUF,另一个是,另一
17、个是接收缓冲寄存器接收缓冲寄存器SBUF。如果。如果CPU写写SBUF,数据,数据就会被送入就会被送入发送寄存器发送寄存器准备发送;如果准备发送;如果CPU读读SBUF,则读入的数据一定来自,则读入的数据一定来自接收缓冲器接收缓冲器。即。即CPU对对SBUF的读写,实际上是分别访问上述两的读写,实际上是分别访问上述两个不同的寄存器。个不同的寄存器。(2).串行控制寄存器串行控制寄存器SCON 串行控制寄存器串行控制寄存器SCON用于设置串行口的工作用于设置串行口的工作方式、检测串行口的工作状态、控制发送与接收方式、检测串行口的工作状态、控制发送与接收的状态等。它是一个既可以的状态等。它是一个既
18、可以字节寻址字节寻址又可以又可以位寻位寻址址的的8位特殊功能寄存器。其格式如图位特殊功能寄存器。其格式如图8.8所示。所示。见表8-1图图8.8 串行口控制寄存器串行口控制寄存器SCONRITIRB8TB8RENSM2SM1SM0SCON98H99H9AH9BH9CH9DH9EH9FH位地址0:双机1:多机多机通信0:禁止1:允许接收控制发送数据第9位接收数据第9位发送中断标志接收中断标志 SM0 SM1:串行口工作方式选择位。其状态:串行口工作方式选择位。其状态组合所对应的工作方式如表组合所对应的工作方式如表8-1所示。所示。SM0 SM1 工作方式功 能说 明0 00同步移位寄存器输入/输
19、出,波特率固定为fosc/120 1110位异步收发,波特率可变(T1溢出率/n,n=32或16)1 0211位异步收发,波特率固定为fosc/n,n=64或32)1 1311位异步收发,波特率可变(T1溢出率/n,n=32或16)表表8-1 8-1 串行口工作方式串行口工作方式 SM2:多机通信控制器位。在方式:多机通信控制器位。在方式0中,中,SM2必须设成必须设成0。在方式。在方式1中,当处于接收状态时,若中,当处于接收状态时,若SM2=1,则只有接收到有效的停止位,则只有接收到有效的停止位“1”时,时,RI才能被激活成才能被激活成“1”(产生中断请求产生中断请求)。在方式。在方式2和方
20、式和方式3中,若中,若SM2=0,串行口以单机发送或接收,串行口以单机发送或接收方式工作,方式工作,TI和和RI以正常方式被激活并产生中断以正常方式被激活并产生中断请求;若请求;若SM2=1,RB8=1时,时,RI被激活并产生中被激活并产生中断请求。断请求。TB8:方式:方式2和方式和方式3中要发送的第中要发送的第9位数据。位数据。该该位由软件置位或复位。位由软件置位或复位。在方式在方式2和方式和方式3时,时,TB8是发送的第是发送的第9位数据。在多机通信中,以位数据。在多机通信中,以TB8位的位的状态表示主机发送的是地址还是数据:状态表示主机发送的是地址还是数据:TB8=1表表示地址,示地址
21、,TB8=0表示数据。表示数据。TB8还可用作奇偶校验还可用作奇偶校验位。位。REN:串行接受允许控制位。该位由软件置位或:串行接受允许控制位。该位由软件置位或复位。当复位。当REN=1,允许接收;当,允许接收;当REN=0,禁止接,禁止接收。收。TI:发送中断标志位。:发送中断标志位。TI=1,表示已结束一帧数,表示已结束一帧数据发送,可由软件据发送,可由软件查询查询TI位标志,也可以向位标志,也可以向CPU申申请中断。请中断。注意:注意:TI在任何工作方式下都必须由软件清在任何工作方式下都必须由软件清0。RB8:接收数据第:接收数据第9位。在方式位。在方式2和方式和方式3时,时,RB8存放
22、接收到的第存放接收到的第9位数据。位数据。RB8也可用作奇偶校也可用作奇偶校验位。在方式验位。在方式1中,若中,若SM2=0,则,则RB8是接收到的停是接收到的停止位。在方式止位。在方式0中,该位未用。中,该位未用。RI:接收中断标志位。:接收中断标志位。RI=1,表示一帧数据接收,表示一帧数据接收结束。可由软件结束。可由软件查询查询RI位标志,也可以向位标志,也可以向CPU申请申请中断。中断。注意:注意:RI在任何工作方式下也都必须由软件清在任何工作方式下也都必须由软件清0。在在8051中,串行发送中断中,串行发送中断TI和接收中断和接收中断RI的中的中断入口地址是同是断入口地址是同是002
23、3H,因此在中断程序中必须,因此在中断程序中必须由软件查询由软件查询TI和和RI的状态才能确定究竟是接收还是的状态才能确定究竟是接收还是发送中断,进而作出相应的处理。单片机复位时,发送中断,进而作出相应的处理。单片机复位时,SCON所有位均清所有位均清0。图图8.10 8.10 电源控制寄存器电源控制寄存器PCONPCON的格式的格式PCOND7D6D5D4D3D2D1D0位名称 SMODGF1 GF0PDIDL SMOD:串行口波特率倍增位。在工作方式:串行口波特率倍增位。在工作方式1工作方式工作方式3时,若时,若SMOD=1,则串行口波特率增,则串行口波特率增加一倍。若加一倍。若SMOD=
24、0,波特率不加倍。系统复位,波特率不加倍。系统复位时,时,SMOD=0。2.电源控制寄存器电源控制寄存器PCON六、串行口工作方式六、串行口工作方式 8051串行通信共有串行通信共有4种工作方式,它们分别是种工作方式,它们分别是方式方式0、方式、方式1、方式、方式2和方式和方式3,由串行控制寄存器,由串行控制寄存器SCON中的中的SM0 SM1决定,如表决定,如表8-1所示。所示。1.工作方式工作方式0 在方式在方式0下,串行口作为同步移位寄存器使用。下,串行口作为同步移位寄存器使用。此时此时SM2、RB8、TB8均应设置为均应设置为0,用来扩展并行,用来扩展并行输入输出口。输入输出口。(1)
25、发送:发送:TI=0时,时,执行执行“MOV SBUF,A”启动发启动发送,送,8位数据由低位到高位从位数据由低位到高位从RXD引脚送出,引脚送出,TXD发送同步脉冲发送同步脉冲。发送完后,由硬件置位。发送完后,由硬件置位TI。(2)接收:接收:RI=0,REN=1时时启动接收,数据从启动接收,数据从RXD输入,输入,TXD输出同步脉冲输出同步脉冲。8位数据接收完,位数据接收完,由硬件置位由硬件置位RI。可通过。可通过“MOV A,SBUF”读取数据。读取数据。方式方式0的波特率为的波特率为fosc/12,即一个机器周期发,即一个机器周期发送或接收一位数据。送或接收一位数据。2.工作方式工作方
26、式1 方式方式1是一帧是一帧10位位的异步串行通信方式,包括的异步串行通信方式,包括1个起始位个起始位(0),8个数据位个数据位和和一个停止位一个停止位(1),其,其帧格式如下:帧格式如下:起始位起始位0 0 D0D0 D1D1 D2D2 D3D3 D4D4 D5D5 D6D6 D7D7 停止位停止位1 1 图图8.11 8.11 方式方式1 1数据帧格式数据帧格式(1)数据发送数据发送 当当TI=0时,执行时,执行“MOV SBUF,A”指令后开指令后开始发送,始发送,由硬件自动加入起始位和停止位,构成由硬件自动加入起始位和停止位,构成一帧数据,然后由一帧数据,然后由TXD端串行输出。发送完
27、后,端串行输出。发送完后,TXD输出线维持在输出线维持在“1”状态下,并将状态下,并将SCON中中的的TI置置1,表示一帧数据发送完毕。表示一帧数据发送完毕。(2)数据接收数据接收 RI=0,REN=1时,接收电路采样时,接收电路采样RXD引脚,引脚,如出现由如出现由“1”变变“0”跳变,认为有数据正在送来。跳变,认为有数据正在送来。(3)波特率(波特率发生器用波特率(波特率发生器用T1来做,工作在来做,工作在方式方式2)波特率波特率=2=2SMODSMOD(T1(T1溢出率溢出率)/32)/32T1T1溢出率溢出率=1/T1=1/T1定时时间定时时间波特率波特率=32321212(2(28
28、8-T-T初初)2 2SMODSMODfoscfosc 对波特率需要说明的是,当串行口工作在方对波特率需要说明的是,当串行口工作在方式式1或方式或方式3(波特率(波特率 可变),且可变),且要求波特率按规要求波特率按规范取范取1200、2400、4800、9600时,若采用晶振时,若采用晶振12MHz和和6MHz,按上述公式算出的按上述公式算出的T1定时初值将定时初值将不是一个整数,因此会产生波特率误差而影响串行不是一个整数,因此会产生波特率误差而影响串行通信的同步性能。解决的方法只有调整单片机的晶通信的同步性能。解决的方法只有调整单片机的晶振频率振频率fosc,为此有一种频率为为此有一种频率
29、为11.0592MHz的的晶振,晶振,这样可使计算出的这样可使计算出的T1初值为整数。表初值为整数。表8-2列出了串列出了串行方式行方式1或方式或方式3在不同晶振时的常用波特率和误差。在不同晶振时的常用波特率和误差。表表8.2 常用波特率和误差常用波特率和误差 晶振频率晶振频率(MHZ)(MHZ)波特率波特率 (HZ)(HZ)SMODSMODT1T1方式方式2 2定时初值定时初值 实际实际波特率波特率 误差误差(%)(%)12.0012.00960096001 1F8HF8H882388237 712.0012.00480048000 0F8HF8H446044607 712.0012.002
30、40024000 0F3HF3H240424040.160.1612.0012.00120012000 0E6HE6H120212020.160.1611.059211.059219200192001 1FDHFDH19200192000 011.059211.0592960096000 0FDHFDH960096000 011.0589211.05892480048000 0EAHEAH480048000 011.0589211.05892240024000 0F4HF4H240024000 011.0589211.05892120012000 0E8HE8H120012000 03.工作方
31、式工作方式2和方式和方式3 工作方式工作方式2和方式和方式3都是都是11位异步位异步收发串行通信收发串行通信方式,两者的差异仅在波特率上有所不同。方式,两者的差异仅在波特率上有所不同。方式方式2 2:波特率:波特率=2=2SMODSMODfosc/64(SMOD=0fosc/64(SMOD=0或或1)1)方式方式3 3:(与方式与方式1 1相同相同)波特率波特率=32321212(2(28 8-T-T初初)2 2SMODSMODfoscfosc(1)数据数据发送发送 TI=0,发送数据前,先由软件设置,发送数据前,先由软件设置TB8,可,可使用如下指令完成:使用如下指令完成:SETB TB8
32、;将将TB8位置位置1 CLR TB8 ;将将TB8位置位置0 然后再向然后再向SBUF写入写入8位数据,并以此来启动串行位数据,并以此来启动串行发送。一帧数据发送完毕后,发送。一帧数据发送完毕后,CPU自动将自动将TI置置1,其过程与方式其过程与方式1相同。相同。(2)数据数据接收接收 REN=1,RI=0时,允许接收时,允许接收 若若SM2=0,接收到的,接收到的8位数据送位数据送SBUF,第,第9位数位数 据(无论据(无论0还是还是1)送)送RB8,RI置置1。若若SM2=1,接收到的第,接收到的第9位数据为位数据为0,数据无效,数据无效,不送不送SBUF;接收到的第;接收到的第9位数据
33、为位数据为1,数据送,数据送SBUF,第,第9位送位送RB8。第二节第二节 PC机与单片机与单片机间的串行通信机间的串行通信 近年来,在智能仪器仪表、数据采集、嵌入近年来,在智能仪器仪表、数据采集、嵌入式自动控制等场合,越来越普遍应用单片机作核式自动控制等场合,越来越普遍应用单片机作核心控制部件。但当需要处理较复杂数据或要对多心控制部件。但当需要处理较复杂数据或要对多个采集的数据进行综合处理以及需要进行集散控个采集的数据进行综合处理以及需要进行集散控制时,单片机的算术运算和逻辑运算能力都显得制时,单片机的算术运算和逻辑运算能力都显得不足,这时往往需要借助计算机系统。将单片机不足,这时往往需要借
34、助计算机系统。将单片机采集的数据通过串行口传送给采集的数据通过串行口传送给PC机,由机,由PC机高机高级语言或数据库语言对数据进行处理,或者实现级语言或数据库语言对数据进行处理,或者实现 PC机对远端单片机进行控制。因此,实现单片机对远端单片机进行控制。因此,实现单片机与机与PC机之间的远程通信更具有实际意义。机之间的远程通信更具有实际意义。单片机中的输入输出数据信号电平都是单片机中的输入输出数据信号电平都是TTLTTL电平,电平,这种电平采用正逻辑标准,这种电平采用正逻辑标准,TTL TTL电平标准电平标准输出输出 L L:0.8V 2.4V2.4V。输入输入 L L:1.2V 2.0V2.
35、0V PCPC机配置的串口是机配置的串口是RS-232CRS-232C接口,两者电气接口,两者电气特性不匹配,为了实现两者之间的通信,需要解特性不匹配,为了实现两者之间的通信,需要解决电平转换问题。决电平转换问题。一、一、RS-232C总线标准总线标准 RS-232CRS-232C原本是美国电子工业协会原本是美国电子工业协会(Electronic Industry Association(Electronic Industry Association,简称,简称EIA)EIA)的推荐标准,现已在全世界范围内广泛采用,的推荐标准,现已在全世界范围内广泛采用,RS-RS-232C232C是在异步串
36、行通信中应用最广的总线标准之是在异步串行通信中应用最广的总线标准之一。一。该总线标准定义了该总线标准定义了2525条信号线,使用条信号线,使用2525个引个引脚的连接器。各信号引脚的定义见表脚的连接器。各信号引脚的定义见表8.38.3。表表8.3 RS-232C8.3 RS-232C引脚信号定义引脚信号定义 引脚定义(助记符)引脚定义(助记符)1保护地(PG)14辅助通道发送数据(STXD)2发送数据(TXD)15发送时钟(TXC)3接收数据(RXD)16辅助通道接收数据(SRXD)4请求发送(RTS)17接收时钟(RXC)5清除发送(CTS)18未定义6数据准备好(DSR)18辅助通道请求发
37、送(SRTS)7信号地(GND)20数据终端准备就绪(DTR)8接收线路信号检测(DCD)21信号质量检测8未定义22音响指标(RI)10未定义23数据信号速率选择11未定义24发送时钟12辅助通道接收线路信号检测(SDCD)25未定义13辅助通道允许发送(SCTS)除信号定义外,除信号定义外,RS-232CRS-232C标准的其它规定还有:标准的其它规定还有:(1)RS-232C (1)RS-232C 是一种电压型总线标准,它采是一种电压型总线标准,它采用负逻辑标准:用负逻辑标准:逻辑逻辑1 1,-15V-15V-5V-5V;逻辑;逻辑0 0,+5V+5V+15V+15V,噪声容限为,噪声容
38、限为2V2V。(2)(2)标准数据传送速率有:标准数据传送速率有:5050,7575,110110,150150,300300,600600,12001200,24002400,48004800,96009600,19200bit/s19200bit/s。(3)(3)实际上实际上RS-232-CRS-232-C的的2525条引线中有许多是条引线中有许多是很少使用的,一般只使用很少使用的,一般只使用3 39 9条引线,常用条引线,常用3 3条接条接口线,即发送数据、接收数据和口线,即发送数据、接收数据和 信号地信号地 。目前。目前COM1 COM1 和和COM2COM2使用的是使用的是9 9针针
39、D D形连接器形连接器DB9DB9 。图图8.15 8.15 微机微机9 9针针D D形串口连接器形串口连接器 二、二、RS-232C接口电路接口电路 由于由于RS-232C信号电平信号电平(EIA)与与8051单片机信单片机信号电平号电平(TTL)不一致,因此,必须进行信号电平转不一致,因此,必须进行信号电平转换。实现这种电平转换的电路称为换。实现这种电平转换的电路称为RS-232C接口电接口电路。一般有两种形式:一种是采用运算放大器、晶路。一般有两种形式:一种是采用运算放大器、晶体管、光电隔离器等器件组成的电路来实现;另一体管、光电隔离器等器件组成的电路来实现;另一种是采用专门集成芯片种是
40、采用专门集成芯片(如如MC1488、MC1488、MAX232等等)来实现。下面介绍由专门集成芯片来实现。下面介绍由专门集成芯片MAX232构构成的接口电路。成的接口电路。1.MAX232 MAX232芯片是芯片是MAXIM公司生产的具有两公司生产的具有两路接收器和驱动器的路接收器和驱动器的IC芯片,其内部有一个电源芯片,其内部有一个电源电压变换器,可以将输入电压变换器,可以将输入+5V的电压变换成的电压变换成RS-232C输出电平所需的输出电平所需的12V电压。所以采用这种电压。所以采用这种芯片来实现接口电路特别方便,只需单一的芯片来实现接口电路特别方便,只需单一的+5V电源即可。电源即可。
41、MAX232芯片的引脚结构如图芯片的引脚结构如图8.16所示。其所示。其中管脚中管脚16(C1+、V+、C1-、C2+、C2-、V-)用用于电源电压转换,只要在外部接入相应的电解电于电源电压转换,只要在外部接入相应的电解电容即可;管脚容即可;管脚710和管脚和管脚1114构成两组构成两组TTL信信号电平与号电平与RS-232信号电平的转换电路,对应管脚信号电平的转换电路,对应管脚可直接与单片机串行口的可直接与单片机串行口的TTL电平引脚和电平引脚和PC机的机的RS-232电平引脚相连。具体连线如图电平引脚相连。具体连线如图8.17所示。所示。2.max232实现实现PC机与机与8051单片机串
42、行通信电路单片机串行通信电路 用用MAX232芯片实现芯片实现PC机与机与8051单片机串行单片机串行通信的典型电路如图通信的典型电路如图8.16所示。图中外接电解电容所示。图中外接电解电容C1、C2、C3、C4用于电源电压变换,可提高抗干用于电源电压变换,可提高抗干扰能力,它们可取相同容量的电容,一般取扰能力,它们可取相同容量的电容,一般取1.0F/16V。电容。电容C5的作用是对的作用是对+5V电源的噪声干电源的噪声干扰进行滤波,一般取扰进行滤波,一般取0.1F。选用两组中的任意一。选用两组中的任意一组电平转换电路实现串行通信,如图组电平转换电路实现串行通信,如图 中选中选Tlin、Rlo
43、ut分别与分别与8051的的TXD、RXD相连,相连,Tlout、Rlin分别与分别与PC机中机中R232接口的接口的RXD、TXD相连。这种发送与接收的对应关系不能接相连。这种发送与接收的对应关系不能接错,否则将不能正常工作。错,否则将不能正常工作。图图8.17 用用MAX232实现串行通信接口电路图实现串行通信接口电路图 4、RS-485总线接口总线接口 RS-232接口标准出现较早,难免会有不足之处:接口标准出现较早,难免会有不足之处:(1)接口的信号电平值较高,易损坏接口电路)接口的信号电平值较高,易损坏接口电路的芯片;(的芯片;(2)传输速率较低,在异步传输时,)传输速率较低,在异步
44、传输时,波特率最大波特率最大20kbps;(;(3)接口使用一根信号线)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰;(共地传输容易产生共模干扰;(4)传输距离有)传输距离有限,实际最大传输距离限,实际最大传输距离30m左右。左右。RS-485/422接口采用不同的方式:每个信号接口采用不同的方式:每个信号都采用双绞线传送,两条线间的电压差用于表示都采用双绞线传送,两条线间的电压差用于表示数字信号。例如,把双绞线中的一根标为数字信号。例如,把双绞线中的一根标为A(正)(正),另一根标为,另一根标为B(负),当(负
45、),当A为正电压(通常为为正电压(通常为+5V),),B为负电压时为负电压时(通常为通常为0),表示信号,表示信号1;反;反之,之,A为负电压,为负电压,B为正电压时表示信号为正电压时表示信号0。RS-485/422允许通信距离可达到允许通信距离可达到1.2km,实际上可达,实际上可达3km,采用合适的电压可达到,采用合适的电压可达到2.5Mbps的传输速的传输速率。率。RS-422与与RS-485采用相同的通信协议,但采用相同的通信协议,但有所不同。有所不同。RS-422通常作为通常作为RS-232通信的扩展,通信的扩展,它采用两对双绞线,数据可以同时双向传送(全它采用两对双绞线,数据可以同
46、时双向传送(全双工)。双工)。RS-485则采用一对双绞线,输入输出不则采用一对双绞线,输入输出不能同时进行(半双工)。能同时进行(半双工)。RS-485串行总线接口标准以差分平衡方式传串行总线接口标准以差分平衡方式传输信号,具有很强的抗共模干扰的能力。逻辑输信号,具有很强的抗共模干扰的能力。逻辑“1”以两线间的电压差为以两线间的电压差为+2V+6V表示;逻辑表示;逻辑“0”以两线间的电压差为以两线间的电压差为-2V-6V表示。接口表示。接口信号电平比信号电平比RS-232降低了,不容易损坏接口电路降低了,不容易损坏接口电路芯片。芯片。RS-485总线标准可采用总线标准可采用MAX485芯片实
47、现电芯片实现电平转换。平转换。MAX-485芯片引脚排列如图芯片引脚排列如图8.18所示。所示。R VCCRE BDE AT GNDMAX485 MAX485输入输入/输出信号不能同时进行(半双输出信号不能同时进行(半双工),其发送和接收功能的转换是由芯片的工),其发送和接收功能的转换是由芯片的RE和和DE端控制的。端控制的。RE=0时,允许接收;时,允许接收;RE=1时,接时,接收端收端R高阻。高阻。DE=1时,允许发送;时,允许发送;DE=0时,发时,发送端送端A和和B高阻。在单片机系统中常把高阻。在单片机系统中常把RE和和DE接接在一起用单片机的一个在一起用单片机的一个I/O线控制收发。线控制收发。ABRTRXDTXDP1.0RE DE图图8.18 MAX485引脚排列与连接引脚排列与连接