热度 13
2017-7-5 11:21
2741 次阅读|
0 个评论
人们可以利用编码来识别每一个记录,区别处理方法,进行分类和校核,从而克服项目参差不齐的缺点,节省存储空间,提高处理速度。 二进制数字信息在传输过程中可以采用不同的代码,各种代码的抗噪声特性和定时能力各不相同,实现费用也不一样。下面介绍几种常用的编码方案:单极性码、极性码、双极性码、归零码、双相码、不归零码、曼彻斯特编码、差分曼彻斯特编码、多电平编码、4B/5B编码(在进行数据编码时应遵循系统性、标准性、实用性、扩充性和效率性)。 1、单极性码 在这种编码方案中,只适用正的(或负的)电压表示数据。例如,用+3V表示二进制数字“0”,用0V表示二进制数字“1”。单极性码用在电传打字机(TTY)接口以及PC机和TTY兼容的接口中,这种代码需要单独的时钟信号配合定时,否则当传送一长串0或1时,发送机和接收机的时钟将无法定时,单极性码的抗噪声特性也不好。 2、极性码 在这种编码方案中,分别用正电压和负电压表示二进制数“0”和“1”。例如:用+3V表示二进制数数字“0”,用—3V表示二进制数“1”。这种代码的电平差比单极码大,因而抗干扰性好,但仍需要另外的时钟信号。 3、双极性码 在双极性编码方案中,信号在3个电平(正、负、零)之间变化。一种典型的双极性码就是信号反转交替编码(AMI)。在AMI信号中,数据流遇到“1”时使电平在正和负之间交替翻转,而遇到“0”时则保持零电平。双极性是三进制信号编码方法,它与二进制编码相比抗噪声特性更好。AMI有其内在的检错能力,当正负脉冲交替出现的规律被打乱时容易识别出来,这种情况叫做AMI违例。这种编码的缺点就是当传送长串“0”时会失去位同步信息。对此稍加改进的一种方案是“6零取代”双极性码B6ZS。即把连续6个“0”用一组代码代替。这一组代码中若含有AMI违例,便可以被接收机识别出来。 4、归零码 在归零码中,码元中间的信号回归到零电平,因此,任意两个码元之间被零电平隔开。与以上仅在码元之间有电平转换的编码方案相比,这种编码方案有更好的噪声抑制性。因为噪声对电平的干扰 5、双相码 双相码要求每一位中都要有一个电平转换。因而这种代码的最大优点是自定时,同时双相码也有检测错误的功能,如果某一位中间缺少了电平翻转,则被认为是违例代码。 6、不归零码 不归零码的规律是当“1”出现时电平翻转,当“0”出现时电平不翻转。因而数据“1”和“0”的区别不是高低电平,而是电平是否转换。这种代码也叫差分码,用在终端到调制解调器的接口中。这种编码的特点是实现起来简单且费用低,但不是自定时的。 7、曼彻斯特编码 曼彻斯特编码是一种双相码。在上图中,用高电平到低电平的转换边表示“0”,用低电平到高电平的转换边表示“1”,相反的表示也是允许的。位中间的电平转换边既表示了数据代码,同时也作为定时信号使用。曼彻斯特编码用在以太网中。 8、差分曼彻斯特编码 这种编码也是一种双相码,和曼彻斯特编码不同的是,这种码元中间的电平转换边只作为定时信号,不表示数据。数据的表示在于每一位开始处是否有电平转换:有电平转换表示“0”,没有电平转换表示“1”。差分曼彻斯特编码用在令牌环网中。 从曼彻斯特编码和差分曼彻斯特编码的图形中可以看出,这两种双相码的每一个码元都要调制为两个不同的电平,因而调制速率是码元速率的两倍。这对信道的宽带提出了更高的要求,所以实现起来更困难也更昂贵。但由于其良好的抗噪声特性和自定时功能,在局域网中仍被广泛使用。 9、多电平编码 这种编码的码元可取多个电平之一,每个码元可代表几个二进制位。例如,令M=2的n次方(M为码元种类数,n为位数),设M=4,则n=2,也就是说,若表示码元的脉冲取4个电平之一,则一个码元可表示两个二进制位。与双相码相反,多电平的数据速率大于波特率,因而可提高频带的利用率。但是这种代码的抗噪声特性不好,在传输过程中信号容易畸变到无法区分。 在数据通信中,选择什么样的数据编码要根据传输的速度、信道的带宽、线路的质量以及实现的价格等因素综合考虑。 10、4B/5B编码 在曼彻斯特编码和差分曼彻斯特编码中,每位中间都有一次电平跳变,因此波特率是数据速率的两倍。对于100Mbps的高速网络,如果采用这类编码方法,就需要200M的波特率,其硬件成本是100兆波特率硬件成本的5~10倍。 为了提高编码的效率,降低电路成本,可以采用4B/5B编码。这种编码方法的原理如下图所示。 这实际上是一种两级编码方案。系统中使用不归零码,在发送到传输介质之前要变成见1就翻不归零码(NRZ-I)。NRZ-I代码序列中1的个数越多,越能提供同步定时信息,但如果遇到长串的0,则不能提供同步信息。所以在发送到介质之前还需要经过一次4B/5B编码,发送器扫描要发送的位序列,4位分为一组,然后按照如下所示的4B/5B编码表的对应规则变换成5位的代码。 5位二进制代码的状态共有32种,在上表中选用的5位代码中1的个数都不少于两个,这就保证了在介质上传输的代码能提供足够多的同步信息。另外,还有8B/10B编码等方法,其原理是类似的。