当前位置:文档之家› 51单片机串行通讯

51单片机串行通讯


一、串行通讯
串行通信中,数据流以串行方式逐位地在一条信道上传 输,每次只能发送或接收一个数据位。 串行通信的特点是: 硬件上最少,只需要一对传输线即可完成,数据传送按 位进行,适用于数据位数多、远距离传输场合。串行通信 使得设备之间的连线大为减少,但也带来了数据的串/并转 换、并/串转换以及位计数等问题。 1、传送编码:常用的如美国信息交换码。也可以不用编码。
第七章 单片机串行通信
本章在介绍串行通信基础知识之后,介绍单片机 串行口的结构、特点、工作方式以及单片机双机、 多机、单片机与PC机之间的通信技术。
7-1 串行通信基础
通常把计算机与外界的数据传输称为通信,计算机的数据 通信方式有两种:并行通信和串行通信。 并行通信是将数据以成组的方式在两条以上的并行通道上 传输。它可以同时传输一组数据位,每个数据位使用单独的 一条导线。因此,并行通信的物理信道为并行内总线或并行 外总线。并行通信的特点是:硬件上有多根数据线,各数据 位同时传送,速度快,效率高,传送距离通常小于30米。如 计算机和外围设备之间的通信,CPU、存储器模块和设备控 制器之间的通信等。
常用的公认通讯标准:
1、 EIA-232-D接口标准
• EIA-232-D是由美国电子工业协会正式公布的串行总线标准,也是目前 最常用的串行接口标准,用来实现计算机之间、计算机与外设之间的数据通 信。EIA-232-D总线接口适用于设备之间距离不大于15米,传输速度最大 20kb/s。 EIA-232-D信号引脚定义 EIA-232-D定义了22根线,采用标准25芯 (DB-25) 插 头座,在EIA-232中描述的连接器还有DB-9。如后面表所示。 电气特性 • EIA-232-D采用负逻辑,即: • 逻辑“1”:-3V~-15V ;逻辑“0”:+3V~+15V • EIA-232-D的逻辑电平与TTL电平不兼容,为了与TTL器件相连必须进 行电平转换。
接收数据
通过指令MOV A , SBUF,使串口按事先设置的方式及 速率自动从端口TXD(P3.1) 接收数据,一帧数据接收完毕 RI=1,串口向CPU请求中断且表示接收已经结束。
3、可用软件控制串行口工作方式
控制寄存器SCON SCON各位定义 D7 D6 D5 D4 D3 SM0 SM1 SM2 REN TB8 D2 RB8 D1 TI D0 RI
二、方式0的用法
方式0工作性能:
1)波特率固定为 f /12, 发送—位数据等于一个机器周期。
2)不论是发送还是接收,数据都是从RXD(P3.0)端出入。TXD端 作为同步移位脉冲输出端。 3)工作于方式0时,可将串行接口扩展为并行接口,而其他三种 工作方式,则主要用于通信。 选择方式0: MOV SCON , #00H
2)传送数据为8位,连同一位起始位、一位停止 位组成一帧,即一帧为10位,发送由TXD输出, 接收由RXD输入,可构成全双工的串行通信端 口。
电源管理寄存器PCON PCON主要是为了在CHMOS型单片机上实现电源 控制而设置的专用寄存器,单元地址是87H,不可位寻 址。其格式如下:
PCON 地址(87H) D7 SMOD D6 — D5 — D4 — D3 GF1 D2 GF0 D1 PD D0 IDL
信号 引脚 TxD RxD 3 2 7 8 6 1 4 5
(b) 全握手 图 EIA-232端口的直接连接
引脚 信号 3 2 7 8 6 1 4 5 TxD RxD RTS CTS DSR CD DTR GND
信号 引脚 TxD RxD GND 3 2 5
引脚 信号 3 2 5 TxD RxD GND
2、接收工作过程
在REN位置 1 时,RXD 开始接收,当采样到RXD由1到0 的跳变后(起始位),串行口按照程序设定格式接收一帧代码, 并将此码的数据拼接成并行码送入接收缓冲器,在RI =0,且 停止位为 1 时保存结果,否则放弃(CPU自动控制);把停止 位1 送到 RB8 位,接收完成后置位 RI= 1 。 注意点:方式1 接收时,RI 与 SM2 位先清零; 接收波特率与发送波特率确定方法相同。
方式0的工作时序
方式0的应用
串行口扩展为并行输出口
选 通
选通
串行口扩展为并行输人口
选通
三、串口工作方式1的用法
串行异步通讯,适用于点对点通讯
1)波特率可变 串口波特率由定时器T1产生,并决定于T1定 时时间,而T1的定时时间决定于装入的时间常 数N,因此可根据时间常数N推出波特率,即
fOSC 2SMOD 波特率 32 ቤተ መጻሕፍቲ ባይዱ256 N ) 12
SMOD是串行口波特率倍增位,当SMOD = 1时,串 行口波特率加倍。系统复位时默认为SMOD = 0。 PCON中的其余各位用于MCS-51单片机的电源控制。
1、发送工作过程
TI=0时,执行MOV SBUF, #data 指令, #data 就从 TXD 端发出去,在发出停止位 1 时,置位 TI,申请中断,发 送波特率由前面公式确定。 说明:通讯时,T1 作为波特率控制器,应工作在方式2, 而且不能中断。
Mark
起 始 位 位时间 帧 数 据 位 D0 数 据 位 D1 数 据 位 Dn-1 校 验 位 停止位 起 始 位
(1)起始位。通信线在没有数据传输时处于逻辑“1”状态,当发送器
要发送一个字符的数据时,首先发送一个逻辑“0”信号,表示其后
所传输的为数据。起始位表示字符传输开始。
(2) 数据位。起始位之后为数据位。数据位的个数是5、6、7或8位 (取决于协议规定),低位在前,高位在后。
方式1的工作时序
3、串口初始化举例
• 以设计一8051单片机控制系统为例,设主振频率为 12MHz,要求串口接收、发送数据为8位、波特率为 1200bps.则初始化步骤为: • 1、先按波特率要求,计算T1的时间常数N,设SMOD=1。
已知主振频率为12MHz,波特率为1200bps.,串口工作于方式1,按公式可 求得
三、串行通讯的方向:单工、半双工、全双工通信方式
串行数据通信有三种数据通路形式:单工(Simplex) 、半双工
(Half-duplex) 、全双工(Full-duplex)
TxD 数据线 RxD
TxD

