第10章串行通信的工作原理与应用
微机原理与接口技术10教材

CTS RTS
接收控制
8251A命令字
两个命令字:方式选择命令字、工作命令字
一个状态字
方式选择命令字仅仅对8251A的工作方式做了
规定,并不能使其启动工作。因此在方式选择 命令字后必须写入一个工作命令字,以便接收 和发送数据。 两个命令字在对8251A初始化编程时必须完成, 否则芯片将不工作。 两个命令字都写入同一控制口,无特征位,所 以必须按顺序完成。
第10章:串行通信
串行通信基础 串行异步通信接口芯片8250 串行通信程序设计 串行通信接口芯片8251A
本章重点
串行通信的特点 同步异步通信的特点、异步通信的帧 格式、波特率、串行数据传输方式
8251A的特点
通信基本方式
并行通信 多位二进制数据可以同时传输; 提高数据传输的效率; 每一位都要有自己的传输线和发送接收器件。
方式选择命令字
D7 D6 D5 D4 D3 D2 D1 D0
同步/ 帧控制 D1D0≠00时: 00:不确定 01:1个停止位 10:1.5个 11:2个停止位
奇偶校验 ×0:无 01:奇校验 11:偶校验
数据长度 00:5位 01:6位 10:7位 11:8位
通信方式与 波特率选择 00:同步 01:异步1 10:异步16 11:异步64
解调:将模拟信号转换成数字信号 调制解调器(MODEM):既调制,又解调 方法: 根据载波 Acos(t + )的三个参数:幅度、频 率、相位,产生常用的三种调制技术: 1. 振幅键控 Amplitude-Shift Keying (ASK) 2. 频移键控 Frequency-Shift Keying (FSK) 3. 相移键控 Phase-Shift Keying (PSK)
第10章串行通信

串行通信的异步传输模式
•以字符为基本通信单位 •起始位标志着每一个字符的开始 •停止位标志着每一个字符的结束
13
串行通信的异步传输模式
平时通信线处于空闲状态(“1”状态),当有数据 发送时,发送方首先发一“0”,称为起始位;
接着发送数据位,数据位可有5~8位组成。 然后是校验位,校验分奇校验、偶校验、置0、置1、
31
例 : 发 送 数 据 序 列 : 1010001101 , 生 成 多 项 式 : 110101。发送数据序列*25:101000110100000
x5x4x2x0
1010001101 00000 -- 1
110101
010110 -- 7
0111011 -- 2
101100 -- 8
110101
在简单的控制系统中,大都采用异步方式。 在许多对数据交换量不大的系统,也采用异步方式。 数据通信系统中采用同步方式。
21
串行异步通信的传输制式
单工:仅在一个方向上的数据传送。 半双工:两个方向上交替地传送数据,同一时间
只能在一个方向上。 全双工:可在两个方向上同时传送数据。
22
串行异步通信的同步
然后通信双方按照约定的波特率发送和采样对应数据 位。只要在一个字符传送期间,积累的误差不大于一 位数据传送时间。就不会发生错误。
因此,异步传输允许发送器和接收器不必用同一个时 钟,而是可以各有各的时钟(局部时钟),只要有同 一个标称频率即可,且对频率的精度要求也较低。
两次发送字符之间必须要有间隔时间(停止位),并 且每次字符传输,必须有一位同步信号(起始位)。
23
串行通信的校验----奇偶校验
在异步通信的格式中,可以包含一位校验位(奇、 偶校验)。
通信原理 (完整)精选全文

数字通信的主要优点:
(a) 失真的数字信号
(b) 恢复的数字信号
数字信号波形的失真和恢复
数字通信的主要缺点:
➢ 占用带宽大 ➢ 设备复杂 ➢ 同步要求高
宽带通信、压缩编码 VLSI、SOC、ASIC 信号处理技术
应用实例:
➢ 数字传输技术:电话、电视、计算机数据等 信号的远距离传输。
➢ 模拟传输技术:有线电话环路、无线电广 播、电视广播等。
狭义信道
有线信道 无线信道
中长波地波 短波电离层反射 超短波、微波视距传输 超短波、微波对流层散射 卫星中继
编码信道 调制信道
信 源
加 密 器
编 码 器
调 制 器
发 转 换 器
信 道
收 转 换 器
解 调 器
解解 码密 器器
信 宿
发送设备
噪 声
接收设备
广义信道
广义信道
调制信道:
调制器输出端到解调器输入端的所有设备和媒介。 研究调制和解调时,常用调制信道。 连续信道/模拟信道。
eo(t)
e0t htei t nt e0t kt ei t nt
n(t)
n(t): 加性干扰 k(t): 乘性干扰
k t 依赖于网络的特性,k t 反映网络特性对 ei t 的作用。
干扰
加性干扰:本地噪声
始终存在
乘性干扰:非理理想信道 与信号共存
sR t sT tht nt
乘性 加性
增量调制DM
军用、 民用电话
Hale Waihona Puke 差分脉码调制DPCM电视电话、 图像编码
其 他 语 言 编 码 方 式 中低速数字电话 ADPCM、 APC、 LPC
按信号复用方式分类
串行通信

