一、以太网

以太网是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。
以太网有两类:第一类是经典以太网,第二类是交换式以太网,使用了一种称为交换机的设备连接不同的计算机。经典以太网是以太网的原始形式,运行速度从3~10 Mbps不等;而交换式以太网正是广泛应用的以太网,可运行在100、1000和10000Mbps那样的高速率,分别以快速以太网、千兆以太网和万兆以太网的形式呈现。 
以太网的标准拓扑结构为总线型拓扑,但目前的快速以太网(100BASE-T1000BASE-T标准)为了减少冲突,将能提高的网络速度和使用效率最大化,使用交换机来进行网络连接和组织。如此一来,以太网的拓扑结构就成了星型;但在逻辑上,以太网仍然使用总线型拓扑和CSMA/CD(Carrier Sense Multiple Access/Collision Detection,即载波多重访问/碰撞侦测)的总线技术。

二、以太网接口

以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示

但是,在实际的设计中,以上三部分并不一定独立分开的。 由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。可分为下列几种类型:
 
1)CPU集成MAC与PHY。目前来说并不多见

2)CPU集成MAC,PHY采用独立芯片。比较常见

3)CPU不集成MAC与PHY,MAC与PHY采用集成芯片。比较常见

下图是网络接口内部结构图,虚框表示CPU,MAC集成在CPU中,PHY芯片通过MII接口与CPU上的MAC连接。

MAC及PHY工作在OSI七层模型的数据链路层和物理层。具体如下
IEEE802.3标准文档下载地址:https://ieeexplore.ieee.org/browse/standards/get-program/page/。它分为很多个section。
 
第一部分是10Mb/s以太网(其中有关于MAC的规范),第二部分是100BASE-T 100Mb/s基带网络介绍,第三部分是1000 Mb/s基带网络介绍,第四部分是10 Gb/s基带网络介绍。但是,并不是说每部分都是独立的。
 

三、硬件设计

以太网接口硬件设计中,现在CPU集成度越来越高,都会集成MAC,而对于硬件设计来说,只需要外接PHY Transceiver IC即可实现以太网通信,而PHY芯片(以百兆为例)外围电路基本如下所示:

RJ45连接器
ESD保护芯片
网络变压器
PHY Transciver
MAC Controller
晶体
电源
状态指示灯

1、RJ45连接器

RJ是Registered Jack的缩写,意思是“注册的插座”。在FCC(美国联邦通信委员会标准和规章)中RJ是描述公用电信网络的接口,计算机网络的RJ45是标准8位模块化接口的俗称。连接器由插头(8P8C接头,水晶头)和插座组成。如下图所示:

关于接头引脚定义,目前存在两种标准:T568A和T568B(最通用)。这两者的主要区别是橙色和绿色双绞线进行了交换,如下图所示:

设计这两种标准只是在线缆颜色上有所区别,目的是在线缆侧实现交叉互连。网络直通线常用于异种网络之间的互连(比如计算机交换机之间),交叉线常用于同种网络之间的互联(比如计算机与之间)。不过现在PHY芯片大部分具有自动交叉(auto MDI-X)的能力,只需要直连即可。不同网络速率及网络介质下引脚作用也不相同,如下图示意:

关于RJ45插座,也有很多分类。根据功能划分,内部有无集成变压器,有无集成LED指示灯,根据外壳分类是否金属或塑料,有无金属弹片等,进行选型时需要清楚明了。

2、ESD保护芯片

在一些工业场景下环境恶略需要增添ESD保护器件,ESD器件一版放到靠近连接器位置,对于百兆以太网来说只需要4通道低结电电容器件,根据需要的静电等级进行型号选型。

3、网络变压器

网络变压器作用是:

耦合差分信号,抗干扰能力更强
变压器隔离网线端不同设备的不同电平,隔离直流信号
网络变压器一般是由差模线圈,变压器以及中心抽头组成。如下示意:

其中初级中心抽头的接法需要根据PHY芯片来决定,电压驱动的就要接电源,电流驱动直接接个电容到地即可,是具体还要参看芯片的datasheet和参考设计了。 还需要注意的是有的变压器中间抽头是独立的有的是收发合并在一起的,设计的时候需要注意,为了防止初版硬件设计错误,可以兼容设计,如下所示:

