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.

[参考译文] AM2432:CPSW 以太网交换机模式问题

Guru**** 2873750 points

Other Parts Discussed in Thread: AM2432, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1629222/am2432-regarding-the-issue-of-the-the-cpsw-ethernet-switch-mode

器件型号: AM2432
主题: SysConfig 中讨论的其他器件

尊敬的专家:

提供了一些有用的功能 AM2432 芯片、我们公司在 CPSW 以太网交换机模式方面遇到以下问题:

不同架构 CPSW 的端口 1 和端口 2 、其中端口 1 专用于 EtherCAT 通信、端口 2 用于 lwIP 协议栈。 然而、在实际操作期间、我们观察到两个端口同时接收 EtherCAT 帧和 lwIP 帧。 在 EtherCAT 端口上接收 lwIP 帧会对我们可以连接的 EtherCAT 从站的数量产生不利影响。

因此、我们需要调整两个 CPSW 端口的开关模式、以在两个端口上实现独立的数据传输和接收、从而防止 lwIP 帧干扰 EtherCAT 通信。

 

SDK 版本: 08_06_00_45
参考示例:enet_cpsw_socket、enet_layer2_cpsw

历史信息

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1351767/am2432-sysconfig-conflicts-when-combining-lwip-and-layer2-example/5191476#5191476

 