GND

数据线
RxD TxD


GND
RxD GND
GND
单工形式串行通信图
TxD 数据线 数据线 RxD TxD
1 1 2
2、同步方式
同步方式仅在开始用若干字符作为同步号令,然后连 续发送数据,不但在一帧内各位要保持同步,而且同步 号令之后的所有字符之间也保持同步,如图所示。由于 没有在每一个字符中,配置起始、停止位,所以结构紧 凑,传输效率高、速度快,要求硬件有准确的时钟,其组 成如下图所示: 特点:效率高,但硬件复杂,要求发送、接收双方保持完 全同步,需要同步信号线。
半双工形式串行通信


GND
RxD GND
全双工形式串行通信
四、通讯标准
指通讯双方采用的规则:包括硬件协议与软件协议。 硬件协议:硬件接线方式 软件协议:字符格式、编码形式、奇偶校验形式、停止位及 通讯双方采用的波特率等等。 单片机串行通讯往往采用异步方式, 通讯软件协议往往采用自由协议(编程者自己定义的)。
程序如下(以子程序的形式给出):
;发送程序清单: ORG 0000H ASTART:CLR EA MOV TMOD,#20H MOV TH1,#0F4H MOV TL1,#0F4H MOV PCON,#00H SETB TR1 MOV SCON,#50H ;启动定时器 ;设定串口方式 1,且准备接收应答信号 ;定时器 1 置为方式 2 ;装载定时器初值,波特率 2400 b/s
2、传送速率:用波特率表示,位/秒
串行通信中常用的标准波特率有:600、1200、2400、 4800、9600、19200等
二、串行通信有两种基本通信方式:同步通 信和异步通信。
1. 串行异步通信方式
异步串行通信以字符为单位,以相同的帧格式传送。每一帧信息 由起始位,数据位,奇偶校验位和停止位组成。如图所示。
;串行口工作于方式1 ;SMOD=1, ;T1工作方式2定时方式 ;设置时间常间为N ;自动装入时间常数 ;启动T1
4、双机通信程序举例
[例]设1号机是发送方,2号机是接收方。当1号机发送时,先发送 一个“E1”联络信号,2号机收到后回答一个“E2”应答信号,表 示 同意接收。当1号机收到应答信号“E2”后,开始发送数据,每 发 送一个字节数据都要计算校验和,假定数据块长度为16 B,起 始地址为40H,一个数据块发送完毕后立即发送校验和。2号机 接收数据并转存到数据缓冲区,起始地址也为40H,每接收到一 个字节数据便计算一次校验和,当收到一个数据块后,再接收1 号机发来的校验和,并将它与2号机求出的校验和进行比较。若 两者相等,说明接收正确,2号机回答00H;若两者不相等,说 明接收不正确,2号机回答0FFH,请求重发。1号机接到00H后 结束发送,若收到的答复非零,则重新发送数据一次。 双方约定采用串行口方式1进行通信,一帧信息为10位,其中 有1个起始位、8个数据位和1个停止位;波特率为2400 b/s,T1 工作在定时器方式2,单片机时钟振荡频率选用11.0592 MHz, PCON寄存器的SMOD位为0。
RTS CTS DSR CD DTR GND
(a) 无握手
7--2 8051串行通讯 一、8051串口特点
1、串口信号线:P3.0(10脚):RSD 接收 P3.1 (11脚):TXD 发送 ;全双工方式。 2、有缓冲接收、发送功能
发送数据
通过指令MOV SBUF,A将数据写入SBUF,然后串口自动 将数据按事先设置的方式及速率从TXD(P3.1)端口输出, 数据发送完毕,串口向CPU申请中断,且通过硬件将TI置1, 表示发送已经结束,等待写入第二帧数据。
相关主题