同步通信和异步通信

早过忘川 提交于 2020-01-27 09:24:53

5.1.3 同步通信和异步通信
一、同步通信和异步通信
串行通信可以分为两种类型,一种叫同步通信,另一种叫异步通信。
同步通信方式,是把许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为信息帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。同步方式下,发送方除了发送数据,还要传输同步时钟信号,信息传输的双方用同一个时钟信号确定传输过程中每1位的位置。见右图5.2所示。




图5.2 同步通信示意图
在异步通信方式中,两个数据字符之间的传输间隔是任意的,所以,每个数据字符的前后都要用一些数位来作为分隔位。
从图5.2中可以看到,按标准的异步通信数据格式(叫做异步通信帧格式),1个字符在传输时,除了传输实际数据字符信息外,还要传输几个外加数位。具体说,在1个字符开始传输前,输出线必须在逻辑上处于“1”状态,这称为标识态。传输一开始,输出线由标识态变为“0”状态,从而作为起始位。起始位后面为5~8个信息位,信息位由低往高排列,即先传字符的低位,后传字符的高位。信息位后面为校验位,校验位可以按奇校验设置,也可以按偶校验设置,或不设校验位。最后是逻辑的“1”作为停止位,停止位可为1位、1.5位或者2位。如果传输完1个字符以后,立即传输下一个字符,那么,后一个字符的起始位便紧挨着前一个字符的停止位了,否则,输出线又会进入标识态。在异步通信方式中,发送和接收的双方必须约定相同的帧格式,否则会造成传输错误。在异步通信方式中,发送方只发送数据帧,不传输时钟,发送和接收双方必须约定相同的传输率。当然双方实际工作速率不可能绝对相等,但是只要误差不超过一定的限度,就不会造成传输出错。图5.3是异步通信时的标准数据格式。


图5.3 异步通信示意图
比较起来,在传输率相同时,同步通信方式下的信息有效率要比异步方式下的高,因为同步方式下的非数据信息比例比较小。
二、传输率
所谓传输率就是指每秒传输多少位,传输率也常叫波特率。在计算机中,每秒传输多少位和波特率的含义是完全一致的,但是,在最初的定义上,每秒传输多少位和波特率是不同的,前者是指每秒钟传输的数位是多少,而波特率是指每秒钟传输的离散信号的数目。所谓离散信号,就是指不均匀的、不连续的也不相关的信号。在计算机里,只允许高电平和低电平两种离散信号,它们分别表示l和0,于是,造成了波特率与每秒传输数位这两者的吻合。但在其他一些场合,就未必如此。比如,采用脉冲调制时,可以允许取4种相位,而每种相位代表2个数位,这种情况下,按每秒传输多少位(bps)计算的传输率便是波特率的两倍。
国际上规定了一个标准波特率系列,标准波特率也是最常用的波特率,标准波特率系列为110、300、600、1200、1800、2400、4800、9600、19200......。
大多数接口的波特率可以通过编程来指定。
作为例子,我们可以考虑这样一个异步传输过程:设每个字符对应1个起始位、7个数据位、1个奇/偶校验位和1个停止位,如果波特率为1200,那么,每秒钟能传输的最大字符数为1200/10=120个。 
作为比较,我们再来看一个同步传输的例子。假如也用1200的波特率工作,每个字符为7位,用4个同步字符作为信息帧头部,但不用奇/偶校验,那么,传输100个字符所用的时间为7×(100+4)/1200=0.6067,这就是说,每秒钟能传输的字符数可达到100/0.6067=165个。
三、异步通信的差错类型
异步通信过程中,可能发生通信错,一般有3种错误:
1、帧格式错:在应该接收到停止位的时候,接收到逻辑的“0”,便产生帧格式错误。
2、奇偶错:接收到的奇偶校验位错。
3、覆盖错:通信接口接收到数据并存放到数据输入寄存器中,但是CPU没有及时来取,后面新接收的数据覆盖了前面收到的数据,叫做覆盖错。
发生帧格式错和奇偶错的原因可能为下面几种:
◆ 发送和接收双方采用了不同的传输率,或虽然双方约定了相同的传输率,但传输率不可能绝对相等。在通信的速率比较高的情况下,如果双方的传输率误差达到一定的程度,也会造成通信出错;
◆ 通信双方采用了不相同的帧格式;
◆ 干扰。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!