使用同一根以太网电缆将两个设备连接在一起(需要一些编程吗?)

使用同一根以太网电缆将两个设备连接在一起(需要一些编程吗?)

我想通过以太网将两个设备连接在一起,但我对所需的步骤感到困惑。设备是一台 PC 和一个微控制器。两个设备都有静态 IP,微控制器至少有静态 IP。我在微控制器上运行 LWIP。我遇到的问题是让两个设备进行通信需要执行哪些步骤。我是否需要微控制器进行 ARP 广播或其他操作,以便两个设备可以互相看到并进行通信?

E:控制器上启用了自动协商

答案1

已经有一段时间了,但我使用的是带有集成以太网控制器的 8 位 PIC。我不太清楚您在哪一步遇到了问题,是设置 LWIP 还是硬件配置,或者两者兼而有之。

您应该能够在两端使用标准 TCP 插座,但您要么需要将两个设备都插入集线器或交换机,要么必须使用交叉以太网电缆(如果您想直接连接两个设备)。现代以太网控制器可能内置有交叉功能。您必须查看计算机 NIC 和 MCU 上的以太网控制器的手册。基本的、较旧的以太网有一对传输线和一对接收线。因此,您不能用直通电缆直接连接两个控制器,否则您将把一个传输对连接到另一个传输对,而不是接收对。但请检查您的控制器,这可能会得到解决(您可以自己将普通以太网电缆变成交叉电缆,这很容易做到)。

我没有使用过 LWIP,我使用了 Microchip 的专有堆栈,但我认为它们有些相似。我建议确保在 MCU 上启用 ping,这样您就可以轻松使用 ping 查看是否具有正确的连接。Microchip 的堆栈要求您不断调用处理网络堆栈处理的函数。我想 LWIP 有类似的东西,您必须在调用 LWIP 处理函数的 mcu 上有一个任务、一个线程或某种协作多任务设置。因此,您不能只是在套接字上反复调用 send,您必须调用堆栈处理函数,这时字节才会真正被发送。

相关内容