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芯片的地址采用引脚复用:

相关推荐
千穹凌帝39 分钟前
SpinalHDL之结构(二)
开发语言·前端·fpga开发
一口一口吃成大V7 小时前
FPGA随记——FPGA时序优化小经验
fpga开发
贾saisai7 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
redcocal12 小时前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘
思尔芯S2C1 天前
高密原型验证系统解决方案(下篇)
fpga开发·soc设计·debugging·fpga原型验证·prototyping·深度调试·多fpga 调试
坚持每天写程序1 天前
xilinx vivado PULLMODE 设置思路
fpga开发
redcocal2 天前
地平线内推码 kbrfck
c++·嵌入式硬件·mcu·算法·fpga开发·求职招聘
邹莉斯3 天前
FPGA基本结构和简单原理
fpga开发·硬件工程
悲喜自渡7213 天前
易灵思FPGA开发(一)——软件安装
fpga开发
ZxsLoves3 天前
【【通信协议ARP的verilog实现】】
fpga开发