88E1111 RGMII模式驱动及数据传输策略

需积分: 5 43 下载量 191 浏览量 更新于2024-08-05 1 收藏 132KB DOC 举报
本文主要讨论了针对ALTERA DE2-115开发板上使用的千兆以太网芯片88E1111的RGMII模式驱动问题。88E1111是一款支持多种数据传输速率的以太网控制器,包括10Mb/s、100Mb/s和1000Mb/s。由于DE2-115的硬件限制,仅提供了4位数据端口,因此在1000Mb/s的全双工操作中,只能选择RGMII模式,而不是传统的MII模式。 作者在尝试使用官方提供的RGMII例程时遇到问题,原本预期需要通过Nios II来读取和配置芯片的寄存器以设置RGMII模式。然而,意外地发现当注释掉与配置相关的代码后,芯片仍然能正常运行。经过进一步观察,发现对硬复位引脚Reset_n施加一个10至20毫秒的复位就足以解决问题,这表明可能是在初始化过程中存在某种默认配置或者恢复机制。 关于数据传输,88E1111的Tx端有三个信号:Txd_RGM用于发送数据,Tx_ctrl在时钟上升沿控制发送En信号,在下降沿发送En和Er信号的异或值;Rx端则有Rxd_RGM接收数据,Rx_ctrl在时钟下降沿接收En信号,并且在上升沿接收En和Er信号的异或值。因为不能在一个always模块中同时处理上升沿和下降沿,作者考虑了使用DDIO模块来解决这个问题,但这里给出的示例并未实际采用DDIO,而是展示了如何设计DDR SDRAM接口,这部分设计可以作为参考。 总结来说,这篇文章介绍了在特定硬件环境下驱动88E1111芯片进入RGMII模式的过程,包括对复位和时钟信号的管理,以及数据传输逻辑的设计。对于嵌入式系统开发者特别是使用STM32、ARM单片机进行千兆以太网应用的工程师,理解并掌握这些技术细节至关重要。