在 S32ZE NETC 参考手册 " 文档标识符:S32E27NETCRM 参考手册修订版 4,2024-12-12 ",3.2.5.3.1 带漂移和误差调整的正常模式中,它声称 " 在正常运行期间,对 1588 计时器配置(例如 TMROFF_H/L)的任何更改(例如 TMR_ADD 更新除外)都需要禁用 TSN 相关功能,例如时间门调度、特定时间出发安排、直播门控和速率管制。"但是 gPTP 软件或非 NETC 设备驱动程序都不符合此规范。
我们有恩智浦的 gPTP 软件模块,对吗?
它将调用函数"EthSwt_43_NETC_CorrectPtpClk" 更新当前时间。
我说的不是"提供的有关修正定时器" 的功能。
我的问题是,当 gPTP 调用 EthSwt_43_NETC_CorrectPtpClk() 函数更新当前时间时,如何使 802.1Qbv 功能不受影响?
你好@双君竹、
ETH 驱动程序 RTD2.0.1 遵循 ASR 21-11,其中只包括一些用于时间戳的 api 函数,如
因此,我认为他们没有提供你所说的修正定时器的功能。似乎 ASR23-11 将支持有关修正计时器的功能,或者 gPTP 如果需要在 ASR21-11 中使用这些功能,则必须提出更改要求的请求。
顺祝商祺!
Nhi
感谢您的关注。正如您所说,"驱动程序目前只支持从 TMR 寄存器获取当前定时器,不支持配置" ,我不明白。 用 gPTP 软件更改 OFFSET 寄存器如何?我认为 gPTP 软件肯定需要更改 OFFSET 寄存器。我的问题是,当 gPTP 软件试图更改 OFFSET 寄存器时,如何跟进 RM,以保持 TSN 功能(例如 802.1Qbv 功能)的顺利运行?
你好@双君竹、
我来回答 NETC 司机的这个问题。
-针对ZE用上市的最新版本是继RM rev 3之后的RTD 2.0.1,据我所知,下一个版本RTD 2.0.2仍遵循RM Rev 3。但是,如果有任何关于 RM 版本的更新,SW 团队会开票检查新旧 RM 之间的变化。我想他们能察觉到这种变化。
- 据我所知,直到现在,驱动程序支持的时间戳都是默认计数 TMR_CTRL[TE] = 0,而 EthEnableFreeRunningTimer 功能刚刚添加到 RTD 2.0.1,可在 1588 定时器 TMR_CTRL[TE] = 1 中工作。当前定时器将从 1588 寄存器 TMR_FRT_L/H 中获取,但这里似乎存在一个错误,因为我没有在任何地方设置 TE(详情请参见票据:ARTDCC1-593)。总之,到目前为止,驱动程序只支持从 TMR 寄存器获取当前定时器,而不支持对其进行配置。如果用户想更改 1588 寄存器配置,就会出现你所说的情况。
顺祝商祺!
Nhi
你好@双君竹、
您的意思是,在更改 1588 寄存器列表之前停止 TSN 功能,对吗?
我看到当前的驱动程序不支持停止 TSN 的功能。如果要禁用 TSN 中的每个功能,似乎需要删除每个表中的条目。例如
- 费率策略:Netc_EthSwt_Ip_DeleteRatePolicerTableEntry();
- Netc_EthSwt_Ip_DeleteStreamGateControlListTableEntry();
-EthSwt_43_NETC_StopTas();
顺祝商祺!
Nhi
你好@双君竹、
在我看来,问题不仅在于启用了多少 TSN 功能,因为如果客户使用 ASR 上下文,这些功能在预编译时会通过宏启用/禁用,但也会在每个功能中启用/禁用。大家都知道,每个功能 Rate policing、流闸......都是通过下表控制的:
如果用户只是在配置工具中配置了元素,那么在禁用此功能时,SW 团队可以控制删除多少带有条目 ID 的条目。但是,如果用户通过调用函数来添加元素,那么 SW 就无法知道。但我认为用户可以在自己的应用程序中进行控制。也许我错过了一些东西,但我知道TSN将引用计时器值,因此在更改计时器配置之前将其停止并重新开始以获取新的计时器值是有意义的。我相信 SW 团队在分析该票据时会有深刻的见解。
顺祝商祺!
Nhi
你好@双君竹、
如果您不再了解 ETH 驱动程序,请将 RTD 从本主题中删除,以便 gPTP 的人可以回答您的问题。
顺祝商祺!
Nhi
您好,
在 gPTP 更改计时器偏移寄存器之前,我并不想禁用 TSN 功能。这是 NETC RM 的要求。
客户要求 NXP 提供符合 RM 规范的官方解决方案:如何禁用 TSN 功能,即在这种情况下,IEEE802.1Qbv客户认为这应该由恩智浦提供,因为这是硬件要求和与硬件相关的编码。
顺便说一句,我认为你的建议需要精心设计。特别是对于 802.1Qbv,如何使应用流量不受 gPTP 同步操作的影响。例如,某些流量是否可能会延迟一个 Qbv 计划周期?
谢谢!
杰夫
您好,
是的,我还有一个问题。请帮助检查如何从以太网驱动程序的角度禁用/重新启用 802.1Qbv。并请帮助分析这种操作是否会导致 802.1Qbv 计划周期中的一个关键流量延迟?
谢谢!
杰夫
您好,
感谢您的大力帮助。
请允许我为 AUTO 客户强调一件非常重要的事情,即当他们使用 TSN IEEE802.1Qbv 功能时,当然也需要根据 802.1Qbv 时间同步要求启用 gPTP。
他们担心 gPTP 是否会影响一个 802.1 Qbv 时隙内的关键流量。我们(恩智浦)需要澄清这一点,并提供如何做到这一点。这是一个非常专注和明确的要求。这是一个很好的例子或用例,可以让你了解情况。
是的,我们不知道客户启用了多少 TSN 功能。但是,对于每个可能使用的人,我们都需要一个解决方案。客户可以根据自己的使用情况做出正确的选择。
谢谢!
杰夫
你好@双君竹、
在我看来,ETH 驾驶员的这一要求很难得到满足,因为其官方职能就是停止 TSN 的运行。如你所见,要禁用端口门时间表,只需要 RESET 位时间门启用 PTGSCR[ TG E] 即可。但对于某些 TSN 功能(如费率策略),该功能是根据该表中的元素启用/禁用的。但是从ETH来看,我们不知道该表中添加了条目来删除或更新元素以禁用它们,上层可以更好地处理这个问题。因此,我在之前的答复中建议调用函数删除每个表中的条目。
如果用户没有启用选项功能:速率 Policing、流闸控制列表......,可以使用函数EthSwt_43_NETC_StopTas()禁用 TSN。
总之,我创建了 ARTDCC1-607 票据,您可以关注它以获得 SW 团队的分析,以防我遗漏了什么。而且 RM Rev4 尚未适用于 RTD 版本。如果您对 ETH 这个主题没有更多的了解,请告诉我,我会把这个案例交给 gPTP,让他们继续从他们的角度回答您的问题。
顺祝商祺!
Nhi
你好@双君竹、
我看到 802.1 Qbv 功能同时支持 NETC 和交换机。因此,您可以通过以下方式配置该功能:
- Eth_NETC:
- 端口开关:
这些功能是
用于 ETH_NETC:
- Eth_43_NETC_StartTas()
- Eth_43_NETC_StopTas()
用于端口交换机:
-EthSwt_43_NETC_StartTas()
-EthSwt_43_NETC_StopTas()
对于这个问题:" 从我的角度来看,分析这种操作是否会导致 802.1Qbv 计划周期 " 中的关键流量延迟,因为你可以看看启用/禁用此功能的 netc/portswt_ip_configportTimegateScheduling () 函数,要禁用此功能,只需要 RESET 一点但启用此功能,需要启用门禁时间并设置门禁时间表。这次可以测量。
我理解您的意思是"802.1Qbv 计划周期之一" 是指网关控制列表的执行时间应重复,对吗?如果是,则可以进行配置。
顺祝商祺!
Nhi
您好,
看来你还没明白我的问题。请给我更详细的描述。假设客户有一个 Qbv 配置,它处于运行状态,参数如下:
1. 周期时间为 10ms
2. 在一个 10 毫秒的时间段内,有两个时隙,每个时隙 5 毫秒。换句话说,闸门列表中有两个条目。
3.假设在第一个时隙开放时,NETC 正在传输关键帧。此时 gPTP 开始更新当前时间,根据 RM 的要求,客户需要禁用/重新启用 802.1Qbv。
4.802.1Qbv 重新启用后,NETC 硬件可能会继续打开时隙 1,或进入门列表第 2 项,或等待新的 Qbc 计划周期。 如果硬件进入第 2 个条目,则表示 NETC 队列中的关键帧将在下一个 10 毫秒周期内发送。这可能会造成严重的延误,影响应用。
5.客户询问如何避免这种情况。换句话说,如何平稳地禁用/重新启用 Qbv,以减少对应用程序的影响。
希望这能让你明白。
谢谢!
您好,
除了我在之前的回复中提到的两个功能外,我没有看到其他启用/禁用 TAS 的方法。在我看来,当禁用时间门控制时,它的所有功能也会被禁用,如时间间隔、周期......。禁用和启用 TAS 之间的时间间隔,包括完成更新 gPTP 定时器的时间。启用 TAS 后,基准时间将根据当前时间更新。除非新的基准时间 = 下一个旧的间隔时间,否则无法满足您的要求。
我对此没有更多的了解,我也在上述票单中更新了这个问题,以便 SW 团队对您的情况提出建议。
顺祝商祺!
Nhi