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.

[参考译文] AM6442:AM64x 或 AM243x TSN 应用问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1575233/am6442-am64x-or-am243x-tsn-application-questions

器件型号: AM6442

工具/软件:

您好、

对于我们的项目、我们有以下要求。 我们希望了解 TI 关于潜在架构和具体实现细节的建议。

要求:

a.一种器件网络、其中包括以菊花链方式连接到 TSN 网络的多个支持 TSN 的器件。

b.连接到 TSN 器件网络且未启用 TSN 的主机器件。 该主机器件通过以太网向 TSN 网络器件发送命令。 TSN 网络器件会执行这些命令。

我们更喜欢隔离特定于 TSN 网络的网络流量。 不用于 TSN 节点的数据包不应通过 TSN 网络传输。

c. TSN 网络器件需要在可编程周期(微秒范围)内以同一时钟(同时在 100 纳秒范围内)执行来自主机的命令。

每个 TSN 节点器件都必须能够使用通用 TSN 主时钟生成硬件同步脉冲。 脉冲生成应以几十微秒的典型周期进行编程、并且典型 TSN 器件到器件抖动在 100 纳秒以下。 我们当时正考虑使用 TI AM64x 或 AM24x TSN 功能来实现 TSN 网络器件。 但需要 TI 提供建议、以便制定更具体的架构和实现细节。

下面是我们的问题:

1.对于要求 C、我们如何在 TSN 网络上配置器件以定期同步执行命令?

2. TSN 网络设备和主机器件是否可以位于同一网络(在同一子网上)? 或者、TSN 网络器件和主机器件需要位于不同的网络上(需要网络路由器)?

如何实现 TSN 网络器件的菊花链?

