一般在通信中把物理层划分为3个子层,每层各完成不同的任务,如以太网通信中把物理层分为PCS(Physical Coding Sublayer),PMA(Physical Media Attachment),PMD (Physical Media Dependent)3个子层,关于这方面的内容参照网络通信相关的章节。在本章的异步串行通信中也分为PCS, PMA, PMD 3个子层。 其中PMA对应是并/串转换和串/并转换,PMD对应的是LVDS接口。如图1所示。

图1
图1展示了物理层的分层结构,以及物理层与数据链路层之间的关系。由于PMA,PMD 在前面的内容中已经给大家介绍,而且在代码中已经实现,下面着重介绍PCS子层的实现。
虽然在前面的通信设计和实验中我们没有使用PCS子层,通信双方也可以通信,但是我们还有遗留的问题还没有解决。下面将提出这些问题以及采用PCS子层实现应对方案。
1. PCS子层的必要性
在串行通信中存在如下两个问题需要解决,解决方案由PCS子层实现,一般该层
(1)在通信中采用原始数据进行发送和接收,由于原始数据的随机性,串行数据不可避免地会出现长0或长1,这将会导致信道直流不平衡以及严重影响时钟同步。
(2)无法在数据帧中添加更多的控制字使帧结构更加完善
-
- 数据帧的类型多样化,比如怎样填充多余的数据使得帧结构完整,
- PHY到PHY的控制与状态的交互,如以太网中自动协商等。
2. PCS 子层的构成
- 针对PCS子层必要性的第一个问题,在数据编码的时候可以采用4b/5b,8b/10b,64b/66b,128b/130b,128b/132b等编码,但是64b/66b,128b/130b,128b/132b编码还有机率出现长0,长1的情况,但长0,长1已经缩短到一定的范围。也可以采用数据加扰和解扰的办法处理,加扰和解扰的优点是不增加串行流的长度,没有降低通信效率。
- 针对PCS子层必要性的第二个问题,单纯使用加扰和解扰一般不能很好的解决,因为加扰和解扰没有冗余的控制字可以使用,因此一般采用4b/5b,8b/10b,64b/66b,128b/130b,128b/132b等编码
- 为了解决64b/66b,128b/130b,128b/132b编码还有机率出现长0,长1的情况,在超高速数据通信中一般与加扰和解扰配合使用,以达到既能有效的控制物理信道,又能提高信道的通信质量。
有关PCS子层设计的详细内容,在下面的各节内容中详细介绍。