同步串行通信
同步串行通信
所谓同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。串行通信可以分为同步通信和异步通信两类。
定义
同步通信把许多字符组成一个信息组,或称为信息帧,每帧的开始用同步字符来指示。由于发送和接收的双方采用同一时钟,所以在传送数据的同时还要传送时钟信号,以便接收方可以用时钟信号来确定每个信息位。
同步通信要求在传输线路上始终保持连续的字符位流,若计算机没有数据传输,则线路上要用专用的“空闲”字符或同步字符填充。
同步通信传送信息的位数几乎不受限制,通常一次通信传的数据有几十到几千个字节,通信效率较高。但它要求在通信中保持精确的同步时钟,所以其发送器和接收器比较复杂,成本也较高,一般用于传送速率要求较高的场合。
数据格式
(a)单同步格式,会送一帧数据仅使用一个同步字符。当接收端收到并识别出一个完整同步字符后,就连续接收数据。一帧数据结束,进行CRC校验。
同步字符数据CRC1、CRC2
(b)双同步字格式,这时利用两个同步字符进行同步。
同步字符1同步字符2数据CRC1、CRC2
(c)同步数据链路控制(SDC)规程所规定的数据格式。
标志符01111110地址符8位数据CRC1、CRC2标志符01111110
(d)则是一种外同步方式所采用的数据格式。对这种方式,在发送的一帧数据中不包含同步字符。同步信号SYNC通过专门的控制线加到串行的接口上。当SYNC一到达,表明数据部分开始,接口就连续接收数据和CRC校验码。
数据场CRC1、CRC2
(e)高级数据链路控制(HDLC)规程所规定的数据格式。它们均用于同步通信。这两种规程的细节本书不做详细说明。
标志符01111110地址符8位控制符8位数据CRC1、CRC2标志符01111110
CRC(cyclicredundancychecks)的意思是循环冗余校验码。它用于检验在传输过程中是否出现错误,是保证传输可靠性的重要手段之一。
应用
在异步通信方式中,可以看到在发送的数据中含有起始位和停止位这两个与实际欲传送的数据毫无相干的位。换句话说,若在传送1个8位的字符串时,其校验位、起始位和停止位都为1个位,则相当于要传送11个位信号,所以实际上的使用率就只有约73%而已。显然当需要高速率的通信速度时,异步式的传输不能满足需求。
与异步方式不同的是,同步方式不仅在字符的本身之间是同步的,而且在字符与字符之间的时序仍然是同步的,即同步方式是将许多的字符聚集成一字符块后,在每块信息(常常称之为信息帧)之前要加上1~2个同步字符,字符块之后再加入适当的错误检测数据才传送出去。采用同步通信时,在传输线上没有字符传输时,要发送专用的“空闲”字符或同步字符,其原因时同步传输字符必须连续传输,不允许有间隙。
由于同步传输采用字符块的方式,所以相对于异步方式里每一字符就有一对控制数据和错误检测数据的设计,同步方式的字符块中的每一个字符就有比较少的控制数据和错误检测的数据,因而有较高的传输速率。更重要的是,异步方式下虽然有校验位可用以检测错误,但其功能也只能检测错误,而不能进行任何的修正操作,而且对于偶数个错误位的产生就不易检测出来。
在同步方式中产生一种所谓“冗余”字符,使其有较高的错误防止率。这种‘冗余“字符的含义即为,假设欲传送的数据位当作一被除数而发送器本身产生一固定的除数,将前者除以后者所得的余数即为该”冗余“字符。当数据位和”冗余“字符位一起被传送到接收器时,接收器产生和发送器相同的除数,如此即可检查出数据在传送过程中是否发生了错误。此法不但可防止奇数个或者偶数个错误的发生,而且经过统计的数据表明错误防治率可达到99%以上。
参考资料

Warning: Invalid argument supplied for foreach() in /www/wwwroot/newbaike1.com/id.php on line 362
目录
概述
定义
数据格式
应用
参考资料