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 功能说明:显示开机信 ...
随机推荐
- php-高级计算器
HTML代码: <!doctype html><html lang="en"><head> <meta charset="UTF ...
- 小程序textarea设置maxlength后不是你想的那样简单
可能很多小伙伴们.看见这个标题后; 觉得作者是一个标题党. textarea设置maxlength后, 限制用户输入的字符呗! 还能怎么样呢? 恭喜你,说对了一半. 之前我也一直是这样想的. 知道今天 ...
- Vue使用PrintJs自定义打印表格模板
这俩天客户提了个需求,需要打印俩个自定义的表格模板,一开始想到的是打印Json表格,但是发现表格样式不符合要求,后来想着打印html,自己生成html模板然后打印,基本可以满足客户的需求,废话不多说, ...
- sscanf功能详解(转)
#include <stdio.h> #include <stdlib.h> #include <string.h> static void sscanf_test ...
- Java | 变量 & 常量
变量 Java是一种强类型语言,每个变量都必须声明其数据类型,变量本质上就是代表一个"可操作的存储的空间",在定义之后空间位置是确定的,但是里面放置什么值是不确定的,我们操作的时候 ...
- ARTS第十二周
1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享一篇有观点和思考的技术文章 以下是 ...
- 【网络IO系列】IO的五种模型,BIO、NIO、AIO、IO多路复用、 信号驱动IO
前言 在上一篇文章中,我们了解了操作系统中内核程序和用户程序之间的区别和联系,还提到了内核空间和用户空间,当我们需要读取一条数据的时候,首先需要发请求告诉内核,我需要什么数据,等内核准备好数据之后 , ...
- JPA用法中字段起名规范
前两天在学习Springboot使用JPA 来操作数据库时,碰到一个问题,最终发现了JPA写法中表字段名称要写规范. 记录下来提醒自己. CityEntity是一个City的实体类. 1 @Table ...
- grub2引导各种ISO系统镜像
1 grub2引导winpe 1下载winpe.iso镜像,放置在U盘的根目录下 2下载syslinux的memdisk,放置在U盘的根目录下 3 set root=(hd0,msdos1) 设置U ...
- Python + Requests 知识点回顾
http://www.downza.cn/soft/11145.html PS下载地址 http://www.bejson.com/jsonviewernew/ JSON的在线视图 import re ...