赞
踩
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=image-2.png&pos_id=img-SeubNYVv-1720108026560)
时钟等于125M的时候 125M*8bit=1000Mbps 实现了千兆网
时钟等于25M的时候 12.5M*8bit=100Mbps 实现了百兆网
通过设置不同的时钟频率来设置不同的传输速率
RGMII 发送端口在 TXC 时钟的上升沿传输 TXD 的低 4 位和 TX_CTL 的使能信号;下降沿传输 TXD 的高 4 位和 TX_CTL 的错误信号(实际上是使能信号和错误信号的异或值);RGMII 接收端口在 RXC 时钟的上升沿传输 RXD 的低 4 位和 RX_CTL 的使能信号;下降沿传输 RXD 的高4 位和 RX_CTL 的错误信号(实际上是使能信号和错误信号的异或值)
数据包又叫做MAC数据包,存在于PHY芯片和外设(FPGA或者PC等)中
红色的是前导码,绿色的是MAC层的有效数据,灰色的是校验码
前导码(7Byte,默认为8’h55)+ SFD(1Byte,默认为8’hd5)一般作为帧头,目的MAC地址(6Byte)+源AMC地址(6Byte)+类型/长度(2Byte,小于1536表示长度,大于1536表示类型 ARP:16’h0806 ip:16’0800)
MAC数据中 IP头部/首部(20Byte)
ARP协议介绍
28 字节的 ARP 数据位于以太网帧格式的数据段。由于以太网数据段最少为46个字节,而 ARP数据包总长度为28个字节,因此在ARP数据段后面需要填充 18 个字节的数据,以满足以太网传输格式的要求。这个填充的过程称为 Padding(填充),填充的数据可以为任意值,但一般为0
ARP广播过程
ARP请求时,携带发送方的IP地址和MAC地以及目标的IP地址,目标的MAC地址是48位的1,因为要进行广播发送,下面是ARP广播的示意图
只有验证成功的主机才能返回一个ARP应答报文(包含了接收方的IP地址和MAC地址)
发送方接收到报文,更新自己的ARP缓存表
以太网的帧格式
ARP协议(在MAC层)通过以太网传输,下面介绍以太网的帧格式,以太网的通信是以数据包的形式传输的
上图中长度/类型比较重要,当这两个字节的数据小于1536的时候 代表数据段的长度,大于1536代表数据属于哪个上层协议 例如0x0800代表IP协议(网际协议) 0x0806代表ARP协议(地址解析协议)
数据的长度最小46个字节,最大1500个字节,最大值1500称为以太网的最大传输单元(MTU)
FCS(Frame Check Sequence),为了确保数据的正确传输 应用最广泛的是CRC-32标准
IFG(Interpacket Gap)帧间隙,IFG 的最小值是96 bit的时间,在不同的媒介中IFG的最小值是不一样的
TCP/IP协议不仅可以运行在以太网上,还可以运行在FDDI(光纤分布式数据接口)和WLAN(无线局域网)上,反过来,以太网的高层协议不仅可以是TCP/IP协议,还可以是IPX(互联网分组交换)协议。只不过以太网+TCP/IP成为IT行业中应用最普遍的技术。
上面是FPGA发送给PC的ARP请求,下面是PC向FPGA开发板发送的数据,通过这样的过程,使通信的双方构建起了ARP的通信
IP协议是TCP/IP协议簇中的核心协议,也是TCP/IP协议的载体,IP协议规定了数据传输时的基本单元和格式
所有的TCP UDP ICMP数据都以IP数据报格式传输,IP数据报的格式如图所示
第二行的标识|标志|片偏移都是和数据包分组发送相关的
第三行的协议:表示数据报所携带上层数据使用的协议类型 ICMP为1 TCP为6 UDP为17;首部校验和:校验IP数据报头部是都被破坏,篡改和修改等
IP头部就在ICMP报文的前面(ICMP的首部在IP层的数据段),一个ICMP报文包括IP头部,ICMP头部和ICMP报文,IP头部的Protocol为1说明这是一个ICMP报文,ICMP头部的类型(Type)用于说明ICMP报文的作用与格式,此外还有一个代码(Code)域用于详细说明某种ICMP报文的类型,所有的数据都在ICMP头部的后面
ICMP首部一共8个字节,同IP首部一样,也是一行以32位(4个字节)为单位
类型和代码表示的含义
类型/代码 | 含义 |
---|---|
类型 0,代码 0 | 表示回显应答(ping 应答) |
类型 8,代码 0 | 表示回显请求(ping 请求) |
类型 11,代码 0 | 超时 |
类型 3,代码 0 | 网络不可达 |
类型 3,代码 1 | 主机不可达 |
类型 5,代码 0 | 重定向 |
标识符(Identifier):占用了 16 bit 位,对于每一个发送的数据报进行标识。
序列号(Sequence number):占用了16bit位,对于发送的每一个数据报文进行编号,比如:发送的第一个数据报序列号为 1,第二个序列号为2。
先把从PHY芯片接收到的双边沿的RGMII信号转为单边沿的GMII信号
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。