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變壓器,共模電感,中心抽頭。
圖片自Pulse公司HX5008NL手冊
電壓驅動型PHY
如果網絡變壓器的中心抽頭,是直接加一個電容到地,就是電壓驅動型。
圖片自1000M PHY芯片 VSC8562手冊
電流驅動型PHY
如果網絡變壓器的中心抽頭,需要提供一個VCC(3.3V或2.5V)電源,就是電流驅動型。
圖片自100M PHY芯片DP83848手冊
信號地GND到保護地PE的連接
這是一個要注意的地方,變壓器連接RJ45線纜側,地是以PE為參考的,連接PHY一側是以信號地為參考的。這兩邊在電氣上完全隔離,但是我們看到很多參考設計,用一個0歐電阻又把兩邊連接在一起,有的則是加一個電容,又標注DNP。有很多大廠的參考設計也是如此,看來大廠也有不靠譜的時候啊。
我們認為比較合適的做法是,用1個1M歐姆的電阻,并聯一個高壓電容,跨接信號地和PE。這樣既保持了變壓器兩邊的隔離,又給靜電泄放提供了通道。參考我們之前關于ESD的文章:
關于靜電ESD防護,為什么記住100條規則也沒啥鳥用
關于靜電ESD防護,我們怎樣才能免遭毒手
RJ45連接器線序
最后比較讓人郁悶的,是變壓器到RJ45連接器的連接,它不是按照順序連,而是按照下面這種比較奇葩的順序:A+ 1,A- 2 B+ 3,B- 6,C+ 4,C- 5,D+ 7,D- 8。這種歪七扭八的順序給布線造成了很大的困擾。據說1000M是為了兼容以前的100M網,100M是為了兼容10M,10M是為了兼容以前的電話線。歷史太悠久也有不爽的時候。
網線要不要交叉
現在的網口一般都有自動識別和適應的能力,所以用直通線還是交叉線連接,不應該成為一個問題。不過我們還是把兩種線序列一下。
參考資料:
TIDA-00204 EMI/EMC Compliant Industrial Temp Dual Port Gigabit Ethernet PHY Reference Design, TI
AN2054 Gigabit Ethernet Design Guide, Microchip
MCIMX8M-EVKB,NXP