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.

[参考译文] CCS/EK-TM4C1294XL:在 TM4C1294XL LaunchPad 上实现1588 PTP

Guru**** 2485715 points
Other Parts Discussed in Thread: EK-TM4C1294XL, EK-TM4C129EXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/730909/ccs-ek-tm4c1294xl-1588-ptp-implementation-on-tm4c1294xl-launchpad

器件型号:EK-TM4C1294XL
Thread 中讨论的其他器件: EK-TM4C129EXL

工具/软件:Code Composer Studio

您好!

我使用 EK-TM4C1294XL LaunchPad 通过以太网发送一些样片。 我想在此板上实现1588 PTP 时间同步。 请帮助我如何继续。

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    虽然对于具有1588 PTP 的 TM4C129没有预先制作的示例、但(理论上)实施起来应该不会太困难。 这只是寻找正确的片段并将它们组合在一起的问题。 这已经列入我的待办事项列表一段时间了。 实际上、我要做的是一项测试、其中两个 EK-TM4C129EXL 板将通过以太网进行通信、通过1588 PTP 同步、并且每个板生成一个方波、在该方波中将同步两个波、使用示波器测量漂移、抖动等 但是、由于我还没有在1588上工作的自由周期、这仍然在我的待办事项列表中。

    1588 PTP 在 TM4C129系列上的工作方式如下:1588的大部分取决于软件、而不是硬件、原因如下:1588只能作为软件实现、但是您有软件 TCP/IP 堆栈的延迟和抖动、之后是硬件的延迟和抖动。 这会降低器件间时钟同步的精度。 实施了硬件支持以记录尽可能靠近"线缆"的时间、从而消除这些抖动源。 为此、内置以太网硬件会监视进出的所有数据;当它"看到"与1588 PTP 消息格式匹配的 UDP 数据报时、它会记录时间戳。 在接收此类数据包时、它会记录接收时间;在传输时、它会将传输时间放置在 UDP 数据报的正确位置。 还有一个64位时钟、可通过"课程"或"微调"进行调节。 这是1588硬件使用的时钟。

    为了实现这一目标、您需要:

    (1)正确配置 PTP 硬件。 例如、寄存器 EMACTIMSTCTRL.PTPVER2将确定以太网硬件是否需要/处理 IEEE 1588-2002 "版本1"或 IEEE 1588-2008 "版本2" PTP 协议。 显然、这必须与您的系统将使用的数据报格式相匹配。

    (2)实施 PTP 协议并调整时钟的软件。 这确实是关键因素、因为同样、硬件只等待这些数据包的传入和传出、然后通过记录时间来执行操作。 我在 GitHub 上找到了一些"1588 PTP"的匹配、您可能会在互联网上找到其他匹配项。 有些看起来比其他看起来更有用。 例如、除非您运行嵌入式 Python 解释器、否则在 TM4C 上实现的代码可能不会为您提供太多帮助。 或者、您可以尝试实施自己的协议、但我建议使用已实施的协议作为起点。 我无法向您指出具体的实施、因为坦率地说、我自己没有花足够的时间来研究这个问题、无法挑选一个。

    (3)用于调整上述64位时钟的代码

    我建议阅读 TM4C129数据表中与 IEEE 1588 PTP 相关的部分、以了解提供了哪些硬件支持、同时请记住、大多数实施都依赖于软件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    实际上、我直接通过以太网物理层发送样本。 我能否在该板上实施1588 PTP、它可以直接通过物理层发送 PTP 数据包、而无需 UDP 和 TCP/IP 堆栈帮助? 请帮助。

    谢谢你。

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

    目前我只有一个板。 因此,我想从该板发送一些 PTP 消息,并在 PC 的 Wireshark 中观察这些消息。 那么、我是否需要任何其他器件进行通信、或者可以通过将一些 PTP 消息发送到我的 PC 的单个电路板来完成通信。 我是否需要将 TCP/IP 与 TivaWare 系列提供的 ptpd 库集成。 如何继续。

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

    您好!
    正如 Twelvive12pm 所提到的、没有具有 IEEE 1588 PTP 的 TivaWare 示例。 但是、器件上的 EMAC 硬件确实支持1588 PTP。

    您的 PC 是否可以作为主设备发出同步时钟? 您需要了解一下、因为我不是此协议的专家。 市场上有 NTP+PTP 网络时间服务器、这只是一个用途、因此我不确定您的 PC 是否也能实现它。

    PTP 还基于 UDP 传输层、因此您需要 UDP/IP 协议栈。