变压器次级中心抽头使用Bob Smith电路来抑制共模噪音,利用75Ω和电容接地吸收共模能量,如上图原理图所示。

注意:有的RJ45 J已经内置了网络变压器,设计时特别注意下内部框图是如何连接的。

关于PCB Layout时,需要注意:

PHY芯片,变压器,连接器Trace需要做100Ω±10%阻抗设计,走线尽量短
差分对做等长设计,偏差小于0.5mm
避免分支
差分对走线参考平面完整

4、PHY Transceiver

作为以太网外围电路的核心器件,需要根据实际应用来选择合适的PHY芯片,基本选型指标如下:

10/100/1000Mbps
接口类型MII/RMII/GMII/RGMII/SGMII
支持单端口/双端口
光纤/电口 PHY
供电电压及工作温度
根据指标选择芯片制造厂商PHY芯片,根据datasheet以及参考手册进行设计。常见的PHY芯片厂商:

1)TI-PHY
2)MicroChip-PHY
3)Marvell-PHY
4)Realtek-PHY

5、MAC Controller

MAC端需要注意的就是使用什么接口,常见的MII/RMII/GMII/RGMII。

MII接口:

MDIO一般上拉1.5KΩ电阻
信号线需要串联电阻一般为10Ω,发送端靠近MAC,接收端靠近PHY
MII信号线单端对地阻抗应设计为50Ω±10%
TXD[3:0],TXCLK,TXEN,TXERR保证等长设计
RXD[3:0],RXCLK,RXDV,RXERR保证等长设计
信号线走线避免分层
时钟线包地处理

RMII:

50MHz外部时钟
走线规则同MII
不使用的IO可以当作GPIO使用,有的也当作复用信号,详细参考datasheet

6、晶体

晶体可以使用无源晶体以及有源晶振,50MHz应用中应使用有源晶振。需要保证晶体如下规格:

使用无源晶体时:

晶体电路靠近芯片
时钟信号原理电源以及干扰信号
时钟信号包地处理

使用有源晶振时:

需要外接供电
XCLK1不连接
走线规则参考无源晶体

7、供电

根据PHY芯片Datasheet进行设计,如下参考:

主电源上使用磁珠(Murata BLM21AG121SH1),去耦电容(10uF+100nF)组合
数字电源使用100nF滤波

8、状态指示灯

状态指示灯代表了网络连接速率状态,LED亮灭状态是由PHY芯片控制,没有标准定义,具体参考PHY Datasheet。

四、测试

1、测试工具

测试离不开工具的使用,如下:

  • Tektronix DSA71254B 示波器
  • Tektronix 3.5GHz 差分探头(型号P7330)
  • 示波器自带夹具(TC6)

2、测试夹具

测试夹具连接示意如下:

3、测试项目

  • 模板(template):要求Active Output Interface (AOI) transmitting scrambled Halt
    Line State 必须在模板内
  • 差模输出电压(differential output voltage):沿漂移应在950mv~1050mv 内
  • 振幅对称度(Signal Amplitude Symmetry):0.98~1.02
  • 升降时间(rise and fall time):AOI 的升降时间应在3.0ns~5.0ns 范围(以电压的
    10%~90%区间定义)。所有测量值的差异应不小于0.5ns
  • 波形的过冲(waveform overshoot)::过冲是相对于Vout 的百分漂移,不能超过
    5%
  • 抖动(jitter):the peak-to-peak jitter should not exceed 1.4 ns
  • 占空比失真(duty cycle distortion):在输出波形沿跳变的50%电压点测量
  • 回波损耗(return loss)

这些测试一般都是特定的case,仪表都可以自动化完成测试。还需要测试:

  • 时钟频率波形
  • 电源供电波形

4、功能测试

4.1、Ping测试

与PC连接,配置好网段IP,进行Ping测试,如下示意:

4.2吞吐量测试

吞吐量测试一般都是跑iperf测试,windows电脑端可以下载JPerf软件。一端当client,另一端当server,进行吞吐量测试,如下示意:
client:

server:

4.3、抓包工具

网口进行数据分析时,需要使用抓包工具,一般使用Wireshark软件,如下示意:

4.4、EMI测试

MII信号对于通过RE测试至关重要,速率越高对应的辐射也就越高。测试表格如下示意:

