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

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

3天内不再提示

单片机串口通信知识详解

哈哈hfgfdf 来源:嵌入式学习资料 作者:嵌入式学习资料 2022-12-13 16:35 次阅读

串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,其通讯协议可分层为协议层和物理层。

12ede6de-7ac1-11ed-abeb-dac502259ad0.png

1、串行通信概念

串行通信:将数据字节分成一位一位的形式在一条传输线上逐个传送,示意图如下

133927e8-7ac1-11ed-abeb-dac502259ad0.png

1.1、通讯特点

传输线少、长距离传输时成本低,且可以利用电话线网等现成的设备,但数据的传输控制比并行通信复杂。

1.2、异步通信和同步通信

异步通信:发送设备与接收设备使用自己各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。

13525164-7ac1-11ed-abeb-dac502259ad0.jpg

异步通信是以字符为单位进行传输,字符与字符之间的间隙是任意的,但是每个字符之间的诗是以固定的“位间隙”的整数倍的关系。

137322cc-7ac1-11ed-abeb-dac502259ad0.jpg

同步通信:同步通信时要建立发送方时钟对接收方时钟的控制,是双方达到同步得效果。此时传输数据的位之间的距离均为“位间隙"的整数倍,同时传输的字符串见不留间隙,即保持同步关系。

2、串行通信的传递方向

串行通信的传输方向:单工、半双工、全双工

1.2、单工

单工是指数据传输仅沿一个方向,不能实现反向传输。

1.2、半双工

半双工是指数据传输可以沿两个方向,但需要分时进行。

1.2、全双工

全双工是指数据同时进行双向传输

3、信号的调制与解调

利用调制器把数字信号转换成模拟信号,然后送到通信线路上去,再由解调器把从通信线路上收到的模拟信号换成数字信号。

由于传输是双向的,调制器和解调器合并在一个装置中,这就是调制解调器MODDEM

4、串行通信鄂错误校验

1)奇偶校验

在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。

2)代码和校验

代码和校验是发送方将所发数据块求和(或各字节异或)产生一个字节的校验字符,(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和,(或各字节异或),将所得的结果写发送方的“校验和”进行比较,

3)循环冗余校验


这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强广泛应用于同步通信中。

5、串行口的工作方式

1、方式0


串行接口的工作方式0为移位寄存器I/O方式。在串行口外接移位寄存器以扩展I/O接口,也可以外接串行同步I/O的设备。

(1)方式0输出
串行口以方式0发送时,数据以RXD端串行输出,TXD端输出同步信号。当一个数据写入串行口发送缓冲器以后,就启动串行口发送器以振荡频率的十二分之一的波特率,将数据从RXD端串行输出。

(2)方式0输入
当串行口定义为方式0并置位REN后,便启动串行口以方式0接收数据,此时RXD端为数据输入端,TXD端为同步脉冲信号输出端。接收器以振荡率的十二分之一的波特率接收RXD端输入的数据信息 7a686964616fe59b9ee7ad9431333332396234。但接收器接收到8位数据时,置1中断标志RI。


(3)方式0接收与发送电路

2、方式1


串行接口定义为工作方式1时,则被控制为8位的异步通讯接口,传送一帧信息为10位,其中1位为起始位,8位数据位(先低位后高位),1位停止位。

13917588-7ac1-11ed-abeb-dac502259ad0.png

(1)方式1输出
串行接口以方式1发送时,数据由TXD端输出。CPU执行一条数据写入发送缓冲
器SBUF的指令(例如,MOVSBUF,A),数据字节写入SBUF后,便启动串行口发送器发送,发送完一帧信息,置1放送中断标志TI

13c18570-7ac1-11ed-abeb-dac502259ad0.png

(2)方式1输入
串行口以方式1接收时,数据从RXD端输入。在REN置1以后,就允许接收器接收。接收器以所建立的波特率的16倍分频计数器,以便实现时间同步。

13f8a65e-7ac1-11ed-abeb-dac502259ad0.png

