0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

以太网自协商机制—双绞线自协商案例(四)

FPGA开源工坊 来源:追宇星空 2024-03-20 15:11 次阅读

10M/100M/1000M自协商基理

10M/100M/1000M自协商,主要协商的内容为“速度双工”、“流控”和“主从”三大类,下面先介绍10M/100M/1000M自协商的BasePage和NextPage的bits分配,然后就这三大类内容进行阐述。

10M/100M/1000M自协商交互方式

1000BASE-T PHY(无EEE能力时)按顺寻地不间断地交换一个自动协商基本页、一个1000BASE-T格式的下一页,和两个1000BASE-T未格式化的下一页;1000BASE-T PHY(有EEE能力时)按顺寻地不间断地交换一个自动协商基本页、一个1000BASE-T格式的下一页,两个1000BASE-T未格式化的下一页,一个1000BASE-T格式的下一页,和一个1000BASE-T未格式化的下一页;

1000BASE-T BasePage和NextPage编码格式分别如下图:

ef18d054-e688-11ee-a297-92fbcf53809c.png

ef30fe86-e688-11ee-a297-92fbcf53809c.png

ef3abcdc-e688-11ee-a297-92fbcf53809c.png

速度双工协商

速度双工协商主要靠设置“本地广告能力寄存器Auto-NegotiationAdvertisement Register Register 4”的bit9:5和“本地控制寄存器1000BASE-T Control Register Page 0, Register 9”的bit9:8实现的。下面为描述问题方便,把Reg 9.bit9:8+Reg 4.bit9:5合并为T[11:5].本端和远端选择彼此都有的能力(T[11:5]中的置1的相关bit)中优先级高的那种能力作为本端PHY和远端PHY的实际工作的速度双工状态。

PHY能力优先级由高到低排序如下:

1000BASE-Tfull duplex

1000BASE-T half duplex[没有芯片支持]

100BASE-T2 full duplex[已淘汰]

100BASE-TX full duplex

100BASE-T2[已淘汰]

100BASE-T4[已淘汰]

100BASE-TX half duplex

10BASE-T full duplex

10BASE-T half duplex

下面分为“本端远端均为千兆PHY”和“一端为千兆PHY,另一端均为百兆PHY”两种情况讨论。

“本端远端均为千兆PHY”:

例子1:本端PHY的T[11:5]=2b1001111;双绞线另一侧的远端PHY的T[11:5]=2b0000101。此时他俩的彼此能力的交集为PHY的T[11:5]=2b0000101,即双绞线链路双方都支持的PHY能力为T[5]=1(10BASE-T half duplex)和T[7]=1(100BASE-TX half duplex),并且因为优先级顺序为100BASE-TX half duplex>10BASE-T half duplex,故此时本端和远端速度双工自协商的结果为“100BASE-TX half duplex”;

例子2:本端PHY的T[11:5]=2b1001111;双绞线另一侧的远端PHY的T[11:5]=2b1001010。此时他俩的彼此能力的交集为PHY的T[11:5]=2b1001010,即双绞线链路双方都支持的PHY能力为T[6]=1(10BASE-T full duplex)、 T[8]=1(100BASE-TX full duplex)和T[11]=1(1000BASE-T full duplex),并且因为优先级顺序为1000BASE-Tfull duplex >100BASE-TX full duplex>10BASE-T full duplex,故此时本端和远端速度双工自协商的结果为“1000BASE-T full duplex”;

例子3:本端PHY的T[11:5]=2b1000000;双绞线另一侧的远端PHY的T[11:5]=2b0001111。此时他俩的彼此能力的交集为PHY的T[11:5]=2b0000000,即双绞线链路双方没有PHY能力交集,故此时本端和远端永远无法建立正确链接。

写到这里,可能有小伙伴感觉到疑惑,既然88e1111 PHY的“本地控制寄存器1000BASE-T Control Register Page 0, Register 9”的bit8(1000BASE-T half duplex)可设置为1,为什么说芯片均不支持1000BASE-T half duplex呢?笔者曾经实践多款不同厂家的PHY(broadcom,marvell,vitesse,realtek,micrel等),发现即使本端和远端的该能力bit均置1,但是实测效果是1000BASE-Thalf duplex模式实际并未生效,为避免产生不必要的混淆,建议驱动工程师将此bit永远初始化0。其实芯片厂家普遍选择不实现1000BASE-T half duplex是合乎情理的。我们知道以太网PHY半双工的技术需求主要是20年前,因为当年LAN主要是基于集线器组网(集线器基于总线广播模式而非地址表交换模式),并且当年的计算机的CPU能力普遍孱弱,硬件无环境无法支持全双工的应用。

