ConductedForce Asked: 2019-05-11 16:34:45 +0800 CST2019-05-11 16:34:45 +0800 CST 2019-05-11 16:34:45 +0800 CST 使用相同的以太网电缆将两个设备连接在一起(需要一些编程?) 772 我希望通过以太网将两个设备连接在一起,但我在执行所需步骤时遇到了问题。这些设备是一台 PC 和一个微控制器。两种设备都将具有静态 IP,至少是微控制器。我在微控制器上运行 LWIP。我坚持的是让两个设备进行通信需要执行的步骤。我是否需要微控制器来进行 ARP 广播或其他操作,以便两个设备可以相互看到并进行通信? E:在控制器上启用自动协商 ethernet embedded 1 个回答 Voted Best Answer jhufford 2019-05-11T17:13:39+08:002019-05-11T17:13:39+08:00 已经有一段时间了,但我使用了带有集成以太网控制器的 8 位 PIC。我不太清楚您在设置 LWIP 或硬件配置或两者时遇到问题的步骤。 您应该能够在两端使用标准 TCP 套接字,但您需要将两个设备都插入集线器或交换机,或者如果您想直接连接两个设备,则必须使用交叉以太网电缆. 现代以太网控制器可能内置了交叉功能。您必须查看计算机 NIC 和 MCU 上的以太网控制器的手册。基本的、较旧的以太网有一对传输线和一对接收线。所以你不能用直电缆直接连接两个控制器,否则你将把一个传输对连接到另一个传输对而不是接收对。但是请检查您的控制器,这可能会得到解决(您可以自己将普通以太网电缆变成交叉电缆,这很容易做到)。 我没有使用过 LWIP,我使用了 Microchip 的专有堆栈,但我想它们有些相似。我建议确保在 MCU 上启用 ping,这样您就可以轻松地使用 ping 来查看您的连接是否正确。Microchip 的堆栈要求您不断调用处理网络堆栈处理的函数。我想 LWIP 也有类似的东西,你必须在调用 LWIP 处理函数的 mcu 上有一个任务、一个线程或某种协作式多任务设置。所以你不能只是在套接字上重复调用发送,你必须调用堆栈处理函数,这是字节真正被发送的时候。
已经有一段时间了,但我使用了带有集成以太网控制器的 8 位 PIC。我不太清楚您在设置 LWIP 或硬件配置或两者时遇到问题的步骤。
您应该能够在两端使用标准 TCP 套接字,但您需要将两个设备都插入集线器或交换机,或者如果您想直接连接两个设备,则必须使用交叉以太网电缆. 现代以太网控制器可能内置了交叉功能。您必须查看计算机 NIC 和 MCU 上的以太网控制器的手册。基本的、较旧的以太网有一对传输线和一对接收线。所以你不能用直电缆直接连接两个控制器,否则你将把一个传输对连接到另一个传输对而不是接收对。但是请检查您的控制器,这可能会得到解决(您可以自己将普通以太网电缆变成交叉电缆,这很容易做到)。
我没有使用过 LWIP,我使用了 Microchip 的专有堆栈,但我想它们有些相似。我建议确保在 MCU 上启用 ping,这样您就可以轻松地使用 ping 来查看您的连接是否正确。Microchip 的堆栈要求您不断调用处理网络堆栈处理的函数。我想 LWIP 也有类似的东西,你必须在调用 LWIP 处理函数的 mcu 上有一个任务、一个线程或某种协作式多任务设置。所以你不能只是在套接字上重复调用发送,你必须调用堆栈处理函数,这是字节真正被发送的时候。