4.5、ESD测试

测试标准:IEC61000-4-2 Level 4, Criterion B

五、参考资料

004 Ethernet(以太网)详解的更多相关文章

  1. [转帖]技术盛宴 | 关于PoE以太网供电技术详解

    技术盛宴 | 关于PoE以太网供电技术详解 https://smb.pconline.com.cn/1208/12085824.html   [PConline 干货铺]随着物联网技术飞速发展,需要提 ...

  2. LWIP network interface 即 LWIP 的 硬件 数据 接口 移植 首先 详解 STM32 以太网数据 到达 的第一站: ETH DMA 中断函数

    要 运行  LWIP  不光 要实现  OS  的 一些 接口  ,还要 有 硬件 数据 接口 移植 ,即 网线上 来的 数据 怎么个形式 传递给  LWIP ,去解析 做出相应的 应答  ,2017 ...

  3. 以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解

    转载:http://www.cnblogs.com/lifan3a/articles/6649970.html 以太网帧格式.IP数据报格式.TCP段格式+UDP段格式 详解   1.ISO开放系统有 ...

  4. linux查看端口及端口详解

    今天现场查看了TCP端口的占用情况,如下图   红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...

  5. TCP/IP详解 (转)

    TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中 ...

  6. 『TCP/IP详解——卷一:协议』读书笔记——10

    2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...

  7. TCP/IP详解

    第一篇 TCPIP协议详解 第1章 TCPIP协议族 第2章 IP协议详解 第3章 TCP协议详解 第4章 TCP/IP通信案例:访问Internet上的Web服务器 一.TCP/IP协议族 TCP/ ...

  8. TCP IP详解(转)

    大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 网络七层协议简称OSI.TCP/IP刨除了物理层,并把上三层(会话层.表示层和应用层)统称 ...

  9. linux dmesg命令参数及用法详解(linux显示开机信息命令)

    linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...

随机推荐

  1. shell 调用其他shell脚本中的变量、函数

    在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一:   . ./subscript.sh  (两个点之间,有空格) 方法二:   source ./subscript. ...

  2. idea中IDEA优化配置

    进入IDEA 设置.两种方法: 1,File  -> Settings 2,工具栏有个工具按钮点下(假如没工具栏,View -> 选下Toolbar) 进入设置页面,从上到下,主要是 外观 ...

  3. MVC 与 三层架构

    https://www.bilibili.com/video/av29086718/?p=24 MVC: MVC与三层架构进行比较:

  4. bugKu管理员系统

    先F12看看,有啥发现的,发现一段注释... 感谢那个群友分享了怎么辨别base64编码,通常是A-Z,a-z,0-9,+,/,=.最后通常有0个到2个等号,我也成功用在线解码器,确实是base64编 ...

  5. windows下命令

    shutdown -s -t 0 关机 shutdown -r -t 0 重启 mstsc 远程桌面 notepad 记事本 regedit 注册表 calc 计算器 start applicatio ...

  6. 使用crt连接linux慢

    1.主要原因是linux中启用了 修改sshd的配置文件把其中dns解析设置为no即可,操作如下: [root@dong ~]# vi /etc/ssh/sshd_config 查找: #UseDNS ...

  7. 自动化运维必须要学的Shell脚本之——循环语句(for、while和until循环)

    1. 循环前先了解echo的使用 1.1 echo -n 表示不换行输出 1.2 echo -e 输出转义字符,将转义后的内容输出到屏幕上 常见的转义字符有: 1.2.1 \b 相当于退格键 转义后相 ...

  8. Django基础-02篇 Models的属性与字段

    1.models字段类型 AutoField():一个IntegerField,根据可用ID自动递增.如果没指定主键,就创建它自动设置为主键. IntegerField():一个整数: FloatFi ...

  9. CentOS 7 文件权限之访问控制列表(ACL)

    Linux的ACL是文件权限访问的一种手段.当拥有者所属组其他人(own,group,other)不能满足给一个单独的用户设置单独的权限时,ACL的出现就很好的解决了该问题. 比如其他用户own,不属 ...

  10. 团队开发day07

    开始整合项目,测试登录,注册,搜索功能, 在安卓中数据处理存在个别错误,功能逻辑有个别不正确 进行修改和完善,添加二次确认退出