Linux内核驱动之网络驱动(三)PHY寄存器分析.docxVIP

  • 138
  • 0
  • 约3.73千字
  • 约 9页
  • 2017-03-05 发布于重庆
  • 举报

Linux内核驱动之网络驱动(三)PHY寄存器分析.docx

Linux内核驱动之网络驱动(三)PHY寄存器分析

一 PHY简介以太网PHY和MAC对应OSI模型的两个层:物理层和数据链路层物理层的芯片称之为PHY以太网卡中数据链路层的芯片称之为MAC控制器物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口RGMII/GMII/MII数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层(IP层)提供标准的数据接口二以太网PHY芯片标准寄存器分析对于PHY标准寄存器control register和status register是最常用的。下面是详细分析Control Register(BMCR)bit15:reset bit置1实现复位操作,复位后会导致外围管脚对PHY芯片的配置失效同时该端口的控制、状态寄存器将恢复为默认值,需要重新进行配置。复位过程中bit15保持为1,复位完成后该位自动清零。 bit14:loopback主要用于调试以及故障诊断bit13:speed selection LSBbit13和Bit6两位联合实现对端口的速率控制功能, 需要注意的是speed selection只有在自动协商关闭的情况下才起作用bit12: Auto-Negotiation Enable自动协商(AN)开关,置1表示打开自动协商功能,此时端口的工作模式通过和对端(Link partner)进行AN来确定,必须注意的是,对于1000BASE-T接口,自动协商必须打开 bit11: Power Down置1将进入低功耗模式,需要注意的是端口从Power Down模式恢复,需要复位端口以保证端口可靠的连接 bit10: Isolate隔离开关,一般不用 bit9 : Restart Auto-Negotiation重新启动自动协商,一般修改端口的自动协商能力信息(ANAR)后通过bit9置1重新启动自动协商来使端口按照新的配置建立linkbit8 : Duplex Mode双工模式设置,只有在自动协商关闭的情况下才起作用 bit7 : Collision Test冲突信号(COL)测试开关,一般不使用bit6 : Speed Selection (MSB) bit13和Bit6两位联合实现对端口的速率控制功能,当然只有在自动协商关闭的情况下才起作用1 0 = 1000 Mb/s 0 1 = 100 Mb/s 0 0 = 10 Mb/s bit5 ~ bit0 Reservedstatus register(BMSR)该寄存器主要是用来描述PHY芯片的工作模式能力和当前工作状态bit15:100BASE-T4bit14:100BASE-X Full Duplexbit13:100BASE-X Half Duplexbit12:10 Mb/s Full Duplexbit11:10 Mb/s Half Duplexbit10:100BASE-T2 Full Duplexbit9 :100BASE-T2 Half Duplex寄存器中的bit9~bit15都是描述PHY芯片工作模式能力,1表示具备该能力,0表示不具备bit8 :Extended Statusbit7 : Reservedbit6 : MF Preamble Suppressionbit5 : Auto-Negotiation Completebit5=1表示自动协商进程已经成功结束,此时PHY芯片的其他和Link状态相关的寄存器才是正确可靠的bit4 :Remote Faultbit4=1表示连接对端(Link Partner)出错,一般会在其他寄存器(register16-31)中定义具体错误类型bit3 : Auto-Negotiation Abilitybit2 : Link StatusLink up则该位为1,0则代表Link down,Link status 只有在自动协商完成后才有效bit1 : Jabber Detect100M和1000M模式下没有意义bit0 : Extended CapabilityPHY IdentifierRegister寄存器2和3存放PHY芯片的型号代码,由芯片商自行定义,一般用来定义PHY芯片的型号和版本Auto-Negotiation AdvertisementRegister寄存器ANAR是自动协商的能力通告寄存器,在AN Enable的前提下,端口根据该寄存器的相关配置与对端(Link partner)进行自动协商。当AN配置为Disable状态的时候,寄存器ANAR的配置不起作用,端口的工作模式由control register决定。尽管寄存器1(status register)中也有端口工作模式能

文档评论(0)

1亿VIP精品文档

相关文档