所以我很好奇这是否可行。目前我有一个在微控制器(digi rabbit)中运行的程序,它从芯片读取SPI数据。我也在这个程序中设置了TCP / IP协议,因此它将SPI数据发送到服务器。微控制器在C中编程。服务器在java中。我将SPI数据转换为字符串并将其发送,服务器读取原始数据。 但我想知道是否有一种方法可以从以太网端口读取数据。所以我想要的是微控制器上的cat 5电缆的一端,另一端是计算机的以太网端口。在开启服务器之前,只是为了测试目的,微控制器端口和所有东西都正确安装。我不是那种有网络经验的人。因此,如果任何人都可以指向博客,或任何可能很棒的提示。我的问题是我该怎么做呢? 谢谢
答案 0 :(得分:0)
您要做的是称为原始以太网。当然可以这样做。
在微控制器方面,您需要按照其以太网控制器数据表发送和接收数据包。在PC端,这有点复杂,取决于PC上运行的操作系统。在Windows上,您可以使用WinPcap驱动程序发送和接收原始以太网数据包。
请注意,以太网控制器(PC上的控制器和微控制器上的控制器)会过滤掉所有不包含接收器MAC地址或任何多播/广播地址的传入数据包。对于简单的检查,广播地址(所有地址位都是1)都可以。
另请注意,只要链接建立,PC上的操作系统就会传输所有类型的数据包。因此,您可以在原始以太网帧的类型字段中使用唯一的协议标识符。检查Wikipedia's article about Ethernet frames。顺便说一句。不要感到困惑。您只需要发送MAC地址,Ethertype和有效负载。其他所有内容,如CRC,前同步码等,都由以太网控制器自动添加。