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.

[参考译文] AM3356:EtherNet/IP 应用包

Guru**** 2540720 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/600331/am3356-ethernet-ip-app-packet

器件型号:AM3356
Thread 中讨论的其他器件:SYSBIOS

大家好

我对 AM335x 的 ISDK 的 EtherNet/IP 有疑问。

我的客户想知道如何发送和接收有关 ARP 的应用程序包。
我们认为 EtherNet/IP 示例代码在发送应用数据包时使用 NDK。

C:\ti\sysbios_ind_sdk_02.01.03.02\sdk\examples\EtherNetIP_adapter

我们认为 AM335x 在 USER_ACD_NDK.c 中使用此函数

EIPACDSendArpFrames()
→sendArpPacket()

这种理解是正确的?

如果是、您能告诉我如何设置此参数和此函数的文档吗?

此致
高贵须

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Hiroyasu:

    是的、您的理解是正确的。

    在代码中,EIPACDSendArpFramewel()的参数 wFrameSize 是 ARP 帧大小,byFrame 是指向 ARP 帧的缓冲区进行发送的指针,该缓冲区传递到 sendArpPackb()的参数*arp,并且来自 arpHdr =(ARPHDR *)( arp + ETHDR_SIZE ); 在 sendArpPack()中,ARP 帧缓冲区应包含在 NDK 的 netdf.h 中定义的14字节以太网标头和28字节 ARP 标头:

    typedef 结构{
    uint16硬类型;
    uint16 ProtocolType;
    uint8硬尺寸;
    uint8 ProtocolSize;
    uint16操作;
    uint8 SrcAddr[6];
    uint8 IPSrc[4];
    uint8 DstAddr[6];
    uint8 IPDst[4];
    } ARPHDR;

    sendArpPack()中的 IPDst 未使用。

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

    感谢您的支持。
    我明白了。

    我很抱歉。
    我有另一个问题、您能告诉我们返回值。

    我的客户想要了解 IP 地址的重复检测。
    我们如何知道重复检测?
    如何获得返回值?

    此致
    高贵须