将节点和链路变成可用构件的第一步,是清楚它们如何连接,以使比特从一个节点传输到另一个节点。正如在前一节中提到的,信号是在物理链路上传播的。因此,我们的任务是将源节点准备发送的二进制数据编码为链路能够传送的信号,然后在接收节点将信号解码成相应的二进制数据。我们忽略调制的细节并假设处理两种离散信号,即高信号电平和低电平。实际上,这些信号可能对应着铜线链路上的两个不同电压或光纤链路上的两个不同能量级。

正如之前已提到的,本章讨论的大部分功能是由网络适配器(network adaptor)完成的,它是一个将节点连接到链路上的硬件。网络适配器包括一个信令构件,它在发送节点把比特编码为信号,而在接收节点将信号解码为比特。因此,如图2-3所示,信号在两个信令构件之间的链路上传输,而比特在两个网络适配器之间流动。

回到将比特编码为信号的问题。显然,要做的就是将数值1映射为高电平,数值0映射为低电平。这是一种称为不归零(NonReturn to Zero, NRZ)的编码方案所采用的映射。例如,图2-4以图解方式描述了一个特定的比特序列(图的上部)及其对应的NRZ编码信号(图的下部)。

NRZ的问题是,几个连续的1表示在一段时间内信号在链路上保持为高电平,类似地,几个连续0表示信号在一段时间内保持为低电平。一长串0和1导致两个基本问题。第一个问题是,它会导致基线漂移(baseline wander)状态。尤其是接收方保持一个它所看到的信号平均值,然后用这个平均值区分高、低电平。当收到的信号远低于这个平均值时,接收方就断定看到了0,同样,远高于这个平均值的信号被认为是1。当然,问题是太多连续的1或0会使这个平均值发生改变,使得检测信号中很难出现明显的变化。

第二个问题是,由高到低和由低到高的频繁转换必须使用时钟恢复(clock recovery)。直观地讲,时钟恢复问题就是:编码和解码过程都由一个时钟来驱动,每个时钟周期发送方发送1比特,接收方恢复1比特。为了使接收方能恢复发送方发送的比特,发送方和接收方的时钟必须精确同步。如果接收方时钟比发送方时钟稍快或稍慢,那么,接收方就不能正确地解码信号。可以采用在另一条线上发送时钟给接收方的方法,但这种方案不太可行,因为这使布线费用增加一倍,所以接收方改由收到的信号得到时钟,这就是时钟恢复过程。无论何时,只要信号有从1到0或从0到1的跳变,接收方就知道这是在时钟周期的边界上,它能够自己进行重新同步。然而,若长时间没有这样的跳变就会导致时钟漂移。所以,无论传送什么数据,时钟恢复都依赖于信号内有许多跳变。

有一种方法可以解决这个问题,称为不归零反转(NonReturn to Zero Inverted,NRZI),发送方将当前信号的跳变编码为1,将当前信号的保持编码为0。这样就解决了连续1的问题,但是显然未解决连续0的问题。NRZI如图25所示。还有一种方法称为曼彻斯特编码(Manchester encoding),这种颇具独创性的方法通过传输NRZ编码数据与时钟的异或值使时钟与信号结合在一起。(把本地时钟看作一个从低到高变化的内部信号,一对低/高变化的电平看作一个时钟周期。)图25也给出了曼彻斯特编码。注意,曼彻斯特编码将0作为由低到高的跳变,1作为由高到低的跳变。因为0和1都导致信号的跳变,所以接收方能有效地恢复时钟。(还有一种曼彻斯特编码的变种,称为差分曼彻斯特(differential Manchester)编码。其方法是若信号的前一半与前一比特信号的后一半信号相等则编码为1,若信号的前一半与前一比特信号的后一半信号相反则编码为0。)

曼彻斯特编码方案存在的问题是使链路上信号跳变的速率加倍,这意味着接收方有一半的时间在检测信号的每一个脉冲。信号变化的速率称为链路的波特率(baud rate)。在曼彻斯特编码中,比特率是波特率的一半,所以认为编码的效率仅为50%。记住,如果接收方保持比图25中的曼彻斯特编码要求的更快的波特率,那么在相同的时间段中,NRZ和NRZI能传输2倍的比特数。

我们考虑的最后一种编码方法称为4B/5B,它力求不扩大高信号或低信号的持续期而解决曼彻斯特编码的低效问题。4B/5B的思想是在比特流中插入额外的比特以打破一连串的0或1。准确地讲,就是用5个比特来编码4个比特的数据,之后再传给接收方,因此称为4B/5B。5比特代码是由以下方式选定的:每个代码最多有1个前导0,并且末端最多有两个0。因此,当连续传送时,在传输过程中任何一对5比特代码连续的0最多有3个。然后,再将得到的5比特代码使用NRZI编码传输,这种方式说明了为什么仅需关心多个连续0的处理,因为NRZI已解决了多个连续1的问题。注意,4B/5B编码的效率为80%。

表2-2给出了16个可能的4比特数据符号对应的5比特代码。注意,由于5比特足以编码32个不同的代码,因此我们仅用了16个,剩下的16个可用于其他目的。其中,11111

可用于表示线路空闲,00000表示线路不通,00100表示停止。在剩下的13个码中,7个是无效的(因为它们违反了1个前导、0或两个末尾0的规则),另外6个代表各种控制符号。在本章后面将会看到,某些组帧协议会使用这些控制符号。

