赞
踩
https://blog.csdn.net/z123canghai/article/details/114649502
目录
88E1111属于TCP/IP协议栈中的物理层器件,支持不同形式的数据转换为以太网所支持的传输媒介,例如支持1000BASE-T、100BASE-T、10BASE-T类型的以太网传输。支持CAT-5类非屏蔽双绞线上的数据收发。可以直接连接到MAC/SWITCH接口,例如FPGA的IP核。支持GMII、RGMII、SGMII、TBI和RTBI接口。并且还集成了一个可选的1.25GHz的SERDES接口,可以之间连接到光纤收发器上,用于1000BASE-T/1000BASE-X介质转换的应用。而且该芯片有三种封装方式,如下图是其中一种。
如下是芯片的内部功能模块结构图,可以清楚的看到有和数据链路层中的MAC层通信接口、与双绞线接口、管理接口、硬件配置接口、测试复位接口、LED和时钟复位等,在下文主要对上述这些接口进行解释,主要可分为三个部分,一是接口、二是配置、三是管理。
88E1111这个PHY芯片的作用可以说就是MAC层与双绞电缆间的适配。该芯片支持多种模块的数据传输。
物理媒介接口分为双绞线连接和光纤连接两种方式。双绞线连接方式被称为“Copper Interface”,即通MDI[3:0]±连接到RJ45,进而通过网线连接外围设备。另外接口还分为MDI和MDIX这两种,百度说以太网集线器、以太网交换机等集中接入设备的接入端口类型通常为MDIX。普通主机、路由器等的网上接口类型通常为MDI(Medium Dependent Interface);
在许多集线器和交换机上都有一个uplink端口,用于连接到另一个集线器或交换机,这个端口通常也采用MDI类型。MDI和MDI,MDI-X和MDI-X用交叉线连接。MDI和MDI-X用直连线连接。总之,相同端口用交叉线连接,不同端口用直连线连接。不过该芯片会自动确定是否需要在两对之间交叉,因此不需要外部交叉电缆。
还有种连接方式是通过串行接口由S_IN±,S_OUT±和SD±连接到光纤收发器上。然后以光信号的形式发出。
MAC层即介质访问控制层,属于数据链路层子层中的下一层,上一层是逻辑链路控制。该层接口有很多种,主要有GMII、MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、SGMII、TBI、RTBI、XGMII、XAUI、XLAUI等其中MII是Media Independent Interface的缩写,G是Gigabit的缩写。
1、GMII和MII
如下表所示,GMII兼容MII,MII支持10M和100M的,GMII支持1000M的。HWCFG_MODE[3:0] 配置为1111表示选择GMII或MII,配置为0111则选择GMII模式。下面就简单对接口信号进行阐述。
1、GTX_CLK
这是GMII接口的发送和接收的参考时钟,频率为125Mhz (1000Mbps/8=125MHz) 。这个信号是对于PHY芯片来说是个输入信号,是由MAC 提供给PHY的。
2、TX_CLK和RX_CLK
这是发送和接收的参考时钟,由PHY芯片提供,与GTX_CLK 不同。100Mbps速率下,时钟频率为25MHz,10Mbps速率下,时钟频率为2.5MHz。
3、TX_ER和RX_ER
发送或接收数据错误的标志信号,同步与对应时钟,高有效,表示数据无效,但对于10Mbps是不起作用的。
4、TX_EN和RX_DV
都是数据有效信号
5、CRS和COL
这两个信号都是再半双工下有效,CRS即Carrier Sense,载波侦测信号,高电平表示数据有效,COL即Collision Detectd,是冲突检测信号。
2、TBI(Ten-Bit Interface)
TBI即Ten Bit Interface,接口数据位宽由GMII接口的8位增加到10位,兼容GMII,HWCFG_MODE[3:0] 配置为1101。如果采用8B/10B编码这种方式不错,如下图所示。
3、RGMII(Reduced GMII)
RGMII即Reduced GMII,是RGMII的简化版本。时钟可以为125M、25M、2.5M,采用双沿采样,可支持千兆、百兆和十兆以太网通信。如果是千兆通信,采用双沿采样,其中上升沿采集bit[3:0],下降沿采集bit[7:4]。其中TX_CTL和RX_CTL具有复用功能,时钟上升沿表示数据有效,时钟下降沿表示err信号。使用该模式需将HWCFG_MODE[3:0] 配置为1100。
4、RTBI(Reduced TBI)
有上面的经验很好理解了,简化板的TBI。RTBI支持千兆通信速率,可达1.25Gbps。
5、SGMII(Serial GMII)
SGMII即Serial GMII,串行GMII,收发各一对差分信号线,时钟频率625MHz,双沿采样,速率达1.25Gbps。
SGMII有两种工作模式,一种有提供给MAC的接收时钟,另一种没有。通过将HWCFG_MODE [3:0]位设置为0000,可以选择带有时钟的串行接口。通过将HWCFG_MODE [3:0]位设置为“ 0100”,可以选择不带时钟的串行接口。没有时钟恢复功能的MAC需要接收时钟。
所谓硬件配置,就是通过硬件的连接实现对PHY芯片的配置,例如地址、速率、模式等。如下图所示是引脚的映射表。一共八个引脚表示八个值,类似编码一样。如何实现硬件配置呢?如下图左,是配置输入引脚。配置映射硬件与相应的配置引脚相连就能实现对对应配置引脚的配置,每个配置引脚可实现对三个寄存器的配置。
如下图所示,是配置硬件对应的配置内容,例如CONFIG0可以配置PHYADR的值。这些配置项就是datasheet里面的表31对应的内容。
如下图所示,是一个配置实例,CONFIG0与LED_RX相连,表示配置PHY地址的bit[2:0]为010,
这个实例就不去详述了,我们可以看下工程上对88E1111的配置。
我们来分析一下
PHY_CONFIG0 接PHY3_LED_RX,也就是010
PHY_CONFIG1 接PHY3_LED_LINK10,也就是110
PHY_CONFIG2 接2.5V,也就是111
PHY_CONFIG3 接PHY3_LED_TX,也就是001
PHY_CONFIG4 接PHY3_LED_DUPLEX,也就是011
PHY_CONFIG5 接2.5V,也就是111
PHY_CONFIG6 接0V,也就是000
根据上述配置内容,我们可以得出下表:
配置项 | 配置值 | 含义 |
PHYADDR | 10010 | PHY地址为10010,管理接口的时序用到了PHY地址 |
ENA_PAUSE | 1 | 是对默认寄存器4的bit8:7、bit11:10配置。=1这四bit都配置为1.具体内容看136页对该寄存器这几bit的配置 |
ANEG | 1110 | Auto-Negotiation Configuration for copper modes.配置为自适应模式,且有限为从 另外[3:2]=11使能自适应模式,1000M全双工 |
DIS_125 | 1 | 使能125M |
ENA_XC | 1 | 启用交叉。 ENA_XC选择是否启用MDI交叉功能。 如果禁用了MDI交叉功能,则设备将采用MDI配置。 |
HWCFG MODE[3:0] | 1011 | 描述数据传输接口的类型,这里是配置为RGMII |
DIS_SLEEP | 1 | Disable energy detect,不明白 |
DIS_FC | 1 | 禁用光纤/铜缆接口。=1是使能,就是物理接口或是光绪或者电缆,可以自由选择 |
SEL_TWSI | 0 | 管理接口的选择,管理接口有MDIO和TWO_Wire,=0选择MDIO |
INT_POL | 0 | 中断的极性 =0高电平表示产生中断信号 |
75/50 OHM | 0 | 不太清楚 |
通过管理接口可以实现对PHY芯片内部寄存器的读写,实现对PHY芯片工作状态的配置,读取配置信息、状态信息等。这也是IEEE802.3所规定的,一共有32个寄存器,其中地址址为0-15这16个寄存器包含信息和配置功能是IEEE要求的所有该类芯片所具备的,地址16-31的寄存器留给芯片制造商自由定义。
管理接口时序分为两种,一种是IEEE 802.3u第22章的规定时序,如下图所示。
其中各字段含义如下
另外还支持TWSI这样一种协议,全称是Two-wire Serial Interface,实际上就是IIC协议。
这两种模式的切换可以通过硬件配置实现,是CONFIG6的bit2。=0是MDC/MDIO接口,=1是TWSI接口。
MDC/ MDIO协议仅支持32个寄存器。88E1111器件具有32个以上的寄存器,因此使用分页方案来寻址32个以上的寄存器。可以根据操作模式自动访问不同的页面,也可以通过将其他寄存器中的位置1来选择它们。也就是说该芯片的寄存器还不是一个简单的存储器,是具有复杂的逻辑,虽然只有32个寄存器,我们可以人再不同的页都有32个寄存器,只不过有些寄存器再每页存的内容是一样的,有些寄存器具有页切换功能,可以先切换到不同的页去读取该页独有的数据内容。首先说下芯片手册对于寄存器的简写规则,很有意思,如下图所示。
如下表所示,该芯片将寄存器0到21,23到28用来存放配置信息、状态和控制等。寄存器22主要是实现page0和page1之间的切换。
寄存器29用来指定寄存器30是读的哪一页,每一页该寄存器内容是不一样的。
另外,一些数据只能在指定页读取,一些数据可在任意页读取,如下图。
Led灯接口有6个信号,如下图所示,LED可以由PHY控制,也可以手动控制,与PHY的状态无关。 手动控制是通过写入寄存器25的[11:0]来实现。任何一个LED都可以独立于其他LED进行控制,实现可变速率的打开,关闭或闪烁(即,一个LED可以从外部进行控制,而另一个LED可以通过PHY的状态进行控制)。然后介绍了具体的寄存器设置与闪灯逻辑,详细的还是看芯片手册2.22吧,不粘贴了。
欢迎关注“沧小海的FPGA”微信公众号,回复“eth”可获取相关资料和官方例程的仿真时序整理
开发软件为vivado2016.3,打开工程点击“Flow”选择“open static simulation”打开静态仿真可直接查看信号波形
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。