计数器的16个状态把一位的时间等分成16份,在每位时间的第7、8和9个计数状态,位检测器采样RXD的值,接收的值是3次采样中取至少二次相同的值,以排除噪声的干扰。

如果在起始接收的值不是0,则起始位无效,复位接收电路。在检测到另一个1到0的跳变时,再重新启动接收器。如果接收到值为0,起始位有效,则开始接收本帧的其余信息。

当RI=0并且接收到的停止位为1(或SM2=0)时,停止位进入RB8,接收到的8位数据进入接收缓冲器SBUF,置位RI中断标志。接着接收便搜索另一帧信息的起始位。
3、方式2和方式3
串行接口工作方式2和方式3时,则被定义为9位的异步通信接口。传送一帧信息为11位,其中1位起始位,8位数据位(从低位至高位),1位是附加的可程控为1或0的第9位数据,1位停止位。

方式2和方式3的差别仅仅在于波特率不一样,方式2的波特率是固定的,波特率为2SMOD/64(振荡频率);方式3的波特率是可变的,波特率=2SMOD/32(T1的溢出率)。
方式2和方式3在发送和接收时唯一的区别就是波特率不同。
(1)方式2和方式3发送
方式2或方式3发送时,数据由TXD端输出,发出一帧信息为11位,附加的第9位数据是SCON中的TB8,CPU执行一条数据写入发送缓冲器SBUF的指令,就启动发送器发送,发送完一帧信息,置“1”TI中断标志。

14239d32-7ac1-11ed-abeb-dac502259ad0.png

(2)方式2和方式3接收
串行口被定义为方式2或方式3接收时,数据从RXD端输入,置REN=1以后,开始接收过程。当检测到RXD端从高到低的负跳变时,确认起始位有效,开始接收本帧的其余信息。

144dbed2-7ac1-11ed-abeb-dac502259ad0.png

在接收完一帧信息后,在RI=0、SM2=0时,或接收到第9位数据为“1”时,8位数据装入接收缓冲器,第9位数据装入SCON中RB8,并置RI=1。若不满足上述的两个条件,接收到的信息将会丢失,也不置位RI

6、单片机的串口通信

6.1、点对点通信

14769dd4-7ac1-11ed-abeb-dac502259ad0.png

6.2、多机通信

单片机构成的多机系统常采用总线型主从式结构。所谓主从式,即在数个单片机中,有一个是主机,其余的是从机,从机.要服从主机的调度、支配。

80C51单片机的串行口方式2和方式3适于这种主从式的通信结构。当然采用不同的通信标准时,还需进行相应的电平转换,有时还要对信号进行光电隔离。在实际的多机应用系统中,常采用RS-485串行标准总线进行数

148f8164-7ac1-11ed-abeb-dac502259ad0.png

审核编辑黄昊宇

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

    关注

    34

    文章

    1628

    浏览量

    55787