编码(NRZ、NRZI、曼彻斯特、4B/5B)相关推荐

  1. 五、数据编码:曼侧斯特编码,差分曼彻斯特编码的区别 , 4B/5B编码 ——网络工程师成长之路

    计算机网络常见的八大数据编码 单极性码 与 极性码 双极性码 归零编码 不归零码 1变 0 不变 双相码 曼侧斯特编码 : 差分曼侧斯特编码 : 差分曼彻斯特编码: 有 0 无 1 两种曼彻斯特编码的 ...

  2. 通讯线路物理层编码类型总结(NRZ,MLT-3,4B/5B,8B/10B,64B/66B...)

    通信线路的编码就像商品的包装,商品包装的目的是使商品更适合运输,在运输过程中不受损,同样,线路编码的目的就是使编码后的二进制数据更适合线路传输. 物理层的编码可以分为两类. 一类是和物理介质相关,常用 ...

  3. USB PD物理层使用的4B/5B编码介绍

    1. 什么是4B/5B编码 就是用5bit的一个二进制数来表示一个4bit二进制数. 2. 目的 为了保证物理层通信的同步(一般数字电路实现),线路中传输的码流需要有足够多的跳变. 显然正常的方式如: ...

  4. 编码(RZ NRZ NRZI)

    Frm: https://jingyan.baidu.com/album/39810a23addccbb637fda66a.html?picindex=1 RZ 编码(Return-to-zero C ...

  5. 线路编码(NRZ,NRZI,8B/10B,Manchester等)

    0.前言 编码根据作用和场景不同分为信源编码,信道编码和线路编码. 信源编码:降低信源符号之间的相关性和冗余度,通过编码提高每个符号的信息量.具体说,就是针对信源输出符号序列的统计特性来寻找某种方法, ...

  6. 数据通信基础 - 数据编码(曼彻斯特编码 和 差分曼彻斯特编码)

    文章目录 1 概述 2 常见编码方案 2.1 曼彻斯特编码 和 差分曼彻斯特编码 2.2 4B/5B 编码 2.3 各种编码效率 3 扩展 3.1 单极性码 和 极性码 3.2 双极性码 3.3 归零 ...

  7. CAN 总线 之六 BOSCH CAN 比特位填充(编码规则)、归零编码(RZ)和不归零编码(NRZ)

    帧格式   在 CAN 总线中,为了确保足够的转换以保持同步,在相同极性的 5 个连续位之后使用位填充.下面以 标准格式来进行说明,先看下面标准格式的帧的图示: 在某些文档中,将 CAN 帧分为以下部 ...

  8. About 4B/5B

    什么是4B/5B编码? 4B/5B编码是百兆以太网中线路层编码类型之一,就是用5bit的二进制数来表示4bit二进制数,映射方式如下表所示: 为什么要进行4B/5B编码? 在通信网络中,接收端需要从接 ...

  9. 不归零制编码、归零制编码、NRZI

    在传送分组时,USB应用了NRZI编码方式. 信号电平的一次反转代表1,电平不变化表示0,并且在表示完一个码元后,电压不需回到0 不归零制编码是效率最高的编码 缺点是存在发送方和接收方的同步问题 单极 ...

最新文章

  1. 语言用加法实现加饭运算_面试官:这个经典的并发问题用 Go 语言如何实现?...
  2. SpringBoot + WebMagic实现一个的爬虫框架
  3. 在持续交付阶段中的测试覆盖率(译)
  4. 纪事地图和Yahoo Cloud服务基准
  5. ipv6地址为什么显示两个_【聚焦】IPv6进行时,别被这些因素绊住脚
  6. android 浮层菜单弹出,Android PopupWindow实现微信右上角的弹出菜单
  7. 【数据结构】广义表的默认成员函数、深度、大小、打印
  8. matlab幻方变换_幻方变换加密数字全息图
  9. Object-C 语法基础
  10. java-php-python-ssm在线装机报价系统计算机毕业设计
  11. [高通SDM450][Android9.0]CTA认证--蓝牙、WIFI申请权限
  12. 使用CDN加速的优点
  13. 1224. 简单迷宫问题
  14. iOS 直播 —— 推流
  15. linux文件回收站恢复,Linux之恢复误删的文件[针对丢弃到回收站]
  16. 【MySQL】创建高性能的索引
  17. 异或鉴相器 matlab 数字鉴相器,一款采用CPLD的光伏并网逆变器锁相及保护电路设计...
  18. 声网首席科学家钟声:感知实时互联网
  19. 网络互连有何实际意义?进行网络互连时,有哪些共同的问题需要解决?
  20. iPhone is not available. Please reconnect the device

热门文章

  1. 【转】iOS25彩票 幸运转盘
  2. python数据分析基础试题_Python数据分析基础知识
  3. Go语言进阶,结构体与json字符串格式的互相转换
  4. ACP敏捷9.敏捷应用场景
  5. AIX PowerPC体系结构及其溢出技术学习笔记(转)
  6. armbian n1 桌面_N1盒子初体验(降级+刷armbian)
  7. 中国上市互联网公司市值排名
  8. 百度世界大会最全官方回顾:今天,百度更懂你!
  9. ZOJ 3587 Marlon#39;s String 扩展KMP
  10. make时 No rule to make target错误解决办法