51单片机串口通讯-1

描述

计算机与外界的信息传输常被称为通信,基本通信方式有并行通信和串行通信两种。

一、概述

并行通信方式指数据的各个二进制位在不同的数据线上同时传输。并行通信传输速度快,效率高,但所需的数据线多,成本高,抗干扰能力较差,适用于近距离传输。

计算机

串行通信方式指将数据拆分成多个二进制位,逐一的在同一条数据线上输出。串行通信虽然传输速度较慢,效率较低,但所需的数据线少、硬件电路简单、抗干扰能力强,且适用于远距离数据传输。

计算机

串行通信有同步通信和异步通信两种基本的通信方式。

(1)同步通信

同步通信是一种连续的串行传输数据的通信方式,待发送的若干个字符数据构成一个数据块,在该数据块前部添加1~2个同步字符,在数据块的末尾添加校验信息,以此种方式构成数据帧,以数据帧为单位进行串行通信。

计算机

(2)异步通信

每一帧由四部分构成,分别是起始位、数据位、校验位和停止位。起始位是数据开始传送的标志,用逻辑0表示;数据位紧跟起始位,通常是5~8位二进制位;校验位用于校验数据位是否发送正确,可以选择奇校验、偶校验或者不使用校验位。帧和帧之间可以连续,或者加入任意的空闲位,空闲位用逻辑1表示。

按照数据传送方向,串行通信可以分为三个种类,分别是单工、半双工和全双工。

单工:通信双方一方固定为发送方,另一方固定为接收方,数据只能是单向传输;

半双工:通信双方只使用一根数据线,每一方都有发送器和接收器,可以在两个方向上传送,但通信双方不能同时接收或发送数据,只能交替进行;

全双工:通信双方使用两根数据线,分别用于不同方向的数据传输,通信双方能够同时收发数据。

计算机

二、波特率

波特率是数据传输速率,指每秒钟传送二进制位的个数,单位为bit/s。

波特率是串行通信的重要指标,波特率越高,串口数据传输速度越快。

假如设定波特率为9600bit/s,而数据帧由1位起始位、8位数据位、1位停止位构成,则串口每秒钟最多传送9600/(1+8+1)=960个字节。

计算机

如果两个单片机相距较短(在1.5m之内),串口可直接相连

计算机

如双机通信距离在1.5m~15m之间时,且传输速率不高,可用RS-232C标准接口实现点对点的双机通信 。

计算机

RS-422A标准:差分传输,共4线,全双工,最大传输率为10Mbit/s,最大传输距离可达1219m。

计算机

RS-485是RS-422A的变型。区别:RS-422A为全双工,采用两对平衡差分信号线;RS-485为半双工,采用一对平衡差分信号线。RS-485对于多站互连是十分方便的,很容易实现多机通信。RS-485允许最多并联32台驱动器和32台接收器。

计算机

三、串口结构

8051单片机的串行口主要由数据发送缓冲器SBUF、发送控制器、输出控制门、数据接收缓冲器SBUF、接收控制器、输入移位寄存器、串行口控制寄存器SCON构成。

计算机

计算机

有两个独立的接收、发送缓冲器SBUF,可同时发送、接收数据。4两个缓冲器共用一个特殊功能寄存器字节地址(99H)。

两个控制寄存器SCON和PCON。

SCON用于设定串口通信的工作方式、接收/发送控制以及串口工作状态指示。SCON的字节地址为0x98,可以进行位寻址,格式如下:

计算机

SM0、SM1:串行通信工作方式选择位。SM0和SM1共4种组合,对应4中工作方式,如下表所示,其中fosc为晶振频率。

计算机

计算机

SM2:多机通信控制位,主要用于工作方式2和工作方式3。当串行口在多机通信模式下接收数据时:

当SM2=0时,将接收到的8位数据送入到SBUF中,并产生中断请求。

若设置SM2=1,且RB8为0时,不接收主机发来的数据;只有当RB8为1时,才产生中断请求,并将接收到的前8位数据送入SBUF。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分