ZHCAEO6 November   2024 DP83867CS , DP83867E , DP83867IS , DP83869HM , DP83TC811S-Q1 , DP83TC812S-Q1 , DP83TC813S-Q1 , DP83TC814S-Q1 , DP83TC817S-Q1 , DP83TC818S-Q1 , DP83TG720S-Q1 , DP83TG721S-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1MAC 接口疑难解答 - SGMII
    1. 1.1 验证自举配置
      1. 1.1.1 DP83TG720S-Q1 的 SGMII 自举配置
    2. 1.2 读取并检查寄存器值
    3. 1.3 自动协商
    4. 1.4 吞吐量和环回测试
      1. 1.4.1 双向吞吐量测试
      2. 1.4.2 RX 和 TX 吞吐量测试
      3. 1.4.3 使用固定数量的数据包进行 RX 和 TX 吞吐量测试
      4. 1.4.4 环回测试
        1. 1.4.4.1 MII 环回
        2. 1.4.4.2 反向环回
    5. 1.5 检查时钟信号
    6. 1.6 测量 SGMII 眼图
      1. 1.6.1 SGMII 眼图模板要求
    7. 1.7 SGMII 布局
  5. 2总结
  6. 3参考资料

使用固定数量的数据包进行 RX 和 TX 吞吐量测试

对于 2018 年之后发布的单线对以太网器件,可以在数据表中找到 RX/TX 数据包计数器和错误计数器寄存器。例如,在 DP83TG720S-Q1 中,这些寄存器为 0x639-0x63E。按照以下步骤检查 RX 和 TX 方向的通信:

  1. 打开待测系统电源并建立其链路。
  2. 禁用系统中的所有后台数据包。
  3. 读取 0x639-0x63E 以清除寄存器。
  4. 在系统中沿两个方向发送 100 个数据包。
  5. 检查 TX/RX 计数器是否正确递增,以及寄存器中是否没有 CRC 错误,寄存器需要具有以下值:0x639=0x64、0x63A=0x0、0x63B=0x0、0x63C=0x64、0x63D=0x0。0x63E=0x0。

图 1-7 展示了使用 DP83TC812 的数据包计数器寄存器检查 RX 和 TX 通信的示例。脚本 ./packetcounters.sh 按顺序输出寄存器 0x639-0x63E。寄存器值表明 PHY 中发送了 10 个数据包,接收了 10 个数据包,且没有错误。因此,RX 和 TX 通信正常工作。

 使用 DP83TC812 检查吞吐量和数据包计数器图 1-7 使用 DP83TC812 检查吞吐量和数据包计数器

如果正在使用不带数据包计数器寄存器的以太网 PHY,或者无法在系统中禁用后台数据包,则可以使用 Wireshark 或 Tcpdump 来探查数据包。按照以下步骤检查 TX 方向的通信:

  1. 打开待测系统电源并建立其链路。
  2. 开始在链路伙伴的终端上运行 tcpdump 或 wireshark。
  3. 从受测器件 (DUT) 向链路伙伴 Ping/发送 10 个数据包。请参阅图 1-8
  4. 如果接收到所有 10 个数据包,则可能会有 10 个请求显示在 wireshark/tcpdump 中。请参阅图 1-9
 从 DUT 向链路伙伴发送 10 个数据包图 1-8 从 DUT 向链路伙伴发送 10 个数据包
 TCP 转储日志示例图 1-9 TCP 转储日志示例

除了链路伙伴和 DUT 的角色相反外,测试 RX 方向的步骤是类似的。