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

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

3天内不再提示

串口通信是指什么?带你掌握串口通信

冬至子 来源:嵌入式基地 作者:嵌入式基地 2023-06-26 15:49 次阅读

串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口。

串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。

串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。

按通信方式分类

同步通信

  • 时钟同步信号传输。比如:SPI,IIC通信接口
  • 在同步通讯中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。

异步通信

  • 不带时钟同步信号。比如:UART(通用异步收发器),单总线
  • 在异步通讯中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些用于同步的信号位,或者将主题数据进行打包,以数据帧的格式传输数据。通讯中还需要双方规约好数据的传输速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。
异步通信数据格式

异步通信规定传输的数据格式由起始位(start bit)、数据位(data bit)、奇偶校验位(parity bit)和停止位(stop bit)组成。

图片

  • 起始位:起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。
  • 数据位:数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定,一般可以是5位、7位或8位,标准的ASCII码是0127(7位),扩展的ASCII码是0255(8位)。传输数据时先传送字符的低位,后传送字符的高位。
  • 奇偶校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。

举例来说,假设传输的数据位为01001100,如果是奇校验,则奇校验位为0(要确保总共有奇数个1),如果是偶校验,则偶校验位为1(要确保总共有偶数个1)。

由此可见,奇偶校验位仅是对数据进行简单的置逻辑高位或逻辑低位,不会对数据进行实质的判断,这样做的好处是接收设备能够知道一个位的状态,有可能判断是否有噪声干扰了通信以及传输的数据是否同步。

  • 停止位:停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。
  • 空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。
异步通信的数据发送过程
  • (1)初始化后或者没有数据需要发送时,发送端输出逻辑1,可以有任意数量的空闲位。
  • (2)当需要发送数据时,发送端首先输出逻辑0,作为起始位。
  • (3)接着就可以开始输出数据位了,发送端首先输出数据的最低位D0,然后是D1,最后是数据的最高位。
  • (4)如果设有奇偶检验位,发送端输出检验位。
  • (5)最后,发送端输出停止位(逻辑1)。
  • (6)如果没有信息需要发送,发送端输出逻辑1(空闲位),如果有信息需要发送,则转入步骤(2)。
异步通信的数据接收过程

在异步通信中,接收端以接收时钟和波特率因子决定每一位的时间长度。下面以波特率因子等于16(接收时钟每16个时钟周期使接收移位寄存器移位一次)为例来说明。

  • (1)开始通信,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对接收时钟计数。
  • (2)当计到8个时钟的时候,对输入信号进行检测,若仍然为低电平,则确认这是起始位,而不是干扰信号。
  • (3)接收端检测到起始位后,隔16个接收时钟对输入信号检测一次,把对应的值作为D0位数据。
  • (4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据,直到全部数据位都输入。
  • (5)检验奇偶检验位。
  • (6)接收到规定的数据位个数和校验位之后,通信接口电路希望收到停止位(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志;若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中取出送至数据输入寄存器,若校验错,在状态寄存器中置“奇偶错”标志。
  • (7)本帧信息全部接收完,把线路上出现的高电平作为空闲位。
  • (8)当信号再次变为低时,开始进入下一帧的检测。

区别

  • 在同步通讯中,数据信号所传输的内容绝大部分是有效数据,而异步通讯中会则会包含数据帧的各种标识符,所以同步通讯效率高。
  • 同步通讯双方的时钟允许误差小,稍稍时钟出错就可能导致数据错乱,异步通讯双方的时钟允许误差较大。

按照数据传输方向分类

  • 单工:数据传输只支持数据在一个方向上传输,如图a所示
  • 半双工:允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;它不需要独立的接收端和发送端,两者可以合并一起使用一个端口,如图b所示
  • 全双工:允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端,如图c所示
    图片
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接收器
    +关注

    关注

    14

    文章

    2468

    浏览量

    71873
  • 移位寄存器
    +关注

    关注

    3

    文章

    258

    浏览量

    22265
  • 串口通信
    +关注

    关注

    34

    文章

    1624

    浏览量

    55508
  • IIC接口
    +关注

    关注

    0

    文章

    23

    浏览量

    11681
  • 状态寄存器
    +关注

    关注

    0

    文章

    39

    浏览量

    7083
收藏 人收藏

    评论

    相关推荐

    串口通信原理和简介

    本文针对串口通信定义,以及串口通信原理进行相关的讲述。
    发表于 11-09 14:39 1.5w次阅读

    串口通信调试(PC与PC串口通信

    【LabVIEW从入门到精通】4.1.6 串口通信调试(PC与PC串口通信
    发表于 01-08 15:43 0次下载

    串口通信调试(PC与智能仪器串口通信

    【LabVIEW从入门到精通】4.1.6 串口通信调试(PC与智能仪器串口通信
    发表于 01-08 15:42 0次下载

    LabVIEW串口通信详解

    LabVIEW串口通信详解,基于LabVIEW来分析串口通信
    发表于 03-15 13:55 481次下载

    niosii的UART串口通信

    niosii的UART串口通信niosii的UART串口通信
    发表于 04-06 17:03 1次下载

    LESSON7_串口通信

    串口通信串口双机通信通信技术。
    发表于 04-13 14:23 0次下载

    labview实现串口通信

    串口按位(bit)发送和接收字节。串口通信外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式
    发表于 11-20 12:50 12.1w次阅读
    labview实现<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    掌握串口通信协议的收发过程

    现在我们要做一个实验,将一个字节从51单片机发送到电脑串口调试助手上。这个实验的目的是为了掌握串口通信协议的收发过程。
    的头像 发表于 12-22 10:02 7.9w次阅读
    <b class='flag-5'>掌握</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>协议的收发过程

    java串口通信编程实例

    串口通信串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在
    的头像 发表于 02-01 10:15 2.4w次阅读
    java<b class='flag-5'>串口</b><b class='flag-5'>通信</b>编程实例

    串口通信协议stm32

    串口通信串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在
    发表于 02-01 16:22 8333次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>协议stm32

    串口通信事件解析_串口通信属性

    串口通信外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以
    发表于 02-01 18:43 4165次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>事件解析_<b class='flag-5'>串口</b><b class='flag-5'>通信</b>属性

    串口通信的了解

    串口通信小试牛刀一、串口通信的了解(一)串口协议1、简介串口
    发表于 12-20 19:32 11次下载
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>的了解

    【分享】什么是串口通信串口常见通信问题如何解决?

    知道什么是CAN总线?一定要看这篇文章!》有线传输方式第二期:串口通信什么是串口通信串口通信
    的头像 发表于 06-21 17:45 2340次阅读
    【分享】什么是<b class='flag-5'>串口</b><b class='flag-5'>通信</b>?<b class='flag-5'>串口</b>常见<b class='flag-5'>通信</b>问题如何解决?

    为什么通信要使用虚拟串口串口助手?

    串口助手和虚拟串口是什么?串口助手和虚拟串口串口通信中很常见。
    的头像 发表于 11-15 01:04 817次阅读
    为什么<b class='flag-5'>通信</b>要使用虚拟<b class='flag-5'>串口</b>和<b class='flag-5'>串口</b>助手?

    串口通信协议解析 串口通信应用实例

    串口通信协议解析 串口通信协议是规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数
    的头像 发表于 11-21 17:03 488次阅读