1. 瞎扯,以太网的前世今生
1995年的深秋,在PC时代的圣地--北京中关村,出现了一幅硕大的广告牌,上面写着日后成为经典的广告语:中国人离信息高速公路有多远--向北1500米!如今,被互联网泡着长大的一代,估计很多都没听说过这家中国最早的互联网公司了。对,它就是瀛海威,其掌门人张树新,是当时无可争议的互联网大姐大,今天一些如日中天的大佬们,当年可是只有登门求教的份儿。
互联网的大潮势不可挡,波澜壮阔,造就了多少睥睨天下的枭雄,又消磨了多少壮怀激烈的豪杰。
说起互联网不能不说一下Xerox施乐公司。据说互联网起源于施乐的一个实验室,当时只是为了把几台PC连接起来传一些数据。看到这个网络出色的表现,Xerox,Intel,和DEC三家公司在1980年发布了第一版互联网协议标准建议书,速度达到了惊人的10M。
虽然这些先驱们最终在互联网领域没有取得很高的成就,但我们今天享受网络带来的便利时,还是要感谢他们一下吧。好了,就扯这么多,下面聊点儿正事儿。
2. 各种标准,眼花缭乱
1983年,IEEE802委员会推出了IEEE802.3标准。之后的一系列以太网标准都是在它的基础上发展起来的,如802.3i,802.3u,802.3bw等等,然后又会看到10BASE-T、100BASE-TX、1000BASE-FX、1000BASE-T1,等等。感觉有点乱,有点儿懵圈。
其实这些看似乱七八糟的命名,还是有一定规律的。首先前面的数字代表频率,10/100/1000分别代表10M,100M和1000M。BASE代表传输的是没有经过调制的基带信号。最后的数字或字母代表传输距离或介质,如5代表500米,T代表使用双绞线(Twisted Pair Cable),F代表光纤(Fiber)等等。
10BASE-5:最大传输距离500米,使用50欧姆粗同轴电缆。IEEE802.3
10BASE-2:传输距离为200米,使用BNC连接器,细同轴电缆。IEEE802.3
10BASE-T:传输距离100米,使用RJ45连接器,双绞线。IEEE802.3i
100BASE-TX:广泛采用的100M以太网标准,使用2对双绞线,传输距离100米。IEEE802.3u
100BASE-F:单模或多模光纤,传输距离2000米左右。
100BASE-T1:单对双绞线,汽车以太网。IEEE802.3bw
1000BASE-T:5类非屏蔽双绞线,传输距离100米。IEEE802.3ab
1000BASE-LX:光纤,长波激光器,传输距离可达3000米。IEEE802.3z
1000BASE-T1:单对双绞线,汽车以太网。IEEE802.3bp
10GBASE-T:非屏蔽双绞线,10 G以太网。IEEE802.3an
3. 控制器,MAC,PHY,网络变压器
如同通过串口收发数据需要UART控制器,电平转换芯片(PHY)和连接器,通过以太网收发数据,需要芯片上集成以太网控制器,以太网PHY和以太网连接器。下面是一个典型的1000BASE-T以太网硬件框图。
RGMII
以太网控制器通过MAC(Media Access Control)连接至PHY,在此使用的是RGMII(Reduced Gigabit Media Independent Interface)接口。
RGMII信号定义:
TXC: 发送时钟
TX_CTL: 发送数据控制,包含TXEN和TXERR信息。
TD[3:0]: 发送数据4bits
RXC: 接收时钟
RX_CTL: 发送数据控制,包含RXDV和RXERR信息。
RD[3:0]: 接收数据4bits
MDC: 管理数据时钟
MDIO: 管理数据,完成对PHY的配置管理,状态读取。
对于1000M以太网来说,除了RGMII接口外,还可以使用GMII,SGMII。对于100M以太网,则使用MII,RMII,SMII。我们看一下RGMII的信号定义,其它的接口大同小异,主要就是数据位数,和时钟速率有所不同。
PHY,Magnetic
PHY完成数字信号到模拟信号之间的转换,以太网数据通过4对差分信号连接至变压器,经过变压器(Magnetic)隔离,再连接至RJ45连接器。这里有两个地方需要注意:一个是PHY有电压驱动型和电流驱动型,接至变压器的接法不同。再一个是变压器把电路从电气上隔离开,两边的地如何处理。
典型网络变压器如下图。内部组成:1:1变压器,共模电感,中心抽头。
电压驱动型PHY
如果网络变压器的中心抽头,是直接加一个电容到地,就是电压驱动型。
电流驱动型PHY
如果网络变压器的中心抽头,需要提供一个VCC(3.3V或2.5V)电源,就是电流驱动型。
信号地GND到保护地PE的连接
这是一个要注意的地方,变压器连接RJ45线缆侧,地是以PE为参考的,连接PHY一侧是以信号地为参考的。这两边在电气上完全隔离,但是我们看到很多参考设计,用一个0欧电阻又把两边连接在一起,有的则是加一个电容,又标注DNP。有很多大厂的参考设计也是如此,看来大厂也有不靠谱的时候啊。
我们认为比较合适的做法是,用1个1M欧姆的电阻,并联一个高压电容,跨接信号地和PE。这样既保持了变压器两边的隔离,又给静电泄放提供了通道。参考我们之前关于ESD的文章:
RJ45连接器线序
最后比较让人郁闷的,是变压器到RJ45连接器的连接,它不是按照顺序连,而是按照下面这种比较奇葩的顺序:A+ 1,A- 2 B+ 3,B- 6,C+ 4,C- 5,D+ 7,D- 8。这种歪七扭八的顺序给布线造成了很大的困扰。据说1000M是为了兼容以前的100M网,100M是为了兼容10M,10M是为了兼容以前的电话线。历史太悠久也有不爽的时候。
网线要不要交叉
现在的网口一般都有自动识别和适应的能力,所以用直通线还是交叉线连接,不应该成为一个问题。不过我们还是把两种线序列一下。
4. 原理图分享
做过硬件的同学都了解,因为一个不小心,就需要重新打次样的痛苦,不仅浪费很多时间,还要废掉不少毛爷爷,实在是肉疼。在此我们分享一个已经调试通过的1000M以太网原理图,大家可以参考。