嵌入式终端的以太网系统简析

news2024/11/20 7:00:49

一 初识以太网电路

从硬件的角度看,以太网接口电路主要由 MAC(Media Access Control)控制器和物理层接口 PHY(Physical Layer)两大部分构成,一般一个嵌入式终端系统的以太网硬件抽象 如下:

在这里插入图片描述

1 网线 它按通信速度分类。
2 RJ-45 以太网连接器。
3 脉冲变压器 它可以防止电流从外部直接流入并保护设备内部的电路。
关于 脉冲变压器

当我们的PHY芯片发送数据,接受到MAC层发送过来的数字信号,然后转换成模拟信号,通过MDI接口传输出去。但是我们的网线传输的距离又很长,有时候需要送到100米甚至更远的地址,那么就会导致信号的流失。而且外网线与芯片直接相连的话,电磁感应和静电,也很容易导致芯片的损坏,所以就要使用网络变压器,其主要作用是

3.1 传输数据,它把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到不同电平的连接网线的另外一端

3.2 隔离网线连接的不同网络设备间的不同电平,以防止不同电压通过网线传输损坏设备

3.3 还能使芯片端与外部隔离,抗干扰能力大大增强,而且对芯片增加了很大的保护作用,保护PHY免遭由于电气失误而引起的损坏(如雷击)

4 物理层PHY:真正用于传输数据(数/模信号转换)
发送 :将MAC下发的数字信号转换为模拟信号发送出去
接收 : 将外部的模拟信号转换为数组信号 上传给MAC

5 太网控制器 MAC:只要用于控制与对方通信(通信控制)

主要有MAC控制器、PHY芯片、网络变压器和RJ45接头组成,有的系统会有DMA控制。一般的系统中CPU和MAC以及DMA控制器都是集成在一块芯片上的,为了节省空间简化设计,很多时候网口的变压器和RJ45的接头集成在一起。

在实际的设计中,由于PHY 整合了大量模拟硬件,而 MAC 则是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将 MAC 集成进微控制器而将 PHY 留在片外。更灵活、密度更高的芯片技术已经可以实现 MAC 和 PHY 的单芯片整合。总的来说,可分为下列几种类型:

CPU 集成 MAC 与 PHY,目前来说并不多见。
在这里插入图片描述
CPU 集成 MAC,PHY 采用独立芯片,这种比较常见。
在这里插入图片描述

CPU 不集成 MAC 与 PHY,MAC 与 PHY 采用集成芯片(形成一个独立的网卡),这种也比较常见。

在这里插入图片描述

所以网卡:可以理解成phy 和mac 组成的一个芯片,直接可以通过各种接口和cpu对接

二 MAC控制器

太网控制器,作用是数据控制

EMAC即百兆网卡,GMAC即千兆网卡,属于数据链路层。MAC和PHY之间直接通过MII接口进行通信。一个MAC可以同时管理多个PHY的行为。

GMAC主要四个功能:帧发送、帧接收、GMAC控制、媒体独立接口管理(GMII)。

帧发送:
接收上层协议传来的数据,加头尾(控制信息),组成以太网帧,以位数据流形式传到物理层PHY。

帧接收:
接收物理层PHY位数据流,检查是否有效(目的IP,校验码,字节对齐),发送给上层协议,或丢弃。

GMAC控制:
用于全双工模式下控制帧的生成、检测,它处在主机和发送、接收模块之间,对普通的数据帧来说是透明的。

媒体独立接口管理(GMII)
控制物理层PHY的输入输出操作,检查物理层的状态信息。(控制PHY)

三 PHY

用于真正的收发数据。属于物理层。

RJ45网线传输的是特殊编码的差分模拟信号,而计算机等电子设备是不支持这种信号的直接输入的。比如发送数据时,MAC主要处理的数字信号,而 PHY芯片就是负责把MAC的数字信号进行编码,串行化等操作后,转化为模拟信号进行发送。它只是做信号的转换,而不对数字信号进行任何的处理,即使一帧有问题的数据,它也会如实的转发出去。收数据时的流程反之。

PHY还有个重要的功能就是实现CSMA/CD的部分功能。它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将送数据出去。

PHY 有一个重要的功能就是 自协商。 什么是自协商? 就是PHY一旦连入网络,PHY 会和它相连接的端口的PHY进行协商,当前通信使用的速率是 1000M, 100M 还是10M? 他们相互沟通后,会确定一个 两个端口都支持的最大网络速率。

PHY 还提供了自动控制LED 等的功能。根据当前网络的传输速率,是否有数据传输,来自动控制LED 灯的行为。至于如何控制LED,可以根据PHY的datasheet 进行相关配置。

四 MAC控制器和PHY的通讯

以常见的 CPU 集成 MAC,PHY 采用独立芯片为例,抽象后如下:

在这里插入图片描述
其中:
MDIO总线接口叫做串行管理接口,以太网MAC通过该接口可以访问PHY的寄存器,通过对这些寄存器操作可对PHY进行控制和管理。

