您好!
我正在使用 TMDS64GPEVM 电路板[使用 SDK 08.03.00.18]、我想开发一个 PRU 项目、能够在收到 EtherCAT、Profinet 或以太网 IP 数据包时读取以太网帧并生成到 R5F 内核的中断。
我没有找到这样的示例项目、查看指定 SDK 中的示例[关于"工业通信"示例 PRU 二进制文件已在"工业通信"二进制文件中编译]。
您是否正在考虑开发类似的 PRU 项目示例?
此致
Andrea
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.
您好!
我正在使用 TMDS64GPEVM 电路板[使用 SDK 08.03.00.18]、我想开发一个 PRU 项目、能够在收到 EtherCAT、Profinet 或以太网 IP 数据包时读取以太网帧并生成到 R5F 内核的中断。
我没有找到这样的示例项目、查看指定 SDK 中的示例[关于"工业通信"示例 PRU 二进制文件已在"工业通信"二进制文件中编译]。
您是否正在考虑开发类似的 PRU 项目示例?
此致
Andrea
是对于 EtherCAT 或 EtherNet/IP 或 PROFINET、您需要特定于协议的固件和软件堆栈。 这些协议中的每一种协议都具有不同的固件、它们不能并行存在于 ICSS 的程序存储器中。
我对您尝试执行的操作的理解:
1.在以太网线路上侦听流量,尝试对 LAN 中使用的工业协议进行逆向工程。 实现这一目标的构建块是捕获原始以太网帧、查看用于 PROFINET 和 EtherCAT 的 EtherType、然后深入了解 EtherNet/IP 的数据包。 这是您的代码、没有标准或一般规范来完成此操作。 一种可能是以太网处于混杂模式、或者例如运行标准以太网的 ICSS 的 tcpdump。 我们在 PRU 中有 AM335x 的旧演示、但在 PRU 或 Arm 内核上检测协议没有任何优势。
2.决定使用何种协议
3.在检测到协议的情况下加载并重新启动 ICSS
ICSS 运行 TI 的特定于协议的固件、R5运行软件堆栈(TI 工业通信工具套件或第三方)
Pekka
添加到 Pekka 的响应:
我们确实为通用 PRU 编程提供了基本资源(例如 ,https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/08_02_00_17/exports/docs/linux/Foundational_Components_PRU-ICSS_PRU_ICSSG.html 上的最新 AM64x 文档 )。 我们将继续添加一些其他资源,例如我们在 SDK 8.3 (AM62x 文档: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/08_03_00_19/exports/docs/common/PRU-ICSS/PRU-Getting-Started-Labs.html )中开始记录的这组新的入门实验。
但是、PRU 网络固件 非常复杂、我们不能在论坛上回答有关编写或修改 PRU 网络固件的问题。 如果需要特定的协议或软件栈、我们可以帮助您连接到 TI 内部或第三方开发人员的合适资源。
此致、
Nick
也许值得采取的步骤是使用 tcpdump 捕获网络流量,并使用 Wireshark https://www.wireshark.org/docs/wsug_html_chunked/AppToolstcpdump.html 进行分析 。 Wireshark 文档包括 EtherCAT https://wiki.wireshark.org/Protocols/ethercat 等工业协议的示例捕获 。
tcpdump 的完整手册页位于 https://www.tcpdump.org/manpages/tcpdump.1.html 。
Pekka
安德烈
对于演示、我建议使用 Linux 和可用的广泛工具。 使用 Linux 作为标准以太网、扫描线路上的流量以尝试确定使用的工业协议、然后使用适当的堆栈和 ICSS 固件重新引导 R5。 我想提醒一下、正如我之前所说的、没有任何一般情况或标准可以保证检测所使用的工业网络、因此演示显然是可行的、但可能会有一些难以涵盖的临界情况。 如果您尝试在 R5 FreeRTOS 中复制 Linux 工具或功能子集、它们当然可以在源代码中使用。
在 R5 FreeRTOS 上、以太网第2层功能的基本示例为:
要启用混杂模式(您正在尝试反向设计 LAN 中其他设备的通信),就像有一个 API:
修改示例以开始使用此示例获取 LAN 中的所有帧、并添加从 LAN 中活动工业协议的角度确定此流量含义的逻辑。
Pekka