您好!
我使用的是 AM243x-LP
我正在探索 TRM、找到了 PRU_ICSSG 加速器、当时认为可以使用该加速器来处理以太网帧、而不会在主处理器(R5F0-0)中增加开销、但我仍然不明白它是否适用、我能否仅使用 PRU 加速器来配置和处理来自2个以太网端口的数据包?
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.
您好!
我使用的是 AM243x-LP
我正在探索 TRM、找到了 PRU_ICSSG 加速器、当时认为可以使用该加速器来处理以太网帧、而不会在主处理器(R5F0-0)中增加开销、但我仍然不明白它是否适用、我能否仅使用 PRU 加速器来配置和处理来自2个以太网端口的数据包?
您好、Hussein、
您可以在此处阅读有关 AM243x 的网络功能的信息: mcu_plus_SDK_API_guide_am243x_09_02_00_50_Networking
支持使用两个硬件外设联网:
PRU 内核主要用于工业通信、也可用于其他应用、例如电机控制和定制接口。 PRU-ICSSG 将器件中的主 ARM 内核释放给其他功能、例如控制和数据处理。
ICSSG 的主要优势在于、我们可以减轻主 ARM 内核的实时处理需求、并 可在 PRU 可编程时使用 ICSS 实现各种协议。
您可以找到 MCU+SDK 提供的 CPSW 和 ICSSG 示例列表、以满足不同的以太网和网络要求- MCU_PLUS_SDK_API_guide_am243x_09_02_00_50_ICSSG Examples_Networking
此外、您可以 从工业通信 SDK 中了解有关 PRU-ICSS 上基于 RTOS 和非 RTOS 的工业通信、现场总线和网络应用的更多信息: ind_comms_sdk_api_guide_am243x_09_02_00_08
如果您有任何其他问题、请告诉我。
此致、
尼蒂卡
我已经阅读了所有需要的数据和链接、但如果 PRU 释放了主 ARM 内核、为什么这些示例使用 R5F0-0来运行 PRU? 我试过 CPSW 和 PRU_ICSSG 这两个示例、它们执行相同的操作、并使用 ARM 处理器处理数据流和初始化、但它们之间没有什么真正的区别。
我 知道 加速器的设计旨在处理无需主内核参与的操作、但正如我在示例中看到的情况、我的主要问题是、我可以对 PRU 内核进行配置和编程、以便在不使用 ARM 内核的情况下处理以太网帧吗?
您好、Hussein、
PRU-ICSSG 在数据链路层工作、具有低延迟确定性操作、并且后续处理由 ARM 内核处理。 PRU 经过优化、在实时执行中具有低延迟和无抖动、能够处理工业以太网标准的 MAC 层功能。
使用 PRU 的目的是满足实时处理对可预测性、确定性和低延迟响应能力的需求。 在处理器中使用高性能 ARM 内核组合 PRU 可 针对成本和功耗优化系统、从而实现两全其美、同时通过高效的重新编程灵活进行功能升级。
能否配置并编程 PRU-core 以在不使用 ARM 内核的情况下处理以太网帧?
根据具体用例、您可以编写汇编代码来控制 PRU、但建议在不需要实时处理的组件中利用 ARM 内核的高性能。
此致、
尼蒂卡
-我想尽量减少使用 ARM 内核来减少 CPU 负载,因为我的情况是处理很多帧和网关, ALE 在 CPSW 处理路由和防火墙没有 ARM CPU 的贡献和纠正我,如果我错,我发现 ICSSG 处理操作没有 CPU 贡献与 CPSW 相同。
-我需要在没有软件贡献的情况下区分硬件组件,因为任何软件都将由 ARM 内核处理,如果在 PRU 上有可以执行的软件来处理没有 ARM CPU 的帧,请引导我。
-该软件正在处理大量的以太网帧、CAN 和 LIN 与高流量,因此最大化使用的硬件在我的情况下将是有效的。
您好、Hussein、
我想分享开发团队的更新、首先、您当前对 ICSSG 和 CPSW 的评估是正确的、正如我在前面提到的、您可以编写/修改控制 PRU 的固件代码、以处理比现有功能更多的功能。
目前为止、我们不支持自定义 MAC 固件、但如果您有兴趣自行卸载固件、我们可以共享 PRU 固件源和功能、例如定制数据包过滤器等、可以通过 ICSSG 实现以减轻 ARM CPU 的负载。
此致、
尼蒂卡
如果该固件的使用量会比 CPSW 减少 ARM 内核的使用量、请与我分享。
在本例中、我将使用2个以太网端口路由高流量数据、在某些情况下、可以路由到 CAN 或 LIN、而不仅仅是以太网、在这种情况下、更大限度地减少 ARM 内核的使用会非常有效。
我不使用任何轻量级堆栈或任何其他接口、我只是处理具有 MAC 地址和 VLAN 的以太网数据包、我使用 CPSW 通过 ALE 进行处理、然后我切换到 PRU_ICSSG 以加快运行。
因此、如果现有示例未能有效地使用 PRU_ICSSG、请指导我为如何充分利用该加速器
非常感谢。
ICSSG 和 CPSW3G 只是以太网的两种实施、两者都可以用作交换机或两个以太网端口。 ICSSG 的独特之处在于、它还能够运行 EtherCAT、PROFINET、EtherNet/IP https://software-dl.ti.com/processor-industrial-sw/esd/ind_comms_sdk/am243x/latest/docs/api_guide_am243x/index.html 等工业以太网协议 、包括卸载特定 SW API 或相应的冗余等一些功能。 对于标准以太网、除了 CPSW3G 的功能外、它不能提供卸载功能。 它们使用相同的驱动程序接口。
理论上、可以为 ICSSG 编写固件、以实现独特的功能、例如将内容从以太网直接放置到 CAN-FD、或反之。 但我们不提供此类固件。
https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/latest/exports/docs/api_guide_am64x/EXAMPLES_ENET_INTERCORE_ICSSG.html 是一个使用 ICSSG 将数据包通过两个 MAC 地址拆分到两个 IP 堆栈的示例。