而在进入1000BASE-T时代(大概是2007年)后,集线器已经被性能优越的交换机(基于SRAM地址表架构的交换机天生支持全双工能力)完全取代,同时计算机的CPU的处理性能极大飞跃,故此时此刻半双工的需求不复存在。所有厂家就没有花额外的成本去支持1000BASE-T half duplex必要。(还有另外一个原因,理论上如果支持基于CSMA/CD的1000BASE-T半双工200米的冲突域的需求,以太网的最小帧长要从64Byte提高到512Byte,这样的变动的历史代价太大)。

“一端为千兆PHY,另一端均为百兆PHY”:

千兆PHY通过“LinkPartner Ability Register - Base Page, Copper Page 0, Register 5”的bit15获知双绞线的另一端为百兆PHY(bit15 NextPage=0),故千兆PHY也只支持BasePage发送(此时NextPage永远不对外发送)。那当前的情况就完全等同于10M/100M自协商了,该部分在“10M/100M自协商基理”章节已阐述过,故这里就不再赘述了。

流控协商

流控主要靠设置“本地广告能力寄存器Auto-Negotiation Advertisement Register Register 4”的bit11:10实现的。软件通过本端和远端的bit11:10的各种组合进行对本端MAC的tx和rx方向的802.3流控进行设置,具体规则如下表:

ef546916-e688-11ee-a297-92fbcf53809c.png

“MAC-PCS控制寄存器”需要软件根据“PHY-AN广告寄存器”和“PHY-AN LP广告状态寄存器”的内容进行动态更新配置,交换芯片硬件并不会自动联动。 流控设置之所以有上表的规则要求,是需要保证双绞线链路双方的流控状态匹配(双方都“tx 使能rx使能”,双方都“tx关闭rx关闭”和一方“tx关闭rx使能”另一方“tx使能rx关闭”)。如果出现双绞线链路双方流控失配,在链路拥塞时不但不能享受流控的优点,反而会引起链路中出现大量Pause流控帧使已经拥塞的链路更加拥塞。

主从协商

在1000BASE-T模式中,链路的两端执行环路定时(loop timing)。链接的一端协商配置为主设备,另一个协商配置为从设备。主设备发送和接收时钟锁定在本地晶振输入。从设备发送和接收时钟被锁定到传入的接收数据流。环路定时(loop timing)通过确保发射机和接收机在链路的每一端都以相同的频率工作。

主从协商主要靠设置 “本地控制寄存器1000BASE-T ControlRegister Page 0, Register 9”的bit12:10实现的。具体规则如下表:

ef6f2e36-e688-11ee-a297-92fbcf53809c.png

网络管理员因避免出现上述表格的最后两种情况,一旦出现此情况10M/100M/1000M自协商将永远无法完成,故此时本端和远端永远无法建立正确链接。 好的小伙伴们,这期10M/100M/1000M自协商就讲完啦,下一课会开始“10M/100M/1000M/2.5G/5G/10G/25G/40G自协商”相关内容。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5076

    浏览量

    166234
  • 集线器
    +关注

    关注

    0

    文章

    334

    浏览量

    39126
  • 双绞线
    +关注

    关注

    2

    文章

    203

    浏览量

    23465
  • PHY
    PHY
    +关注

    关注

    2

    文章

    264

    浏览量

    51005
  • 控制寄存器
    +关注

    关注

    0

    文章

    34

    浏览量

    11432

原文标题:以太网自协商机制--双绞线自协商(四)

