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

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

3天内不再提示

串口通信的分类

jf_78858299 来源:嵌入式基地 作者:嵌入式基地 2023-04-04 15:20 次阅读

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

    关注

    28

    文章

    879

    浏览量

    40297
  • RS485
    +关注

    关注

    39

    文章

    1156

    浏览量

    82291
  • 串口通信
    +关注

    关注

    34

    文章

    1624

    浏览量

    55508
  • Com
    Com
    +关注

    关注

    1

    文章

    107

    浏览量

    40630
收藏 人收藏

    评论

    相关推荐

    什么是串口波特率?串口波特率的分类及应用详解

    直接影响到通信的质量和效率。本文将介绍串口波特率的分类、选择以及应用。串口波特率的分类根据不同的应用需求,
    的头像 发表于 08-08 10:09 5926次阅读
    什么是<b class='flag-5'>串口</b>波特率?<b class='flag-5'>串口</b>波特率的<b class='flag-5'>分类</b>及应用详解

    串口通信基本原理是什么?

    串口通信基本原理是什么?串行通信分类有哪些?
    发表于 12-03 06:08

    STM32_USART串口通讯通信方式

    STM32_USART 串口通讯通信方式的分类按照通信方式分类:按照数据传送方向分类
    发表于 12-09 06:36

    串口通信分类及原理

    录【实验目的】【实验原理】一、USART接口简介二、串口通信分类及原理三、硬件连接和USART库函数介绍四、软件流程图【实验环境】操作系统:设备简介:【实验步骤】一、配置工程环境二、开启时钟...
    发表于 12-24 08:16

    常见的串口有哪些

    communication port :串行通讯端口), 嵌入式里面说的串口,一般是指UART口。计算机上的串口常指RS232电平标准的COM口。• UART口和COM口是指的物理接口形式(硬件),而TTL、RS-232、RS-485是指的电平标准(电信号)。二、
    发表于 02-17 07:04

    单片机中各种通信方式的分类

    目录一、单片机中各种通信方式的分类1. 串行通信中的单工、半双工、全双工2.串行通信中的同步和异步3. 单片机中的串行通信方式
    发表于 02-17 06:21

    STM32串口通讯基础知识点大合集,绝对实用

    4.2、 UART(USART)框图02、设备之间通讯的方式并行通讯与串行通讯串行(串口)通信分类分为两类:按照数据传送方向、按照通信方式按照数据传送方向:单工:数据传输只支持数据在一
    发表于 02-21 06:04

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

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

    STM32_USART 串口通讯

    STM32_USART 串口通讯通信方式的分类按照通信方式分类:按照数据传送方向分类
    发表于 11-26 12:06 13次下载
    STM32_USART <b class='flag-5'>串口</b>通讯

    stm32_常见串口串口通信分类、UART编程套路以及注意事项

    communication port :串行通讯端口), 嵌入式里面说的串口,一般是指UART口。计算机上的串口常指RS232电平标准的COM口。• UART口和COM口是指的物理接口形式(硬件),而TTL、RS-232、RS-485是指的电平标准(电信号)。二、
    发表于 12-20 19:26 2次下载
    stm32_常见<b class='flag-5'>串口</b>、<b class='flag-5'>串口</b><b class='flag-5'>通信</b><b class='flag-5'>分类</b>、UART编程套路以及注意事项

    stm32串口通信

    通信的概念通信分类:串行通信,并行通信。串行通信:usart,iic,spi并行:SDIO,F
    发表于 12-20 19:32 3次下载
    stm32<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    【嵌入式】STM32通讯方式

    4.2、 UART(USART)框图02、设备之间通讯的方式并行通讯与串行通讯串行(串口)通信分类分为两类:按照数据传送方向、按照通信方式按照数据传送方向:单工:数据传输只支持数据在一
    发表于 12-24 19:06 10次下载
    【嵌入式】STM32通讯方式

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

    在之前的文章中小编介绍了什么是CAN总线,包括CAN总线的数据格式和通信特点等方面的内容,今天将分享串口通信相关知识内容。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 816次阅读
    为什么<b class='flag-5'>通信</b>要使用虚拟<b class='flag-5'>串口</b>和<b class='flag-5'>串口</b>助手?

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

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