物理层(Phy)是将MAC层并行数据串行化的物理载体,为了在媒介上能有效的传输,需要在串行数据发送前进行编码处理,通常称为信道编码。同时为了能有效控制媒体传输,在信号处理方面同样要做相关处理,如采用差分传输,阻抗匹配,回声消除,多介调制的信号处理方面的内容。同时IEEE802.3对传输线的使用,传输接口的也做了规定。根据以上特点,因此物理层
一般又分为3子层,分别为物理控制子层(PCS)子层,物理媒介附着层(PMA),物理媒介依赖层(PMD)。本文着重介绍PCS子层。
1. PCS(physical control sublayer)子层
该层也属于信道编码,用于改善通信信道质量,降低通信误码率,减少电磁干扰或用于差错控制等。该层编码众多,如4b/5b编码,8b/10b, 64b/66b,64b/67b,128b/132b,NRZ,曼彻斯特编码等。这里将对经常使用的几种进行分析。
- 4b/5b编码:主要用在100TX的传输中,后面跟着MLT3编码。这些功能都在100兆PHY芯片中实现。
- 4b/5b数据:16个4bits数据映射到16个从25个编码挑选出来的5bits数据。优点:
(1)避免了长0,长1,有利于时钟恢复。
(2)统计上可以实现直流平衡
- 4b/5b控制:剩余9个5bits编码用于控制
(1)J、K、L作为启动信号
(2)I作为空闲信号
(3)J、K、L作为启动信号
(4)I作为空闲信号
表1 4b/5b编码表
2. 8b/10b编码 :
8b/10b 编码是当前用的最为广泛的编码方式,主要是解决直流平衡和时钟恢复。是一种优良的线性编码,有效解决了复杂度,直流平衡,时钟恢复与传输效率的平衡。
10bits数据总共1024种组合,从中挑选出512种作为数据编码使用。在数据传输的编码中,将256个8bits数据映射到512种的组合中.
8b/10b编码分割为两个部分,第一部分为5B/6B编码,第二部分为3B/4B编码,总体为8B到10b编码(发送部分),或10B/8B解码(接收部分)。目前在1G光纤以太网中应用。在其它非标通信中应用及其广泛。
5b/6b 编码,将8bits数据分成两个部分5b+3b. 5b为EDCBA为低5位。其中A为最低位。变换成abcdei.
RD为+1或-1决定数据的选择。-1选择左边一栏,+1选择右边一栏。
同时会有K值的选择。有关RD和K值后续的内容会讲解。
表2 5b/6b编码
- 3b/4b编码
3b/4b 编码,将8bits数据第二个部分3b. 3b为HGF为高3位。其中H为低位,变换成fghj。
数据·的编码范围为D.x.0-D.x.7, 其中x为5b/6b中的编码,RD为+1或-1决定数据的选择。-1选择左边一栏,+1选择右边一栏。
同时会有K值的选择。有关RD和K值后续的内容会讲解.5b/6b与3b/4b拼接组成8b/10b
表3 3b/4b编码
-
8b/10b K值编码
K值的编码与数据编码非常类似,K值总共12个作为数据传输过程中控制信息使用。1024个编码中的各种有用的组合少于512,其余的冗余编码在数据发送编码中不会使用。在接收中如果出现非编码表中的内容,则会只是通信过程中出现误码。RD为+1或-1决定数据的选择。-1选择左边一栏,+1选择右边一栏。
在实际使用中K.28.5,K.28.1,K.28.7定义为逗号序列,作为帧的分界,K.28.5多用于帧起始,k.28.1多用于帧结束。k.28.7用的相对较少。复杂协议中往往还配合具体的数值一起组成帧起始和结束。
-
RD 非一致性运行
运行非一致性(Run disparity), 是用来消除在通信线路中0,1的不平衡性。观察8b/10b的编码我们会发现,尽管采用了10bits的编码,依然无法满足在一个字节的发送中保持0,1的个数相等。
-
- RD编码运行原理与步骤。
- 维持一个变量RD,RD的初始值可以设为+1或-1
- 运行后,RD如果为-1,则选择表中RD为-1对应的值(D或K),同时RD的值+2,结果RD=+1
- 如果上次运行后RD=+1,选择表中RD为+1对应的值,RD=RD-2, 结果RD=-1
- 如果选择的10b中的数据0,1个数相等,则维持原RD的值不变
- 在持续的数据传输中能维持直流动态平衡。
- RD编码运行原理与步骤。
- 8b/10b编码例解
输入 Bits: HGFEDCBA
数据分割: HGF EDCBA
换位: EDCBA HGF
Data = 0011_1111
= 001 11111
= 11111 001
= 31 1
E 8B = D31.1
RD=-1 10b abcdei fghj=101011 1001 新RD=+1
RD=+1 10b abcdei fghj=010100 1001 新RD=-1
在下面的章节中提供了8b/10b的编码逻辑实现,以便于讲解,解码部分源代码没有在PPT中提供但是在单独的文件中提供。 也可以用查找表的方式实现。
查找表的方式非常简单,维护一个5b/6b和3b/4b表就可以,但RD需要程序进行计算。
练习题:利用FPGA ROM和COE文件设计8b/10b 与10b/8b编解码。用状态机实现ROM的读取及RD运算。
3. 曼城斯特编码
曼城斯特(Manchester)编码由于有优良的时钟恢复特性,因此早期被广泛应用在各种通信系统中,著名的10M以太网就采用曼彻斯特编码。虽然10M以太网已经退出历史舞台,但工业应用中仍被广泛使用,如机车控制系统中,MVBC系统就是采用曼彻斯特编码。目前智芯融与中车联合开发的MVBC控制器的底层通信协议正是采用了该编码。
图1 曼彻斯特编码波形图
图2 曼彻斯特编码数据与时钟的关系
内容有重复和遗漏:
4b/5b控制:剩余9个5bits编码用于控制
(1)J、K、L作为启动信号
(2)I作为空闲信号
(3)J、K、L作为启动信号
(4)I作为空闲信号