同步与异步区别

时间:2021-01-30 19:43:50

通俗版:

举个例子:普通B/S模式(同步)AJAX技术(异步)

同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事

异步请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕

同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。

异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。 

所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。

举个例子 打电话时同步 发消息是异步

综述版:

异步通信是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。 异步通信也可以是以帧作为发送的单位。接收端必须随时做好接收帧的准备。这是,帧的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始。这也称为帧定界。帧定界还包含确定帧的结束位置。这有两种方法。一种是在帧的尾部设有某种特殊的比特组合来标志帧的结束。或者在帧首部中设有帧长度的字段。需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。在一帧中的所有比特是连续发送的。发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步)。 每个字符开始发送的时间可以是任意的t0 0 1 1 0 1 1 0起始位结束位t每个帧开始发送的时间可以是任意的以字符为单位发送以帧为单位发送帧开始帧结束 同步通信的通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双方不停地发送和接收连续的同步比特流。但这时还有两种不同的同步方式。一种是使用全网同步,用一个非常精确的主时钟对全网所有结点上的时钟进行同步。另一种是使用准同步,各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传输。串口进行通信的方式有两种:同步通信方式和异步通信方式。同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高;异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。 

专业版:

串行通信可以分为两种类型:同步通信、异步通信。   

1.异步通信的特点及信息帧格式:    

以起止式异步协议为例,下图显示的是起止式一帧数据的格式:图 起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由5-7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿。   从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。 

异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如下表所示: 

 

逻辑0

逻辑1

正逻辑

低电平

高电平

负逻辑

高电平

低电平

异步通信的信息格式如下边的表所示

起始位

逻辑0

1

数据位

逻辑01

5位、6位、7位、8

校验位

逻辑01

1位或无

停止位

逻辑1

1位,1.5位或2

空闲位

逻辑1

任意数量

  注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5   例:传送8位数据45H0100,0101B),奇校验,1个停止位,则信号线上的波形象图2所示那样:异步通信的速率:若9600bps,每字符8位,1起始,1停止,无奇偶,则实际每字符传送10位,则960字符/秒。 

           

                        图2

2.异步通信的接收过程

  接收端以接收时钟波特率因子决定一位的时间长度。下面以波特率因子等于16(接收时钟每16个时钟周期,使接收移位寄存器移位一次)、正逻辑为例说明,如图3所示。           

                      图3

  (1)开始通信时,信号线为空闲(逻辑1,当检测到由10的跳变时,开始对接收时钟计数。 

  (2)当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是起始位”B,而不是干扰信号。

  (3)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。若为逻辑1, 作为数据位1;若为逻辑0,作为数据位0

  (4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据。….,直到全部数据位都输入。

  (5)检测校验位P(如果有的话)。

  (6)接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置帧错误标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。

  (7)本幀信息全部接收完,把线路上出现的高电平作为空闲位。

  (8)当信号再次变为低时,开始进入下一幀的检测。

  3、异步通信的发送过程

  发送端以发送时钟波特率因子决定一位的时间长度。

  (1)当初始化后,或者没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。

  (2)当需要发送时,发送端首先输出逻辑0,作为起始位。

  (3)接着,发送端首先发送D0位,直到各数据位发送完。

  (4)如果需要的话,发送端输出校验位。

  (5)最后,发送端输出停止位(逻辑1)。

  (6)如果没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。如果还有信息需要发送,转入第(2)步。

  对于以上发送、接收过程应注意以下几点:

  (1)接收端总是在每个字符的头部(即起始位)进行一次重新定位,因此发送端可以在字符之间插入不等长的空闲位,不影响接收端的接收。

  (2)发送端的发送时钟和接收端的接收时钟,其频率允许有一定差异,当频率差异在一定范围内,不会引起接收端检测错位,能够正确接收。并且这种频率差异不会因多个字符的连续接收而造成误差累计(因为每个字符的开始(起始位处)接收方均重新定位)。只有当发送时钟和接收时钟频率差异太大,引起接收端采样错位,才造成接收错误。

  (3)起始位、校验位、停止位、空闲位的信号,由发送移位寄存器自动插入。在接收方,接收移位寄存器接收到一帧完整信息(起始、数据、校验、停止)后,仅把数据的各位送至数据输入寄存器,即CPU数据输入寄存器中读得的信息,只是有效数字,不包含起始位、校验位、停止位信息。

1、同步通信方式的特点:

采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应58位。当然,对同一个传输过程,所有字符对应同样的数位,比如说n位。这样,传输时,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符。 同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码。在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码。接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。    

2、面向字符的同步协议(IBMBSC协议)

该协议规定了10个特殊字符(称为控制字符)作为信息传输的标志。其格式为   

SYN SOH 标题 STX 数据块 ETB/ETX 块校验   

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

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

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

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

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

ETB:块传输结束(end of transmission block), 标识本数据块结束。   

ETX:全文结束(end of text),(全文分为若干块传输)。   

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

3、面向bit的同步协议(ISOHDLC                  

一帧信息可以是任意位,用位组合标识帧的开始和结束。 帧格式为:F场 A场 C场 I场 FC场 F   

F场:标志场;作为一帧的开始和结束,标志字符为8位,01111110A场:地址场,规定接收方地址,可为8的整倍位。接收方检查每个地址字节的第1位,如果为"0",则后边跟着另一   个地址字节。若为"1",则该字节为最后一个地址字节。C场:控制场。指示信息场的类型,8位或16位。若第1字节的第1位为0,则还有第2个字节也是控制场。I场:信息场。要传送的数据。FC场:帧校验场。16位循环冗余校验码CRC。除F场和自动插入的"0"位外,均参加CRC计算。   

4、同步通信的"0位插入和删除技术"   

在同步通信中,一帧信息以一个(或几个)特殊字符开始,例如,F=01111110B 但在信息帧的其他位置,完全可能出现这些特殊字符,为了避免接收方把这些特殊字符误认为帧的开始,发送方采用“0位插入技术",相应地,接收方采用"0位删除技术" 发送方的0位插入:除了起始字符外,当连续出现51时,发送方自动插入一个0。使得在整个信息帧中,只有起始字符含有连续的61接收方的"0位删除技术":接收方收到连续61,作为帧的起始,把连续出现51后的0自动删除。   

5、同步通信的"字节填充技术"   

设需要传送的原始信息帧为:   

SOT DATA EOT   

节填充技术采用字符替换方式,使信息帧的DATA中不出现起始字符SOT和结束字符EOT。    

设按下表方式进行替换:        

DATA中的原字符   替换为        

SOT        ESC X        

EOT         ESC Y        

ESC         ESC Z   

其中,ESC=1AHXYZ可指定为任意字符(除SOTEOTESC外)。    

发送方按约定方式对需要发送的原始帧进行替换,并把替换后的新的帧发送给接收方。例如图所示:接收方按约定方式进行相反替换,可以获得原始帧信息。   

6、异步通信和同步通信的比较   

1)异步通信简单,双方时钟可允许一定误差。同步通信较复杂,双方时钟的允许误差较小。   

2)异步通信只适用于点<--> 点,同步通信可用于点<--> 多。   

3)通信效率:异步通信低,同步通信高。