1、3:581第第第第第第8 8 8章章章章章章 串行口及应用串行口及应用串行口及应用串行口及应用串行口及应用串行口及应用 3:582内容内容串行通信基础知识串行通信基础知识8.180C51单片机的串行口单片机的串行口8.2串行口的应用串行口的应用 8.33:5838.1 串行通信基础知识串行通信基础知识8.1.1 计算机对外通信方式计算机对外通信方式计算机与计算机之间、计算机与外设之间的数据交换称为计算机与计算机之间、计算机与外设之间的数据交换称为通信。通信。计算机通信有两种基本方式:计算机通信有两种基本方式:并行通信和串行通信。并行通信和串行通信。数据的各位被同时传送的通信方法称为数据的各位被
2、同时传送的通信方法称为并行通信。并行通信。图图8-1 并行通信收发设备连接示意图并行通信收发设备连接示意图 图图8-2 并行通信传送时序图并行通信传送时序图并行通信的特点并行通信的特点是是控制简单,传输速度快控制简单,传输速度快。由于传输线较多,。由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。长距离传送时成本高且接收方的各位同时接收存在困难。3:584串行通信串行通信是将数据字节分成一位一位的形式在一条传输线上逐是将数据字节分成一位一位的形式在一条传输线上逐个地传送。个地传送。串行通信串行通信具有传输线少,长距离传送时成本低,抗干扰能力强具有传输线少,长距离传送时成本低,抗
3、干扰能力强等优点,对于单片机来说,其所占用的引脚资源少。但串行通等优点,对于单片机来说,其所占用的引脚资源少。但串行通信数据的传送控制比并行通信复杂。信数据的传送控制比并行通信复杂。图图8-3串行通信收发设备连接示意图串行通信收发设备连接示意图图图8-48-4串行通信传送时序图串行通信传送时序图3:5858.1.2 串行通信的基本概念串行通信的基本概念1.1.串行通信的方式串行通信的方式(1)异步通信异步通信异步通信异步通信是指通信的发送与接收设备使用各自的时钟控制是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送数据的发送和接收过程。为使双方的收发协
4、调,要求发送和接收设备的时钟尽可能一致。和接收设备的时钟尽可能一致。图图8-5 异步通信示意图异步通信示意图3:586 异步通信是以字符异步通信是以字符(构成的帧构成的帧)为单位进行传输,字符与为单位进行传输,字符与字符之间的间隙字符之间的间隙(时间间隔时间间隔)是任意的,但每个字符中的各位是任意的,但每个字符中的各位是以固定的时间传送的。是以固定的时间传送的。图图8-6 8-6 异步通信格式异步通信格式 为了实现异步传输字符的同步,采用的办法是使传送的为了实现异步传输字符的同步,采用的办法是使传送的每一个字符都以起始位每一个字符都以起始位“0”开始,以停止位开始,以停止位“1”结束。这结束。
5、这样,传送的每一个字符都用起始位来进行收发双方的同步。样,传送的每一个字符都用起始位来进行收发双方的同步。停止位和间隙作为时钟频率偏差的缓冲,即使双方时钟频停止位和间隙作为时钟频率偏差的缓冲,即使双方时钟频率略有偏差,总的数据流也不会因偏差的积累而导致数据率略有偏差,总的数据流也不会因偏差的积累而导致数据错位。错位。3:587图图8-6 8-6 异步通信格式异步通信格式 异步通信的每帧数据由异步通信的每帧数据由4部分组成:起始位部分组成:起始位(占占1位位)、字符代码数据位、字符代码数据位(占占58位位)、奇偶校验位、奇偶校验位(占占1位,也可以没有校验位位,也可以没有校验位)和停止位和停止位
6、(占占1或或2位位)。图图8-6中给出的是中给出的是7位数据位、位数据位、1位奇偶校验位和一位停止位,加上固位奇偶校验位和一位停止位,加上固定的定的1位起始位,共位起始位,共10位组成一个传输帧。传送时数据的低位在前,高位组成一个传输帧。传送时数据的低位在前,高位在后。字符之间允许有不定长度的空闲位。起始位位在后。字符之间允许有不定长度的空闲位。起始位“0”作为联络信作为联络信号,它告诉接收方传送的开始,接下来的是数据位和奇偶校验位、停号,它告诉接收方传送的开始,接下来的是数据位和奇偶校验位、停止位、止位、“1”表示一个字符的结束。表示一个字符的结束。异步通信的特点异步通信的特点是不要求收发双
7、方时钟的严格一致,实现容易,设备是不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加起止位、停止位,各帧之间还有间隔,开销较小,但每个字符要附加起止位、停止位,各帧之间还有间隔,因此传输效率不高。因此传输效率不高。3:588(2)同步通信同步通信同步通信同步通信时要建立发送方时钟对接收方时钟的直接控制,时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均使双方达到完全同步。此时,传输数据的位之间的距离均为为“位间隔位间隔”的整数倍,同时传送的字符间不留间隙,即的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。保
8、持位同步关系,也保持字符同步关系。(a)外同步外同步 (b)自同步自同步 图图8-7 同步通信示意图同步通信示意图3:5892.串行通信的传输方向串行通信的传输方向串行通信根据数据传输的方向及时间关系可分为单工、半串行通信根据数据传输的方向及时间关系可分为单工、半双工和全双工。传输方向示意图如图双工和全双工。传输方向示意图如图8-108-10所示。所示。(a)单工单工 (b)半双工半双工 (c)全双工全双工 图图8-10 串行通信依数据传输方向示意图串行通信依数据传输方向示意图(1)单工:单工:是指数据传输仅能沿一个方向,不能实现反向传输。是指数据传输仅能沿一个方向,不能实现反向传输。(2)半
9、双工:半双工:是指数据传输可以沿两个方向,但需要分时进行。是指数据传输可以沿两个方向,但需要分时进行。(3)全双工:全双工:是指数据可以同时进行双向传输。是指数据可以同时进行双向传输。3:58103.串行通信的错误校验串行通信的错误校验在通信过程中往往要对数据传送的正确与否进行校验。校验是保证准在通信过程中往往要对数据传送的正确与否进行校验。校验是保证准确无误传输数据的关键。常用的校验方法有奇偶校验、代码和校验及确无误传输数据的关键。常用的校验方法有奇偶校验、代码和校验及循环冗余码校验。循环冗余码校验。(1)奇偶校验奇偶校验在发送数据时,数据位尾随的在发送数据时,数据位尾随的1位为奇偶校验位位
10、为奇偶校验位(1或或0)。当约定为奇校。当约定为奇校验时,数据位与校验位中验时,数据位与校验位中“1”的个数之和应为奇数;当约定为偶校验时,的个数之和应为奇数;当约定为偶校验时,数据位与校验位中数据位与校验位中“1”的个数之和应为偶数。接收方与发送方的校验方式的个数之和应为偶数。接收方与发送方的校验方式应一致。接收字符时,对应一致。接收字符时,对“1”的个数进行校验,若发现收、发双方不一致,的个数进行校验,若发现收、发双方不一致,则说明数据传输过程中出现了差错。则说明数据传输过程中出现了差错。(2)代码和校验代码和校验代码和校验是发送方将所发数据块求和代码和校验是发送方将所发数据块求和(或各字
11、节异或或各字节异或),产生一个字节,产生一个字节的校验字符的校验字符(校验和校验和)附加到数据块末尾。接收方接收数据同时对数据块附加到数据块末尾。接收方接收数据同时对数据块(除除校验字节外校验字节外)求和求和(或各字节异或或各字节异或),将所得的结果与发送方的,将所得的结果与发送方的“校验和校验和”进进行比较,相符则无差错,否则即认为传送过程中出现了差错。行比较,相符则无差错,否则即认为传送过程中出现了差错。(3)循环冗余校验循环冗余校验这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完
12、整性校验等。这种校验方法纠错能常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。力强,广泛应用于同步通信中。3:58114.信号的调制与解调信号的调制与解调 计算机的通信要求传送的是计算机的通信要求传送的是数字信号数字信号。在远程数据通信。在远程数据通信时,通常要借用时,通常要借用公用电话网公用电话网。但是。但是电话网是为电话网是为3003003400Hz3400Hz的音频模拟信号设计的,的音频模拟信号设计的,对二进制数据的传输是不合适的。对二进制数据的传输是不合适的。为此,在发送时需要对二进制数据进行调制,使之适合为此,在发送时需要对二进制数据进行调
13、制,使之适合在电话网上传输。在接收时,需要进行解调,以将模拟信在电话网上传输。在接收时,需要进行解调,以将模拟信号还原成数字信号。号还原成数字信号。3:5812 利用利用调制器调制器(Modulator)把数字信号转换成模拟信号,然后把数字信号转换成模拟信号,然后送到通信线路上去,再由送到通信线路上去,再由解调器解调器(Demodulator)把从通信线路把从通信线路上收到的模拟信号转换成数字信号。上收到的模拟信号转换成数字信号。由于通信是双向的,由于通信是双向的,调制器和解调器调制器和解调器合并在一个装置中,这合并在一个装置中,这就是调制解调器就是调制解调器MODEM。如图。如图8-11所示
14、。所示。图图8-11 利用调制解调器通信的示意图利用调制解调器通信的示意图图中,调制器和解调器是进行数据通信所需的设备,因此把它叫做图中,调制器和解调器是进行数据通信所需的设备,因此把它叫做数据通信数据通信设备设备(Data Communications Equipment,简称,简称DCE)。计算机是。计算机是终端设备终端设备(Data Terminal Equipment,简称,简称DTE),通信线路是电话线,也可以是专用通信线路是电话线,也可以是专用线。线。3:58135.波特率(波特率(Baud Rade)在异步通信中,发送方和接收方必须保持相同的波特率才在异步通信中,发送方和接收方必
15、须保持相同的波特率才能实现正确的数据传送。能实现正确的数据传送。波特率是指单位时间内传送的信息量,即每秒钟传送的二波特率是指单位时间内传送的信息量,即每秒钟传送的二进制位数(也称为比特率),单位是进制位数(也称为比特率),单位是bps,即位,即位/秒。秒。波特率越高,数据传输速度越快,但和字符的实际传输速波特率越高,数据传输速度越快,但和字符的实际传输速率不同。字符的传输速率是指每秒钟内所传输字符帧数,和率不同。字符的传输速率是指每秒钟内所传输字符帧数,和字符格式有关。字符格式有关。常用的标准波特率是:常用的标准波特率是:110波特、波特、300波特、波特、600波特、波特、1200波特、波特
16、、2400波特、波特、4800波特、波特、9600波特和波特和19200波特等。波特等。例如,在异步通信中使用例如,在异步通信中使用1位起始位,位起始位,8位数据位,无奇偶位数据位,无奇偶校验位,校验位,1位停止位,即一帧数据长度位位停止位,即一帧数据长度位10bit,如果要求数据,如果要求数据传送的速率是传送的速率是1秒送秒送120帧字符,则传送波特率为帧字符,则传送波特率为1200波特。波特。3:58146.6.串行通信的协议串行通信的协议 通信协议是指单片机之间进行信息传输时的一些约定,约通信协议是指单片机之间进行信息传输时的一些约定,约定的内容包括定的内容包括数据格式数据格式、同步方式
17、、波特率、校验方式同步方式、波特率、校验方式等。等。为了保证计算机之间能够准确、可靠地通信,相互之间必须为了保证计算机之间能够准确、可靠地通信,相互之间必须遵循统一的协议,在通信之前一定要设置好。遵循统一的协议,在通信之前一定要设置好。3:58158.1.3串行通信接口标准串行通信接口标准 从本质说,从本质说,通信通信是是CPU与外部设备间交换信息的一种方式。与外部设备间交换信息的一种方式。所有的所有的串行通信接口串行通信接口电路都是以并行数据形式与电路都是以并行数据形式与CPU连接、连接、而以串行数据形式与外部设备进行数据传送。而以串行数据形式与外部设备进行数据传送。它们的基本功能都是从外部
18、设备接收串行数据,转换为并它们的基本功能都是从外部设备接收串行数据,转换为并行数据后传送给行数据后传送给CPU;或从;或从CPU接收并行数据,转换成串行接收并行数据,转换成串行数据后输出给外部设备。数据后输出给外部设备。能够实现异步通信的硬件电路称为能够实现异步通信的硬件电路称为通用异步接收器通用异步接收器/发送器发送器(Universal Asynchronous Receive/Transmitter,简称,简称UART)。能够实现同步通信的硬件电路称为能够实现同步通信的硬件电路称为通用同步接收器通用同步接收器/发送器发送器(Universal Synchronous Receive/Tr
19、ansmitter,简称,简称USRT)。3:5816所谓所谓接口标准接口标准,就是,就是明确的定义若干条信号线,明确的定义若干条信号线,使接口电路使接口电路标准化、通用化。标准化、通用化。采用标准接口,可以方便地把计算机、外部设备和测量仪器采用标准接口,可以方便地把计算机、外部设备和测量仪器等有机的联系起来,并实现其间的通信。等有机的联系起来,并实现其间的通信。在单片机控制系统中,常用的串行通信接口标准有:在单片机控制系统中,常用的串行通信接口标准有:RS-232C、RS-422A、RS-485等总线接口标准。等总线接口标准。3:58171RS-232C总线总线 RS-232C标准(协议)的
20、全称是标准(协议)的全称是EIA-RS-232C标准,其中标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,代表美国电子工业协会,RS(Recommended Standard)代表推荐标准,代表推荐标准,232是标识号是标识号,C代表代表RS232的最早一次修改(的最早一次修改(1969)。)。1969年修订为年修订为RS-232C,1987年修订为年修订为EIA-232D,1991年修年修订为订为EIA-232E,1997年又修订为年又修订为EIA-232E。由于修改的不多,。由于修改的不多,所以人们习惯于早期的名字所以人们习惯于早期的
21、名字“RS-232C”。RS-232C定义了定义了数据终端设备数据终端设备(DTE)与与数据通信设备数据通信设备(DCE)之间的物理接口标准。接口标准包括之间的物理接口标准。接口标准包括机械特性机械特性、功能特性功能特性和和电气特性电气特性几方面内容。几方面内容。3:5818(1)机械特性机械特性 RS-232C接口规定使用接口规定使用25针连接器,连接器的尺寸及每个针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。插针的排列位置都有明确的定义。一般的应用中并不一定用到一般的应用中并不一定用到RS-232C标准的全部信号线,所标准的全部信号线,所以在实际应用中常常使用以在实际应用中常常
22、使用9针连接器替代针连接器替代25针连接器。针连接器。计算机的计算机的COM1和和COM2使用的是使用的是9针连接器针连接器。连接器引脚定义如图连接器引脚定义如图8-12所示。图中所示为阳头定义,通所示。图中所示为阳头定义,通常用于计算机侧,对应的阴头用于连接线侧。常用于计算机侧,对应的阴头用于连接线侧。图图8-12 DB-25(阳头阳头)和和DB-9(阳头阳头)连接器定义连接器定义3:5819(2)功能特性功能特性 RS-232C接口的主要信号线的功能定义如表接口的主要信号线的功能定义如表8-1所示。所示。表表8-1 RS-232C接口的主要信号线的功能定义接口的主要信号线的功能定义3:58
23、20(3)电气特性电气特性 RS-232C采用采用负逻辑电平负逻辑电平,规定,规定逻辑逻辑1为为DC-3V-15V,逻辑逻辑0为为DC+3V+15V。-3 V+3V为过渡区,不作定义。为过渡区,不作定义。注意:注意:RS-232C的逻辑电平与通常的的逻辑电平与通常的TTL和和MOS电平不兼容。电平不兼容。为了实现与为了实现与TTL或或MOS电路的连接,要外加电平转换电路。电路的连接,要外加电平转换电路。RS-232C发送方和接收方之间的信号线采用多芯信号线,要发送方和接收方之间的信号线采用多芯信号线,要求多芯信号线的求多芯信号线的总负载电容不能超过总负载电容不能超过2 500pF。通常,通常,
24、RS-232C的传输距离为几十米,的传输距离为几十米,传输速率小于传输速率小于20Kbps。3:5821(4)过程特性过程特性 过程特性过程特性规定了信号之间的时序关系,以便正确地接收和发送规定了信号之间的时序关系,以便正确地接收和发送数据。数据。如果通信双方均具备如果通信双方均具备RS-232C接口,则二者可以直接连接,不接口,则二者可以直接连接,不必考虑电平转换问题。必考虑电平转换问题。但是对于单片机与计算机通过但是对于单片机与计算机通过RS-232C的连接,必须考虑电平转的连接,必须考虑电平转换问题,因为换问题,因为80C51系列单片机串行口不是标准系列单片机串行口不是标准RS-232C
25、接口。接口。3:5822图图8-13 远程远程RS-232C通信连接方式通信连接方式图图8-14 近程近程RS-232C通信连接方式通信连接方式3:5823(5)RS-232C电平与电平与TTL电平转换驱动电路电平转换驱动电路 80C51单片机串行口与单片机串行口与PC机的机的RS-232C接口不能直接对接,必须进行电平转接口不能直接对接,必须进行电平转换,常见的换,常见的TTL到到RS-232C的电平转换器有的电平转换器有MC1488、MC1489和和MAX232等等芯片。芯片。MC1488输入为输入为TTL电平,输出为电平,输出为RS232电平;电平;MC1489输入为输入为RS-232电
26、平,输出为电平,输出为TTL电平。电平。MC1488的供电电压为的供电电压为12V,MC 1489的供电电压为的供电电压为+5V。MC1488和和MC 1489的逻辑功能如图的逻辑功能如图8-15所示。所示。图图8-15 MC 1488和和MC1489的逻辑功能的逻辑功能3:5824MC 1488和和MC 1489与与RS-232电平转换如图电平转换如图8-16所示。所示。图图8-16 TTL与与RS-232C电平转换电路电平转换电路3:5825 近来一些系统中,愈来愈多地采用了近来一些系统中,愈来愈多地采用了自升压电平转换电路。自升压电平转换电路。各厂商生产的此类各厂商生产的此类芯片虽然不同
27、,但原理类似,并可代换。其主要功能是在单芯片虽然不同,但原理类似,并可代换。其主要功能是在单+5V电源下,有电源下,有TTL信信号输入到号输入到RS-232C输出的功能,也有输出的功能,也有RS-232C输入到输入到TTL输出的功能。输出的功能。如如RS-232C双工发送器双工发送器/接收器接口电路接收器接口电路MAX232,它能满足,它能满足RS-232C的电气规的电气规范,且仅需要范,且仅需要+5V电源,内置电子泵电压转换器将电源,内置电子泵电压转换器将+5V转换成转换成-10V+10V。该芯片。该芯片与与TTL/CMOS电平兼容,片内有电平兼容,片内有2个发送器,个发送器,2个接收器,使
28、用比较方便。个接收器,使用比较方便。MAX232芯片封装如图芯片封装如图8-17所示,采用所示,采用MAX232芯片实现芯片实现TTL电平和电平和RS232电平转换的电路电平转换的电路如图如图8-18所示。所示。图图8-17 MAX232A封装和封装和TTL电平电平 图图8-18 TTL电平和电平和RS232电平转换的电路电平转换的电路3:5826(6)采用采用RS-232C接口存在的问题接口存在的问题 1)接口的信号电平值较高,接口的信号电平值较高,易损坏接口电路的芯片,易损坏接口电路的芯片,又因为又因为与与TTL电平不兼容,故电平不兼容,故需使用电平转换电路方能与需使用电平转换电路方能与T
29、TL电路连接;电路连接;2)传输速率较低,传输速率较低,在异步传输时,波特率为在异步传输时,波特率为20kbps;3)接口使用一根信号线和一根信号返回线而构成共地的传输接口使用一根信号线和一根信号返回线而构成共地的传输形式,形式,这种共地传输容易产生共模干扰,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱,所以抗噪声干扰性弱,为了提高信噪比,为了提高信噪比,RS-232C总线标准不得不采用比较大的电压摆总线标准不得不采用比较大的电压摆幅。幅。4)传输距离有限,传输距离有限,最大传输距离标准值为最大传输距离标准值为15m,实际上也只,实际上也只能在能在50m左右。左右。3:58272.RS-4
30、22A接口接口串行通信标准串行通信标准RS-422A是是平衡型电压数字接口电路的电气标准平衡型电压数字接口电路的电气标准。图图8-19 RS-422A平衡驱动差分接收电路平衡驱动差分接收电路 RS-422A电路由电路由发送器、平衡连接电缆、电缆终端负载、接收器发送器、平衡连接电缆、电缆终端负载、接收器等部分组成。电等部分组成。电路中规定只许有一个发送器,可有多个接收器。路中规定只许有一个发送器,可有多个接收器。RS-422A与与RS-232C的主要区别是,的主要区别是,收发双方的信号地不再共用。收发双方的信号地不再共用。另外,每个方另外,每个方向用于传输数据的是两条平衡导线。向用于传输数据的是
31、两条平衡导线。所谓所谓“平衡平衡”,是指输出驱动器为双端平衡驱动器。如果其中一条线为逻辑,是指输出驱动器为双端平衡驱动器。如果其中一条线为逻辑“1”状态,另一条线就为逻辑状态,另一条线就为逻辑“0”,比采用单端不平衡驱动对电压的放大倍数大一倍。,比采用单端不平衡驱动对电压的放大倍数大一倍。驱动器输出允许范围是驱动器输出允许范围是26V。3:5828 差分电路差分电路能从地线干扰中拾取有效信号,差分接收器可以分辨能从地线干扰中拾取有效信号,差分接收器可以分辨200mV以上的电位差。若传输过程中混入了干扰和噪声,由于差以上的电位差。若传输过程中混入了干扰和噪声,由于差分放大器的作用,可使干扰和噪声
32、相互抵消。因此可以避免或大分放大器的作用,可使干扰和噪声相互抵消。因此可以避免或大大减弱地线干扰和电磁干扰的影响。大减弱地线干扰和电磁干扰的影响。RS-422A与与RS-232C相比,信号传输距离远,速度快。传输距相比,信号传输距离远,速度快。传输距离为离为120m时,传输速率可达时,传输速率可达l 0Mbps。降低传输速率。降低传输速率(90Kbps)时,时,传输距离可达传输距离可达1200m。RS-422A与与TTL电平转换常用的芯片为传输线驱动器电平转换常用的芯片为传输线驱动器SN75174或或MC3487和传输线接收器和传输线接收器SN75175或或MC3486。3:58293.RS-
33、485接口接口RS-485是是RS-422A的变型:的变型:RS-422A用于全双工,而用于全双工,而RS-485用用于半双工。于半双工。RS-485接口示意图如图接口示意图如图8-20所示。所示。RS-485是一种多发送器标准,在通信线路上最多可以使用是一种多发送器标准,在通信线路上最多可以使用32对差分驱动器接收器。对差分驱动器接收器。如果在一个网络中连接的设备超过如果在一个网络中连接的设备超过32个,还可以使用中间继电器。个,还可以使用中间继电器。RS-485的信号传输采用两线间的电压来表示逻辑的信号传输采用两线间的电压来表示逻辑1和逻辑和逻辑0。由于发送方需要两。由于发送方需要两根传输
34、线,接收方也需要两根传输线。传输线采用差动信道,所以它的干扰抑制性根传输线,接收方也需要两根传输线。传输线采用差动信道,所以它的干扰抑制性极好。又因为它的阻抗低,无接地问题,所以传输距离可达极好。又因为它的阻抗低,无接地问题,所以传输距离可达1 200m,传输速率可达,传输速率可达1Mbps。图图8-20 RS-485接口示意图接口示意图3:5830 RS-485是一点对多点的通信接口,是一点对多点的通信接口,一般采用双绞线的结构。一般采用双绞线的结构。普通的普通的PC机一般不带机一般不带RS485接口,因此要使用接口,因此要使用RS-232C/RS-485转换器。转换器。对于单片机可以通过芯
35、片对于单片机可以通过芯片 MAX485来完成来完成TTL/RS-485的电平的电平转换。转换。在计算机和单片机组成的在计算机和单片机组成的RS-485通信系统中,下位机由单片通信系统中,下位机由单片机系统组成,主要完成工业现场信号的采集和控制。机系统组成,主要完成工业现场信号的采集和控制。上位机为普通的上位机为普通的PC机,负责监视下位机的运行状态,并对其机,负责监视下位机的运行状态,并对其状态信息进行集中处理,以图文方式显示下位机的工作状态以及状态信息进行集中处理,以图文方式显示下位机的工作状态以及工业现场被控设备的工作状况。系统中各节点工业现场被控设备的工作状况。系统中各节点(包括上位机包
36、括上位机)的识的识别是通过设置不同的站地址来实现的,广泛使用于集散控制系统别是通过设置不同的站地址来实现的,广泛使用于集散控制系统中。中。3:5831图图8-21 MAX485封装封装 图图8-22 TTL电平和电平和RS-485电平的转换电路电平的转换电路 RS-485采用一对双绞线,输入采用一对双绞线,输入/输出信号不能同时进行输出信号不能同时进行(半双工半双工),MAX485芯片的发送和接收功能转换是由芯片的和芯片的发送和接收功能转换是由芯片的和DE端控制的。端控制的。RE=0时,允许接收;时,允许接收;RE =1时,接收端时,接收端R高阻。高阻。DE=1时,允许发送;时,允许发送;DE
37、=0时,发送端时,发送端A和和B高阻。高阻。在单片机系统中常把和在单片机系统中常把和DE接在一起用单片机的一个接在一起用单片机的一个I/O线控制收发。线控制收发。图图8-22中当中当P1.0=1时经反相器为时经反相器为0,MAX485处于接收状态,当处于接收状态,当P1.0=0时经反时经反相器为相器为1,MAX485处于发送状态。由于单片机各端口复位后处于高电平状态,处于发送状态。由于单片机各端口复位后处于高电平状态,图图8-22中中P1.0=1经反相器保证了上电时经反相器保证了上电时MAX485处于接收状态。处于接收状态。RS-232C串口对单片机串口接收和发送是透明的,无须控制。串口对单片
38、机串口接收和发送是透明的,无须控制。RS-485串口需由串口需由单片机控制收发。图单片机控制收发。图8-22中发送数据时中发送数据时P1.0=0,接收数据时,接收数据时P1.0=1。3:5832 MCS-51单片机内部有单片机内部有1个个功能很强的功能很强的全双工串行口全双工串行口,可同时发送和接收数据。它有可同时发送和接收数据。它有4种工作方式种工作方式,可供不同场,可供不同场合使用。合使用。波特率由软件设置波特率由软件设置,通过片内的定时,通过片内的定时/计数器产生。计数器产生。接收、发送均可工作在查询方式或中断方式,使用十分灵接收、发送均可工作在查询方式或中断方式,使用十分灵活。活。8.
39、2 80C51单片机的串行口单片机的串行口 3:5833 串行口内部结构如上图,串行口内部结构如上图,两个物理上独立的接收和发送缓冲两个物理上独立的接收和发送缓冲器,器,可同时收、发数据。可同时收、发数据。两个缓冲器共用一个特殊功能寄存器字节地址:两个缓冲器共用一个特殊功能寄存器字节地址:SBUF(99H)。)。控制寄存器共两个:控制寄存器共两个:特殊功能寄存器特殊功能寄存器SCON和和PCON。图图8-23 80C51单片机串行口的编程结构单片机串行口的编程结构3:5834 SBUF是两个在物理上独立的接收、发送缓冲器,可同是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。时发送、
40、接收数据。两个缓冲器只用一个字节地址两个缓冲器只用一个字节地址99H,可通过指令对,可通过指令对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。冲器的操作。CPU写写SBUF,就是修改发送缓冲器;,就是修改发送缓冲器;读读SBUF,就是读接收缓冲器。,就是读接收缓冲器。串行口对外也有两条独立的串行口对外也有两条独立的收发信号线收发信号线RXD(P3.0)和和TXD(P3.1),因此可以同时发送、,因此可以同时发送、接收数据,实现全双工传送。接收数据,实现全双工传送。串行口数据缓冲器串行口数据缓冲器SBUF3:5835串行口控制寄存器串
41、行口控制寄存器SCONSCON寄存器用寄存器用来控制串行口的工作方式与状态,它可以来控制串行口的工作方式与状态,它可以位寻址。在复位时所有位被清位寻址。在复位时所有位被清0,字节地址为,字节地址为98H。SCON的格式为的格式为:3:5836SM0、SM1串行口串行口4种工作方式的选择位种工作方式的选择位 SM0 SM1 方式方式 功功 能能 说说 明明 0 0 0 移位寄存器方式(用于扩展并行移位寄存器方式(用于扩展并行I/O口)口)0 1 1 8位异步收发,波特率可变(由定时器控制)位异步收发,波特率可变(由定时器控制)1 0 2 9位异步收发,波特率为位异步收发,波特率为fosc/64或
42、或fosc/32 1 1 3 9位异步收发,波特率可变(由定时器控制)位异步收发,波特率可变(由定时器控制)3:5837SM2 多机通信控制位多机通信控制位 用于方式用于方式2或方式或方式3中。中。当串行口以当串行口以方式方式2或方式或方式3接收接收时,时,如果如果SM2=1,只有当接收到的第只有当接收到的第9位数据(位数据(RB8)为为“1”时,才将接收到的前时,才将接收到的前8位数据送入位数据送入SBUF,并置并置“1”RI,产生,产生中断请求;当接收到的第中断请求;当接收到的第9位数据(位数据(RB8)为为“0”时,则将接时,则将接收到的前收到的前8位数据丢弃。位数据丢弃。如果如果SM2
43、=0,则不论第,则不论第9位数据是位数据是“1”还是还是“0”,都将前,都将前8位数据送入位数据送入SBUF中,并置中,并置“1”RI,产生中断请求。,产生中断请求。在在方式方式1时,如果时,如果SM2=1,则只有收到停止位时才会激活,则只有收到停止位时才会激活RI。在在方式方式0时,时,SM2必须为必须为0。3:5838 REN允许串行接收位允许串行接收位 由软件置由软件置“1”或清或清“0”。REN=1 允许串行口接收数据。允许串行口接收数据。REN=0 禁止串行口接收数据。禁止串行口接收数据。TB8发送的第发送的第9位数据位数据 方式方式2和和3时,时,TB8是要发送的第是要发送的第9位
44、数据,可作为位数据,可作为奇偶校验位奇偶校验位使用,使用,也可作为也可作为地址帧地址帧或或数据帧数据帧的标志。的标志。=1为地址帧,为地址帧,=0为数据帧为数据帧 RB8接收到的第接收到的第9位数据位数据 方式方式2和和3时,时,RB8存放接收到的第存放接收到的第9位数据。在方式位数据。在方式1,如果,如果SM2=0,RB8是接收到的停止位。在方式是接收到的停止位。在方式0,不使用,不使用RB8。3:5839 TI发送中断标志位发送中断标志位 串行完一帧信息,由硬件置串行完一帧信息,由硬件置“1”,TI必须由软件清必须由软件清“0”。RI接收中断标志位接收中断标志位 方式方式0时时,接收完第,
45、接收完第8位数据时,位数据时,RI由硬件置由硬件置1。其它工作方式其它工作方式,串行接收到停止位时,该位置,串行接收到停止位时,该位置“1”。RI=1,表示一帧数,表示一帧数据接收完毕,并申请中断,据接收完毕,并申请中断,CPU从接收从接收SBUF取走数据。该位状态也可取走数据。该位状态也可软件查询。软件查询。RI必须由软件清必须由软件清“0”。3:5840PCON单元地址为单元地址为97H,不能位寻址。其内容如下:,不能位寻址。其内容如下:SMODGF1GF0PDIDL D7 D6 D5 D4 D3 D2 D1 D0 PCON 87H 最高位最高位SMOD为串行口波特率选择位,为串行口波特率
46、选择位,当当SMOD=1时,时,方式方式1、2、3的波特率加倍。的波特率加倍。电源控制寄存器电源控制寄存器PCON3:58418.2.2 串行口的工作方式串行口的工作方式 80C51单片机的串行口有单片机的串行口有4种工作方式,分别是方式种工作方式,分别是方式0、方式、方式1、方式方式2和方式和方式3。这些工作方式由。这些工作方式由SCON中的中的SM0、SMl两位编两位编码决定。码决定。3:5842 1.方式方式0 同步移位寄存器输入同步移位寄存器输入/输出方式输出方式,常用于外接移位寄存器,常用于外接移位寄存器,以扩展并行以扩展并行I/O口。口。8位数据为一帧,不设起始位和停止位,先发送或
47、接收最低位数据为一帧,不设起始位和停止位,先发送或接收最低位。位。波特率固定为波特率固定为fosc/12。帧格式如下:。帧格式如下:图图8-24 方式方式0帧格式帧格式3:58431方式方式0发送发送 当当CPU执行一条将数据写入发送缓冲器执行一条将数据写入发送缓冲器SBUF的指令时,产的指令时,产生一个正脉冲,串行口即把生一个正脉冲,串行口即把SBUF中的中的8位数据以位数据以fosc/12的固的固定波特率从定波特率从RXD引脚串行输出引脚串行输出,低位在先,低位在先,TXD引脚输出同引脚输出同步移位脉冲步移位脉冲,发送完,发送完8位数据置位数据置“1”中断标志位中断标志位TI。时序如图时序
48、如图8-25所示。所示。图图 8-25 方式方式0发送时序发送时序3:5844串行口扩展并行输出口时,要有串行口扩展并行输出口时,要有“串入并出串入并出”的移位寄存器配合的移位寄存器配合(如如74HC164或或CD4094)。74HC164芯片引脚如图芯片引脚如图8-26(a)所示。所示。74HC164芯片各引脚功能如下:芯片各引脚功能如下:Q0Q7为并行输出引脚;为并行输出引脚;DSA、DSB为串行输入引脚;为串行输入引脚;CR为清为清0引脚,低电平时,使引脚,低电平时,使74HC 164输出清输出清0;CP为时钟脉冲输入引脚,在为时钟脉冲输入引脚,在CP脉冲的上升沿作用下实现移位。在脉冲的
49、上升沿作用下实现移位。在CP=0,CR=1时时74HC164保持原来数据状态不变。保持原来数据状态不变。(a)8位串入位串入/并出移位寄存器并出移位寄存器74HC164 (b)串行口与串行口与74HC164配合配合图图8-26 74HC164及其与单片机串行口的配合及其与单片机串行口的配合3:5845例例8-1 单片机与单片机与74HC164的电路连接如图的电路连接如图8-27所示,在所示,在74HC164的的并行输出引脚接了并行输出引脚接了8只发光二极管,要求利用只发光二极管,要求利用74HC164的串入的串入并出功能,将发光二极管依次轮流点亮,并不断循环。试编程。并出功能,将发光二极管依次
50、轮流点亮,并不断循环。试编程。图图8-27 例例8-1电路连接图电路连接图 3:5846解:解:分析:将串行口设置为方式分析:将串行口设置为方式0(SCON=0 x00),利用移位寄存,利用移位寄存器实现串口数据发送,数据发送通过写器实现串口数据发送,数据发送通过写SBUF寄存器完成,寄存器完成,写入写入SBUF的的8位数据通过位数据通过RXD逐位发送,移位脉冲通过逐位发送,移位脉冲通过TXD发送,这些工作全部由硬件完成,而且发送完毕后,硬件会发送,这些工作全部由硬件完成,而且发送完毕后,硬件会自动将自动将TI置位,因此,在设置好工作模式后,将待发送的字置位,因此,在设置好工作模式后,将待发送