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

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

3天内不再提示

串行同步通信和串行异步通信的区别

laidenongfhs 来源:中泰PLC自动化教学 2023-07-19 14:13 次阅读

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

串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。

一、串行通信

在串行通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为8次,由低位到高位按顺序一位一位的进行传送。

串行通信的数据是逐位传输的,发送方发送的每一位都具有固定的时间间隔,这就要求接收方也要按照发送方同样的时间间隔来接收每一位。不仅如此,接收方还必须能够确定一个信息组的开始和结束。

常用的两种基本串行通信方式包括同步通信和异步通信

01:串行同步通信

同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这样就保证了通信双方在发送和接收数据时具有完全一致的定时关系。

同步通信把许多字符组成一个信息组(信息帧),每帧的开始用同步字符来指示,一次通信只传送一帧信息。在传输数据的同时还需要传输时钟信号,以便接收方可以用时针信号来确定每个信息位。

同步通信的优点是传送信息的位数几乎不受限制,一次通信传输的数据有几十到几千个字节,通信效率较高。同步通信的缺点是要求在通信中始终保持精确的同步时钟,即发送时钟和接收时钟要严格的同步(常用的做法是两个设备使用同一个时钟源)

02:串行异步通信

异步通信又称为起止式异步通信,是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。

在异步通信中,收发双方取得同步是通过在字符格式中设置起始位和停止位的方法来实现的。

具体来说就是,在一个有效字符正式发送之前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。停止位至下一个起始位之间是不定长的空闲位,并且规定起始位为低电平(逻辑值为0),停止位和空闲位都是高电平(逻辑值为1),这样就保证了起始位开始处一定会有一个下跳沿;由此就可以标志一个字符传输的起始。而根据起始位和停止位也就很容易的实现了字符的界定和同步。

显然,采用异步通信时,发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,可以互不同步。

二、数据发送和接收过程

数据格式

在介绍异步通信的数据发送和接收过程之前,有必要先弄清楚异步通信的数据格式。

异步通信规定传输的数据格式由起始位(start bit)、数据位(data bit)、奇偶校验位(parity bit)和停止位(stop bit)组成,如图所示(该图中未画出奇偶校验位,因为奇偶检验位不是必须有的,如果有奇偶检验位,则奇偶检验位应该在数据位之后,停止位之前)。

fb4f472c-25f9-11ee-962d-dac502259ad0.png

异步通信数据格式

(1)起始位:起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。

(2)数据位:数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定,一般可以是5位、7位或8位,标准的ASCII码是0~127(7位),扩展的ASCII码是0~255(8位)。传输数据时先传送字符的低位,后传送字符的高位。

(3)奇偶校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。

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

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

(4)停止位:停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。

(5)空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。

数据发送过程

清楚了异步通信的数据格式之后,就可以按照指定的数据格式发送数据了,发送数据的具体步骤如下:

(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)当信号再次变为低时,开始进入下一帧的检测。

以上就是异步通信中数据发送和接收的全过程了。

三、基本概念

为了更好的理解串口通信,我们还需要了解几个串口通信当中的基本概念。

(1)发送时钟:发送数据时,首先将要发送的数据送入移位寄存器,然后在发送时钟的控制下,将该并行数据逐位移位输出。

(2)接收时钟:在接收串行数据时,接收时钟的上升沿对接收数据采样,进行数据位检测,并将其移入接收器的移位寄存器中,最后组成并行数据输出。

(3)波特率因子:波特率因子是指发送或接收1个数据位所需要的时钟脉冲个数。

四、串口接头

常用的串口接头有两种,一种是9针串口(简称DB-9),一种是25针串口(简称DB-25)。每种接头都有公头和母头之分,其中带针状的接头是公头,而带孔状的接头是母头。

可以看出,在9针串口接头中,公头和母头的管脚定义顺序是不一样的,这一点需要特别注意。那么,这个管脚都有什么作用呢?

9针串口和25针串口常用管脚的功能说明如图所示。

fbd3e31a-25f9-11ee-962d-dac502259ad0.jpg

9针串口和25针串口常用管脚的功能

五、RS-232C标准

常用的串行通信接口标准有RS-232C、RS-422、RS-423和RS-485

其中,RS-232C作为串行通信接口的电气标准定义了数据终端设备和数据通信设备间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,在世界范围内得到了广泛的应用。

电气特性

RS-232C对电器特性、逻辑电平和各种信号功能都做了规定。

在TXD和RXD数据线上:

逻辑1为-3~-15V的电压。

逻辑0为3~15V的电压。

在RTS、CTS、DSR、DTR和DCD等控制线上:

信号有效(ON状态)为3~15V的电压。

信号无效(OFF状态)为-3~-15V的电压。

由此可见,RS-232C是用正负电压来表示逻辑状态,与晶体管-晶体管逻辑集成电路(TTL)以高低电平表示逻辑状态的规定正好相反。

信号线分配

RS-232C标准接口有25条线,其中,4条数据线、11条控制线、3条定时线以及7条备用和未定义线。

那么,这些信号线在9针串口和25针串口的管脚上是如何分配的呢?9针串口和25针串口信号线分配如图所示。

fc4874b4-25f9-11ee-962d-dac502259ad0.jpg

9针串口和25针串口信号线分配图

下面对这些信号线做个简单的介绍。

(1)数据装置准备好(DSR),有效状态(ON)表示数据通信设备处于可以使用状态。

(2)数据终端准备好(DTR),有效状态(ON)表示数据终端设备处于可以使用状态。这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的一些控制信号决定。

(3)请求发送(RTS),用来表示数据终端设备(DTE)请求数据通信设备(DCE)发送数据。