MII总线接口叫做介质独立接口,主要是完成数据收发相关的业务,以太网MAC通过该接口发出数据帧经过PHY后传输到其他网络节点上,同时其他网络节点的数据先经过PHY后再由MAC接收;

4.1 MII 介质独立接口

有以下接口:
MII: 支持10M/100M,缺点是信号线太多,16根线。
RMII: Reduced MII. 简化的MII,信号线少一倍,8根线,因此时钟也要快一倍。
SMII: Serial MII. 比RMII信号线更少,4根线。
GMII: Gigabit MII。也就是千兆接口了。 相对前面三个,数据从4bit变成8bit。时钟125MHz(1000/8)。缺点是信号线太多,24根线。

RGMII: Reduced GMII。 简化版GMII,为了保持传输速率(1000Mbps)不变,在时钟上升沿和下降沿都采样。

SGMII: Serial GMII。 时钟速率625MHz,所以能到1.2Gbps

在这里插入图片描述

以 MII 为例

MII 数据接口总共需要 16 个信号,包括 TX_ER,TXD[3:0],TX_EN,TX_CLK,COL,RXD[3:0],RX_ER,RX_CLK,CRS,RX_DV 等。MII的时钟为25MHz,传输速率为10/100Mbps。

如 25MHZ时钟,数据位宽4bit(一个时钟周期传输 4bit 数据),
则传输速率: 25MHZ * 4bit = 100Mbps

4.2 MDIO 串行管理接口

如上文所述,MDIO用于上层(MAC)配置底层(PHY)的参数,它包括时钟信号 MDC 和数据信号 MDIO ,驱动程序可以通过 MDIO 和 MDC 这两根线访问 PHY 芯片的任意一个寄存器。

如果系统中不止一个PHY,MDIO 接口支持多达 32 个 PHY 。但是同一时刻内只能对一个 PHY 进行操作,那么如何区分这 32 个 PHY 芯片呢?和 IIC 一样,使用器件地址即可。同一 MDIO 接口下的所有 PHY 芯片, 其器件地址不能冲突,必须保证唯一 ,具体器件地址值要查阅相应的 PHY 数据手册。

注意,这里提到的PHY芯片Strap的物理地址仅与MDIO的配置过程寻址有关,和通常意义上的 MAC 地址没有任何关系。

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

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

相关文章

数字孪生教学楼3d可视化系统功能介绍

目前,校园教学楼运维管理阶段面临的主要难题有:数据采集不全、数据各自为阵的数据孤岛现象严重;系统的集成度低,缺乏统一、有效的运行维护处理中心平台;能耗巨大,不符合绿色建筑要求,未形成有效…

做了多年的Android开发,自己是否有擅长领域?(Framework 篇)

前言 如今Android 开发行业的招聘需求可谓是越来越高了,如果你想入大厂工作,学历还只是他们的基础入门的门槛,他们不仅要看学历还得看你是否在某块技术领域有着过硬的实力。比如:APP性能优化、Framework底层原理、音视频、APP架构…

数字验证学习笔记——SystemVerilog芯片验证17 ——数组约束

