1.概述
1.1简介
网络设备驱动是linux内核中三大类设备驱动之一,网络设备完成用户数据包在网络媒介上发送和接收的设备,它将上层协议传递下来的数据包以特定的媒介访问控制方式进行发送,并将接收到的数据包传递给上层协议。
不同于字符与设备块设备驱动,网络设备并不对应于/dev目录下的文件,应用程序通过套接字完成与网络设备的接口。
1.2 mac与phy
mac 位于数据链路层 phy位于物理层,他们之间的结构如下。
一般设计方案有以下三种:
1.CPU集成MAC和PHY。 2.CPU集成MAC,PHY采用外部芯片实现。 3.CPU不集成MAC和PHY,MAC和PHY都通过外部芯片来实现。
2.接口介绍:
主要说mac与phy之间的接口,一般分为两类:
MDIO:mac用于读写phy寄存器用来控制phy的。
MII/RMII/RGMII/GMII: 用来传输网络数据的。
MII/RMII一般用于百兆网,RGMII/GMII一般用于千兆网,具体这几个接口的线总共有多少可以自己查下看看。
MDIO接口,就是两个线 一根数据线MDIO双向,一根MDC时钟线。
大致关系可以参考下面这个图: