第8章单片机串行通信
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、串行口的内部结构 发送SBUF (99H)
输出移位寄存器
TXD P3.1
内 部 总 线
定 时 器 T1
发送控制器
串行中断 ≥1 TI RI
SCON 98H
接收控制器 接收SBUF (99H)
输入移位寄存器
波特率发生器
串 行 控 (制 寄 器 )
RXD P3.0
15
51单片机通过引脚RXD(P3.0)串行数据接收端和引脚TXD(P3.1) 串行数据发送端与外界进行通信。图中有两个物理上独立的接收、发送缓 冲器SBUF,它们占用同一地址99H,可同时发送、接收数据。 发送缓冲器只能写入,不能读出,CPU写SBUF,一是更新发送寄存 器,同时启动串行数据发送;
10
3、RS-485 由于RS-232-C接口标准出现较早,难免有不足之处,主要是:(1) 接口的信号电平值较高,与TTL 电平不兼容。(2) 传输速率较低,在 异步传输时,波特率为20Kbps。(3) 抗噪声干扰性弱。 (4) 传输距 离有限。 于是就不断出现了一些新的接口标准,RS-485就是其中之一,它具 有以下特点:(1)接口电平与TTL电平兼容,可方便与TTL 电路连接。 (2) RS-485的数据最高传输速率为10Mbps 。(3) RS-485接口是采用 平衡驱动器和差分接收器的组合,抗噪声干扰性好。(4)最大传输距 离可达 3000米,另外RS-232-C接口在总线上只允许连接1个收发器, 即 单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具 有多站能力, 可以利用RS-485构建设备网络。
采用标准的通信接口,本身具有一定的抗干扰能力,但是工业现场的 情况往往很恶劣,因而要根据具体情况进行选择。
RS232C:一般场合
RS422: 抗共模干扰信号比较强
光纤: 抗电磁干扰较强
9
1、RS-232C
最早用的最广泛的串行接口,采用+15V -15V 电平,负逻辑。主要 解决仪器设备与PC机的通信,属于点对点的通信。
接收缓冲器只能读出、不能写入。读SBUF,就是读接收寄存器。
串行控制寄存器SCON用以存放串行口的控制和状态信息。8XX51串行 口正是通过对上述专用寄存器的设置、检测与读取来管理串行通信的。 特殊功能寄存器PCON的最高位SMOD为串行口波特率的倍增控制位。 波特率发生器可以有两种选择: 1.定时器T1作波特率发生器,改变计数初值就可以改变串行通信的速率, 称为可变波特率。 2.以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固 定波特率
7
六. 串行通信总线标准及接口 (一)通信线的连接 通信速率和通信距离这两个方面是相互制约的,降低通信速率,可 以提高通信距离,不同的通信距离,串行通信电路有不同的连接方法:
微机或其他设备 电 平 转 换 RXD TXD RXD TXD 电 平 转 换 RXD TXD GND
微机 RXD RXD TXD GND RXD TXD GND
16
二、串行通信的传送过程用下面简图说明 甲方(发送) 乙方(接收)
CPU
并 MOV SBUF , A 行 数 据 TI
11
三、RS-232C 美国电子工业协会(EIA)公布的一种异步通信标准。 RS232C标准是:
设备之间通信的距离不大于15米 最大传输速率20KB/S
采用负逻辑:“1” —— ―5V ∽ ―15V
“0” —— +5V ∽ + 15V 不带负载时输出电平:―25V ∽ +25V
输出短路电流:
10μF
PC机COM1或 COM2
Байду номын сангаасMAX232
C1=C2=C3=C4=C5= 1μF
图5.12 单片机和PC机的串行通信接口
14
8.2 MCS-51的串行口结构 51单片机有一个可编程的全双工异步串行通信接口,它可作异步串行 通信(UART)用,也可作同步移位寄存器,其帧格式可有8位、10位或l l 位,并能设置各种波特率,给使用者带来很大的灵活性。
四、 串行通信接口
串行接口通常分为两种类型:串行通信接口 和 串行扩展接口。 串行通信接口(Serial Communication Interface, SCI)是指设备之间 的互连接口,它们连接的距离比较长。如当代PC机的COM接口(COM1COM4)和USB接口。USB ( Universal Serial Bus,通用串行总线)是近几 年开发的新规范,它使得设备间的连接简单快捷,并且支持热插拔,易于扩 展,被广泛应用于PC 机和嵌入式系统上。 近年来推出有RS-422/423、RS-485等串行通信标准,其采用平衡通信 接口,即在发送端将TTL电平信号转换成差分信号输出,接收端将差分信号 变成TTL电平信号输入,大大提高了抗干扰能力,使通信距离增加到几十米 至上千米,并且增加了多点和双向通信的能力。
数据1 SYN字符1 SYN字符2 三、串行通信的功能
数据2
….
数据n
连续传送n 个数据
校验
在串行传输中,通信的双方都按通信协议进行,所谓通信协议就是通 信双方必须共同遵守的一种约定,约定包括数据的格式、同步的方式、传 送的步骤、检纠错方式及控制字符的定义等。 串行接口的基本任务就是:
4
1. 因为CPU发出的数据是字符数据,接口电路应能将这些数据根据不同通 信方式进行数据格式化的任务。 如自动生成起止方式的帧数据格式(异步方 式)或在待传送的数据块前加上同步字符(同步方式)等。 2. 在发送端,接口将CPU送来的并行信号转换成串行数据进行传送;而在 接收端,接口要将接收到串行数据变成并行数据送往CPU。 3. 接口应具备对数据传输率—波特率的选择控制能力,即自身有波特率发 生器。 4. 在发送时,对传送的数据自动生成校验位或校验码,在接收端能检查校 验位或校验码,以确定传送中是否有误码,并能自动将冗余码消除。 51系列单片机内有一个全双工的异步通信接口,通过对串行接口写控制 字可以选择其数据格 式,同时内部有波特率发生器,提供可选的波特率,来 完成双机通信或多机通信。 5
RS-232
4 13 R1IN MAX232 5 12 R1OUT 6 11 T1IN 10 T2IN 9 8
R2O UT
T2OUT 7 RS-232
MAX232 连线图 图8-5 MAX232 引脚和连线图
MAX232引脚图
13
MCS—51之间的双机通信
RXD
TXD GND RXD TXD GND
第八章
单片机串行通信
8.1 概 述 单片机应用于数据采集或工业控制时,往往作为前端机安装在工业现 场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通 信成本,提高通信可靠性。如下图所示。
1
数据通信方式有两种:并行通信与串行通信。下面是两种通信方式的示意 图:
★并行通信: 所传送数据的各位同时发送或接收,数据有多少位就需 要多少根数据线。特点:速度快,成本高,适合近距离传输,如计算机 并口,打印机接口,8255 并口等。 ★串行通信:所传送数据的各位按顺序一位一位地发送或接收。只需一 根数据,一根地线,共2 根(如双向通信发送和接收各需1根数据线)。 特点:成本低,硬件简单,适合远距离通信,传输速度低。
最大负载电容:
< 0.5A
2500p
12
当计算机采用RS232标准时必须转换电平,MAX232 是EIA和TTL电 平转换芯片。内部具有电压提升电路,并有两路收发器。 TTL电平可以由专用集成电路转换成RS232C标准; 如: MC1488 或 75188 TTL RS232C MC1489 或 75189 RS232C TTL 由于MC1488需要采用±12V电源,一般在单片机通信中大量使用的 是只需要+5V电源、具有发送和接收的一体化芯片,如:MAX232、 ICL232、ADM202等。 MAX232的引脚和电路如下:
PC机上的COM1-COM4口使用的是RS-232C串行通信标准接口,本章 仅介绍RS-232C接口,其它接口可参考有关资料。
以上标准都有专用芯片实现通信协议,这些接口芯片称为收发器。 串行扩展接口是设备内部器件之间的互连接口,常用的串行扩展接口规 范有SPI、I2C等。串行扩展接口的芯片很多,可以根据需要选择。
2
通信的双方应该有一个约定,什么时候开始发送,什么时候发送完毕; 接收方收到的信息是否正确等,这就是通信协议。 串行通信的分类:同步串行通信和异步串行通信 一、异步通信: 异步串行通信一帧数据格式:一个起始位 “0”,表示字符的开始,然后 是5~8位数据即该字符的代码,规定低位在前,高位在后,接 下来是奇偶 校验位(可省略),最后以停止位“1”表示字符的结束。 优点:硬件结构简单。 缺点:传输速度慢。
2、RS-449 RS-449标准的电器特性有两个标准,即平衡式的RS-422标准和非平 衡式的RS-423标准。这些标准在保持与RS-232C兼容的前提下重新定义 了信号电平,并改进了电路方式,以达到较高的传输速率和较大的传输 距离。 RS-422电气标准是平衡方式标准,它的发送器、接收器分别采用 平衡发送器和差动接收器,由于采用完全独立的双线平衡传输,抗串 扰能力大大增强。信号电平定义为±6伏的负逻辑。 RS-423电气标准是非平衡标准,它采用单端发送器(即非平衡发送 器)和差动接收器。虽然发送器与RS-232C标准相同,但由于接收器采 用差动方式,所以传输距离和速度仍比RS-232C有较大的提高。
+5V 1 μF 1μF C1 + C1C2+ V + V1 μF +10V -10V 1μF
C1+ V+ C1C2+ C2VR2IN
1 2 3
16
Vcc
15 GND 14 T1OUT
1μF TTL/CM OS TTL/CMOS
C2- MAX232 T1OU T1IN T T2I T2OUT N R1OUT R1IN R2OUT R2IN
TXD
GND
GND
GND
近距离传送电路
较远距离传送电路(RS232)
8
(二)串行通信接口总线标准 1.1 测控系统中常用的总线标准 测控系统中,计算机通信主要采用异步串行通信方式,常用的异步总 线标准有三种: RS-232(RS-232A RS-232B RS-232C) RS-449 (RS422 RS423 RS485) 20mA电流环 这里重点介绍RS-232,速率:20Kbit/S,最大通信距离 : 15m 1.2 抗干扰能力
6
五、波特率(Baud rate)和比特率(bps)
在通信中,衡量通信速率的单位有两种:波特率和比特率。
比特率:每秒传送的二进制位数,单位:bit/s。 波特率:每秒传送的N进制位数,单位:baud/s。 两者的关系:比特率=波特率×log2N N 是数的进制。 例:传16进制数时,比特率 = 4 ×波特率。 计算机内部均采用二进制,故比特率=波特率
例如异步传送数据的速率每秒为120个字符,每个字符由1个起始位、8个
数据位和1个停止位组成,则字符传送速率为: 10×120=1200波特/秒 传送一个波特所需的时间为: T1=1/1200=0.833ms
在上面传送中,只有8个数据位才是有用的信息,起始位和停止位用于传
送信息的辅助,所以信息的速率为:8×120=960比特/秒。 传送一个比特需要的时间为:T2=1/960=1.04ms
n-1
第n个字符(一帧)
1
0 D0 D1 D2 D3 D4 D5 D6 D7 P 1
n+1
0 D0
…
P
…
起 始 位
数据位(5~8位)
校 停 验 止 位 位
3
二、同步通信
在同步通信中,发送方在数据或字符开始处就用同步字符(常约定1~ 2个字节)指示一帧的开始 ,由时钟来实现发送端和接收端同步,接收方 一旦检测到与规定的同步字符符合,下面 就连续按顺序传送若干个数据 , 最后发校验字节。见下图:
8XX51
8XX51
+5V
MCS—51和PC机的双机通信
Vcc EA RST 89C51/ 89S51 30PF× 2 XTAL 1 XTAL 2 GND TXD RXD C1 T1IN R1OU R1IN T T1OU C1+ T C1C2 C2+ C2GND V+ Vcc C4 VC5 C3 +5V 1 2 3 4 5 6 7 8 9 6 7 8 9 1 2 3 4 5
输出移位寄存器
TXD P3.1
内 部 总 线
定 时 器 T1
发送控制器
串行中断 ≥1 TI RI
SCON 98H
接收控制器 接收SBUF (99H)
输入移位寄存器
波特率发生器
串 行 控 (制 寄 器 )
RXD P3.0
15
51单片机通过引脚RXD(P3.0)串行数据接收端和引脚TXD(P3.1) 串行数据发送端与外界进行通信。图中有两个物理上独立的接收、发送缓 冲器SBUF,它们占用同一地址99H,可同时发送、接收数据。 发送缓冲器只能写入,不能读出,CPU写SBUF,一是更新发送寄存 器,同时启动串行数据发送;
10
3、RS-485 由于RS-232-C接口标准出现较早,难免有不足之处,主要是:(1) 接口的信号电平值较高,与TTL 电平不兼容。(2) 传输速率较低,在 异步传输时,波特率为20Kbps。(3) 抗噪声干扰性弱。 (4) 传输距 离有限。 于是就不断出现了一些新的接口标准,RS-485就是其中之一,它具 有以下特点:(1)接口电平与TTL电平兼容,可方便与TTL 电路连接。 (2) RS-485的数据最高传输速率为10Mbps 。(3) RS-485接口是采用 平衡驱动器和差分接收器的组合,抗噪声干扰性好。(4)最大传输距 离可达 3000米,另外RS-232-C接口在总线上只允许连接1个收发器, 即 单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具 有多站能力, 可以利用RS-485构建设备网络。
采用标准的通信接口,本身具有一定的抗干扰能力,但是工业现场的 情况往往很恶劣,因而要根据具体情况进行选择。
RS232C:一般场合
RS422: 抗共模干扰信号比较强
光纤: 抗电磁干扰较强
9
1、RS-232C
最早用的最广泛的串行接口,采用+15V -15V 电平,负逻辑。主要 解决仪器设备与PC机的通信,属于点对点的通信。
接收缓冲器只能读出、不能写入。读SBUF,就是读接收寄存器。
串行控制寄存器SCON用以存放串行口的控制和状态信息。8XX51串行 口正是通过对上述专用寄存器的设置、检测与读取来管理串行通信的。 特殊功能寄存器PCON的最高位SMOD为串行口波特率的倍增控制位。 波特率发生器可以有两种选择: 1.定时器T1作波特率发生器,改变计数初值就可以改变串行通信的速率, 称为可变波特率。 2.以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固 定波特率
7
六. 串行通信总线标准及接口 (一)通信线的连接 通信速率和通信距离这两个方面是相互制约的,降低通信速率,可 以提高通信距离,不同的通信距离,串行通信电路有不同的连接方法:
微机或其他设备 电 平 转 换 RXD TXD RXD TXD 电 平 转 换 RXD TXD GND
微机 RXD RXD TXD GND RXD TXD GND
16
二、串行通信的传送过程用下面简图说明 甲方(发送) 乙方(接收)
CPU
并 MOV SBUF , A 行 数 据 TI
11
三、RS-232C 美国电子工业协会(EIA)公布的一种异步通信标准。 RS232C标准是:
设备之间通信的距离不大于15米 最大传输速率20KB/S
采用负逻辑:“1” —— ―5V ∽ ―15V
“0” —— +5V ∽ + 15V 不带负载时输出电平:―25V ∽ +25V
输出短路电流:
10μF
PC机COM1或 COM2
Байду номын сангаасMAX232
C1=C2=C3=C4=C5= 1μF
图5.12 单片机和PC机的串行通信接口
14
8.2 MCS-51的串行口结构 51单片机有一个可编程的全双工异步串行通信接口,它可作异步串行 通信(UART)用,也可作同步移位寄存器,其帧格式可有8位、10位或l l 位,并能设置各种波特率,给使用者带来很大的灵活性。
四、 串行通信接口
串行接口通常分为两种类型:串行通信接口 和 串行扩展接口。 串行通信接口(Serial Communication Interface, SCI)是指设备之间 的互连接口,它们连接的距离比较长。如当代PC机的COM接口(COM1COM4)和USB接口。USB ( Universal Serial Bus,通用串行总线)是近几 年开发的新规范,它使得设备间的连接简单快捷,并且支持热插拔,易于扩 展,被广泛应用于PC 机和嵌入式系统上。 近年来推出有RS-422/423、RS-485等串行通信标准,其采用平衡通信 接口,即在发送端将TTL电平信号转换成差分信号输出,接收端将差分信号 变成TTL电平信号输入,大大提高了抗干扰能力,使通信距离增加到几十米 至上千米,并且增加了多点和双向通信的能力。
数据1 SYN字符1 SYN字符2 三、串行通信的功能
数据2
….
数据n
连续传送n 个数据
校验
在串行传输中,通信的双方都按通信协议进行,所谓通信协议就是通 信双方必须共同遵守的一种约定,约定包括数据的格式、同步的方式、传 送的步骤、检纠错方式及控制字符的定义等。 串行接口的基本任务就是:
4
1. 因为CPU发出的数据是字符数据,接口电路应能将这些数据根据不同通 信方式进行数据格式化的任务。 如自动生成起止方式的帧数据格式(异步方 式)或在待传送的数据块前加上同步字符(同步方式)等。 2. 在发送端,接口将CPU送来的并行信号转换成串行数据进行传送;而在 接收端,接口要将接收到串行数据变成并行数据送往CPU。 3. 接口应具备对数据传输率—波特率的选择控制能力,即自身有波特率发 生器。 4. 在发送时,对传送的数据自动生成校验位或校验码,在接收端能检查校 验位或校验码,以确定传送中是否有误码,并能自动将冗余码消除。 51系列单片机内有一个全双工的异步通信接口,通过对串行接口写控制 字可以选择其数据格 式,同时内部有波特率发生器,提供可选的波特率,来 完成双机通信或多机通信。 5
RS-232
4 13 R1IN MAX232 5 12 R1OUT 6 11 T1IN 10 T2IN 9 8
R2O UT
T2OUT 7 RS-232
MAX232 连线图 图8-5 MAX232 引脚和连线图
MAX232引脚图
13
MCS—51之间的双机通信
RXD
TXD GND RXD TXD GND
第八章
单片机串行通信
8.1 概 述 单片机应用于数据采集或工业控制时,往往作为前端机安装在工业现 场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通 信成本,提高通信可靠性。如下图所示。
1
数据通信方式有两种:并行通信与串行通信。下面是两种通信方式的示意 图:
★并行通信: 所传送数据的各位同时发送或接收,数据有多少位就需 要多少根数据线。特点:速度快,成本高,适合近距离传输,如计算机 并口,打印机接口,8255 并口等。 ★串行通信:所传送数据的各位按顺序一位一位地发送或接收。只需一 根数据,一根地线,共2 根(如双向通信发送和接收各需1根数据线)。 特点:成本低,硬件简单,适合远距离通信,传输速度低。
最大负载电容:
< 0.5A
2500p
12
当计算机采用RS232标准时必须转换电平,MAX232 是EIA和TTL电 平转换芯片。内部具有电压提升电路,并有两路收发器。 TTL电平可以由专用集成电路转换成RS232C标准; 如: MC1488 或 75188 TTL RS232C MC1489 或 75189 RS232C TTL 由于MC1488需要采用±12V电源,一般在单片机通信中大量使用的 是只需要+5V电源、具有发送和接收的一体化芯片,如:MAX232、 ICL232、ADM202等。 MAX232的引脚和电路如下:
PC机上的COM1-COM4口使用的是RS-232C串行通信标准接口,本章 仅介绍RS-232C接口,其它接口可参考有关资料。
以上标准都有专用芯片实现通信协议,这些接口芯片称为收发器。 串行扩展接口是设备内部器件之间的互连接口,常用的串行扩展接口规 范有SPI、I2C等。串行扩展接口的芯片很多,可以根据需要选择。
2
通信的双方应该有一个约定,什么时候开始发送,什么时候发送完毕; 接收方收到的信息是否正确等,这就是通信协议。 串行通信的分类:同步串行通信和异步串行通信 一、异步通信: 异步串行通信一帧数据格式:一个起始位 “0”,表示字符的开始,然后 是5~8位数据即该字符的代码,规定低位在前,高位在后,接 下来是奇偶 校验位(可省略),最后以停止位“1”表示字符的结束。 优点:硬件结构简单。 缺点:传输速度慢。
2、RS-449 RS-449标准的电器特性有两个标准,即平衡式的RS-422标准和非平 衡式的RS-423标准。这些标准在保持与RS-232C兼容的前提下重新定义 了信号电平,并改进了电路方式,以达到较高的传输速率和较大的传输 距离。 RS-422电气标准是平衡方式标准,它的发送器、接收器分别采用 平衡发送器和差动接收器,由于采用完全独立的双线平衡传输,抗串 扰能力大大增强。信号电平定义为±6伏的负逻辑。 RS-423电气标准是非平衡标准,它采用单端发送器(即非平衡发送 器)和差动接收器。虽然发送器与RS-232C标准相同,但由于接收器采 用差动方式,所以传输距离和速度仍比RS-232C有较大的提高。
+5V 1 μF 1μF C1 + C1C2+ V + V1 μF +10V -10V 1μF
C1+ V+ C1C2+ C2VR2IN
1 2 3
16
Vcc
15 GND 14 T1OUT
1μF TTL/CM OS TTL/CMOS
C2- MAX232 T1OU T1IN T T2I T2OUT N R1OUT R1IN R2OUT R2IN
TXD
GND
GND
GND
近距离传送电路
较远距离传送电路(RS232)
8
(二)串行通信接口总线标准 1.1 测控系统中常用的总线标准 测控系统中,计算机通信主要采用异步串行通信方式,常用的异步总 线标准有三种: RS-232(RS-232A RS-232B RS-232C) RS-449 (RS422 RS423 RS485) 20mA电流环 这里重点介绍RS-232,速率:20Kbit/S,最大通信距离 : 15m 1.2 抗干扰能力
6
五、波特率(Baud rate)和比特率(bps)
在通信中,衡量通信速率的单位有两种:波特率和比特率。
比特率:每秒传送的二进制位数,单位:bit/s。 波特率:每秒传送的N进制位数,单位:baud/s。 两者的关系:比特率=波特率×log2N N 是数的进制。 例:传16进制数时,比特率 = 4 ×波特率。 计算机内部均采用二进制,故比特率=波特率
例如异步传送数据的速率每秒为120个字符,每个字符由1个起始位、8个
数据位和1个停止位组成,则字符传送速率为: 10×120=1200波特/秒 传送一个波特所需的时间为: T1=1/1200=0.833ms
在上面传送中,只有8个数据位才是有用的信息,起始位和停止位用于传
送信息的辅助,所以信息的速率为:8×120=960比特/秒。 传送一个比特需要的时间为:T2=1/960=1.04ms
n-1
第n个字符(一帧)
1
0 D0 D1 D2 D3 D4 D5 D6 D7 P 1
n+1
0 D0
…
P
…
起 始 位
数据位(5~8位)
校 停 验 止 位 位
3
二、同步通信
在同步通信中,发送方在数据或字符开始处就用同步字符(常约定1~ 2个字节)指示一帧的开始 ,由时钟来实现发送端和接收端同步,接收方 一旦检测到与规定的同步字符符合,下面 就连续按顺序传送若干个数据 , 最后发校验字节。见下图:
8XX51
8XX51
+5V
MCS—51和PC机的双机通信
Vcc EA RST 89C51/ 89S51 30PF× 2 XTAL 1 XTAL 2 GND TXD RXD C1 T1IN R1OU R1IN T T1OU C1+ T C1C2 C2+ C2GND V+ Vcc C4 VC5 C3 +5V 1 2 3 4 5 6 7 8 9 6 7 8 9 1 2 3 4 5