Xilinx FPGA:vivado关于以太网的零碎知识点

一、OSI七层模型

为了实现网络通信的标准化,普及网络应用,国际标准化组织(ISO)将整个以太网通信结构制定了OSI模型,即开放式系统互联。

OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即OSI开放互连系统参考模型。

应用层:网络服务与最终用户接口(http等)

表示层:数据的表示、加密、压缩

会话层:建立、管理、终止会话

传输层:定义传输数据的协议端口号、流控、差错校验(TCP,UDP)

网络层:进行逻辑寻址,实现不同网络之间的路径选择(IP)

数据链路层:建立逻辑链接、进行硬件寻址、差错校验(MAC)

物理层:建立、维护、断开物理链接(电平、速度、针脚)

二、TCP/IP五层模型

TCP/IP是指能够在多个不同网络间实现信息传输的协议簇。

TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP\SMTP\TCP\UDP\IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具有代表性,所以被称为TCP/IP协议。

应用层:DNS/HTTP/FTP/SMTP

传输层:TCP/UDP

网络层:IP/ICMP/ARP

数据链路层:LLC/MAC

物理层:物理传输介质

三、以太网简介

以太网是遵守IEEE802.3标准组成的局域网,由IEEE802.3标准规定的,主要是位于参考模型的物理层(PHY)和数据链路层中的介质访问控制子层(MAC)。在家庭、企业和学校所组建的PC局域网形式一般也是以太网,其标志是使用水晶头网线来连接。

四、MII/RGMII

MII或称为媒体独立接口,它是IEEE802.3定义的以太网行业标准,用以连接以太网MAC层和PHY芯片,后逐步扩展为:MII/RMII/SMII/GMII/RGMII等。

MII:百兆以太网接口,单边沿采样。

RMII:百兆以太网接口,MII的线路简化版,双边沿采样。

GMII:千兆以太网接口,单边沿采样。

RGMII:千兆以太网接口,GMII的线路简化版,双边沿采样。

五、以太网接口示意图

ETH_RXC:接收数据时钟

(10Mbit/s------>2.5MHz

100Mbit/s------->25MHz

1000Mbit/s-------->125MHz

ETH_RXCTL:接收数据有效信号

ETH_RXD[3:0]:接收数据

ETH_TXC:发送数据时钟

ETH_TXCTL:发送数据有效信号

ETH_TXD[3:0]:发送数据

ETH_RST_N:低电平有效复位信号

ETH_MDC:SMI串行管理接口时钟信号(非周期性,与接收/发送时钟无关)

ETH_MDIO:双向数据线,用来传输MAC层的控制信息和物理层的状态信息。在MDC上升沿有效。

六、MAC子层功能

MAC子层是属于数据链路层的下半部分,主要负责与物理层进行数据交接。如是否可以发送数据,发送的数据是否正确,对数据流进行控制等。它自动对来自上层的数据包加上一些控制信号,交给物理层。

接收方得到正常数据时,自动去除MAC控制信号,把该数据包交给上层。

MAC数据包(位于TCP/IP协议的数据链路层):

MAC数据包由前导字段、帧起始界定符、目标地址、源地址、数据包类型、数据域、填充域、校验域组成。当到达网络层时候,除了有效数据,其他的诸如前导码/DA/SA等等,均被清除。

前导码:7Byte的0x55的方波

SFD:1Byte的0xd5

目的地址:6个字节,网卡的物理地址。一般出厂自带,后面也可以通过软件修改,或者嵌入式工程中重新配置。

源地址:6个字节。

类型/长度:类型-----2字节,可以描述TCP/IP协议层的IP/ARP/SNMP数据包。长度如果大于>0x0600的话,仅描述类型。

数据:包含MAC的上层和填充域,整个MAC包长度最少64字节,数据包最少46个字节,如果数据包不到46字节,在填充域会自动填充无效数据。

校验:4字节,保存了CRC检验序列,用于检错。

七、IP协议(网络层)

IP首部+DATA

IP首部校验和:

(1)将校验和字段置为00。

(2)以2字节为单位,数据反码求和。

(3)将进位加到低16上。

(4)取反。

八、UDP协议

UDP首部+DATA

UDP校验和:

(1)将校验和字段置为00 00

(2)以2字节为单位,数据反码求和

(3)将进位加到低16位上

(4)将相加的结果取反

九、原理图部分解读

引脚配置:

引脚说明:

但是注意我们的板卡如果自己有系统晶振,那46引脚浮空就可以了。

PHY芯片的地址采用引脚复用:

相关推荐
北城笑笑5 小时前
FPGA 14 ,硬件开发板分类详解,FPGA开发板与普通开发板烧录的区别
fpga开发·fpga
2202_754421545 小时前
一个计算频率的模块
驱动开发·fpga开发
小灰灰的FPGA6 小时前
低速接口项目之串口Uart开发(七)——如何在FPGA项目中实现自适应波特率串口功能
fpga开发
fei_sun1 天前
【Verilog】第一章作业
fpga开发·verilog
深圳市雷龙发展有限公司longsto1 天前
基于FPGA(现场可编程门阵列)的SD NAND图片显示系统是一个复杂的项目,它涉及硬件设计、FPGA编程、SD卡接口、NAND闪存控制以及图像显示等多个方面
fpga开发
9527华安1 天前
FPGA实现PCIE3.0视频采集转10G万兆UDP网络输出,基于XDMA+GTH架构,提供工程源码和技术支持
网络·fpga开发·udp·音视频·xdma·pcie3.0·万兆网
able陈1 天前
为什么verilog中递归函数需要定义为automatic?
fpga开发
fei_sun1 天前
【Verilog】第二章作业
fpga开发·verilog
碎碎思1 天前
如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目
fpga开发·接口隔离原则
江山如画,佳人北望1 天前
fpga-状态机的设计及应用
fpga开发