0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

51单片机串口通讯-1

汽车电子技术 来源:嵌入式悦翔园 作者: JamesBin 2023-02-17 14:43 次阅读

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

一、概述

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

图片

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

图片

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

(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

    文章

    5969

    浏览量

    135849
  • 计算机
    +关注

    关注

    19

    文章

    7418

    浏览量

    87711
  • 信息传输
    +关注

    关注

    1

    文章

    41

    浏览量

    9313
收藏 人收藏

    评论

    相关推荐

    51单片机串口通讯设计

    51单片机串口通讯设计 通信协议: 第1字节,MSB为1,为第
    发表于 03-18 16:58 3388次阅读

    C51单片机串口通讯的硬件电路图

    51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行
    发表于 11-17 21:06 1.8w次阅读

    单片机串口通讯程序

    基于51单片机单片机串口通讯程序源代码
    发表于 11-16 19:15 37次下载

    PC与多个51单片机串口通讯

    本文描述PC与多个51单片机串口通讯,在多通讯
    发表于 04-14 16:37 9次下载

    proteus仿真51单片机串口通讯

    proteus仿真51单片机串口通讯,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-17 14:50 71次下载

    51单片机串口通讯需要注意的寄存器及51单片机使用PRINTF的示例程序

    本文档的主要内容详细介绍的是51单片机进行串口通讯需要注意的寄存器及51单片机使用PRINTF的
    发表于 08-14 17:32 2次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b>需要注意的寄存器及<b class='flag-5'>51</b><b class='flag-5'>单片机</b>使用PRINTF的示例程序

    如何使用51单片机进行串口通讯的实现

    单片机进行串口通讯
    发表于 06-12 17:45 7次下载
    如何使用<b class='flag-5'>51</b><b class='flag-5'>单片机</b>进行<b class='flag-5'>串口</b><b class='flag-5'>通讯</b>的实现

    51单片机串口通讯详解

    不支持在线调试功能,所以串口作为一种有效的调试功能,所以在51单片机程序开发时,无法进行在线调试,不妨可以多采用串口来进行调试。1.
    发表于 11-11 17:06 15次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b>详解

    51单片机串口通信

    51单片机串口通信文章目录51单片机串口通信串口介绍
    发表于 11-18 14:06 22次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b>通信

    51单片机串口通信

    51单片机串口通信文章目录51单片机串口通信串口介绍
    发表于 11-21 20:36 62次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b>通信

    51单片机串口通讯实验2+Proteus仿真

    51单片机串口通讯实验2+Proteus仿真
    发表于 11-23 16:36 11次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b>实验2+Proteus仿真

    51单片机串口通讯 +Proteus仿真实验

    51单片机串口通讯 +Proteus仿真实验
    发表于 11-23 16:36 56次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b> +Proteus仿真实验

    单片机学习笔记————51单片机实现常用的自定义串口通讯协议

    单片机学习笔记————51单片机实现常用的自定义串口通讯协议
    发表于 11-23 17:06 37次下载
    <b class='flag-5'>单片机</b>学习笔记————<b class='flag-5'>51</b><b class='flag-5'>单片机</b>实现常用的自定义<b class='flag-5'>串口</b><b class='flag-5'>通讯</b>协议

    基于51单片机串口通讯测试设计资料源程序文件

    基于51单片机串口通讯测试设计资料源程序文件
    发表于 04-26 18:19 2次下载

    基于AT89C51单片机与PC串口通讯仿真及代码

    基于AT89C51单片机单片机与PC串口通讯仿真仿真及代码
    发表于 05-05 10:30 4次下载