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

    文章

    1657

    浏览量

    57649
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MCU单片机串口数据记录仪方案

    在工业控制、环境监测、物流追踪等众多领域,如何可靠、便捷地记录设备串口数据成为不少工程师关注的焦点。基于MCU单片机串口数据记录仪方案,正以其高效集成、灵活存储和简便操作的特点,成为数据采集与记录场景中的理想选择。
    的头像 发表于 11-27 15:02 120次阅读

    单片机的误区

    怎么使用,根本也记不住寄存器的用途。 单片机完成一个具体的功能涉及到哪些寄存器,都会有例子给出,有些单片机,生产厂家也会给出相关的子程序,你只需要调用就可以。 等你把这些基础知识学完以后,几乎可以完成
    发表于 11-14 07:46

    51单片机RS485编程实例资料

    详细介绍51单片机RS485通信接线和编程代码
    发表于 10-20 14:57 3次下载

    单片机原理及应用详解

    单片机(Microcontroller Unit, MCC)  是一种集成计算机核心功能(CPU、存储器、I/O接口等)的微型芯片,广泛应用于嵌入式系统中。以下是其原理及应用的详细介绍: 一、单片机
    的头像 发表于 08-11 13:57 1585次阅读

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要意义。测量
    的头像 发表于 07-25 11:39 489次阅读

    单片机怎么驱动电机?

    在各类自动化设备和智能装置中,电机是重要的执行部件,而单片机作为控制核心,需要通过特定的方式驱动电机运转。单片机驱动电机并非直接连接即可,而是要根据电机类型和功率,搭配合适的驱动电路,才能实现稳定
    的头像 发表于 07-25 09:31 448次阅读

    单片机怎么烧程序

    单片机烧程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是单片机应用开发中不可或缺的环节。无论是简单的灯光控制程序,还是复杂的工业控制算法,都需要通过烧
    的头像 发表于 07-23 11:47 664次阅读

    使用USB转TTL串口板和ST-LINK调试下载器给STM32单片机下载程序

    本文详细介绍如何使用ST-LINK/V2和USB转TTL串口板为STM32单片机下载程序,包括STM32启动模式、JTAG与SWD接口对比、驱动安装及官方软件STM32ST-LINKUtility和FlashLoaderDemonstrator的操作流程。
    的头像 发表于 06-20 17:26 2079次阅读
    使用USB转TTL<b class='flag-5'>串口</b>板和ST-LINK调试下载器给STM32<b class='flag-5'>单片机</b>下载程序

    英锐恩精选笔记UART串口通信#单片机开发#单片机芯片#UART串口通信#单片机

    单片机
    英锐恩科技
    发布于 :2025年05月15日 16:09:05

    C51单片机及C语言知识点必备秘籍

    单片机关键知识点一览: 系列一 1:单片机简叙 2:单片机引脚介绍 3:单片机存储器结构 4:第一个
    发表于 05-15 14:00

    瑞萨RA8系列教程 | 基于e2s实现RA8串口输出配置

    串口是最常见的通信方式之一,也是单片机调试最常见的通信接口,也是现在的单片机必备的通信接口,目前
    的头像 发表于 04-11 20:00 850次阅读
    瑞萨RA8系列教程 | 基于e2s实现RA8<b class='flag-5'>串口</b>输出配置

    轻松解码串口通信

    ,其实做过单片机的基本都会用到,即便没有外设需求,就单独拎出来做个调试助手也是好的,可以通过和电脑通信直接打印出你想要的信息,直观常规的通信方式就类似下图这样,是不是
    发表于 03-24 14:22 4次下载

    瑞萨Cortext-M85内核RA8系列单片机串口输出实现方法

    串口是最常见的通信方式之一,也是单片机调试最常见的通信接口,也是现在的单片机必备的通信接口,目前
    的头像 发表于 03-21 09:58 1565次阅读
    瑞萨Cortext-M85内核RA8系列<b class='flag-5'>单片机</b>的<b class='flag-5'>串口</b>输出实现方法

    单片机中断技术详解

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

    labview串口通信丢数问题(非终止符问题)

    通信协议是参考32960的,和串口助手测试过程正常,和labview通信过程会出现丢数的问题,体现在Bytes at port属性节点返回的字节数上,单片机目前测试的功能是固定每组数
    发表于 01-20 09:13