以太网基础①以太网相关通信接口

1. 今日摸鱼任务

需要学习使用ZYNQ的以太网传输SCPI指令

需要把PL PS两侧的都用起来(加油鸭!)

呐呐呐

今天就先学一下基础知识呗

02_【逻辑教程】基于HDL的FPGA逻辑设计与验证教程V3.5.2.pdf

51 以太网相关通信接口详解

52 以太网(MAC)帧协议介绍

2. 以太网 MAC 层接口介绍

这些网口只是起到一个信号连接的作用,本身无主动通信的能力,一个典型的网络通信电路如下图所示

MAC的全称是 Media Access Control(媒体访问控制),它是数据链路层(Data Link Layer)中的一个子层,主要负责以下功能:

  1. 帧的封装与解封:将上层(如IP层)的数据打包成帧(Frame),或从接收的帧中提取有效数据。

  2. 物理寻址:通过MAC地址(如 00:1A:2B:3C:4D:5E)唯一标识网络设备。

  3. 介质访问控制:协调多个设备共享同一物理介质(如以太网中的冲突检测CSMA/CD或无线网络中的CSMA/CA)。

数据通过串行方式发送
千兆以太网的位速率为 1.25Gbps 、百兆以太网的位速率为 125Mbps
PHY 芯片可实现并行以太网数据到符合以太网物理层链路数据传输格式的电平信号之间的转换

2.1 MII接口

2.2 GMIII接口

2.3 RGMII接口

RGMII ReducedGMII ,是 GMII 的简化版本,将接口信号线数量从 24根减少到 14 根,时钟频率仍旧为 125MHz TX/RX 数据宽度从 8 位变为 4 位。
为了保持 1000Mbps 的传输速率不变, RGMII 接口在时钟的上升沿和下降沿都采样数据 。

【以太网通信】RGMII 接口及其时序规范-CSDN博客

INPUT

OUTPUT

3. ACZ702 FPGA 以太网电路介绍

ACZ702 开发板 PL 侧通过一片 Realtek RTL8211F-CG 以太网 PHY 提供对以太网连接的支持, RTL8211F-CG 是一片 10M/100M/1000Mbps自适应以太网收发器,提供 RGMII 接口的 MAC 连接。

3.1  RTL8211F-CG 芯片器件地址【PL】

以太网物理层芯片都有一个器件地址,该器件地址就是在介绍 PHY 管理接口 MDIO 时所说的 PHY 器件地址,该器件地址用来由 MDIO 主机(如 MAC 或处理器)寻址 MDIO 总线上连接的指定的 PHY 芯片。
RTL8211F-CG 芯片的地址分为固定部分和硬件可设定两部分。
器件地址共有 5 位 ,其中高 2 位为固定的 00,低三位通过三个地址设置脚在芯片上电或复位时候设置, 这三位分别对应 RTL8211F 芯片的 22 27 26 脚。
ACZ702 开发板上,这三个脚通过三个电阻分别上/下拉到了指定电平
摸鱼怪的是ACZ702 V2.1版本,找到对应的硬件图纸
ACZ702V2.1-231107.pdf

PHY_ADDR0 PHY_ADDR2 通过电阻上拉到了高电平 , PHY_ADDR1 通过电阻下拉到了低电平,所以摸鱼怪PHY 器件地址为 00101

未列出管脚均为无必要与 FPGA 连接的信号。

3.3芯片器件地址【PS】

这里是ENET1

PHY_ADDR0 通过电阻上拉到了高电平 , PHY_ADDR1 和 PHY_ADDR2通过电阻下拉到了低电平,所以摸鱼怪的 PHY 器件地址为 00001

4. 帧协议

以太网技术的正式标准是 IEEE 802.3 标准,规定了在以太网中传输的数据帧结构:

4.1 前导码和分隔(开始)符

        这 8 个字节的值在任何以太网帧中都一样, 7 字节的前导码值为 0x55 1 字节的分隔符值为 0xD5
前导码存在的意义是为了标记一帧以太网帧即将开始传输,分隔符存在的意义是指示前导码传输完毕,接下来将要传输的就是正式的以太网帧的有用部分。
       前导码的值为 7 字节的 0x55 0x55 用二进制表示就是 01010101b,前导码的意义就是驱动网络链路电平开始交替翻转,以标记帧的开始。
       分隔符的值为 0xD5 0xD5 用二进制表示就是 11010101b
       以太网 PHY 在将数据编码为以太网物理链路层的位传输信号时是从低位开始编码的,所以从信号链路的电平来看,先连续的产生 62 0 1 交替变化的电平,最后再以2 位连续的高电平来标记以太网数据帧部分的到来。