3、串行通信工作方式 、
单工 A 发 A 发 收 B 收 广播电台 收音机
半双工
B 收 发
对讲机
全双工
A 发 收
B 收 发
电话机
4、波特率 、
波特率是指每秒钟传送信号的数量,单位为波特(Baud)。 波特率是指每秒钟传送信号的数量,单位为波特(Baud) 是指每秒钟传送信号的数量 波特 例:异步串行通信的数据传送的速率是120字符/秒,而每个字符规 异步串行通信的数据传送的速率是120字符/ 120字符 定包含10位( 1个起始位、8个数据位、1个停止位)数字,则传输 定包含10位 个起始位、 个数据位、 个停止位)数字, 10 波特率为: 波特率为: 120字符/秒× 10位/字符=1200位/秒= 1200bps 10位 字符=1200 =1200位 120字符/ 字符
(P3.1)
去申请中断
1、SBUF:串行发送 / 接收数据缓冲器 99H 、 : 发送 接收 2、SCON:串行口控制寄存器 、 :
SM0 SM1 SM2 REN TB8
98H
RB8 TI RI
3、PCON:特殊功能寄存器 :
SMOD
87H
4、IE:中断允许寄存器 、 :
EA ES
A8H
ET1 EX1 ET0 EX0
如何发送和接收数据 可中断、 可中断、可查询
MCS-51串行口的结构如下图所示: SBUF (发) A 累 加 器 波 特 率 发 生 器
T1
(门)移位寄存器 门 移位寄存器 发送控制器 TI
引脚 TxD
(P3.1)
CPU CPU 内 部
≥1
接收控制器 RI SBUF (收) 引脚 移位寄存器 RxD
串行口工作原理

串行口工作原理
串行口是一种用于数据传输的硬件接口,它可以将数据逐个比特地传输。
串行口工作的基本原理是将需要传输的数据按照一定的规则进行分割,并以连续的比特序列的形式进行传输。
在串行口的工作过程中,数据被分成一个个比特,然后按照事先约定好的规则,依次传输给接收端。
这个规则包括了每个比特的位宽、传输的顺序以及同步的方式等等。
通常情况下,串行口使用的是异步传输方式,也就是说,传输时不需要事先进行时钟同步,而是在数据的起始位置插入起始位和校验位来提供同步信息。
在串行口的数据传输过程中,发送端按照一定的时序将数据比特逐个发送给接收端。
接收端按照相同的时序依次接收每个比特,并通过解码、校验等操作恢复原始数据。
为了保证数据的准确性,通常还会在传输过程中加入差错检测和纠错机制,例如CRC校验等。
串行口的工作原理与并行口不同,串行口通过逐个比特的方式传输数据,相比之下,串行口在传输速率上可能会受到一定的限制。
但是串行口的传输距离相对较长,传输线路简单,而且可以灵活选择传输速率,因此在许多应用场景下得到了广泛的应用。
例如,在计算机、通信设备、工业自动化等领域中,串行口被广泛用于连接外部设备与主机进行数据交互。
单片机 串口通信原理

单片机串口通信原理
单片机串口通信是指通过串行口进行数据的传输和接收。
串口通信原理是利用串行通信协议,将数据按照一定的格式进行传输和接收。
在单片机中,串口通信一般是通过UART(通用异步收发传输器)模块来实现的。
UART模块包括发送和接收两部分。
发送部分将数据从高位到低位逐位发送,接收部分则是将接收到的数据重新组装成完整的数据。
串口通信的原理是利用串行通信协议将发送的数据进行分帧传输。
在传输的过程中,数据被分成一个个的数据帧,每帧包括起始位、数据位、校验位和停止位。
起始位和停止位用于标识数据的开始和结束,数据位则是用来存放需要传输的数据。
校验位用于校验数据的正确性。
在发送端,单片机将需要发送的数据按照一定的格式组装成数据帧,然后通过UART发送出去。
在接收端,UART接收到的数据也是按照数据帧的格式进行解析,然后重新组装成完整的数据。
通过这样的方式,发送端和接收端可以进行数据的传输和接收。
串口通信具有简单、可靠性高、适应性强等优点,广泛应用于各种领域,如物联网、嵌入式系统等。
掌握串口通信原理对于单片机的应用开发具有重要意义。
串行通信ppt课件