收藏 人收藏

    评论

    相关推荐

    单片机中断技术详解

    在现代电子设备中,单片机作为控制核心发挥着举足轻重的作用。而在其高效运作的背后,中断机制是推动单片机实现实时响应与高效执行的关键因素。本文将深入探讨单片机中的中断概念、中断系统的结构、中断处理过程及其重要性,揭示这一机制如何提升
    的头像 发表于 02-02 15:57 218次阅读

    LabVIEW与单片机无法串口通信 提示串口打开错误 端口设置有问题吗?

    0xBFFF0000) 未知系统错误(其它错误)。 重启计算机也无法解决这个错误。 通过虚拟串口,LabVIEW与串口助手通信正常, 单片机串口
    发表于 12-06 22:28

    基于51单片机的多路温度检测调节及串口显示

    ,利用虚拟串口模块实时将平均温度值实现串口显示。仿真演示视频:基于51单片机的多路温度检测调节及串口显示-仿真视频设计介绍 51单片机
    的头像 发表于 10-22 14:13 395次阅读
    基于51<b class='flag-5'>单片机</b>的多路温度检测调节及<b class='flag-5'>串口</b>显示

    如何实现51单片机与PC的串行通信

    51单片机与PC的串行通信是一种常见的通信方式,它允许单片机通过串行接口与PC进行数据交换。
    的头像 发表于 10-21 11:35 1357次阅读

    单片机怎么写入程序

    程序通常涉及以下几个步骤: 选择单片机和开发环境 : 确定项目需求,选择合适的单片机型号。 安装相应的开发环境,如Keil、IAR、MPLAB等。 硬件连接 : 将单片机连接到开发板或自制的电路板上。 使用USB转
    的头像 发表于 10-21 11:21 1019次阅读

    单片机烧录程序的串口线怎么连接

    线类型 串口线是用于连接单片机和计算机的数据线,主要有以下几种类型: RS-232串口线 :是最传统的串口线,使用9针或25针的D-sub接口,传输距离较近,一般用于短距离
    的头像 发表于 09-02 09:50 2301次阅读

    第19.1 章-星瞳科技 OpenMV视觉循迹功能 超详细OpenMV与STM32单片机通信

    第19.1 章-[星瞳科技]OpenMV视觉循迹功能 超详细OpenMV与STM32单片机通信 (有完整版源码) 【星曈科技】OpenMv笔记——利用OpenMV与STM32进行串口通信
    的头像 发表于 08-20 11:41 1131次阅读
    第19.1 章-星瞳科技 OpenMV视觉循迹功能 超详细OpenMV与STM32<b class='flag-5'>单片机</b><b class='flag-5'>通信</b>

    一文读懂什么单片机:组成结构与应用

    欢迎来到单片机的世界,这是一种微小(但功能强大)的设备,改变了嵌入式系统的面貌。在本文中,您将了解单片机的一些基本知识单片机的结构以及微处理器与
    的头像 发表于 08-09 11:49 1844次阅读
    一文读懂什么<b class='flag-5'>单片机</b>:组成结构与应用

    蓝牙模块如何实现单片机和手机端数据互传

    ZX-D30、ZX-D37、ZX-D32等。 蓝牙模块设置 : 将蓝牙模块与单片机连接。通常,蓝牙模块通过串口(UART)与单片机通信。 设置蓝牙模块的工作模式和参数,例如波特率、名称
    的头像 发表于 07-24 17:59 2995次阅读
    蓝牙模块如何实现<b class='flag-5'>单片机</b>和手机端数据互传

    一个暑假如何学习单片机

    一个暑假是学习和掌握单片机基础知识的良好时机。以下是一个关于如何在暑假期间学习单片机的建议计划
    的头像 发表于 07-03 09:19 619次阅读
    一个暑假如何学习<b class='flag-5'>单片机</b>

    51单片机串口通信详细介绍-小白必看

    51单片机串口通信单片机与外部设备通信的重要方式,它基于串行通信的原理,以字节为单位进行数据传
    的头像 发表于 04-17 09:33 2200次阅读
    51<b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>详细介绍-小白必看

    stm32 hal串口iap上位单片机通信问题求解

    不知道是不是因为dma的问题,还是hal库使用的问题,我用单片机可以和xshell终端使用ymodem协议传输bin文件,上位可以和串口助手使用ymodem传输文件,但是我用单片机
    发表于 03-28 09:13

    如何系统、科学地自学单片机

    的自学单片机呢?自学单片机需要一定的计划和方法,以下是具体的步骤和建议。如何系统、科学地自学单片机?学习电子基础知识:理解电路原理、数字电子技术、模拟电子技术等基础
    的头像 发表于 03-28 08:03 1228次阅读
    如何系统、科学地自学<b class='flag-5'>单片机</b>?

    VC++串口通信详解

    电子发烧友网站提供《VC++串口通信详解.doc》资料免费下载
    发表于 03-24 09:36 0次下载

    单片机串口屏连接步骤指南

    单片机串口屏的连接主要涉及硬件连接和软件设置两个方面。以下是一个基本的步骤指南
    的头像 发表于 03-13 10:16 3692次阅读
    <b class='flag-5'>单片机</b>与<b class='flag-5'>串口</b>屏连接步骤指南