第 9章串行通信及 80C51中的串行端口
80C51的通用 同步 /异步 收 /发器 USART模块9.2
串行通信9.1
9.1 串 行 通 信
9.1.1 概述
1.串行通信的优点
在并行通信中,数据有多少位就需要有多少条传送线,而串行通信只需要一条传送线。故串行通信节省传送线,特别是长距离传送时,这个优点就更为突出。但是串行传送的速度慢,若并行传送所需的时间为 T,则串行传送的时间至少为 NT
(其中 N为位数)。
2.同步通信与异步通信
在串行通信中,有两种最基本的通信方式。
( 1)非同步(异步)通信 ASYNC
( asynchronous data
communication)
它用起始位表示字符的开始,用停止位表示字符的结束。如图 9-1所示。
图 9-1 异步通信的格式
② 数据信号传送速率
数据信号传送速率的规定,对于 CPU
与外界的通信是很重要的。
假如数据传送的速率是 120字符 /秒,而每一字符包含 10个数据位,则每秒传送的二进制位数为
10× 120=1200位 /秒 =1200bit/s
则每一位的传送时间即为
Td=1/1200=0.833ms
③ 波特率( Baud rate)
图 9-2 信号传输率与波特率的关系
( 2)同步传送
在异步传送中,每一个字符都要用起始位和停止位作为字符开始和结束的标志,
至少占用了 1/5的时间,所以,在数据块传送时,为了提高速度,就去掉这些标志,
在数据块开始处用同步字符来指示。如图
9-3所示。
图 9-3 同步字符
3.数据传送方向
通常串行通信,数据在两个站之间是双向传送的,A站可作为发送端,B站作为接收端,也可以将 A站作为接收端,B站作为发送端,根据要求又可以分为半双工和完全双工两种。
( 1)半双工( half duplex)
半双工传送如图 9-4所示。
图 9-4 半双工示意图
( 2)完全双工( full duplex)
完全双工传送方式如图 9-5所示,即两个站同时都能发送。
图 9-5 完全双工示意图
4,信号的调制和解调图 9-6 通信信号示意图图 9-7 电话线的频带图图 9-8 数字信号通过电话线传送产生的畸变图 9-9 调制与解调示意图图 9-10 FSK调制法原理图
5,串行 I/O的实现
6,串行通信的校验方法
( 1) 软件奇偶校验
9.1.2 串行接口标准 EIA RS-232C接口图 9-11 RS-232C的引脚图图 9-12 接收器和发送器的具体电路图 9-13 计算机与远方终端和当地终端连接示意图
9.1.3 串行通信组网方式图 9-14 常见的 4种网络结构图
1,双机通信方式
2,多机通信方式
3,多主机通信方式图 9-15 一点对多点多机通信方式图 9-16 多主机通信方式
9.2 80C51中的通用同步 /异步收 /
发器 USART模块
表 9-1标准 80C51的 USARI串口支持的通信类型
9.2.2 USART模块相关的寄存器续表位 1 位 2 位 3 位 4 位 5 位 6 位 7 位 8
SM0 SM1 SM2 REN TB8 RB8 TI RI
1.串口控制寄存器 SCON
SM0 SM1 工 作 方 式 功 能 说 明 波 特 率
0 0 0 8位数据,同步 固定,fosc/12
0 1 1 8位数据,异步 ( 10位帧)
可变,由 TI提供
1 1 3
9位数据,异步
( 11位帧)1 0 2 半固定,fosc/64或
fosc/32
表 9-3 串行口的工作方式
2,电源控制寄存器 PCON
位 1 位 2 位 3 位 4 位 5 位 6 位 7 位 8
SMOD — — — GF1 GF0 PD IDL
9.2.3 USART模块的电路结构图 9-17 串口结构方框示意图
( 1)接收部分
包含接收控制器、接收缓冲器、接收移位寄存器和接收引脚等电路。
( 2)发送部分
包含发送控制器、发送缓冲器、发送控制门和发送引脚等电路。
( 3)公用部分
包含串口控制寄存器、波特率发生器、
同步 /异步切换开关 MUX和中断相关电路等。
9.2.4 USART模块的工作原理
1.方式 l— 异步 /双工 /10位帧结构 —
双机通信图 9-18 串行异步收 /发器简化示意图图 9-19 方式 1下 USART的帧格式和时序图图 9-20 方式 1发送时的时序
( 2)接收过程图 9-21 方式 1接收时序图
2,方式 2和方式 3— 异步 /双工 /11位帧结构 —
多机通信图 9-22 方式 2和方式 3下 USART的帧格式和时序图
( 1)发送过程图 9-23 方式 2、方式 3发送时序
( 2)接收过程
3,方式 0— 同步 /主控 /半双工 /8位数据 — 移位寄存器
工作于方式 0之下的串行口被当作一个
USRT接口,这时存在以下几点局限性:
① 只能工作于半双工或单工方式;
② 只能工作于主控方式;
③ 不能被用于 80C51单片机之间的相互通信。
图 9-24 串行同步主控发送器 /接收器示意图
( 1)发送过程图 9-25 串行同步主控发送时序图
( 2)接收过程图 9-26 串行同步主控接收时序图
9.2.5 多机通信的实现原理
1,多机通信的接线方式图 9-27 单工的多机通信连接示意图图 9-28 半双工的多机通信连接示意图图 9-29 全双工的多机通信连接示意图图 9-30 利用 RS-232的多机通信连接示意图图 9-31 利用调制解调器的多机通信连接示意图图 9-32 一主多从式多机通信连接示意图
2,多机通信的实现方法图 9-33 多机通信状态转移图
3,多机通信的操作步骤
一次主从式多机通信过程的具体操作步骤如下。
① 初始化。
② 启用地址筛选功能。
③ 寻址。
④ 接收地址帧。
⑤ 对号。
⑥ 应答。
⑦ 正式开始通信。
⑧ 结束。
9.2.6 UART接口的扩充方法和设计技巧
1,选择具有多个 UART模块的单片机
2,采用软件虚拟技术
9.2.7 波特率与波特率发生器
1,波特率发生器的电路结构图 9-34 波特率发生器结构示意图
2.波特率的设计方法
对于固定和半固定波特率几乎不需要设计,下面介绍的设计方法是针对由 T1产生的可变波特率而言的。
C/T
波特率 /( b/s) fosc/MHz SM1 SM0 SMOD 定时器 T1方 式 初 值方式 0 1× 10
6 12
0 0 X X X X921600 11.0592 X X X X
方式 2
375000 12
1 0
1 X X X
187500 12 0 X X X
345600 11.0592 1 X X X
172800 11.0592 0 X X X
表 9-4 常用波特率及其设置方法波特率 /( b/s) fosc/MHz SM1 SM0 SMOD 定时器 T1方 式 初 值方式 1
或方式 3
62500 12
0 1
或
1 1
1 0 2 FFH
31520 12 0 0 2 FFH
19200 11.0592 1 0 2 FDH
9600 11.0592 0 0 2 FDH
4800 11.0592 0 0 2 FAH
2400 11.0592 0 0 2 F4H
1200 11.0592 0 0 2 E8H
137500 11.986 0 0 2 1DH
110 6 0 0 2 72H
110 12 0 0 1 FEEBH
9.2.8 80C51 USART的应用举例
1.两个 8051做单工发送数据
( 1)功能说明
( 2)硬件:如图 9-35所示。
图 9-35 数据传送连接图
( 3)程序,8051-T
( 4)程序,8051-R接收
2.一个 8051(主)与两个 8051(副)做串行多工发送数据
( 1)功能说明
① 主 CPU为 8051-A,P1接输入开关,
P2接另一输入开关,P0接 8个 LED。
副 805l-B,P10~ P13接输入开关,
P2接 8个 LED。
副 805l-C,P10~ P13接输入开关,
P2接 8个 LED。
② 当主 CPU 8051-A,P1的输入开关切换时,此数据会发送给副 CPU 8051-B,
并控制其 P2口 8个 LED的亮灭。同理,当主
CPU 8051-A,P2的输入开关切换时,则此数据会发送给副 CPU 8051-C,并控制其 P2
口 8个 LED的亮灭。
③ 当副 CPU 8051-B,P1的输入开关切换时,此数据会发送给主 CPU 8051-A并控制其 P0口低 4位的 4个 LED的亮灭。同理,
当副 CPU 8051-C,P1的输入开关切换时,
则此数据会发送给主 CPU 8051-A,并控制其 P0口高 4位的 4个 LED的亮灭。
( 2)硬件,如图 9-36所示。
图 9-36 一主两副数据传送连接图
( 3)程序,8051-A
( 4)程序,8051-B
( 5) 8051-C
80C51的通用 同步 /异步 收 /发器 USART模块9.2
串行通信9.1
9.1 串 行 通 信
9.1.1 概述
1.串行通信的优点
在并行通信中,数据有多少位就需要有多少条传送线,而串行通信只需要一条传送线。故串行通信节省传送线,特别是长距离传送时,这个优点就更为突出。但是串行传送的速度慢,若并行传送所需的时间为 T,则串行传送的时间至少为 NT
(其中 N为位数)。
2.同步通信与异步通信
在串行通信中,有两种最基本的通信方式。
( 1)非同步(异步)通信 ASYNC
( asynchronous data
communication)
它用起始位表示字符的开始,用停止位表示字符的结束。如图 9-1所示。
图 9-1 异步通信的格式
② 数据信号传送速率
数据信号传送速率的规定,对于 CPU
与外界的通信是很重要的。
假如数据传送的速率是 120字符 /秒,而每一字符包含 10个数据位,则每秒传送的二进制位数为
10× 120=1200位 /秒 =1200bit/s
则每一位的传送时间即为
Td=1/1200=0.833ms
③ 波特率( Baud rate)
图 9-2 信号传输率与波特率的关系
( 2)同步传送
在异步传送中,每一个字符都要用起始位和停止位作为字符开始和结束的标志,
至少占用了 1/5的时间,所以,在数据块传送时,为了提高速度,就去掉这些标志,
在数据块开始处用同步字符来指示。如图
9-3所示。
图 9-3 同步字符
3.数据传送方向
通常串行通信,数据在两个站之间是双向传送的,A站可作为发送端,B站作为接收端,也可以将 A站作为接收端,B站作为发送端,根据要求又可以分为半双工和完全双工两种。
( 1)半双工( half duplex)
半双工传送如图 9-4所示。
图 9-4 半双工示意图
( 2)完全双工( full duplex)
完全双工传送方式如图 9-5所示,即两个站同时都能发送。
图 9-5 完全双工示意图
4,信号的调制和解调图 9-6 通信信号示意图图 9-7 电话线的频带图图 9-8 数字信号通过电话线传送产生的畸变图 9-9 调制与解调示意图图 9-10 FSK调制法原理图
5,串行 I/O的实现
6,串行通信的校验方法
( 1) 软件奇偶校验
9.1.2 串行接口标准 EIA RS-232C接口图 9-11 RS-232C的引脚图图 9-12 接收器和发送器的具体电路图 9-13 计算机与远方终端和当地终端连接示意图
9.1.3 串行通信组网方式图 9-14 常见的 4种网络结构图
1,双机通信方式
2,多机通信方式
3,多主机通信方式图 9-15 一点对多点多机通信方式图 9-16 多主机通信方式
9.2 80C51中的通用同步 /异步收 /
发器 USART模块
表 9-1标准 80C51的 USARI串口支持的通信类型
9.2.2 USART模块相关的寄存器续表位 1 位 2 位 3 位 4 位 5 位 6 位 7 位 8
SM0 SM1 SM2 REN TB8 RB8 TI RI
1.串口控制寄存器 SCON
SM0 SM1 工 作 方 式 功 能 说 明 波 特 率
0 0 0 8位数据,同步 固定,fosc/12
0 1 1 8位数据,异步 ( 10位帧)
可变,由 TI提供
1 1 3
9位数据,异步
( 11位帧)1 0 2 半固定,fosc/64或
fosc/32
表 9-3 串行口的工作方式
2,电源控制寄存器 PCON
位 1 位 2 位 3 位 4 位 5 位 6 位 7 位 8
SMOD — — — GF1 GF0 PD IDL
9.2.3 USART模块的电路结构图 9-17 串口结构方框示意图
( 1)接收部分
包含接收控制器、接收缓冲器、接收移位寄存器和接收引脚等电路。
( 2)发送部分
包含发送控制器、发送缓冲器、发送控制门和发送引脚等电路。
( 3)公用部分
包含串口控制寄存器、波特率发生器、
同步 /异步切换开关 MUX和中断相关电路等。
9.2.4 USART模块的工作原理
1.方式 l— 异步 /双工 /10位帧结构 —
双机通信图 9-18 串行异步收 /发器简化示意图图 9-19 方式 1下 USART的帧格式和时序图图 9-20 方式 1发送时的时序
( 2)接收过程图 9-21 方式 1接收时序图
2,方式 2和方式 3— 异步 /双工 /11位帧结构 —
多机通信图 9-22 方式 2和方式 3下 USART的帧格式和时序图
( 1)发送过程图 9-23 方式 2、方式 3发送时序
( 2)接收过程
3,方式 0— 同步 /主控 /半双工 /8位数据 — 移位寄存器
工作于方式 0之下的串行口被当作一个
USRT接口,这时存在以下几点局限性:
① 只能工作于半双工或单工方式;
② 只能工作于主控方式;
③ 不能被用于 80C51单片机之间的相互通信。
图 9-24 串行同步主控发送器 /接收器示意图
( 1)发送过程图 9-25 串行同步主控发送时序图
( 2)接收过程图 9-26 串行同步主控接收时序图
9.2.5 多机通信的实现原理
1,多机通信的接线方式图 9-27 单工的多机通信连接示意图图 9-28 半双工的多机通信连接示意图图 9-29 全双工的多机通信连接示意图图 9-30 利用 RS-232的多机通信连接示意图图 9-31 利用调制解调器的多机通信连接示意图图 9-32 一主多从式多机通信连接示意图
2,多机通信的实现方法图 9-33 多机通信状态转移图
3,多机通信的操作步骤
一次主从式多机通信过程的具体操作步骤如下。
① 初始化。
② 启用地址筛选功能。
③ 寻址。
④ 接收地址帧。
⑤ 对号。
⑥ 应答。
⑦ 正式开始通信。
⑧ 结束。
9.2.6 UART接口的扩充方法和设计技巧
1,选择具有多个 UART模块的单片机
2,采用软件虚拟技术
9.2.7 波特率与波特率发生器
1,波特率发生器的电路结构图 9-34 波特率发生器结构示意图
2.波特率的设计方法
对于固定和半固定波特率几乎不需要设计,下面介绍的设计方法是针对由 T1产生的可变波特率而言的。
C/T
波特率 /( b/s) fosc/MHz SM1 SM0 SMOD 定时器 T1方 式 初 值方式 0 1× 10
6 12
0 0 X X X X921600 11.0592 X X X X
方式 2
375000 12
1 0
1 X X X
187500 12 0 X X X
345600 11.0592 1 X X X
172800 11.0592 0 X X X
表 9-4 常用波特率及其设置方法波特率 /( b/s) fosc/MHz SM1 SM0 SMOD 定时器 T1方 式 初 值方式 1
或方式 3
62500 12
0 1
或
1 1
1 0 2 FFH
31520 12 0 0 2 FFH
19200 11.0592 1 0 2 FDH
9600 11.0592 0 0 2 FDH
4800 11.0592 0 0 2 FAH
2400 11.0592 0 0 2 F4H
1200 11.0592 0 0 2 E8H
137500 11.986 0 0 2 1DH
110 6 0 0 2 72H
110 12 0 0 1 FEEBH
9.2.8 80C51 USART的应用举例
1.两个 8051做单工发送数据
( 1)功能说明
( 2)硬件:如图 9-35所示。
图 9-35 数据传送连接图
( 3)程序,8051-T
( 4)程序,8051-R接收
2.一个 8051(主)与两个 8051(副)做串行多工发送数据
( 1)功能说明
① 主 CPU为 8051-A,P1接输入开关,
P2接另一输入开关,P0接 8个 LED。
副 805l-B,P10~ P13接输入开关,
P2接 8个 LED。
副 805l-C,P10~ P13接输入开关,
P2接 8个 LED。
② 当主 CPU 8051-A,P1的输入开关切换时,此数据会发送给副 CPU 8051-B,
并控制其 P2口 8个 LED的亮灭。同理,当主
CPU 8051-A,P2的输入开关切换时,则此数据会发送给副 CPU 8051-C,并控制其 P2
口 8个 LED的亮灭。
③ 当副 CPU 8051-B,P1的输入开关切换时,此数据会发送给主 CPU 8051-A并控制其 P0口低 4位的 4个 LED的亮灭。同理,
当副 CPU 8051-C,P1的输入开关切换时,
则此数据会发送给主 CPU 8051-A,并控制其 P0口高 4位的 4个 LED的亮灭。
( 2)硬件,如图 9-36所示。
图 9-36 一主两副数据传送连接图
( 3)程序,8051-A
( 4)程序,8051-B
( 5) 8051-C