SMI 接口包括两根信号线:MDC和MDIO
通过MAC层芯片(或其它控制芯片)可以访问物理层芯片的寄存器,并通过这些寄存器来对物理层芯片进行控制和管理。SMI管理接口如下:
MDC:管理接口的时钟,是非周期信号,与TX_CLK和RX_CLK无任何关系。
MDIO:双向的数据线。传送MAC层的控制信息和物理层的状态信息。MDIO数据与MDC时钟同步,在MDC上升沿有效。
#define MII_MMD_CTRL 0x0d
#define MII_MMD_DATA 0x0e
static void mdio_read(int skfd)
{
if (ioctl(skfd, SIOCGMIIREG, &ifr) < 0) {
fprintf(stderr, "SIOCGMIIREG on %s failed: %s\n", ifr.ifr_name,
strerror(errno));
}
}
static void mdio_write(int skfd)
{
if (ioctl(skfd, SIOCSMIIREG, &ifr) < 0) {
fprintf