首页 > 编程知识 正文

多线程的同步和异步的区别,多线程如何实现异步

时间:2023-05-04 23:36:47 阅读:174328 作者:3381

所以,请别人吃饭用同期的方法,请别人吃饭用异步的方法,可以省钱。

请参见----------------------------------------- -

举个例子,打电话时同步发送消息是异步的。

综述版:

异步通信”是一种常用的通信方式。 在异步通信中,发送字符时,发送的字符之间的时间间隔是任意的。 当然,接收方必须时刻准备接收。 (如果接收方主机没有接通电源,发送方发送字符也没有意义。 因为接收方完全接收不到。 由于发送方可以在任意时刻开始发送字符,所以必须在每个字符的开始和结束处加上标志,即开始位和停止位,以便接收方正确接收每个字符。 异步通信的优点是通信设备简单、便宜,但传输效率低(因为开始位和停止位的开销大)。

异步通信也可以将帧作为发送的单位。 接收方必须随时准备接收帧。 这必须在帧的开头设置特别的比特组合,以使接收方能够找到帧的开头。 这也称为帧定界符。 帧边界还包括确定帧的结束位置。 这有两种方法。 一个是在帧的末尾使用一个特殊的比特组合来标记帧的结束。 或者在帧头中设置帧长度的字段。 此外,在异步发送帧的情况下,发送侧不是必须在帧内的各字符上附加开始位和停止位来进行发送,而是发送侧能够在任意的时刻发射帧,帧与帧之间的时间间隔也可以是任意的。 一帧中的所有位被连续发送。 发送方在发送一帧之前不需要与接收方协调(不需要先进行位同步)。 各字符开始发送时间只要是在任意的t0 0 1 1 0 1 1 0开始比特结束比特t帧开始发送的时间即可,以帧为单位发送帧开始帧并结束的时间是任意的

“同步通信”的通信双方必须先建立同步,也就是说双方的时钟必须调整到同一个频率。 双方不断地发送和接收连续的同步比特流。 但是,此时有两种不同的同步方式。 一种是使用完全网络同步,使用非常准确的主时钟同步完全网络中所有节点上的时钟。 另一种是采用准同步,允许各节点时钟之间有微小的误差,采用其他对策实现同步传输。

进行串行通信的方式有同步通信方式和异步通信方式两种。 在同步通信方式中,要求通信双方以相同的时钟频率进行,且正确协作,通过共享单一的时钟或定时脉冲源,可以保证发送端和接收端的正确同步,效率高; 异步通信方案不需要双方同步,收发可以采用各自的时钟源。 双方遵循异步通信协议,以字符为数据传输单位,发送方传输字符的时间间隔不确定,传输效率低于同步传输效率。

具体来说

专业版:

串行通信有同步通信、异步通信两种。

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

例如,下图显示了停止启动的异步协议帧数据的格式。

图1

停止运动异步通信的特点是一个字一个字地传输,一个字一个字地传输。 另外,传输1个字符时,总是以“开始位”开始,以“停止位”结束,字符之间不需要一定的时间间隔。 每个字符之前有1位开始位(低电平,逻辑值),字符本身由5-7位数据位组成,字符之后有奇偶校验位,可以没有奇偶校验位),最后是1位或1位半或2位的停止位和空闲位都规定为高电平(逻辑值1 ),保证开始位的开头一定有下冲。

从图中可以看出,这种格式通过开始位和停止位实现字符的定义或同步,因此称为开始协议。

异步通信可以使用正逻辑或负逻辑,正负逻辑的表示如下: 逻辑0逻辑1

正逻辑低电平高电平

负逻辑高电平低电平

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

开始位逻辑01位

数据位逻辑0或15位、6位、7位、8位

奇偶校验位逻辑0或11位或无

停止位逻辑11位、1.5位或2位

空闲位逻辑1的任意数量

注:表中值的本质含义是信号出现的时间,所以例如1.5那样可以有分数位。

例:将8位数据传送45h (0100,0101 b ),在奇偶校验位、停止位为1个的情况下,如信号线上的波形图2所示,以异步通信的速度(9600bps,每1字符8位,1开始,1停止,巴黎

图2

2 .异步通信的接收过程

接收方根据“接收时钟”和“波特率系数”决定1位的时间长度。 波特率系数为16 (接收时钟每16个时钟周期使接收移位寄存器移位一次),以图3所示的正逻辑为例进行说明。

图3

)1)开始通信时,信号线空闲(逻辑1 ),如果检测到从1到0的跳跃,则开始“接收时钟”的计数。

)2)当计数到8个时钟时,检测输入信号,如果维持低电平,则确认不是噪声信号,而是“开始比特”b。

3 )在接收端检测到开始位后,每16个接收时钟检测一次输入信号,将对应的值作为D0位数据。 在逻辑1的情况下,设为数据位1; 在逻辑0的情况下,数据位为0。

p>(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、同步通信方式的特点:

采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5~8位。当然,对同一个传输过程,所有字符对应同样的数位,比如说n位。这样,传输时,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符。

同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码。在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码。接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。

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

该协议规定了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的同步协议(ISO的HDLC)

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

F场 A场 C场 I场 FC场 F场

F场:标志场;作为一帧的开始和结束,标志字符为8位,01111110。

A场:地址场,规定接收方地址,可为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位插入:除了起始字符外,当连续出现5个1时,发送方自动插入一个0。使得在整个信息帧中,只有起始字符含有连续的6个1。

接收方的"0位删除技术":接收方收到连续6个1,作为帧的起始,把连续出现5个1后的0自动删除。

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

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

SOT DATA EOT

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

设按下表方式进行替换:

DATA中的原字符   替换为

SOT        ESC X

EOT         ESC Y

ESC         ESC Z

其中,ESC=1AH,X、Y、Z可指定为任意字符(除SOT、EOT、ESC外)。

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

接收方按约定方式进行相反替换,可以获得原始帧信息。

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

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

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

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

posted on 2006-12-18 23:43 junky 阅读(10599) 评论(0)  编辑  收藏 所属分类: 计算机科学,编程思想

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。