第10章 串行通信
(2)起始位的检测
必须确定起始位才能开始接收数据,即实现位同步。 数据接收时钟RCLK使用16倍波特率的时钟信号。接收器 用RCLK检测到串行数据输入引脚SIN由高电平变低后,连续 测试8个RCLK时钟周期,若采样到的都是低电平,则确认为 起始位。 确认了起始位后每隔16个RCLK时钟周期对SIN输入的数据 位进行采样一次,直至规定的数据格式结束。
10
第10章 串行通信
TxD 发送数据——串行数据的发送端。 RxD 接收数据——串行数据的接收端。 GND 信号地——为所有的信号提供一个公共的参考电平 RTS 请求发送——当数据终端设备准备好送出数据时,就发出有效的 RTS信号,用于通知数据通信设备准备接收数据。 CTS 清除发送——当数据通信设备已准备好接收数据终端设备的传送 数据时,发出CTS有效信号来响应RTS信号。 DTR 数据终端准备好——通常当数据终端设备一加电,该信号就有效, 表明数据终端设备准备就绪。 DSR 数据装置准备好——通常表示数据通信设备(即数据装置)已接通 电源连到通信线路上,并处于数据传输方式,而不是处于测试方式或 断开状态。 CD 载波检测——当本地调制解调器接收到来自对方的载波信号时,就 从该引脚向数据终端设备提供有效信号。该引脚缩写为DCD。 RI 振铃指示——当调制解调器接收到对方的拨号信号期间,该引脚 信号作为电话铃响的指示,保持有效。
16
第10章 串行通信
2.结构
其中寄存器: THR、TSR RBR、RSR LCR LSR DLH DLL MCR MSR IER IIR
17
第10章 串行通信
(1)串行数据的发送
CPU送来的并行数据存在发送保持寄存器THR中。 只要发送移位寄存器TSR中没有正在发送的数据, 发送保持寄存器的数据就送入TSR 。 与此同时,8250按照编程规定的起止式字符格式, 加入起始位、奇偶校验位和停止位,从串行数据输 出引脚SOUT逐位输出。 因为THR、TSR采用双缓冲寄存器结构,所以在 TSR进行串行发送的同时,CPU可以向8250提供下 一个发送数据到THR,这样可以保证数据的连续发 送。
第10章作业与答案

