基于FPGA+RTL8201的UDP数据收发之PHY(一)

基于FPGA+RTL8201的UDP数据收发之PHY(一)

最近在学习FPGA的网络数据传输,将一些学习的笔记系统的整理下。

从哪儿说起呢,还是从头记吧,随着FPGA学习的不断深入,逐渐了解并且完成了很多种通信协议的学习和硬件实现,包括串口通信、SPI、IIC等等,按照我的理解,其实协议就是一种约定好的与外界交流的一种方式。

在很多时候FPGA板卡在以某种协议进行一些数据交互的时候,外界信号由于种种原因并不可以被直接连接到FPGA芯片的引脚上,这样就需要各种各样的接口芯片、转化芯片等,例如在与PC端进行串口通信的时候,需要将PC端出来的usb信号转换为FPGA能够识别的信号,这样FPGA就去按照协议,去操作接口芯片就好了。

网络通信也是如此,并且使用FPGA进行网络通信有很多种方式,本次学习的是基于FPGA+RTL8201的方式,硬件连接框图如下图所示:
基于FPGA+RTL8201的UDP数据收发之PHY(一)
从图中可以看出,网线信号在进入FPGA板卡后,先经过RTL8201芯片,RTL8201芯片又连接的FPGA芯片,由此我们就首先研究下,这块芯片,我们通过什么样的时序能够将它正确地控制起来。官方的手册会有详细的描述。

基于FPGA+RTL8201的UDP数据收发之PHY(一)

通过手册的简介可以知道,它是一款网络PHY(物理层)收发器,至于何为物理层,网上有很多介绍,就不赘述了,简单介绍一下它的核心资源:

  • 与MAC层有可选择的传输方式:MII or SNI;
  • 10M/100Mbps,就是我们平时说的10M网,百兆网(当然现在已经千兆、万兆了);
  • 具有掉电模式(低功耗使用);
  • 可以控制网络状态指示灯;
  • 25MHz的晶体振荡器作为时钟源;
  • 支持的供电电压
  • 48引脚的封装
    有兴趣可以研究下,RTL8201简介中其他的描述的意思,我没多做研究(水太深~~),下一篇继续介绍,我们设计中主要使用到的MII接口。