一、以太网简介与优势
以太网(Ethernet)不同于互联网,是当今现有局域网采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。以太网凭借其成本低、通信速率高、抗干扰性强等优点被广泛应用在网络远程监控、交换机、工业自动化等对通信速率要求较高的场合。
以太网接口实现PC和FPGA的通信,相对于串口而言,具有更高的传输速度。在一定技术要求下,实现PC机和FPGA的实时数据传输。从而可以借助PC机强大的计算能力,降低FPGA的运算负担。
二、以太网接口与传输协议
1 内部原理及构成
PHY(fai–读四声)芯片
这里主要使用的就是PHY芯片,他的作用就是将网口与数据与FPGA数据进行互联。这里可以理解其就是FPGA将数据传输给PHY芯片,然后PHY芯片在将数据传输到网口进行传输,然后另外一侧通过网口,PHY芯片,还原数据到相应的MAC层。
这里就是设计时序了。基本就很容易,是FPGA很擅长的事情!!!
Realtek RTL8201CP是一个快速以太网物理层收发器,它为MAC层提供了可选择的MII(媒体独立接口)或SNI(串行网络接口)接口,实现了全部的10/100M以太网物理层功能。SNI接口仅支持10Mbps的通信速率,而MII最大支持100Mbps的通信速率,所以本次收发实验采用的是MII接口。RTL8201CP芯片的参数可以通过MDC/MDIO接口来配置,因为其默认的参数就可以实现MII接口的自适应10M/100M收发数据,因此可不必对芯片做配置。
具体的时序设计以及代码的书写将在下问展开
2 以太网通信协议
各个字符都有特定的作用,就是传输的数据具体是什么。
前导码(Preamble):为了实现底层数据的正确阐述,物理层使用7个字节同步码(0和1交替(55-55-55-55-55-55-55))实现数据的同步。
帧起始界定符(SFD,Start Frame Delimiter):使用1个字节的SFD(固定值为0xd5)来表示一帧的开始,即后面紧跟着传输的就是以太网的帧头。
目的MAC地址:即接收端物理MAC地址,占用6个字节。MAC地址从应用上可分为单播地址、组播地址和广播地址。单播地址:第一个字节的最低位为0,比如00-00-00-11-11-11,一般用于标志唯一的设备;组播地址:第一个字节的最低位为1,比如01-00-00-11-11-11,一般用于标志同属一组的多个设备;广播地址:所有48bit全为1,即FF-FF-FF-FF-FF-FF,它用于标志同一网段中的所有设备。
源MAC地址:即发送端物理MAC地址,占用6个字节。
长度/类型:上图中的长度/类型具有两个意义,当这两个字节的值小于1536(十六进制为
0x0600)时,代表该以太网中数据段的长度;如果这两个字节的值大于1536,则表示该以太网
中的数据属于哪个上层协议,例如0x0800代表IP协议(网际协议)、0x0806代表ARP协议(地址解析协议)等。
三、Xilinx的千兆以太网解决方案
Xilinx提供了可参数化的10/1Gbps以太网媒体访问控制器功能LogiCORE解决方案。该核设计用来同最新的Virtex-5、Virtex-4和 Virtex-II Pro平台FPGA一起工作,并可以无缝集成到Xilinx设计流程中。吉比特级以太网媒体访问控制器核(GEMAC)是针对1Gb/s(Gbps)以太网媒体访问控制器功能的可参数化的LogiCORE IP解决方案。GEMAC核的设计符合 IEEE 802.3-2002规范。GWMAC核支持两个PHY端接口选项:GMII或RGMII。并且,Xilinx 全面的1Gb/s以太网解决方案包含吉比特MAC和PCS/PMA IP核产品。Xilinx吉比特以太网MAC解决方案还包括带有内置处理器本地总线(PLB)接口(PLB GEMAC)的配置。该配置通过Xilinx嵌入式开发套件(EDK)提供。GEMAC LogiCORE IP可以实现与1000 Base-X PCS/PMA或SGMII核的无缝集成,并提供3种选项用来与PHY器件接口:1000 BASE-X或10位接口(TBI)或SGMII。
GEMAC核非常适合开发高密度吉比特级以太网通信和存储设备,其关键特性有:
单速全双工11 Gbps MAC控制器;
设计符合IEEE 802.3-2002规范;
具有最小缓冲的直通操作,以最大限度地实现客户端接口的灵活性;
通过可选的独立微处理器中的接口进行配置和监控;
直接与以太网统计数据核接口,以便实现功能强大的统计数据收集;
通过MAC控制暂停帧实现对称的或非对称的可选的流程控制;
VLAN帧的可选技术支持符合IEEE 802.3-2002规范的要求;
支持任意长度的“jumbo帧”(可选);
可选的地址滤波器,具有数量可选的地址表输入。
四、以太网传输的FPGA实现
FPGA硬件通过以太网口接收数据并讲接收到的数据发送给上位机,完成以太网的环回。
以太网是通过包的格式传输数据,串口是通过字节的方式传输数据。
下图是系统框图。
数据的发送时钟和接收时钟(RXC和TXC)全部由以太网芯片PHY提供,无需外部晶振