计算机与外界的信息传输常被称为通信,基本通信方式有并行通信和串行通信两种。
一、概述
并行通信方式指数据的各个二进制位在不同的数据线上同时传输。并行通信传输速度快,效率高,但所需的数据线多,成本高,抗干扰能力较差,适用于近距离传输。
串行通信方式指将数据拆分成多个二进制位,逐一的在同一条数据线上输出。串行通信虽然传输速度较慢,效率较低,但所需的数据线少、硬件电路简单、抗干扰能力强,且适用于远距离数据传输。
串行通信有同步通信和异步通信两种基本的通信方式。
(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。
-
通信
+关注
关注
18文章
6030浏览量
135975 -
计算机
+关注
关注
19文章
7492浏览量
87902 -
信息传输
+关注
关注
1文章
41浏览量
9323
发布评论请先 登录
相关推荐
评论