004 Ethernet(以太网)详解
一、以太网
二、以太网接口

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


三、硬件设计
以太网接口硬件设计中,现在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(以太网)详解的更多相关文章
- [转帖]技术盛宴 | 关于PoE以太网供电技术详解
技术盛宴 | 关于PoE以太网供电技术详解 https://smb.pconline.com.cn/1208/12085824.html [PConline 干货铺]随着物联网技术飞速发展,需要提 ...
- LWIP network interface 即 LWIP 的 硬件 数据 接口 移植 首先 详解 STM32 以太网数据 到达 的第一站: ETH DMA 中断函数
要 运行 LWIP 不光 要实现 OS 的 一些 接口 ,还要 有 硬件 数据 接口 移植 ,即 网线上 来的 数据 怎么个形式 传递给 LWIP ,去解析 做出相应的 应答 ,2017 ...
- 以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解
转载:http://www.cnblogs.com/lifan3a/articles/6649970.html 以太网帧格式.IP数据报格式.TCP段格式+UDP段格式 详解 1.ISO开放系统有 ...
- linux查看端口及端口详解
今天现场查看了TCP端口的占用情况,如下图 红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...
- TCP/IP详解 (转)
TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中 ...
- 『TCP/IP详解——卷一:协议』读书笔记——10
2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...
- TCP/IP详解
第一篇 TCPIP协议详解 第1章 TCPIP协议族 第2章 IP协议详解 第3章 TCP协议详解 第4章 TCP/IP通信案例:访问Internet上的Web服务器 一.TCP/IP协议族 TCP/ ...
- TCP IP详解(转)
大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 网络七层协议简称OSI.TCP/IP刨除了物理层,并把上三层(会话层.表示层和应用层)统称 ...
- linux dmesg命令参数及用法详解(linux显示开机信息命令)
linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...
随机推荐
- SQL查询语句中参数带有中文查询不到结果
今天写个小demo的时候发现sql语句里面的username为中文的时候就不能查到正确结果,sql语句如下: String sql = "select * from user where u ...
- 青蛙跳台阶问题(斐波那契数列) python
一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法 class Solution: def jump(self,n): if n ==0: return 0 el ...
- MySQL存储引擎——InnoDB和MyISAM的区别
MySQL5.5后,默认存储引擎是InnoDB,5.5之前默认是MyISAM. InnoDB(事务性数据库引擎)和MyISAM的区别补充: InnoDB是聚集索引,数据结构是B+树,叶子节点存K-V, ...
- C++ 标准模板库(STL)——容器(Containers)的用法及理解
C++ 标准模板库(STL)中定义了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量(vector).队列(queue).栈(stack).set.map等.这次主要 ...
- 路由算法(Dijkstra算法以及遗传算法)
(1)Dijkstra算法 1 class Dijkstra(Algorithm): 2 """Dijkstra algorithm for unicast route ...
- Linux文件系统与日志分析
Linux文件系统与日志分析一.inode与block概述① 文件数据包括元信息(类似文件属性)与实际数据② 文件存储在硬盘上,硬盘最小存储单位是"扇区"(sector),每个扇区 ...
- C语言:监听键盘
所谓键盘监听,就是用户按下某个键时系统做出相应的处理,本章讲到的输入输出函数也是键盘监听函数的一种,例如 getchar().getche().getch() 等.下面的代码演示了 getche() ...
- C编译器
GCC:GNU Compiler Collection,即 GNU 编译器套件.TDM-GCC 4.8.1 32-BIT Release: 查看GCC的版本:C:\Program Files\Dev- ...
- SpringBoot获取前端传递JSON的几种方法
一.Json对象+@RequestBody接收 var val = {id: 1, name: "小明"}; $.ajax({ url: "/getJson", ...
- P3209-平面图判定
平面图 平面图就是所有点的连边不相交的图.(当然是在你尽量想让它不相交的情况下).这一点可以大概理解成拓扑图的性质,即每连一条边就会将某个区域进行分割--很明显,如果两个点分别处在两个不可达的区域,它 ...