文章出处:【微信号:FPGA开源工坊,微信公众号:FPGA开源工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    以太网协商机制-双绞线协商案例设计(二)

    在FLP突发中,D0应是传输的第一个比特。
    的头像 发表于 03-17 09:19 452次阅读
    <b class='flag-5'>以太网</b>自<b class='flag-5'>协商机制</b>-<b class='flag-5'>双绞线</b>自<b class='flag-5'>协商</b>案例设计(二)

    以太网协商机制-双绞线协商案例设计(三)

    NextPage有两大类(D13=1时为Messgage Page; D13=0时为Unformatted Page;),编码格式分别如下图
    的头像 发表于 03-18 09:33 427次阅读
    <b class='flag-5'>以太网</b>自<b class='flag-5'>协商机制</b>-<b class='flag-5'>双绞线</b>自<b class='flag-5'>协商</b>案例设计(三)

    AM335X以太网问题,请问需要在linux里面修改什么吗,比如把PHY芯片的协商关闭,固定在100full模式之类的?

    以太网相互ping。设置相同的网段,但是ping不同,打印信息是100hulf up100hulf down交替出现,一会连上,一会掉了。感觉好像一直在查找外部以太网设备似的。请问需要在linux里面修改什么吗,比如把PHY芯片的
    发表于 06-21 03:42

    DP83822I工业以太网PHY协商功能与其Strap电阻配置

    物理层链接。所以本文档的内容基于TI以太网PHY产品DP83822,介绍以太网网口协商(Auto-Negotiation)功能现象,正确的测试波形与Strap电阻设置。    1.
    发表于 03-14 06:45

    为什么lwip不能够开启协商模式?

    lwip 不能够开启协商模式 ??static void low_level_init(struct netif *netif){ uint32_t regvalue = 0
    发表于 08-20 04:35

    为什么以太网+柔性板与电脑无法协商为100M?

    硬件:基于STM32F4单片机+LAN8720A(PHY)芯片,移植LWIP轻型以太网协议栈,硬件参考发烧友探索者开发板。连接方式:1.板子通过刚柔结合板与PC机进行连接,系统上电后,PC端5s后
    发表于 09-11 02:53

    基于DP83822I工业以太网PHY协商功能与其Strap电阻配置

    以太网PHY产品DP83822,介绍以太网网口协商(Auto-Negotiation)功能现象,正确的测试波形与Strap电阻设置…
    发表于 11-11 07:26

    STM32以太网驱动程序配置中的自动协商、速度设置和交换机自动协商、速度配置有什么区别?

    我在 stm32f4 中使用以太网交换机而不是 PHY。当 RMII 引脚连接到 STM32 时,我使用 SPI 管理 MDIO 引脚。有一些基本的东西我不明白。STM32 以太网驱动程序配置中的自动协商、速度设置和交换机自动
    发表于 02-08 06:35

    i.mx25pdk以太网是支持10Mbps协商还是只支持100Mbps?

    引脚:41 28 27 26 逻辑:0 1 0 1 从板载 PHY(此处)第 10 页,这是否意味着板: 是否已永久配置为仅使用 100Mbps(全双工)的 FIBER MODE? 是支持10Mbps协商还是只支持100Mbps? 为了分析,我附上了个性板原理图
    发表于 05-25 07:56

    FPGA光纤以太网协商的设计

    摘要:本文在分析了千兆以太网的自协商基本过程,提出了一种基于Virtex-5 XC5VFX70T 中高速串行收发器GTX Transceiver 的千兆以太网协商实现方案。该方案通过
    发表于 03-26 15:56 45次下载

    面向云联网的云服务协商机制

    的方式为用户提供服务,以便更好地满足用户的服务需求。针对上述情况,提出了面向云联网的云服务协商机制,该机制利用云联网和改进的经典合同网模型来实现云服务提供商的交互协商。为了有效地选出合作伙伴以提高合作效率,
    发表于 11-27 15:48 0次下载
    面向云联网的云服务<b class='flag-5'>协商机制</b>

    基于语义网技术的SLA协商机制

    针对服务等级协议(SLA)的自动协商中用于协商的SLA元素及协商过程缺乏语义描述的问题,提出了一种基于语义网技术的SLA协商机制。首先提出一种协商
    发表于 01-02 17:17 0次下载

    一文解析以太网自动协商技术

    这对于有少量这种问题的网络也许是个小问题,但是对于存在大量这种问题的网络而言就是一个头疼的问题。幸好,以太网的标准制定者推出了自动协商(Auto-Negotiation)这种机制,来解决这个问题。
    的头像 发表于 02-22 14:44 1063次阅读
    一文解析<b class='flag-5'>以太网</b>自动<b class='flag-5'>协商</b>技术

    基于IEEE Clause 28双绞线以太网协商机制

    双绞线以太网协商通过链路双方互相周期发送自协商脉冲群(通过脉冲群携带自己的物理层信息),从而到达彼此互相理解的目的,最终建立正确连接。
    发表于 03-15 09:53 91次阅读
    基于IEEE Clause 28<b class='flag-5'>双绞线</b>的<b class='flag-5'>以太网</b>自<b class='flag-5'>协商机制</b>

    基于IEEE Clause 28双绞线以太网协商机制解析(一)

    协商机制以太网技术物理层重要的一种机制。它可以使得不同底层技术网络设备(计算机终端,网桥,交换机,路由器,网关等)的链路双方协商成互相兼容的模式,从而建立起正确的链接。
    的头像 发表于 03-15 09:55 257次阅读
    基于IEEE Clause 28<b class='flag-5'>双绞线</b>的<b class='flag-5'>以太网</b>自<b class='flag-5'>协商机制</b>解析(一)