eht的配置只涉及eth mcu port 这3个模块,实际的工作会使用irq和dma,但这两个模块已经集成到MCAL的驱动代码中了,用户无需配置,只需要注意自己在使用dma和irq时不要和eth代码中使用的重复即可,具体eth驱动中irq和dma的使用情况,用户撸代码吧。

mcu配置如下:

 

涉及到的15路pin的配置如下:

 

 对于不需要上下电阻配置,pcb上直连的硬件方案,可以使用下图配置

 

美威系列的phy88E1512 硬件内部集成了延时,因此不需要pcb等长布线和 软件mac中的延时配置; 而RTL系列的phy则需要

MDI接口始终是一个媒体接口。RGMII/MII接口始终是一个系统接口。SGMII接口既可以是系统接口,也可以是媒体接口。系统接口是mac和phy之间的接口,媒体接口是phy和RJ45端子间的接口。

 eth的配置如下:

 

关于MDC和MDIO的补充:phy芯片的地址一般是0或者1(<<24), phy会有自己独立的MAC地址

 

 

网络进阶:

参考: https://blog.csdn.net/zyqash/article/details/128844230       https://blog.csdn.net/qq_40309341/article/details/119026295

 

网络数据的传输就是这样从上到下一层一层的往上裹数据,上一层的全部数据只是下一层的payload,最终在物理层上形成如下2中帧格式

前导码和结尾的FCS会由物理层自动添加和剔除,用户不需要手动添加,因此wireshark软件是看不到前导码和FCS域的,因为上位机软件是从数据链路层提取数据的,已经由物理层硬件自动剔除前导码和FCS域了;

从目的地址的第一个字节到数据部分的最后一字节,一共 6 + 6 + 2 + 46~1500 参与多项式为0x04C11DB7的crc32,计算结果即FCS域的值;

数据域数据的长度必须是[46, 1500],不够了会补0,超过了会拆包;

 从第一个FF到最后一个00,一共6+6+2+46参与多项式为0x04C11DB7的crc32,最后4B为校验值0x88F02B60; 这是MCU端剔除前导码后余下的完成报文。

 tcpdump 抓包命令 sudo tcpdump -i eth4   -w  test.cap

 

 

 

posted on 2023-06-08 17:34  lance9527  阅读(297)  评论(0编辑  收藏  举报