关于同步通信和异步通信问题

本文转自http://apps.hi.baidu.com/share/detail/22836305

真有同步通信和异步通信之分吗?答曰:文字上有,实质没有,因为它们的通信原理实际是相同的。

问题实质:
①不论同步还是异步通信,它们都是串行通信,这是同理之一。
②不论是同步还是异步通信,它们都逃不开使比特同步来进行通信,很明显比特不同步一切便会乱套。因此不仅指同步和异步,一切的通信方式都可统称“比特同步通信”,这是同理之二。
③不论概念上同步还是异步通信,开始都必须有一个同步位或一组同步位串来告知接收方通信从此开始,实际就是触发接收方调整自己的时钟,使时钟的跳跃时序和频率跟发送方的一致,以便进行后续的比特同步传输,而在后续的比特传输过程中就不需要再插进同步位,直至本组比特块传输结束。至于后续传输的比特数量应该多少,就得看使用设备的精致程度,如果收发两端设备的时钟频率不太精准,同步位后续的比特数量就要定得少点,如一个字符或一帧大小,以避免因时钟漂移而产生比特同步错位;而设备的时钟越精准,后续的比特数量就可越多,比如上千个字符或上千个帧。不过实际比特数量并没有限制,可以这么说,如果时钟很精准很精准后续的比特数就可以很多很多;如果精准到不能再精准后续比特就可以多得不能再多。总之时钟的精准度跟比特数成正比,就看实际的技术标准如何定而已。这不论同步或异步都是这么干的,这是同理之三。
那么说了半天到底同步和异步有没有区分?告诉你吧,我说了实质没有,或者说定性分析是没有,也就是按上面的原理来分析真的没有,说有是人们采用了定量分析来区分,就是用后续比特数量的多少来区分,一贯上人们把后续比特数量在一个字符或一帧的或较少量的情况看作是异步通信,也叫低速串行通信(async口);而把后续比特数在数百或数千的这样的较多量的情况看做是同步通信,也叫快速串行通信(serial口)。或者也可以简单说,时钟上要求低精准的叫异步通信,高精准的叫同步通信。这也就是所谓的实质。

简单理解:异步:发送和接收端的发送和接收动作不需要时序上的同步,即两时钟互不干涉,但振动频率还是必须一致(低要求),这就是要求两端时钟必须使用同一种波特率的原因。同步:在要求振动频率保持一致(高要求)的基础上,还要求发送和接收动作也必须保持时序上的同步,即两时钟必须以某种方式取得联系,使得发送和接收动作总是在同一时刻发生,显然这需要更多的信号开销。(注:参见CSDN站里这小子的说法吧,感觉这才是彻底的,难得。
“同步传输将数据以报文为单位进行传输,仅在报文的开头加上同步信息用
来标志报文的开始.其后的字符不再加同步信息直接传送.
异步传输的缺点是每个字符都要加同步信息,浪费带宽.
优点是可以严格保证传输是同步的.
同步传输的优点是效率比异步高的多.因为它节省了很多同步信息
缺点是报文过大时,由于收发双方时钟不能严格一致,会出现传输不同步
的现象,产生错误.” http://topic.csdn.net/t/20010528/17/137828.html

你可能感兴趣的:(2012年10月份前)