4.2 MAC 地址

硬件地址或物理地址,是一个48位的全球唯一标识符(前24位为厂商ID,后24位由厂商分配)

4.3 数据和填充字段

该段数据长度至少为 46 个字节,而最多不超过 1500 个字节。
整个以太网帧的数据长度最小为 64 字节,最多1518个字节。【不含前8个字节】
最小数据帧的设计原因和以太网电缆长度(以太网的最大长度限制为 2500m)有关,为的是让两个相距最远的站点能够感知到双方的数据发生了碰撞;最远两端数据的往返时间就是争用期,以太网设计者规定的争用期是 51.2us 10M 以太网传输 64byte 数据的时间,该时间是有考虑到充足的裕量)。
太网长度为 1518,那有效传输效率=1460/1518=96% 通过比较,选择较大的帧长度,有效传输效率更高。而更大的帧长度同时也会造成上述的问题,可能是基于这些考虑,选择了一个折中的1518 字节。对应的 IP packet 就是 1500 字节。

4.4 校验序列

CRC32 进行计算,得到一个 32 位的数,附加在数据和填充字段的结尾发送。
若不同则意味着该帧数据中肯定有至少 1 位数据的值在传输过程中发生了变化,整个这一帧会被舍弃。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87667.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA基础 -- Verilog 共享任务(task)和函数(function)

Verilog 中共享任务(task)和函数(function) 的详细专业培训,适合具有一定 RTL 编程经验的工程师深入掌握。 一、任务(task)与函数(function)的基本区别 特性taskfunctio…

学习大模型---需要掌握的数学知识

1. 线性代数:乐高积木的世界 想象你有很多乐高积木块。线性代数就是研究怎么用这些积木块搭建东西,以及这些搭建好的东西有什么特性的学问。 向量: 就像一个有方向的箭头,或者一组排好队的数字。比如: 一个箭头&…

明远智睿RK3506开发板:多核异构架构赋能高可靠性工业与商业应用

在工业4.0与物联网(IoT)技术快速发展的背景下,嵌入式系统对性能、功耗、可靠性和实时性的要求日益严苛。针对这一趋势,瑞芯微推出的RK3506开发板凭借其创新的三核A7单核M0多核异构架构、高能低耗设计以及丰富的外设资源&#xff0…

【AI时代速通QT】第二节:Qt SDK 的目录介绍和第一个Qt Creator项目

目录 一、认识 Qt SDK 的目录结构 二、第一个 Qt 程序 2.1 Qt Creator 创建项目 2.2 介绍项目各文件 三、揭秘 Qt 的构建过程 四、运行项目与总结 🎬 攻城狮7号:个人主页 🔥 个人专栏:CQT跨平台界面编程 ⛺️ 君子慎独! &#x1f308…

CDH部署Hive详细指南

CDH部署Hive详细指南 本文将详细介绍如何使用Cloudera Manager Web界面部署Hive组件,包括安装、配置、优化和运维管理等内容。 1. 环境准备 1.1 系统要求 1.1.1 硬件要求 服务器配置 CPU:建议8核以上内存:建议32GB以上磁盘:建议使用企业级SAS或SSD网络:建议万兆网络集…

党建赋能 医校协同|广州附医华南医院与湖南中医药高等专科学校签约携手共育英才

为深入贯彻落实党中央、国务院关于高校毕业生就业创业工作决策部署,教育部印发《职业学校校企合作促进办法》,对深化医教协同提供了政策指引。在医学教育领域,鼓励医学院校与医疗机构开展深度合作,根据医疗行业需求调整专业设置与…

【RTSP从零实践】2、使用RTP协议封装并传输H264

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

行业热点丨手机中框设计如何体现增材思维?

编者荐语: 通过增材设计思维在金属边框设计晶格结构,既能减轻重量,同时也有助于散热,针对不同位置设计不同类型的晶格结构还能起到缓冲效果,提高手机抗冲击能力。 以下文章来源于Inspire增材创新设计,作者…

鸿蒙案例实战——添加水印

本示例为开发者展示常用的水印添加能力,包括两种方式给页面添加水印、保存图片添加水印、拍照图片添加水印和pdf文件添加水印。 案例效果截图 首页 页面水印 图片水印 pdf水印 案例运用到的知识点 核心知识点 页面添加水印:封装Canv…