(4)允许发送(CTS),用来表示数据通信设备(DCE)已经准备好了数据,可以向数据终端设备(DTE)发送数据,是对请求发送信号RTS的响应。请求发送(RTS)和允许发送(CTS)用于半双工的通信系统中,在全双工的系统中,不需要使用请求发送(RTS)和允许发送(CTS)信号,直接将其置为ON即可。

(5)数据载波检出(DCD),用于表示数据通信设备(DCE)已接通通信链路,告知数据终端设备(DTE)准备接收数据。

(6)振铃指示(RI),当数据通信设备收到交换台送来的振铃呼叫信号时,使该信号有效(ON),通知终端,已被呼叫。

(7)发送数据(TXD),数据终端设备(DTE)通过该信号线将串行数据发送到数据通信设备(DCE)。

(8)接收信号(RXD),数据终端设备(DTE)通过该信号线接收从数据通信设备(DCE)发来的串行数据。

(9)地线(SG、PG),分别表示信号地和保护地信号线。

审核编辑:汤梓红

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

    关注

    28

    文章

    854

    浏览量

    40250
  • 接口
    +关注

    关注

    33

    文章

    8486

    浏览量

    150804
  • 异步通信
    +关注

    关注

    1

    文章

    57

    浏览量

    10116
  • 串行通信
    +关注

    关注

    4

    文章

    564

    浏览量

    35275
  • 串口通信
    +关注

    关注

    34

    文章

    1609

    浏览量

    55408

原文标题:详解串口通讯的起始、数据、停止位分配原理!

文章出处:【微信号:中泰PLC自动化教学,微信公众号:中泰PLC自动化教学】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    详解单片机中的串口通讯 串行同步通信串行异步通信

    串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口。串口通信是指采用串行通信
    发表于 07-04 11:23 5673次阅读

    并行通信串行通信区别

    目录通信基础知识STM32串口通信基础(UART)串口通信过程UART中设置的参数通信基础知识  首先两个设备间的通信方式可分为并行
    发表于 07-27 08:05

    串行通信通信方式是什么?常见的串行通信接口有哪些?

    串行通信通信方式是什么?常见的串行通信接口有哪些?STM32F4异步
    发表于 12-03 07:35

    并行通信串行通信有何特点

    ,长距离传送时成本低。且可以利用电话网等线程设备,但数据的传送控制比并行通信复杂串行通信又可分为异步通信
    发表于 12-10 07:43

    串行通信的相关资料推荐

    徐浩宇川师工学院电气2018级2021.5.8两种通信方式串行通信:串行通信是将数据字节分成一位一位的形式在。并行
    发表于 01-24 08:19

    STM32串行异步通信的相关资料分享

    串行异步通信】STM32F4 的串口资源相当丰富的,功能也相当强劲。STM32F407ZGT6 最多可提供 6 路串口,有分数波特率发生器、支持同步单线
    发表于 02-21 06:28

    一种支持HDLC协议的串行同步通信模式研究

              针对同步通信的特点,提出了一种在现有串行通信的基础上全功能串口的
    发表于 09-14 08:35 15次下载

    一种支持HDLC协议的串行同步通信模式研究

              针对同步通信的特点,提出了一种在现有串行通信的基础上全功能串口的
    发表于 09-14 08:35 27次下载

    用VHDL设计专用串行通信芯片

    用VHDL设计专用串行通信芯片 一种专用串行同步通信芯片(该芯片内部结构和操作方式以INS8250为参考)的VHDL设计及CPLD实现,着重介绍了用VHDL及CPLD设计专用
    发表于 10-12 19:07 1830次阅读
    用VHDL设计专用<b class='flag-5'>串行</b><b class='flag-5'>通信</b>芯片

    串行同步通信的应用

    串行同步通信的应用 该文给出利用8251A实现串行同步通讯设计的方法 关键词:
    发表于 10-17 11:24 2170次阅读
    <b class='flag-5'>串行同步</b><b class='flag-5'>通信</b>的应用

    pic单片机与pc机异步串行通信的设计

    当C5D 单片机不具备片上硬件.E0/4 或.E0/4 不够用时,可以利用软件模拟实现异步串行通信。论述了异步串行
    发表于 04-11 14:29 76次下载
    pic单片机与pc机<b class='flag-5'>异步</b><b class='flag-5'>串行</b><b class='flag-5'>通信</b>的设计

    基于MSP430F2的SPI串行同步通信

    通用串行通信接口(USCI)采用一个硬件模块支持多种串行通信方式。本文档内容介绍同步外围接口或SPI方式的操作。
    发表于 09-21 15:34 2次下载
    基于MSP430F2的SPI<b class='flag-5'>串行同步</b><b class='flag-5'>通信</b>

    MSP432的串行通信

    目录数字通信基本知识组成串行通信和并行通信同步通信异步
    发表于 11-25 20:21 8次下载
    MSP432的<b class='flag-5'>串行</b><b class='flag-5'>通信</b>

    关于STM32的串行异步通信

    串行异步通信】STM32F4 的串口资源相当丰富的,功能也相当强劲。STM32F407ZGT6 最多可提供 6 路串口,有分数波特率发生器、支持同步单线
    发表于 12-24 19:19 8次下载
    关于STM32的<b class='flag-5'>串行</b><b class='flag-5'>异步</b><b class='flag-5'>通信</b>

    并行通信串行通信是什么意思?同步传送和异步传送又有何区别

    并行通信串行通信是什么意思?同步传送和异步传送又有何区别  并行
    的头像 发表于 02-18 16:55 1178次阅读