This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DP83867IS:应用手册"工厂自动化中的延迟"(SNLA240)

Guru**** 2770655 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/691530/dp83867is-questions-for-application-note-latency-in-factory-automation-snla240

器件型号:DP83867IS

大家好、我对 DP83867有一些问题

 

1)

现在我正在阅读以下应用手册“工厂自动化中的延迟(SNLA240)”。

 

http://www.tij.co.jp/jp/lit/an/snla240/snla240.pdf

 

本应用手册介绍了以下位字段、以最大程度地降低延迟。

 

RGMII_RX_Half_FULL_THR

RGMII_TX_HALF_FUL_THR

RGMII_AF_BYPASS_EN

LOW_RETAIN_10_100_EN

FAST_RX_DV

 

但是,现在客户遇到了一些问题(我要求提供更多详细信息),这些问题似乎是由这些位的配置引起的。

那么、您能否通过更改这些位来告诉我任何其他影响? 尤其是、我想知道任何负面影响。

 

2)

当通过更改 RGMII_RX_Half_FULL_THR 和 RGMII_TX_Half_FULL_THR 更改 FIFO 阈值时、

这只会更改阈值,而不会更改 FIFO 深度本身。 对吧?

 

3)

当 FIFO 已满时、如何停止与 MAC 端和 MDI 端的数据通信?

 

此致、

OBA

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Oba-San、

    这些位的设置导致了什么问题? 通常唯一会出现问题的位是 AF_BYPASS_EN、它要求 PHY 和 MAC 同步运行以使用。

    2.是的、这不会改变 FIFO 深度、而是改变 PHY 设置初始 FIFO 指针的方式。 这样可以减少延迟/抖动。

    当 FIFO 满时、PHY 指示错误、但不停止发送数据。 由 MAC 层开始缓冲数据包并保持传输、直到 FIFO 减少或清除。

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rob、您好!

     

    感谢您的回复。

     

    关于1),我仍然确认他们的问题的更多细节。

    但基本上、他们发现现场总线协议存在数据包数据损坏问题。

    他们通过检查数据日志来确认协议输出本身是正确的。

    但他们发现使用 Wireshark 在 PHY 媒体输出上出现数据损坏。

    这似乎取决于这些电阻器配置。

     

    关于3),我无法很好地理解。

    我知道当 FIFO 满时 PHY 向 MAC 指示错误。

    但我无法理解后面的描述。 请您解释更多详细信息吗?

     

    此致、

    OBA

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rob、您好!

     

    该问题似乎是由 RGMII_TX_HALF_FULL_THR 或 RGMII_RX_HALF_FULL_THR 引起的。

    客户希望了解由于这些位字段配置而看到的内容。

     

    1)

    关于 RGMII_RX_Half_FULL_THR、您能告诉我该位字段的角色的更多详细信息吗?

    什么是“正常运行”? 什么不是“正常运行”? “0x02”和“0x01”配置的含义是什么?

    为什么“0x1”配置可以减少一个时钟周期?

     

    2.

    关于 RGMII_TX_Half_FULL_THR、

    我阅读以下文章。

     

    http://e2e.ti.com/support/interface/ethernet/f/903/t/667509

     

    我想在此帖子中确认以下含义。

     

    “如果 TX_CLK (由 MAC 生成)与 PHY (XI 引脚)的系统参考时钟同步”

     

    在许多情况下、处理器内部的 MAC 时钟由 PLL 与输入时钟生成。

    在这种情况下,如果 PHY (XI 引脚)使用与上述处理器输入时钟完全相同的时钟,您的回答是否为“同步”?

     

    3.

    关于 RGMII_TX_HALF_FULL_THR、

    “0x02”和“0x01”配置的含义是什么? 为什么“0x1”可以减少一个时钟? 为什么需要时钟同步来更改配置?

    4)

    请在上一帖子中回复以下问题吗?

     

    >关于3),我无法很好地理解。

    >我了解 PHY 在 FIFO 满时向 MAC 指示错误。

    >但我无法理解后面的描述。 请您解释更多详细信息吗?

    此致、

    OBA

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Obata-San:

    要清零、除非处理器和 PHY 同步运行、否则不应更改或修改阈值。   

    只有2种情况:PHY 和 MAC 是同步的、PHY 和 MAC 是异步的。  当 PHY 和 MAC 是同步的时、阈值可以减少到0x1以节省1个时钟周期的延迟。  当 PHY 和 MAC 是异步的时、阈值必须在默认情况下保持不变。

    1) 1)阈值有助于确定在移除数据之前必须将多少数据存储到 FIFO 中。  这与确保在向以太网接口提供数据时 FIFO 不会运行有关。  除了此描述之外、我无法为您提供更多信息。  对于 RX FIFO、正常操作是使用默认 RX_CLK 源设置时的操作。  这不应更改、因此正常条件始终存在。

    2) 2)如果 TX_CLK (来自 MAC)和 XI (到 PHY 的输入)是同步的(固定相位关系)、则可以减小阈值。  这意味着 DP83867的内部 PLL 将生成其125MHz、该频率将与 MAC 的 TX_CLK 同步。  如果 PLL 用于从相同的频率源生成时钟、则它们将是同步的。  典型异步系统的一个示例是、PHY 使用25晶振(Y1)作为 XI 输入、而处理器使用24MHz 晶振(Y2)或其他振荡器作为输入。

    3) 3) FIFO 的架构使阈值能够降低、前提是我们知道下一个读取命令出现时数据可用。  阈值= 0x1的唯一有效使用时间是 TX_CLK 和 PHY 内部125MHz 之间存在已知的0ppm 偏移时。  除了这种解释之外、它是 FIFO 架构的基础知识、不需要用于实现系统。

    4) 4) TX FIFO 满时、DP83867向 MAC 层指示条件。 MAC 层应等待发送数据、直至 TX FIFO 满指示不再置位。  当 TX FIFO 为满时、PHY 通过将以太网数据包放在线路上来继续清空 TX FIFO。  MAC 仍必须等待、直到从 TX FIFO 中清空足够的数据、然后才能发送更多数据。

    这里只有两个案例需要考虑、Obata-San。  

    PHY 和 MAC 同步运行。  在这种情况下、TX FIFO 可以设置为"0x1"。

    PHY 和 MAC 异步运行。  在这种情况下、TX FIFO 必须保持默认值"0x2"

    此致、