logo资料库

第8章串行口通信技术.doc

第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
资料共23页,剩余部分请下载后查看
单片机应用技术 第 8 章 串行口通信技术 第 8 章 串行口通信技术 MCS-51 内部除含有 4 个并行 I/O 接口外,还有一个串行通信 I/O 口,通过该串行口可 以实现与其他计算机系统的串行通信。本章通过实训完成一个串行通信实例,在介绍关于串 行通信的基础知识后,详细论述 MCS-51 的串行口及其通信应用。 实训 8 单片机之间的双机通信 1. 实训目的 (1) 复习掌握定时器的功能和编程使用。 (2) 理解串行通信与并行通信的两种方式。 (3) 掌握串行通信的重要指标:字符帧和波特率。 (4)初步了解 MCS-51 单片机串行口的使用方法。 2. 实训设备与器件 实训设备:单片机开发系统、微机。 实训器件:实训电路板 2 套。 3. 实训电路图 RXD TXD 实训电路板1 (甲) TXD RXD 实训电路板2 (乙) 图 8.1 实训 8 电路图 4. 实训步骤与要求 1) 预习 复习单片机的定时器编程应用,重点了解方式 2 的使用。查阅串行口相关知识,了解串 行通信的基本概念及与并行通信的区别,初步认识 MCS-51 单片机中串行口的工作原理。 2) 连接电路 按图 8.1 将两套实训电路板中的 RXD 和 TXD 端对应相连,并将两套电路板共地。 3) 输入程序 编制程序,使甲、乙双方能够进行通信。要求:将甲机内部 RAM20H~27H 单元的数据发 送给乙机,并在乙机的 8 个数码管中显示出来。 甲机发送程序参考如下: MOV TMOD,#20H MOV TL1,#0F4H MOV TH1,#0F4H SETB TR1 MOV SCON,#40H MOV R0,#20H MOV R7,#08H 202
单片机应用技术 第 8 章 串行口通信技术 START:MOV A,@R0 MOV SBUF,A JBC TI,CONT AJMP WAIT WAIT: CONT: INC R0 DJNZ R7,START SJMP $ 乙机接收及显示程序参考如下: MOV TMOD,#20H MOV TL1,#0F4H MOV TH1,#0F4H SETB TR1 MOV SCON,#40H MOV R0,#20H MOV R7,#08H SETB REN JBC RI,READ AJMP WAIT WAIT: READ: MOV A,SBUF MOV @R0,A INC R0 DJNZ R7,WAIT LCALL DISPLAY SJMP DISP DISP: 显示子程序 DISPLAY 参见第 7 章。 4) 调试并运行程序 对甲机片内 RAM20H~27H 单元分别输入 00H、01H、02H、03H、04H、05H、06H、07H, 运行甲、乙机程序,观察乙机 8 个数码管的显示内容;更换甲机 RAM 单元中的内容(00H~ OF 中的任意值),再次观察乙机的显示内容。 5.实训总结与分析 (1)程序运行的结果是,乙机能够根据甲机 20H~27H 单元的数据显示相应的内容。例如 第一次运行程序,会在乙机的 8 个数码管上分别显示 0、1、2、3、4、5、6、7。这说明甲、 乙之间能够进行数据的传送,即通信。 (2)从本实训的电路连接上我们看到,甲、乙双方只连接了 3 根线,一根用于接收,一 根用于发送,第三根为共地线。其中 RXD 为单片机系统的接收数据端,TXD 为发送数据端。 显然单片机内部的数据向外传送(例如从甲机传送给乙机)时,不可能 8 位数据同时进行, 在一个时刻只可能传送一位数据(例如,从甲机的发送端 TXD 传送一位数据到乙机的接收端 RXD),8 位数据依次在一根数据线上传送,这种通信方式称为串行通信。它与前面几章所介 绍的数据传送不同,例如通过 P0 口传送数据时,就是 8 位数据同时进行的,这种通信方式 称为并行通信。 (3)分析程序可以看出,通信双方都有对单片机定时器的编程(注意发送、接收程序的 前 4 条指令),而且双方对定时器的编程完全相同。这说明,MCS-51 单片机在进行串行通信 时,是与定时器的工作有关的。定时器用来设定串行通信数据的传输速度。在串行通信中, 传输速度是用波特率来表征的,有关波特率与定时器的关系以及编程在 8.3.3 节介绍。 203
单片机应用技术 第 8 章 串行口通信技术 6.问题与思考: (1)在收发程序中都用到了 SCON、SBUF,这两个寄存器的地址是什么?其作用如何? (2)在甲机的发送程序中,有这样一条指令 JBC TI,rel,该指令完成什么功能?TI 位 的作用是什么? (3)在乙机的接收程序中,有这样一条指令 JBC RI,rel,RI 位的作用是什么? 通过实训,我们知道,MCS-51 单片机除了可以进行数据的并行传送以外(例如,CPU 与存储器、利用 P0~P3 口与外界通信、单片机与 8155 之间的数据传送等),还可以将数据 以串行的方式一位一位地进行传送。不仅两个单片机之间可以进行这样的数据传送,而且多 台单片机或者单片机与 PC 机之间都可以完成类似的收发信息,这些都是在本章要论述的串 行通信技术。 8.1 串行通信基础 在计算机系统中,CPU 和外部通信有两种通信方式:并行通信和串行通信。并行通信, 即数据的各位同时传送;串行通信,即数据一位一位顺序传送。图 8.2 为这两种通信方式的 示意图。 计算机1 计算机2 或外设 . . . . . . 发送 接收 计算机2 或外设 计算机1 GND GND GND GND (a) 并行通信 (b) 串行通信 图 8.2 两种通信方式的示意图。 在前面章节所涉及的数据传送都为并行方式,如主机与存储器、主机与键盘、显示器之 间等。在实训 8 中,显然采用的是(b)图所示的串行通信。上述两种基本通信方式比较起 来,串行通信能够节省传输线,特别是数据位数很多和远距离数据传送时,这一优点更为突 出;串行通信方式的主要缺点是传送速度比并行通信要慢。 8.1.1 串行通信的分类 按照串行数据的时钟控制方式,串行通信可分为同步通信和异步通信两类。 1. 异步通信(Asynchronous Communication) 在异步通信中,数据通常是以字符为单位组成字符帧传送的。字符帧由发送端一帧一帧 地发送,每一帧数据是低位在前,高位在后,通过传输线被接收端一帧一帧地接收。发送端 和接收端可以由各自独立的时钟来控制数据的发送和接收,这两个时钟彼此独立,互不同步。 在异步通信中,接收端是依靠字符帧格式来判断发送端是何时开始发送何时结束发送 的。字符帧格式是异步通信的一个重要指标。 1) 字符帧(Character Frame) 字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等四部分组成,如图 8.3 所示。 204
单片机应用技术 第 8 章 串行口通信技术 第n-1字符帧 ... 0/1 1 第n字符帧 D 0 D 1 D 2 D D 3 4 D 5 D D 6 8位数据 (a)无空闲位字符帧 0 起 始 位 7 0/1 1 停 奇偶 止 校验 位 第n+1字符帧 0 D D0 1 ... 空闲位 ... 1 1 0 起 始 位 第n字符帧 D 0 D 1 D 2 D D 3 4 D 5 D D 6 8位数据 (b)有空闲位字符帧 7 0/1 1 停 奇偶 止 校验 位 空闲位 第n+1字符帧 1 1 1 0 D D0 1 ... (1)起始位:位于字符帧开头,只占一位,为逻辑 0 低电平,用于向接收设备表示发 图 8.3 异步通信的字符帧格式 送端开始发送一帧信息。 (2)数据位:紧跟起始位之后,用户根据情况可取 5 位、6 位、7 位或 8 位,低位在前 高位在后。 (3)奇偶校验位:位于数据位之后,仅占一位,用来表征串行通信中采用奇校验还是 偶校验,由用户决定。 (4)停止位:位于字符帧最后,为逻辑 1 高电平。通常可取 1 位、1.5 位或 2 位,用于 向接收端表示一帧字符信息已经发送完,也为发送下一帧作准备。 在串行通信中,两相邻字符帧之间可以没有空闲位,也可以有若干空闲位,这由用户来 决定。图 8.3(b)表示有 3 个空闲位的字符帧格式。 2) 波特率(baud rate) 异步通信的另一个重要指标为波特率。 波特率为每秒钟传送二进制数码的位数,也叫比特数,单位为 bit/s,即位/秒。波特 率用于表征数据传输的速度,波特率越高,数据传输速度越快。但波特率和字符的实际传输 速率不同,字符的实际传输速率是每秒内所传字符帧的帧数,和字符帧格式有关。 通常,异步通信的波特率为 50~9600bit/s。 异步通信的优点是不需要传送同步时钟,字符帧长度不受限制,故设备简单。缺点是字 符帧中因包含起始位和停止位而降低了有效数据的传输速率。 2. 同步通信(Synchronous Communication) 同步通信是一种连续串行传送数据的通信方式,一次通信只传输一帧信息。这里的信息 帧和异步通信的字符帧不同,通常有若干个数据字符,如图 8.4 所示。图 8.4(a)为单同 步字符帧结构,图 8.4(b)为双同步字符帧结构,但它们均由同步字符、数据字符和校验 字符 CRC 三部分组成。在同步通信中,同步字符可以采用统一的标准格式,也可以由用户约 定。 205
单片机应用技术 第 8 章 串行口通信技术 同步 字符1 数据 字符1 数据 字符2 数据 字符3 数据 字符n CRC CRC 1 2 (a)单同步字符帧格式 同步 字符1 同步 字符2 数据 字符1 数据 字符2 数据 字符n CRC CRC 1 2 (b)双同步字符帧格式 图 8.4 同步通信的字符帧格式 同步通信的数据传输速率较高,通常可达 56000bit/s 或更高,其缺点是要求发送时钟 和接收时钟必须保持严格同步。 8.1.2 串行通信的制式 在串行通信中数据是在两个站之间进行传送的,按照数据传送方向,串行通信可分为单 工(simplex)、半双工(half duplex)和全双工(full duplex)三种制式。图 8.5 为三种 制式的示意图。 A站 发送器 单工通信 (a)单工 B站 接收器 发 收 A站 发 收 B站 (b)半双工 发 收 A站 收 发 B站 (c)全双工 图 8.5 单工、半双工和全双工三种制式示意图 在单工制式下,通信线的一端接发送器,一端接接收器,数据只能按照一个固定的方向 传送。 在半双工制式下,系统的每个通信设备都由一个发送器和一个接收器组成,如图 8.5b) 所示。在这种制式下,数据能从 A 站传送到 B 站,也可以从 B 站传送到 A 站,但是不能同时 在两个方向上传送,即只能一端发送,一端接收。其收发开关一般是由软件控制的电子开关。 全双工通信系统的每端都有发送器和接收器,可以同时发送和接收,即数据可以在两个 方向上同时传送。如图 8.5(c)所示。 在实际应用中,尽管多数串行通信接口电路具有全双工功能,一般情况只工作于半双工 制式下,这种用法简单、实用。 8.1.3 串行通信的接口电路 串行接口电路的种类和型号很多。能够完成异步通信的硬件电路称为 UART,即通用异 步接收器/发送器(Universal Asychronous Receiver/Transmitter);能够完成同步通信的 硬件电路称为 USRT(Universal Sychronous Receiver/Transmitter);既能够完成异步又 Asychronous 能 同 步 通 信 的 硬 件 电 路 称 为 USART ( Universal Sychronous 206
单片机应用技术 第 8 章 串行口通信技术 Receiver/Transmitter); 从本质上说,所有的串行接口电路都是以并行数据形式与 CPU 接口,以串行数据形式与 外部逻辑接口。它们的基本功能都是从外部逻辑接收串行数据,转换成并行数据后传送给 CPU,或从 CPU 接收并行数据,转换成串行数据后输出到外部逻辑。 8.2 串行通信总线标准及其接口 在单片机应用系统中,数据通信主要采用异步串行通信。在设计通信接口时,必须根据 需要选择标准接口,并考虑传输介质、电平转换等问题。采用标准接口后,能够方便地把单 片机和外设、测量仪器等有机地连接起来,从而构成一个测控系统。例如当需要单片机和 PC 机通信时,通常采用 RS-232 接口进行电平转换,在本书所附的实训电路板中就接有包含 了这部分电路。 异步串行通信接口主要有三类:RS-232 接口;RS-449、RS-422 和 RS-485 接口以及 20mA 电流环。下面详细介绍三种接口标准。 8.2.1 RS-232C 接口 RS-232C 是使用最早、应用最多的一种异步串行通信总线标准。它是美国电子工业协会 (EIA)1962 年公布、1969 年最后修定而成的。其中 RS 表示 Recommended Standard,232 是该标准的标识号,C 表示最后一次修定。 RS-232C 主要用来定义计算机系统的一些数据终端设备(DTE)和数据电路终接设备 (DCE)之间的电气性能。例如 CRT、打印机与 CPU 的通信大都采用 RS-232C 接口,MCS-51 单片机与 PC 机的通信也是采用该种类型的接口。由于 MCS-51 系列单片机本身有一个全双工 的串行接口,因此该系列单片机用 RS-232C 串行接口总线非常方便。 RS-232C 串行接口总线适用于:设备之间的通信距离不大于 15 米,传输速率最大为 20kB/s。 1. RS-232C 信息格式标准 RS-232C 采用串行格式,如图 8.6 所示。该标准规定:信息的开始为起始位,信息的结束 为停止位;信息本身可以是 5、6、7、8 位再加一位奇偶位。如果两个信息之间无信息,则写 “1”,表示空。 逻辑"1",-12V 逻辑"0",+12V 第n个信息 低位 高位 0 0/1 0/1 0/1 0/1 0/10/1 0/1 0/1 起始位 数据位 (5,6,7,8) 第n+1个信息 ... 1 0 起始位 停止位 奇偶校验位(有,无) 图 8.6 RS-232C 信息格式 2. RS-232C 电平转换器 RS-232C 规定了自己的电气标准,由于它是在 TTL 电路之前研制的,所以它的电平不是 +5V 和地,而是采用负逻辑,即: 逻辑“0”:+5V~+15V 逻辑“1”:-5V~-15V 因此,RS-232C 不能和 TTL 电平直接相连,使用时必须进行电平转换,否则将使 TTL 电 路烧坏,实际应用时必须注意!常用的电平转换集成电路是传输线驱动器 MC1488 和传输线 207
单片机应用技术 第 8 章 串行口通信技术 接收器 MC1489。 MC1488 内部有三个与非门和一个反相器,供电电压为±12V,输入为 TTL 电平,输出为 RS-232C 电平,MC1489 内部有四个反相器,供电电压为±5V,输入为 RS-232C 电平,输出为 TTL 电平。 另一种常用的电平转换电路是 MAX232,本书所配套的实训电路就采用该芯片。图 8.7 为 MAX232 的引脚图。 1 3 4 5 11 10 12 9 C1+ C1- C2+ C2- T1IN T2IN R1OUT R2OUT MAX232 Vs+ Vs- VCC GND T1OUT T2OUT R1IN R2IN 2 6 16 15 14 7 13 8 图 8.7 MAX232 引脚图 3. RS-232C 总线规定 RS-232C 标准总线为 25 根,采用标准的 D 型 25 芯插头座。各引脚的排列如图 8.8 所示。 方向 名称 到DCE 第2路发送数据 到DTE 发送时钟 到DTE 第2路接收数据 到DTE 接收时钟 未用 到DCE 第2路请求发送 到DCE 数据终端就绪 到DTE 数据信号检测 到DTE 振铃指示 到DCE 数据信号速率选择 到DCE 发送时钟 未用 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 名称 方向 保护地 N.A 发送数据 到DCE 接收数据 到DCE 请求发送 到DCE 允许发送 到DTE 数据置位就绪 到DTE 信号地 N.A 载波检测 到DTE 留作调试用 未用 第2路载波检测 到DTE 第2路允许发送 到DTE DTE 数据终端设备(如个人计算机) DCE 数据电路终接设备(如调制解调器) 图 8.8 RS-232C 引脚图 在最简单的全双工系统中,仅用发送数据、接收数据和信号地三根线即可,对于 MCS-51 单片机,利用其 RXD(串行数据接收端)线、TXD(串行数据发送端)线和一根地线,就可 以构成符合 RS-232C 接口标准的全双工通信口。 8.2.2 RS-449、RS-422A、RS-423A 标准接口 RS-232C 虽然应用广泛,但因为推出较早,在现代通信系统中存在以下缺点:数据传输 速率慢、传输距离短、未规定标准的连接器、接口处各信号间易产生串扰。鉴于此,EIA 制 定了新的标准 RS-449,该标准除了与 RS-232C 兼容外,在提高传输速率、增加传输距离、 改善电气性能方面有了很大改进。 208
单片机应用技术 第 8 章 串行口通信技术 1. RS-449 标准接口 RS-449 是 1977 年公布的标准接口,在很多方面可以代替 RS-232C 使用,两者的主要差 别在于信号在导线上的传输方法不同。RS-232C 是利用传输信号与公共地的电压差,RS-449 是利用信号导线之间的信号电压差,可在 1219.2m 的 24-AWG 双铰线上进行数字通信。RS-449 规定了两种接口标准连接器,一种为 37 脚,一种为9脚。 RS-449 可以不使用调制解调器,它比 RS-232C 传输速率高,通信距离长,且由于 RS-449 系统用平衡信号差传输高速信号,所以噪声低,又可以多点或者使用公共线通信,故 RS-449 通信电缆可与多个设备并联。 2. RS-422A、RS-423A 标准接口 RS-422A 文本给出了 RS-449 中对于通信电缆、驱动器和接收器的要求,规定双端电气 接口型式,其标准是双端线传送信号。它具体通过传输线驱动器,将逻辑电平变换成电位差, 完成发送端的信息传递;通过传输线接收器,把电位差变换成逻辑电平,完成接收端的信息 接收。RS-422A 比 RS-232C 传输距离长、速度快,传输速率最大可达 10Mbit/s,在此速率下 电缆的允许长度为 12m,如果采用低速率传输,最大距离可达 1200m。 RS-422A 和 TTL 进行电平转换最常用的芯片是传输线驱动器 SN75174 和传输线接收器 SN75175,这两种芯片的设计都符合 EIA 标准 RS-422A,采用+5V 电源供电。 RS-422A 的接口电路如图 8.9 所示,发送器 75174 将 TTL 电平转换为标准的 RS-422A 电 平;接收器 75175 将 RS-422A 接口信号转换为 TTL 电平。 5V 75174 1 3 - + 2 TTL数据入 75175 1 3 2 TTL数据出 图 8.9 RS-422A 接口电平转换电路 RS-423A 和 RS-422A 文本一样,也给出了 RS-449 中对于通信电缆、驱动器和接收器的 要求。RS-423A 给出了不平衡信号差的规定,而 RS-422A 给出的是平衡信号差的规定。RS-422 标准接口的最大传输速率为 100Kbit/s,电缆的允许长度为 90m。 RS-423A 也需要进行电平转换,常用的驱动器和接收器为 3691 和 26L32。 其 接 口 电路如图 8.10 所示。 3691 +5V 1 Vcc RS-423A 15 TTL数据入 2 4 47k +5V MODE GND 5 Vee 8 -5V 47k +5V +5V 16 Vcc 26L32 3 TTL数据出 GND 8 1 2 4 12 图 8.10 RS-423A 接口电平转换电路 8.2.3 20mA 电流环路串行接口 20mA 电流环是目前串行通信中广泛使用的一种接口电路,电流环串行通信接口的最大 优点是低阻传输线对电气噪声不敏感,而且易实现光电隔离,因此在长距离通信时要比 209
分享到:
收藏