此致、

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

    尊敬的 Rowthu:

    您能帮助确定该问题的优先级吗?

    BR、

    Biao

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

    尊敬的 Biao:

    我会在链接中的 E2E 中详细介绍。  
    您能否提供有关数据包观察的更多信息? 我无法完全遵循以下陈述。

    我们观察到两个端口同时接收 EtherCAT 帧和 lwIP 帧

    这是否意味着您从同一端口接收 LwIP 和 EtherCAT 数据包? 网络是否应该这样做?

    如果预期不应在两个端口之间进行切换、我们需要将 CPSW 设置为仅 MAC 模式、这可以使用 SysConfig 来完成。 如果有不同的期望、我们可以根据您的意见进行研究。

    谢谢。此致、
    Teja。

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

    尊敬的 Biao:

    您能否提供这些详细信息、以便我们了解相关要求并进一步开展相关工作?

    此致、
    Teja。

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

    尊敬的 Teja:

    客户期望两个端口之间没有切换、他们已经尝试通过下面的代码设置双 Mac 模式、但对他们来说似乎没有用处。

    BR、

    Biao  

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

    尊敬的 Teja:

    我们想知道如何  通过修改 SysConfig 配置将 cpsw 的开关模式更改为 MAC 模式。我们使用的 SDK 版本为 08_06_00_45、SysConfig 版本为 1.18.0。

    谢谢。此致、

    LAN

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

    您好:
    感谢您的查询。 有关专家因** TI 印度**假期而离职。
    请预计响应会延迟。 感谢您的耐心和理解。

    此致、
    TI E2E 支持团队
    ——
    *这是一个自动通知。*

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

    尊敬的 Teja:

    客户似乎已经使用了仅 Mac 模式、按如下所示附加 syscfg、请进行检查、您可以帮助客户解决此问题吗?

    e2e.ti.com/.../uniIMMam2434_5F00_r5_5F00_0_5F00_0.syscfg

    BR、

    Biao

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

    尊敬的 Biao:

    我需要有关所看到的确切行为和网络拓扑的更多详细信息。 客户能否提供以下详细信息?

    您能否提供关于数据包观察的更多信息?
    这是否意味着您正在从同一端口接收 LwIP 和 EtherCAT 数据包? 网络是否应该这样做

    这些详细信息将帮助我们了解网络行为和相应的连接。 然后、我们将能够关联硬件配置、并建议首选配置以实现所需的行为。

    谢谢。此致、
    Teja。

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

    尊敬的 Teja:

    我需要有关所看到的确切行为和网络拓扑的更多详细信息。 [/报价]

    1、产品应用场景的简单网络拓扑结构如下图所示。

    这是否意味着您从同一端口同时接收 LwIP 和 EtherCAT 数据包? 网络是否应该这样做?

    2、可以、一方面、产品可以从同一端口同时接收 LwIP 和 EtherCAT 数据包;另一方面、外部设备向端口 1 和端口 2 发送网络数据包、产品接收数据包。 但我不希望网络以这种方式运行。 我需要隔离 LwIP 和 EtherCAT 网络。
    我需要发送和接收网络数据的规则:
    (1) 端口 1 仅用于 EtherCAT 通信;端口 2 仅用于 lwIP 通信。
    (2) 产品发送网络数据包时:数据包从端口(端口 1 或端口 2)发送、不会转发到其他端口。
    (3) 当产品接收网络数据包时:根据端口的分类,它只接收来自相应端口的数据,不接收来自其他不相关端口的网络数据。

    您能否提供关于数据包观察的更多信息? 我无法完全遵循以下陈述。

    3、 当产品运行程序时、EtherCAT 广播数据帧将在 1ms 的周期内从端口 1 发出、但端口 2 也可以接收数据帧。 我使用 Wireshark 软件从端口 2 捕获一些网络数据包、并可以清楚地观察到有许多 EtherCAT 广播数据帧。 如下图所示。

    4. 我尝试将 CPSW 设置为仅 MAC 模式、但失败了。 我需要您的技术支持。

    谢谢。此致、

    魏建

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

    尊敬的 Weijian:

    根据上述行为、我怀疑您的应用程序没有发送 txpktinfo 中填充了 txPortNum 的数据包。 应用可以使用指定的目标端口发送 Tx 数据包、这将完全跳过 ALE 查找。 我们建议在您的应用程序中填充相应流量的 txPortNum。

    如果无法选择此选项、我们需要为已启用的主机端口启用 NO_LEARN 模式。 这将确保当非定向数据包(txportnum 为空的数据包)到达 CPSW 时、广播数据包和相应的多播数据包不会转发到 MAC_ONLY 定义的端口。

    在 SysConfig 中可以找到 no learn 字段、其位于以下部分:ale Config -> ale Port Config -> Learning Security Config for Host port -> No learning-> Set this is true。

    我们强烈建议使用在应用程序级别填充 txPortNum 的定向发送、而不是发送定向数据包、无论添加的 SysConfig 修复如何。

    谢谢。此致、
    Teja。

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

    尊敬的 Teja:

    感谢您的技术支持。 您已经帮助我解决了一半的问题。

    1.指定端口号 txpktinfo 可变、产品现在正常发送 EtherCAT 广播数据帧、而不会将数据包转发到端口 2。

    2. LWIP Socket 通信仍然存在问题

     (1) 当产品向外发送套接字数据包时、Wireshark 软件可以从端口 1 或端口 2 捕获这些套接字数据。

     (2) 当产品收到套接字数据包,从端口 1 或端口 2 向产品发送套接字数据时,产品可以正确执行相应的功能。

    3.我需要 LWIP Socket 协议进行通信 仅通过端口 2、不会将数据转发到端口 1。 实际所需经费如下:

     (1) 产品数据传输:仅从端口 2 发送。

     (2) 产品数据接收:仅从端口 2 接收、端口 1 不接收套接字数据。

    4. 参考 enet_cpsw_socket 示例后、我编写了 LWIP 套接字代码。 但是、我发现无法在 LWIP 套接字中设置发送端口号。 这是否需要修改 SDK 中的底层驱动程序代码?  

     (1) SDK 版本:mcu_plus_sdk_am243x_08_06_00_45

    5.希望您能帮我解决产品的 LWIP Socket 通信问题。 我需要您的技术支持。

    谢谢。此致、
    魏建。

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

    尊敬的  Weijian:

    请参阅路径:$(MCU_PLUS_SDK)/source/networking/.meta/enet_cpsw/templates/enet_lwipif.c.xdt

    在第 869 行找到函数“LwipifEnetAppCb_getRxMode",“,并、并进行以下更改。

    Lwip2Enet_RxMode_t LwipifEnetAppCb_getRxMode(Enet_Type enetType, uint32_t instId)
    {
    -    const bool hasSwitchModeEnabled = `(module.getNetifCount(instance) == 1)`;
    +    const bool hasSwitchModeEnabled = false;
        Lwip2Enet_RxMode_t rxMode = Lwip2Enet_RxMode_SwitchSharedChannel;
        if (hasSwitchModeEnabled)

    这应该会阻止数据包发送到两个端口。 但这假设端口号是端口 1、而不是端口 2、因为您只有一个打开的节点。  

    或者、可以在 $(MCU_PLUS_SDK)/source/networking/enet/core/lwipif lwip/lwip2enet.c: lwip2enet_sendTxPackets () src 中进行更改、以使用以下更改强制所有 LwIP 处理的数据包仅通过端口 2 传出:

                    Lwip2Enet_setSGList(pCurrDmaPacket, hPbufPkt, false);
                    pCurrDmaPacket->appPriv    = hPbufPkt;
    -                pCurrDmaPacket->txPortNum  = macPort;
    +                pCurrDmaPacket->txPortNum  = ENET_MAC_PORT_2;
                    pCurrDmaPacket->node.next  = NULL;
                    pCurrDmaPacket->chkSumInfo = LWIPIF_LWIP_getChkSumInfo(hPbufPkt);

    如果您只希望 LwIP 协议栈通过端口 2 发送数据包、那么我建议使用第二种方法。 如果您想获得灵活性、可以使用第一种方法、如果您的产品允许、请交换 macport 1 和 2 连接。

    如果您需要本节中的更多详细信息、请告知我们。  

    谢谢。此致、
    Teja。

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

    尊敬的 Teja:

     Lwip2enet_sendTxPackets () API、用于强制所有 LwIP 处理的数据包仅通过端口 2
    传出

    感谢您的技术指导、它已成功解决了我的问题。

    谢谢。此致、
    魏建。