分类: LINUX
2011-08-13 09:40:22
在数字数据通信中,发送端和接收端之间必须在时间上保持同步,接收端只有知道数据流中各个位的开始时间和结束时间,才能保证数据接收的正确性和可靠性。为此,通信双方必须在通信协议中定义通信同步方式,并按照规定的同步方式进行数据传输。根据通信协议所定义的同步方式,数据传输可分为异步传输(Asynchronous Transmission)和同步传输(Synchronous Transmission)两大类。
1.异步传输
通常,异步传输是以字符为传输单位,每个字符都要附加 1 位起始位和 1 位停止位,以标记一个字符的开始和结束,并以此实现数据传输同步。所谓异步传输是指字符与字符(一个字符结束到下一个字符开始)之间的时间间隔是可变的,并不需要严格地限制它们的时间关系。起始位对应于二进制值 0,以低电平表示,占用 1 位宽度。停止位对应于二进制值 1,以高电平表示,占用 1~2 位宽度。一个字符占用 5~8位,具体取决于数据所采用的字符集。例如,电报码字符为 5 位、ASCII码字符为 7 位、汉字码则为8 位。此外,还要附加 1 位奇偶校验位,可以选择奇校验或偶校验方式对该字符实施简单的差错控制。发送端与接收端除了采用相同的数据格式(字符的位数、停止位的位数、有无校验位及校验方式等)外,还应当采用相同的传输速率。典型的速率有:9 600 b/s、19.2kb/s、56kb/s等。
异步传输又称为起止式异步通信方式,其优点是简单、可靠,适用于面向字符的、低速的异步通信场合。例如,计算机与Modem之间的通信就是采用这种方式。它的缺点是通信开销大,每传输一个字符都要额外附加2~3位,通信效率比较低。例如,在使用Modem上网时,普遍感觉速度很慢,除了传输速率低之外,与通信开销大、通信效率低也密切相关。
2. 同步传输
通常,同步传输是以数据块为传输单位。每个数据块的头部和尾部都要附加一个特殊的字符或比特序列,标记一个数据块的开始和结束,一般还要附加一个校验序列(如16位或32位CRC校验码),以便对数据块进行差错控制。所谓同步传输是指数据块与数据块之间的时间间隔是固定的,必须严格地规定它们的时间关系。
根据同步通信规程,同步传输又分为面向字符的同步传输和面向位流的同步传输。
(1)面向字符的同步传输
在面向字符的同步传输中,每个数据块的头部用一个或多个同步字符SYN来标记数据块的开始;尾部用另一个惟一的字符ETX来标记数据块的结束。其中,这些特殊字符的位模式与传输的任何普通字符都有显著的差别。典型的面向字符的同步通信规程是IBM公司的二进制同步通信规程BISYNC。
(2) 面向位流的同步传输
在面向位流的同步传输中,每个数据块的头部和尾部用一个特殊的比特序列(如 01111110)来标记数据块的开始和结束。数据块将作为位流来处理,而不是作为字符流来处理。为了避免在数据流中出现标记块开始和结束的特殊位模式,通常采用位插入的方法,即发送端在发送数据流时,每当出现连续的五个 1后便插入一个 0。接收端在接收数据流时,如果检测到连续五个 1 的序列,就要检查其后的一位数据,若该位是 0,则删除它;若该位为 1,则表示数据块的结束,转入结束处理。典型的面向位流的同步通信规程是高级数据链路控制(HDLC) 规程和同步数据链路控制(SDLC)规程。