一、数组约束 1.1 数组的属性约束 多数情况下,数组的大小应该给定范围,防止生成过大体积的数组或者空数组此外还可以在约束中结合数组的其他方法sum(),product(),and(&a…

Ansys Zemax | 如何在 OpticStudio 中模拟人眼

本文是人眼模型的一个案例研究,并提供了更高级的序列模式建模技术的演示。我们将在OpticStudio中使用Liou & Brennan 1997眼睛模型创建人眼模型。在OpticStudio中成功生成这个眼睛模型后,我们将使用它来设计一个自由形式的渐进眼镜镜片。 下载 联系…

正大国际期货:2022年各行业顶级富豪身价大洗牌

2022年各行业顶级富豪身价大洗牌 富豪身价较2021年年底变动幅度涨跌幅 行业:加密货币,币安创始人:赵长鹏816%,身价174亿美元 行业:基建、大宗商品,阿达尼集团创始人:高塔姆阿达尼210%&#x…

Linux下Python脚本的编写(二)

今天试着把两个shell小脚本转化成Python版本 一. 脚本1 判断所接的nvme 在哪个CPU上 #!/bin/bash lscpu |grep -i node for nvme in nvme list|sed 1,2d|awk {print $1}|awk -F "/" {print $NF} doecho $nvmebusid$(readlink -f /sys/block/$nvme |cut -d / -f 6)ec…

【解决】VMware虚拟机中ubuntu系统联网问题——以桥接模式解决

问题描述 由于需要通过笔记本的蓝牙与外接设备进行通信,我使用的是无线网。所以需要使用VMware中提供的桥接模式,借助笔记本的无线网卡进行联网,之前设置过一次,能够正常运行,但是关机后,可能加载的快照不同…

维视智造成为苏州市人工智能行业协会首届会员单位

近日,以“智者相偕聚势赋能”为主题的苏州市人工智能行业协会一届一次会员大会暨成立大会在苏州举行,来自全市200多家人工智能相关单位的代表以及人工智能领域的知名学者、产业专家、企业家参加了会议。维视智造作为协会的首届会员,与苏州市工…

2022/12/28总结

今天AC了一道题(后面的题目对我来说好难,刷不动了) P2895 [USACO08FEB]Meteor Shower S P2895 [USACO08FEB]Meteor Shower S_lxh0113的博客-CSDN博客 学的新知识: dijkstra算法 dijkstra算法是求最短路径的算法。相比较于flo…

【真干货】Activiti7工作流如何使用?看这里

一. 前言 近日文哥有个毕业学员在公司开发时遇到了工作流的相关业务场景。在这里,文哥给大家精心准备了以Activiti为代表的工作流简单使用教程,希望能给有需要的小伙伴们一些帮助。下面我们就来开始介绍Activiti工作流的基本使用情况。 二. Activiti工…

利器 | Java 接口自动化测试首选方案:REST Assured 实践 (一)

在 REST Assured 的官方 GitHub 上有这样一句简短的描述: Java DSL for easy testing of REST services 简约的 REST 服务测试 Java DSL REST Assured 官方的 README 第一句话对进行了一个优点的概述,总的意思表达的就是简单好用。那么 REST Assured 有…

dolphinscheduler 调用shell脚本执行sql

1. 资源中心--创建文件 脚本&#xff1a; #!/bin/bash hive <<EOF alter table app.app_bi_test drop partition (dayid$1); insert overwrite table app.app_bi_test partition(dayid) select a.Ccode,a.inCcode ,a.Cname ,$1,COALESCE(b.num,0) ,COALESCE(c.c_num…

以前的任何一个行业只要与互联网技术产生联系,便焕发生机与活力

事实上&#xff0c;以往&#xff0c;我们所经历的那个互联网玩家频出的年代&#xff0c;其实就是一个以互联网技术为主导的年代。在那样一个年代里&#xff0c;互联网技术几乎是解决一切痛点和难题的万能解药&#xff0c;几乎是破解一切行业痛点和难题的杀手锏。任何一个行业&a…

XXE渗透与攻防(一)

目录 前言 XML基础知识 XML用途 XML内容 XML格式要求 XML格式校验 不同语言支持的协议 完整的XML内容 什么是XXE 案列演示 盲打-DNSLog XXE 防御 前言 现在许多不同的客户端技术都可以使用XMl向业务应用程序发送消息&#xff0c;为了使应用程序使用自定义的XML消…

高压放大器在介电泳分选的应用

实验名称&#xff1a;基于高压放大器的介电泳分选 研究方向&#xff1a;滴液分选 测试原理&#xff1a; 在非均匀电场中&#xff0c;介电体表面感生出的正负电荷处于不同场强的位置上在它受到的合力大于一定值时就会被拉向强电场方向。 测试设备&#xff1a;ATA-7030高压放大器…

类与对象(下)

类与对象构造函数构造函数体赋值初始化列表explicit关键字static成员概念特性友元友元函数友元类内部类匿名对象拷贝对象时的一些编译器优化构造函数 构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值 clas…

勃仔诞生记:Hubbleverse哈勃元宇宙的起源故事

欢迎来到Hubbleverse &#x1f30d; 关注我们 关注宇宙新鲜事 &#x1f4cc; 预计阅读时长&#xff1a;9分钟 本文仅代表作者个人观点&#xff0c;不代表平台意见&#xff0c;不构成投资建议。 想象一个属于你的世界&#xff0c;一个资源丰富的世界&#xff0c;你可以在其中…

Android TV刷机Mstar篇——以乐视超4-X50Pro为例

家里这台乐视使用好几年了&#xff0c;最近闲来无事&#xff0c;就琢磨着刷一刷&#xff0c;打造一个纯净使用体验。 记录下刷机历程&#xff0c;方便后期再查看。 一、准备工作 1、下载刷机固件&#xff0c;这里使用了ZNDS大神出的包。 超4X43 Pro/超4X50 Pro通用流畅精简…

pytorch应用(入门1)

目录学习用具张量的定义和运算Variable&#xff08;变量&#xff09;Dataset数据集之前一直是拿一个个项目来学pytorch&#xff0c;感觉不是很系统&#xff0c;借着假期的机会系统学一下。预计先把入门的知识一周学完吧。 学习用具 《深度学习入门之Pytorch》廖星宇 在Z-lib…

数字孪生流域建设及其应用

2021年底水利部召开推进数字孪生流域建设工作会议&#xff0c;会议按照“需求至上、应用至上、数字赋能、提升能力”要求&#xff0c;以数字化、网络化、智能化为主线&#xff0c;以数字化场景、智慧化模拟、精准化决策为路径&#xff0c;以算据、算法、算力建设为支撑&#xf…