Qt工作总结07 <qBound和std::clamp>

一、qBound简介 1. 定义 是 Qt 框架中一个非常实用的边界限制函数&#xff08;也称为 "clamp" 函数&#xff09;&#xff0c;用于将一个值限制在指定的最小值和最大值之间。头文件&#xff1a;#include <QtGlobal> 2. 函数原型 template <typename T>…

53-Oracle sqlhc多版本实操含(23 ai)

SQLHC&#xff08;SQL Health Check&#xff09;作为 Oracle 数据库性能诊断的核心工具&#xff0c;其设计理念和核心功能在 Oracle 各版本中保持高度一致&#xff0c;但在技术实现和周边生态上存在渐进式优化。定期对关键业务 SQL 执行健康检查&#xff0c;特别是在版本升级或…

math.pow()和pow()的区别

math.pow() 和 pow() 的区别 ✅ 1. math.pow() 来自 math 模块参数&#xff1a;两个数&#xff08;底数&#xff0c;指数&#xff09;结果类型&#xff1a; 始终返回 float 类型 示例&#xff1a; import math print(math.pow(2, 3)) # 输出&#xff1a;8.0 &#xff08;…

邮科OEM摄像头POE供电技术的核心优势

安防监控中&#xff0c;供电方式影响系统稳定性、安装效率与维护成本。邮科摄像头采用POE技术&#xff0c;通过网线同时传输数据与电力&#xff0c;革新传统部署模式。本文解析其六大核心优势&#xff0c;展现其作为现代安防优选方案的价值。 一、布线简化&#xff0c;效率提升…

微信小程序-数据加密

npm install crypto-js utils/aes.js const CryptoJS require(crypto-js);// 默认的 KEY 与 iv 如果没有给 const KEY CryptoJS.enc.Utf8.parse(KrQ4KAYOEyAz66RS); // 十六位十六进制数作为密钥 const IV CryptoJS.enc.Utf8.parse(ep1YCmxXuxKe4eH1); // 十六位十六进制…

【时时三省】(C语言基础)善于利用指针

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 指针是C语言中的一个重要概念&#xff0c;也是C语言的一个重要特色。正确而灵活地运用它&#xff0c;可以使程序简洁、紧凑、高效。每一个学习和使用C语言的人&#xff0c;都应当深入地学习和…

单点登录进阶:基于芋道(yudao)授权码模式的单点登录流程、代码实现与安全设计

最近遇到需要单点登录的场景&#xff0c;我使用的是芋道框架&#xff0c;正好它手动实现了OAuth2的功能&#xff0c;可以为单点登录提供一些帮助&#xff0c;结合授权码的模式&#xff0c;在改动最小的情况下实现了单点登录。关键业务数据已经隐藏&#xff0c;后续将以以主认证…

关于Seata的一个小issue...

文章目录 引言原因&#x1f913;解决方法&#x1f635;总结❤️ 引言 某一天&#xff0c;笔者在逛着Github的时候&#xff0c;突然看到seata有个有趣的issue&#xff0c;是一个task。 相关描述&#xff1a; While running the DruidSQLRecognizerFactoryTest.testIsSqlSynta…

FTTR+软路由网络拓扑方案

文章目录 网络拓扑软路由配置FTTR光猫路由器TPLink路由器配置WAN设置LAN设置 参考 网络拓扑 软路由配置 配置静态IP地址&#xff1a;192.168.1.100设置网关指向主路由的IP 设置自定义DNS服务器 开启DHCP 这一步很关键&#xff0c;可以让连上wifi的所有设备自动趴强。 FTTR光猫…

RPC - 服务注册与发现模块

为什么要服务注册&#xff0c;服务注册是做什么 服务注册主要是实现分布式的系统&#xff0c;让系统更加的健壮&#xff0c;一个节点主机将自己所能提供的服务&#xff0c;在注册中心进行登记 为什么要服务发现&#xff0c;服务发现是要做什么 rpc调用者需要知道哪个节点主机…

分布式缓存:应对突发流量的缓存体系构建

文章目录 缓存全景图Pre背景与目标说明缓存原则与设计思路缓存体系架构缓存预热与缓存预加载库存操作与缓存结合防刷、限流与缓存缓存一致性与失效异步落地与消息队列监控与指标容灾与扩展示例小结 缓存全景图 Pre 分布式缓存&#xff1a;缓存设计三大核心思想 分布式缓存&am…