感谢您的帮助!

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

    尊敬的 Matt:

    [引述 userid=“378769" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1575233/am6442-am64x-or-am243x-tsn-application-questions

    1.对于要求 C、我们如何在 TSN 网络上配置器件以定期同步执行命令?

    [/报价]

    ICCSG IEP 计时器将与 PTP 时间刻度同步。
    当计时器与编程值(在您的情况下为微秒范围)匹配时、ICSSG0 IEP0 CMPx - IEP 比较器应用于生成事件。 此事件可映射到 R5F/A53 等主机 CPU。 CPU 事件应映射到可在其中执行命令的 RTOS 任务。

    TSN 网络器件和主机器件是否位于同一网络(在同一子网中)? 或者、TSN 网络器件和主机器件需要位于不同的网络上(需要网络路由器)?

    从 TSN 的角度来看、对同一子网或通过网络路由器没有限制。 这取决于主机器件流量或 TSN 流量、流量速率等的分类。 这需要交通工程。 DSCP 优先级用于 IP 数据包分类、VLAN PCP 用于分类原始以太网数据包。
    主机器件流量是多少? 原始以太网或 IP 数据包
    使用案例是什么?

    如何实现 TSN 网络器件的菊花链?

    ICSSG 支持 1PPS(每秒脉冲数)、截至目前不可编程。 测得的抖动小于 20ns。
    可编程脉冲生成是我们路线图的一部分。

    BR、
    Jc.

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

    尊敬的 JC:
    感谢您的回答。 我有几个后续问题:

    对于#1:
    1.您能否向我们举例说明如何配置 R5F 内核并对其进行编程、以便在 RTOS 环境下使用此 ICSSG IEP 计时器?
    我们似乎没有找到任何在 AM64x MCU SDK 中进行演示的示例。
     
    对于#3:
    对于 TSN 网络上的器件、我们考虑将其一个以太网端口连接到其上游器件、另一个以太网端口连接到其下游器件。
    2.为了实现此目的并使用 IEP 计时器、我们需要将每个 TSN 器件配置为交换机、并在 TI EVM 的 ICSSG 端口上运行 PTP。 这是正确的吗?
    3.我们是否可以使用 CPSW 以及 CPSW 上的 IEP 计时器等效功能来实现相同的操作?
    4、您是否还可以为我们提供一个示例,说明如何编程和配置交换机(如果答案为“是“)以及如何运行 PTP ?

    对于#2:
    主机器件流量应为 IP 数据包。 它们只是 TSN 器件命令。 命令大小通常为 1k–10k 字节、不超过 100k 字节。


    此外、在 AM64x EVM 上运行以下 TI ICSSG 示例时、我们无法在 J18 引脚 1 SYNC_OUT0 上看到 PPS 信号:
    software-dl.ti.com/.../EXAMPLES_ENET_ICSSG_TSN_GPTP_TT.html
    software-dl.ti.com/.../EXAMPLES_ENET_ICSSG_TSN_GPTP_TR.html
    5.什么是 ICSSG PPS 的输出信号? 要查看 PPS 信号、需要对上述示例进行任何修改?


    感谢您的帮助!

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

    尊敬的 Matt:

    1. 您能否请为我们提供一个示例、说明如何配置 R5F 内核并对其进行编程、以便在 RTOS 环境下使用此 ICSSG IEP 计时器?
    我们似乎没有在 AM64x MCU SDK 中找到任何对此进行演示的示例。

    下面介绍的链接是 ICSSG gPTP 桥接器示例使用 ICSSG IEP 计时器。 gPTP 协议栈在内部使用以下 IOCTL 来从 RTOS 设置/调整 IEP PTP 时间刻度计时器。  

    Enet_TIMESYNC_IOCTL_ADJUST_TIMESTAMP

    Enet_TIMESYNC_IOCTL_SET_TIMESTAMP
    3. 我们是否可以使用 CPSW 以及 CPSW 上的 IEP 计时器等效功能来执行相同的操作?

    是、CPSW 等效计时器为 CPTS。

    请参阅以下示例: software-dl.ti.com/.../EXAMPLES_ENET_CPSW_TSN_GPTP_TT.html

    2. 为此并使用 IEP 计时器、我们需要将每个 TSN 器件配置为开关、并在 TI EVM 的 ICSSG 端口上运行 PTP。 这是正确的吗?
    3.我们是否可以使用 CPSW 以及 CPSW 上的 IEP 计时器等效功能来实现相同的操作?
    4.您是否还可以为我们提供一个示例,说明如何编程和配置交换机(如果答案是肯定的),以及如何运行 PTP

    这是桥接器 ICSSG gPTP TSN 示例。

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_01_00_17/exports/docs/api_guide_am64x/EXAMPLES_ENET_ICSSG_TSN_GPTP_BRIDGE.html

    [quote userid=“378769" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1575233/am6442-am64x-or-am243x-tsn-application-questions/6069565 什么输出信号用于 ICSSG PPS? 要查看 PPS 信号、需要对上述示例中的任何内容进行修改?

    我 再仔细检查一下 引脚配置和恢复。  

    BR
    Jc.

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

    尊敬的 JC:

    我查看了该示例并尝试修改它、但遇到了一些问题...
     
    以下是我想要实现的目标:
    我想让多个器件利用 TSN PTP、在可配置周期(微秒范围内)同步生成周期性选通(在< 100ns 差分范围内)。

    由于 TSN 主时钟和从时钟的 SYNC_OUT0 都应同步、因此我认为应使用 SYNC_OUT0 作为这种定期选通。

    我能够通过修改 icssg.c 中的 ICSSG_IEP_DFL_CYCLE_TIME_NSECS 来更改 SYNC_OUT0 频率 但是、在跟随器上、当 SYNC_OUT0 频率不是默认的 1kHz 时、GMDIFF 不会收敛。

    我的后续问题:
    1.是否有方法可以在不影响 PTP 的情况下修改 SYNC_OUT0 频率?

    我认为 IEP_CMP1_REG0 寄存器的值不应影响 IEP 计数器 (IEP_COUNT_REG0、IEP_COUNT_REG1)。 但事实似乎并非如此?


    2.如果无法做到 1 号、您能否提供一个解决方案和代码示例、说明如何在这些 TSN 器件之间同步生成这个待机信号?

    感谢您的帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我能够通过修改 icssg.c 中的 ICSSG_IEP_DFL_CYCLE_TIME_NSECS 来更改 SYNC_OUT0 频率 但是、在跟随器上、当 SYNC_OUT0 频率不是默认的 1kHz
    时、GMDIFF 不会收敛

    我们在 AM243x RTOS 上不支持 PPS 或可配置的 SYNC_OUT0(在某种程度上限制是 API、而不是 PRU FW)。  
    目前仅 Linux AM64x 支持 1PPS。
    我能够通过修改 icssg.c 中的 ICSSG_IEP_DFL_CYCLE_TIME_NSECS 来更改 SYNC_OUT0 频率 但是、在跟随器上、当 SYNC_OUT0 频率不是默认的 1kHz 时、GMDIFF 不会收敛。
    我不建议修改 ICSSG_IEP_DFL_CYCLE_TIME_NSECS、因为这会影响时间戳计算。 这是因为我们使用 IEP 影子模式、其中低 32 位 IEP 每 1ms 绕回、这对于精确的 64 位时间戳计算至关重要。
    BR、
    Jc.
     
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、JC。 这回答了我的第一个问题。 因此、这意味着在 R5F 内核上做不到 1。

    在这种情况下、您能否为我的#2 问题提供解决方案?

    谢谢/

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“378769" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1575233/am6442-am64x-or-am243x-tsn-application-questions/6095826

    在这种情况下、您能否为我的#2 问题提供解决方案?

    [/报价]

    让我试一下最后的几种可能性、我将在本周(11 月 7 日)结束前再次回来。  

    BR
    Jc.

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

    谢谢你、JC! 期待看到您的回复。

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

    我刚刚查看了该 代码、您可以在下面尝试一下吗? 应用程序运行后、暂停 R5F 并执行以下操作

    • 将 “0x00000001"写入“写入偏移: 0x030090000 + TIMESYNC_FW_WC_SYNCOUT REDUCTION_FACTOR_OFFSET
    • “0x00000000"写入“写入 偏移: 0x030090000 +  TIMESYNC_FW_WC_SYNCOUT REDUCTION_FACTOR_OFFSET + 4

    在 11.01 中、TIMESYNC_FW_SYNCOUT_REDUCTION_FACTOR_OFFSET  为 0x843C

    不修改任何其他内容。 如果您看到 1kHz 信号、请告诉我。

    FYI、AM243x LP:J7 引脚 63 为 SYNC_OUT0  

    BR
    Jc.

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

    尊敬的 JC:

    ICSSG SYNC_OUT0 默认为 1kHz。

    我尝试了您建议的值、AM243x EVM 上的 SYNC_OUT0 频率没有变化。

    谢谢!

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

    尊敬的 JC:

    对此有任何更新?

    谢谢你。

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

    尊敬的 Matt:

    不支持小于 1kHz 的频率。

    BR
    Jc.

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

    谢谢、JC。

    因此、您确认了 在不对 TI SDK 进行大量修改的情况下无法配置 SYNC_out0 频率、对吗?

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

    没错。 注意: 我们将在未来的 SDK 中添加此支持。  

    BR
    Jc.

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

    没错。 注意: 我们将在未来的 SDK 中添加此支持。  

    BR
    Jc.

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

    感谢 JC 的确认。