在描述同步通信与异步通信之前,我们先得搞清串行通信的内涵。串行通信是指计算机主机与外设之间,以及主机系统与主机系统之间数据的串行传输。使用串口进行数据传输时,发送和接收的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。而同步通信与异步通信则是串行通信的两种不同方式,分别适合于不同的场合,且各有优缺点。

  • 同步通信

同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息,由同步字符、数据字符和校验字符(CRC)组成。其中:

1. 同步字符:位于帧的开头,用于确认数据字符的开始;

2. 数据字符:在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;

3. 校验字符:有1到2个,用于接收端对接收到的字符序列进行正确性的校验。

当接收端确认接收到同步字符后,便在同步时钟的控制下逐位发送/接收。

图1  同步通信格式

下面以IBM的BSC协议进一步进行说明,该协议规定了10个特殊字符(称为控制字符)作为信息传输的标志。

其格式为

SYN

SOH

标题

STX

数据块

ETB/ETX

块校验

(1)SYN:同步字符(Synchronouscharacter),每帧可加1个(单同步)或2个(双同步)同步字符。

(2)SOH:标题开始(Start of Header)。

(3)标题:Header,包含源地址(发送方地址)、目的地址(接收方地址)、路由指示。

(4)STX:正文开始(Start of Text)。

(5)数据块:正文(Text),由多个字符组成。

(6)ETB:块传输结束(End of TransmissionBlock),标识本数据块结束。

(7)ETX:全文结束(End of Text ),全文分为若干块传输。

(8)块校验:对从SOH 开始,直到ETB/ETX 字段的检验码。

  • 异步通信

    异步通信,是以字符或者字节为单位组成字符帧进行传输。字符帧格式中包括空闲位、起始位、资料位、奇偶校验位、停止位。

以RS232协议规定为例,异步通信一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始(低电平,逻辑值0),以“停止位”结束,字符之间没有固定的时间间隔要求。字符数据本身由5~8位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿,如图:

图2 异步(RS232)通信格式

接收端在收到起始信号之后只要在一个字符的传输时间内能和发送端保持同步就能正确接收。下一个字符起始位的到来又使同步重新校准,也就是说,异步通信依靠检测起始位来实现发送端与接收端的时钟自同步。这样,只要发送端和接收端协商好字符帧格式和波特率,就可以由各自的时钟来控制数据的发送和接收。

  • 小结

同步通信

异步通信

传输格式

面向比特的传输,每个信息帧中包含若干个字符

面向字符的传输,每个字符帧只包含一个字符

时钟

要求接收时钟和发送时钟同频同相,通过特定的时钟线路协调时序

不要求接收时钟和发送时钟完全同步,对时序的要求较低

数据流

发送端发送连续的比特流

发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节

控制开销

控制字符开销较小,传输效率高

字符帧中,假设只有起始位、8个数据位和停止位,整个字符帧中的控制位的开销就达到了20%,传输效率较低

同步方式

从数据中抽取同步信息

通过字符起止的开始位和停止位抓住再同步的机会

通信结点

点对多点

点对点

同步通信 VS 异步通信相关推荐

  1. 同步通信和异步通信区别

    同步通信与异步通信区别: 1.同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流:异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下 ...

  2. 同步通信与异步通信以及阻塞和非阻塞之我见 [原]

    一.硬件层次上的同步与异步 1.异步通信    在异步通信中,CPU与外设之间有两项约定:    (1)字符格式---字符的编码形式及规定,每个串行字符由以下四个部分组成:       ⑴ 1个起始位 ...

  3. 同步通信和异步通信的区别

    同步通信原理 同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息.这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符. 采用同步通信时,将许多字符组成一个信息组,这样,字符可以 ...

  4. 同步通信和异步通信的爱恨情仇

    前言 一开始在学习JMS的时候,心中一直有一个疑惑,由于那时候对JMS的了解还不够深入,我当时很不理解传统的RPC远程过程调用和java消息服务有什么区别,他们两不都是在两个不同的分布式或者集群系统传 ...

  5. 【串行通信中的】同步通信和异步通信的区别

    并行通信:控制简单,传输速度快:由于传输线较多,适用于短距离通信. 串行通信:控制复杂,传输速度慢:只需要一根数据线,适用于远距离通信. //同步是阻塞模式,异步是非阻塞模式. 串行通信方式分类 在串 ...

  6. 课程笔记 · 同步通信与异步通信的概念

    课程笔记 · 同步通信与异步通信的概念 定义 优缺点 定义 简单理解一下同步传输 和 异步传输的定义 同步传输:以数据块为单位进行发送,每个数据块包含多个字符,每个字符5-8bit.每个数据块前面加上 ...

  7. 同步通信与异步通信的主要区别

    同步通信原理 同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息.这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符. 采用同步通信时,将许多字符组成一个信息组,这样,字符可以 ...

  8. (一)串口通信:同步通信与异步通信的区别;异步通信:握手、收发过程、心跳包、定时器、粘包、拆包、丢包、误包(或误码)、帧结构、奇偶校验、CRC校验等等

    目录 第一章.简介 第二章.并行通信 第三章.串行通信 3.1.同步通信 3.1.1.同步通信的原理 3.1.2.同步通信的数据格式 3.1.3.同步通信特点 3.2.异步通信 3.2.1.异步通信的 ...

  9. 什么叫异步通信?同步通信与异步通信的区别是什么?

    异步通信: 又称为起止式异步通信,数据帧与数据帧之间没有固定时间间隔约定,可以是不定时长的"空闲位".异步通信是在内部约定好时钟.(芯片设计设定好的时钟) 用起始位开头.中间包含数 ...

最新文章

  1. 开源前后端分离在线考试系统
  2. POJ 3320 Jessica's Reading Problem (尺取)
  3. System Monitor ArcGIS系统监控利器
  4. “2021-01-30T16:00:00.000Z“: expected format “yyyy-MM-dd HH:mm:ss“时间戳格式化
  5. 字符串匹配——BMH算法
  6. java中none applicable_Java线程使用技巧学习(二)
  7. Jupyter 常用快捷键及导出py文件的方法
  8. 技校毕业是什么学历_技校毕业是什么学历 属于什么文凭
  9. selenium实现失败重运行
  10. window2012 密钥 标准版_Windows Server 2012 R2 密钥
  11. 数字滤波器的研究背景
  12. 思维导图软件与团队协作
  13. pyscripter与python的关系_python开发环境PyScripter中文乱码问题解决方案
  14. dad my_每个爸爸都应该给孩子读的大师绘本 - 《My Dad》绘本解读
  15. 笔试题:计算机网络 (1)
  16. itext Pdf页眉/页脚/水印
  17. 程序员来聊一聊信用卡(三)——信用卡的一些基本分类
  18. 通过DHTS(分布式散列表系统)引导P2P控制传输
  19. 关于代码动态修改xib内控件尺寸
  20. Pytorch中, torch.einsum详解。

热门文章

  1. LightGBM整理
  2. 微信小程序收藏按钮五角星星图标动画效果实现
  3. hadoop(hadoop是什么)
  4. vlc插件详细使用说明
  5. setup factory打包工具的使用
  6. The 9-th BIT Campus Programming F. 狂乱(背包)
  7. js控制html控件显示隐藏和是否可用
  8. 《ESP32》Adafruit_GFX、u8g2驱动ssd1306
  9. 只有中国人才懂!回家过年,是一种执念
  10. 数据窗口Pageup与Pagedown翻页