GMII或者RGMII如何转换成XGMII

首先这个话题需要了解GMII,RGMII,XGMII最基本的数据格式。(X是罗马数据的10)
而GMII和RGMII他们的应用比较广,其他网友的介绍也比较详细,这里就不做过多的介绍。
在正式介绍转换之前,先介绍下XGMII,根据IEEE802.3的介绍(第46节)。是10Gb/s的网络接口。作用于MAC和PHY。其信号接口如下:

其中他们有各自的时钟(这里可以将收到的钟送给输出的钟),数据位宽为32bit,另外有4位分别表示他们的符号控制位,这4位控制位对应数据的32bit,以一个8位数据位对应一个控制位的一位。如下图所示:
在这里插入图片描述
弄清楚它的各个信号定义后,接下来了解下数据流:从下图可以看出它是以8bit为一个单位的方式采用了大端模式。而每个8bit正好是GMII的数据。
在这里插入图片描述
这里好清楚数据格式很重要。因为GMII是以8bit在传输,XGMII是以4个8bit拼成32位再传输。并且要注意大端的方式传输。如下图是我截取传输ICMP协议的XGMII的数据格式与GMII的数据格式。
XGMII数据格式

GMII数据格式

接下来需要弄清楚传输的字符,如下表所示:
在这里插入图片描述
可以看出传输的空闲帧不再是GMII中的8’hdd,而是32‘h07_07_07_07。如下表是我整理的传输ICMP协议时GMII与XGMII的区别。为了方便对比我将XGMII的数据格式拆分成与GMII的数据格式一致。
在这里插入图片描述
从上图可以看出,除了空闲帧的区别,前导码也发生了改变,将最开始的一个8’h55替换为了8‘hfb,并且在数据的结尾增加了一个8位的结束控制符8’hfd。值得注意的是,XGMII中,传输字符控制位用1表示,传输数据用0表示。

因此我们再做模块转换时需要做的就是字符替换与位宽转换两个点。其RGMI如果需要转换成XGMII,则是需要先将RGMII和GMII之间的转换。

本人已在FPGA上用verilog实现GMII 、RGMII、XGMII之间的转化过程,并可以进行仿真测试。由于篇幅过多不尽详叙,需要详细技术质询可以私信我做进一步的交流。

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zynq GMII2RGMII是指在Zynq芯片上使用的GMII(Gigabit Media Independent Interface)到RGMII(Reduced Gigabit Media Independent Interface)转换器。GMIIRGMII是用于以太网通信的接口标准。在Zynq芯片中,使用GMII2RGMII转换器将GMII接口转换RGMII接口,以便与外部物理层(PHY)设备进行通信。 为了使GMII2RGMII正常工作,需要对Linux网卡驱动源码进行更改。根据外部PHY协商得到的速率,需要配置PL GMII2RGMII IP的寄存器0x10。有两份补丁可供参考,一份用于较老的内核版本和Petalinux 2016.2,另一份适用于较新的内核版本。根据您提供的信息,您已经尝试了第二份补丁并成功将其应用到内核中。然而,在启动后发现无法找到网卡eth0。进一步排查后发现,GMII2RGMII驱动已经实现了之前提到的补丁,即对0x10寄存器进行配置。在插拔网线时,该寄存器已经被正确配置。 总结来说,Zynq GMII2RGMII是指在Zynq芯片上使用的GMIIRGMII转换器。为了使其正常工作,需要对Linux网卡驱动源码进行更改,并根据外部PHY协商的速率配置相关寄存器。在您的情况下,尝试了适用于较新内核版本的补丁,但遇到了无法找到网卡的问题。进一步排查后发现,相应的配置已经在GMII2RGMII驱动中实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [转载:ZYNQ+linux网口调试笔记(1)PS-GEM0](https://blog.csdn.net/Mr_Ding123/article/details/127403869)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值