gpt4 book ai didi

linux - Linux 中的以太网 + 串口

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:26 26 4
gpt4 key购买 nike

我想在 Linux 中实现一个驱动程序,它有一个以太网堆栈,但在硬件上输出的数据将是一个串行端口。基本上,我想将我的串行端口注册为以太网驱动程序。有谁知道这是否可能?我希望能够将 IPv6 和/或 UDP 数据包推出串行端口,并以类似的方式通过串行端口接收数据包并将其向上传递到以太网堆栈。

我不想使用串行到以太网转换器(将串行端口转换为以太网端口的外部硬件)的解决方案,但我的 PC 本身就有它。

我在串行端口上尝试了 PPP,它运行良好。我还被告知我可以使用 PPP 进行 FTP、HTTP 等操作。对此的引用 - http://www.faqs.org/docs/Linux-HOWTO/Serial-Laplink-HOWTO.html

我曾尝试使用串行驱动程序从 RealTek 以太网驱动程序中破解代码,但未能取得很大成功。相反,我不知道堆栈中的任何一个实际上可以做任何有意义的事情。任何建议、指导或教程都会有所帮助。

谢谢阿迪亚

最佳答案

你需要回到网络的基础知识,我理解你问题的方式是:“我有一个串行端口,我想使用的是以太网链路”。很抱歉打碎了你的梦想,但你没有真正的硬件来这样做,我会详细说明。

串行连接是一种物理连接,需要 3 根线(至少)tx、rx 和地线。在逻辑方面,您有一个 IC,可将二进制数据转换为由离散电压范围表示的信号。

以太网是第 2 层协议(protocol),第 1 层由用于传输信号的技术(同轴电缆、上行链路、光纤等)提供。正如您现在可能看到的,您需要一组不同的硬件来转换逻辑以太网帧变成数字流,实际上这就是调用分帧。

由于以太网是一种易于使用的协议(protocol),因此它已成为许多网络运营商的首选协议(protocol),当然最大的协议(protocol)之一是 PPPoE,您可以在以太网链路上进行 PPP session 。当然,这对您的示例也不起作用,因为您正在尝试相反的方法。

如果您只是在学习并且有很多时间,您可以尝试通过串行线路编写您自己的以太网成帧器。这意味着您需要在驱动程序中实现 IEEE802.3,然后您需要序列化数据以将其作为比特流推送到串行线路上。当然要注意以下缺点:

  • 您的驱动程序将无法完全支持以太网,您需要硬件级别的一些支持来实现一些信号(例如,自动协商、CSMA/CD 等)
  • 除非你回到过去,115.2kbps 是数据传输的最高速度,否则你的驱动程序将毫无用处

恕我直言,在设备驱动程序的网络领域,您可以选择更多激动人心的项目。例如,您可以尝试购买 NIC 并从头开始为其开发设备驱动程序,并且可以优化某些区域。最后,请记住,大多数以太网实现现在都是在硬件中完成的,因此您无需执行任何操作,只需在 MAC 上填充几个寄存器即可!

关于linux - Linux 中的以太网 + 串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12064735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com