之前章节简单介绍了IB网络模型,本章将更详细的介绍网络模型中的物理层的功能和组成。
物理层功能物理层主要负责各设备间的互联,在bit级进行数据的传输,向上使用MII、RGMII、SGMII、QSGMII、SGUI等接口连接MAC层,向下对接不同传输介质,phy的主要功能有:
- 使本地端口和对端端口连接,并保持同步;
- 检测物理连接状态;
- 负责编解码,例如8b/10b,10b/8b;
- 单路数据传输速度250MB/s,4路和12路时,速率可达1000MB/s和3000MB/s;
- 检测传输数据是否有错,或者时序错误;
共支持三种实现方式:背板接口(backplane port)、电缆接口(copper cable port)、光纤接口(fiber optic port);
注:背板以太网以铜线作为传输介质。
物理层传输和接收数据为双工模式,各使用一条线路,其中电缆接口采用双绞线实现。
物理层组成
物理层需要负责将不同介质的信号转换成电信号,其核心是serdes、ADC、DAC以及保证信号正确性的一些模块,主要分为PCS(Physical Coding Sublayer)、PMA(Physical Medium Attachmenttests)和PMD(Physical Media Dependent)。
其中大部分数字模块在PCS中,主要完成信号调理功能,包括8B/10B编解码、K码对齐、速率自协商、载波监听和链路检测等,而PMA主要为PCS和PMD子层提供一种与介质无关的连接方式,PMD为电/光收发器。本文以一个100BASE-TX的phy为例,展示了以太网phy的整体架构。
以一段数据需要从本地向对端传输为例,数据需要从MAC层出发,经过PHY和传输介质到达对端设备的PHY,再进行信号还原,上传到MAC层及更上层进行处理。
- 数据首先通过标准MII接口(包括SGMII、RGMII等)从MAC层向PHY传输;
- 数据进入PHY后,首先进入PCS子层的编码模块(4B/5B、8B/10B),其目的是使数据中的‘0’和‘1’数量保持基本一致,来保证DC平衡,更易于后续serdes的时钟恢复和检错等功能的实现;
- 如果是速率更高的PHY,如10G/100G,编码后的数据还会经过扰码器进一步打散‘0’和‘1’,避免能量的过度集中;
- 由于serdes传输的是bit流,数据在介质中传输是没有Byte对齐的概念的,对齐工作是需要PCS子层来完成的,所以在TX侧,PCS还会插入用于数据对齐K码;在RX侧,PCS检测到该K码就可以从当前bit开始对齐;
- 随后数据进入PMA层,完成并串转换,最后形成bit流前往MDI;
- 发展到千兆以太网后,PHY还提供了自协商功能,两端PHY通过传递各自的连接能力信息,来确定双方最适合的速率与双工状态;
- 接收端RX以相反的流程进行串转并,检测同步,数据对齐,完成相应的解码,最后上传到MAC层。