习题一、选择题1.在异步串行通信中,收发双方必须保持________。
A.收发时钟相同B.停止位相同C.数据格式和波特率相同D.以上都正确答案:C2.同步通信过程中,通信双方依靠_____进行同步。
A.起始位B.同步字符C.命令字D.停止位答案:B3.8251A收、发串行数据的波特率_______。
A.可由编程设置B.等于CLK输入的基准时钟频率的16倍C.等于CLK输入的基准时钟频率的1/16D.等于CLK输入的基准时钟频率答案:A4.8251A以异步通信方式工作,设波特率因子为16,字符长度为8位,奇校验,停止位为2位,每秒种可传输200个字符,则它的传输速率和收发时钟信号频率分别是______(bps,kHz)。
A.200,200B.2200,38.4C.2400,38.4D.200,38.4答案:C5.DMA用于传送_____之间的大量数据。
A.CPU与存储器B.存储器与外设C.CPU与外设D.寄存器与存储器答案:B6.在微机系统中采用DMA方式传输数据时,数据传送是______。
A.由CPU控制完成的B.由执行程序(软件)完成C.由DMAC发出的控制信号控制完成的D.由总线控制器发出的控制信号控制完成的答案:C7.当8086/8088CPU响应DMA设备的HOLD请求后,CPU将______。
A.转入特殊的中断服务程序B.进入等待周期C.接受外部数据D.放弃对总线的控制权答案:D8.在DMA方式下,将内存数据送到外设的路径是_______。
A.CPU→DMAC→外设B.内存→数据总线→外设C.内存→CPU→总线→外设D.内存→DMAC→数据总线→外设答案:B9.在DMA方式下,CPU与总线的关系是______。
A.只能控制地址总线B.相互成隔离状态C.只能控制数据线D.相互成短接状态答案:B10.采用DMA方式传送时,每传送一个数据要占用______时间。
A.一个指令周期B.一个机器周期C.一个存储周期D.一个总线时钟周期答案:C二、填空题1.异步串行通信没有数据传送时,发送方应发送______信号;串行同步通信没有数据传送时,发送方应发送_____信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10.2.1 方式0
1.方式0输出 方式0的发送时序见图10-5。
图10-5 方式0发送时序
10.2.1 方式0
1.方式0输出
(2)方式0输出的应用案例 典型应用是串口外接串行输入/并行输出的同步移位寄 存器74LS164,实现并行端口的扩展。 图10-6为串口方式0,通过74LS164输出控制8个外接 LED发光二极管亮灭的接口电路。当串口设置在方式0输出 时,串行数据由RXD端(P3.0)送出,移位脉冲由TXD端 (P3.1)送出。在移位脉冲的作用下,串行口发送缓冲器的 数据逐位地从RXD端串行地移入74LS164中。
10.1.5 特殊功能寄存器PCON
例如,方式1的波特率计算公式为
当SMOD=1时,比SMOD=0时波特率加倍,所以也称 SMOD位为波特率倍增位。
10.1 串行口结构
10.2 串行口的4种工作方式
CONTENTS
目
10.3 波特率的制定方法
录
10.4 串行口应用设计案例
10.2.1 方式0
方式0为同步移位寄存器输入/输出方式。该方式并不用 于两个AT89S51单片机间的异步串行通信,而是用于外接移 位寄存器,用来扩展并行I/O口。
if(nSendByte==0)
nSendByte=1;
//点亮数据是否左移8次?是,重新送点亮数据
SBUF=nSendByte; }
// 向74LS164串行发送点亮数据
TI=0;
RI=0;
}
10.2.1 方式0
1.方式0输出
程序说明:
01 程序中定义了全局变量nSendByte,以便在中断服务程
第10章
串行口的工作原理及应用
单片机原理及接口技术(C51编程)(第2版)
10.1 串行口工作原理
10.2 串行口的4种工作方式
CONTENTS
目
10.3 波特率的制定方法
录
10.4 串行口应用设计案例
10.1.1 通信方式简介
通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信 息的交换多采用串行通信方式。
方式0以8位数据为1帧,没有起始位和停止位,先发送 或接收最低位。波特率是固定的,为fosc/12。帧格式见图 10-4。
图10-4 方式0帧格式
10.2.1 方式0
1.方式0输出
(1)方式0输出的工作原理 当单片机执行将数据写入发送缓冲器SBUF指令时,产 生一个正脉冲,串口把8位数据以fosc/12固定波特率从 RXD脚串行输出,低位在先,TXD脚输出同步移位脉冲,当 8位数据发送完,中断标志位TI置“1”。
}
10.2.1 方式0
1.方式0输出
main( ) {
//主程序
SCON=0x00;
// 设置串行口为方式0
EA=1;
// 全局中断允许
ES=1;
// 允许串行口中断
nSendByte=1;
// 点亮数据初始为0000 0001送
//入nSendByte
SBUF=nSendByte; / / 向 S B U F 写 入 点 亮 数 据 , 启 动
8
10.1.3 串行通信的传输方向
1、单工 单工是指数据传输仅能沿一个方向,不能实现反向传输。 2、半双工 半双工是指数据传输可以沿两个方向,但需要分时进行。 3、全双工 全双工是指数据可以同时进行双向传输。
发送 时间1 接收
发送
接收
发送
接收
接收 时间2 发送
接收
发送
单工
半双工
全双工
10.1.4 串行口结构
OPTION
为0x00后,需对变量nSendByte重新赋值为1。
10.2.1 方式0
1.方式0输出
程序说明:
03 主程序中SBUF=nSendByte语句必不可少,如果没有
0 10100100 1
间ห้องสมุดไป่ตู้任意 发
送
0 11100110 1 0 1110011设0
备
异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间 隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间进行传送。
6
10.1.2 同步与异步
异步通信的数据格式 :
起 空始 闲位
一个字符帧 数据位
TXD
SBUF
控制门
TH1 TL1
发送控制器 TI 去串口中断
1
A
÷16 ÷2
≥1
0
T1溢出率
SMOD
接收控制器 RI
SBUF
RXD 移位寄存器
图10-1 串行口的内部结构
两个物理上独立的接收、发送缓冲器SBUF,可同时发送、 接收数据。两个缓冲器共用一个特殊功能寄存器字节地址 (99H)。控制寄存器两个:特殊功能寄存器SCON和PCON。
//串行发送
P1_0=0;
// 允许串口向74LS164串行发送数据
while(1)
{;}
}
10.2.1 方式0
1.方式0输出
//串行口中断服务程序
void Serial_Port( ) interrupt 4 using 0 {
if(TI) {
// 如果TI=1,1个字节串行发送完毕
P1_0=1;
校停 验止 位位
空 下一字符 闲 起始位
LSB
MSB
7
10.1.2 同步与异步
2、同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制, 使双方达到完全同步。同时传送的字符间不留间隙,既保持 位同步关系,也保持字符同步关系。
01101
计 数据
计
算
算
机
机
甲 时钟
乙
时钟
计 数据 算 机 数据+时 甲
10.2.1 方式0
74LS164
时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA和 DSB)的逻辑与, 它将上升时钟沿之前保持一个建立时间的长度。
10.2.1 方式0
10.2.1 方式0
1.方式0输出
参考程序:
#include <reg51.h>
#include <stdio.h>
(3)REN—允许串行接收位,由软件置“1”或清 “0”。
REN=1,允许串行口接收数据。 REN=0,禁止串行口接收数据。 (4)TB8—发送的第9位数据 在方式2和方式3时,TB8是要发送的第9位数据,其值 由软件置“1”或清“0”。 在双机串行通信时,TB8一般作为奇偶校验位使用;也 可在多机串行通信中表示主机发送的是地址帧还是数据帧, TB8=1为地址帧,TB8=0为数据帧。
AT89S51串行口内部结构见图10-1。有两个物理上独 立的接收、发送缓冲器SBUF(特殊功能寄存器),可同时 收发数据。发送缓冲器只写不读,接收缓冲器只读不写,两 个缓冲器共用一个特殊功能寄存器字节地址(99H)。
控制寄存器共有2个:特殊功能寄存器SCON和PCON。 下面详细介绍各位功能。
10.1.4 串行口结构
字节地址为87H,不能位寻址。格式见图10-3。 仅最高位SMOD与串口有关 SMOD位:波特率选择位。
图10-3 特殊功能寄存器PCON的格式
GF1,GF0:两个通用工作标志位,用户可以自由使用。
10.1.5 特殊功能寄存器PCON
PD:掉电模式设定位。 PD=0 单片机处于正常工作状态。 PD=1 单片机进入掉电(Power Down)模式 ,可由外部 中断或硬件复位模式唤醒,进入掉电模式后,外部晶振停振, CPU、定时器、串行口全部停止工作,只有外部中断工作。 IDL:空闲模式设定位。 IDL=0 单片机处于正常工作状态。 IDL=1 单片机进入空闲(Idle)模式,除CPU不工作外, 其余仍继续工作,在空闲模式下可由任一个中断或硬件复位 唤醒。
sbit P1_0=0x90;
unsigned char nSendByte;
void delay(unsigned int i) { //延时子程序
unsigned char j;
for(;i>0;i--)
//变量i由实际参数传入一个值,
//因此i不能赋初值
for( j=0;j<125;j++);
11
10.1.4 串行口控制寄存器SCON
串行口控制寄存器SCON,字节地址98H,可位寻址, 位地址为98H~9FH,即SCON的所有位都可用软件来进行 位操作清“0”或置“1”。SCON格式见图10-2。
图10-2 串口控制寄存器SCON格式
10.1.4 串行口控制寄存器SCON
寄存器SCON各位功能: (1)SM0、SM1—串口4种工作方式选择
OPTION
序中能访问该变量。nSendByte用于存放从串行口发出 的点亮数据,在程序中使用左移1位操作符“<<”对 nSendByte变量进行移位,使得从串口发出的数据为 0x01、0x02、0x04、0x010、0x10、0x20、0x40、 0x100,从而流水点亮各个发光二极管。
02 程序中if语句的作用是当nSendByte左移1位由0x100变
10.2.1 方式0
1.方式0输出
图10-6 方式0输出外接8个LED发光二极管接口电路
10.2.1 方式0
1.方式0输出
【例10-1】如图10-6,控制8个发光二极管流水点亮。 图中74LS164的8脚(CLK端)为同步脉冲输入端,9脚为控 制端,9脚电平由单片机的P1.0控制,当9脚为0时,允许串 行数据由RXD端(P3.0)向74LS164的串行数据输入端A和 B(1脚和2脚)输入,但是74LS164的8位并行输出端关闭; 当9脚为1时,A和B输入端关闭,但是允许74LS164中的8位 数据并行输出。当串行口将8位串行数据发送完毕后,申请 中断,在中断服务程序中,单片机向通过串行口输出下一个 8位数据。