網口的那些事兒——如何設計一個網口電路和應用

一、以太網的簡單介紹

早期的以太網標準是採用同軸線作爲傳輸介質,網絡是一種串聯式共享總線網絡,各主機通過遵循CSMA/CD(CarrierSenseMultipleAccesswithCollisionDetection)協議來保證網絡的正常通訊。

在共享式以太網之時,使用一種稱爲抽頭的設備建立與同軸電纜的連接。須用特殊的工具在同軸電纜裏挖一個小洞,然後將抽頭接入。此項工作存在一定的風險:因爲任何疏忽,都有可能使電纜的中心導體與屏蔽層短接,導致這個網絡段的崩潰。同軸電纜的致命缺陷是:電纜上的設備是串連的,單點的故障可以導致這個網絡的崩潰。

這裏寫圖片描述

80年代末期,非屏蔽雙絞線(UTP)出現,並迅速得到廣泛的應用。網絡的物理拓撲變爲星形,邏輯拓撲依舊是總線的。
這裏寫圖片描述

HUB半雙工僅僅是物理上的連接設備。

後來交換機出現了,纔算是真正的以太網網絡出現。
這裏寫圖片描述

以太網的工作機制:自動協商,自動協商的主要功能就是使物理鏈路兩端的設備自動通過交互信息 自動選擇一種運行模式來運行。自動協商的內容主要包括雙工模式 運行速率 流量控制等內容 一旦協商通過 鏈路兩端的設備就鎖定在這樣一種運行模式下直到重新引導設備或重新插拔電纜。

二、常用概念解釋

比特率:單位時間內傳輸二進制的位數,單位:bps
波特率:單位時間內傳輸碼元的個數,單位:Baudps
帶寬:信號頻率上界和下界之差,度量介質傳輸能力
誤碼率:衡量數據在規定時間內數據傳輸精確性的指標

MII總線:在IEEE802.3中規定的MII總線是一種用於將不同類型的PHY與相同網絡控制器(MAC)相連接的通用總線.網絡控制器可以用同樣的硬件接口與任何PHY
GMII(Gigabit MII):採用8位接口數據,工作時鐘125MHz,因此傳輸速率可達1000Mbps.同時兼容MII所規定的10/100 Mbps工作方式,GMII接口數據結構符合IEEE以太網標準.該接口定義見IEEE 802.3-2000.

其中:
發送器:
• GTXCLK——吉比特TX..信號的時鐘信號(125MHz)
• TXCLK——10/100Mbps信號時鐘
• TXD[7..0]——被髮送數據
• TXEN——發送器使能信號
• TXER——發送器錯誤(用於破壞一個數據包)
注:在千兆速率下,向PHY提供GTXCLK信號,TXD,TXEN,TXER信號與此時鐘信號同步.否則,在10/100Mbps速率下,PHY提供TXCLK時鐘信號,其它信號與此信號同步.其工作頻率爲25MHz(100M網絡)或2.5MHz(10M網絡).
接收器:
• RXCLK——接收時鐘信號(從收到的數據中提取,因此與GTXCLK無關聯)
• RXD[7..0]——接收數據
• RXDV——接收數據有效指示
• RXER——接收數據出錯指示
• COL——衝突檢測(僅用於半雙工狀態)
管理配置
• MDC——配置接口時鐘
• MDIO——配置接口I/O
管理配置接口控制PHY的特性.該接口有32個寄存器地址,每個地址16位.其中前16個已經在”IEEE 802.3,2000-22.2.4 Management Functions”中規定了用途,其餘的則由各器件自己指定.

RMII(Reduced Media Independant Interface):簡化媒體獨立接口是標準的以太網接口之一,比MII有更少的I/O傳輸.
RMII口是用兩根線來傳輸數據的,MII口是用4根線來傳輸數據的,GMII是用8根線來傳輸數據的.MII/RMII只是一種接口,對於10Mbps線速,MII的時鐘速率是2.5MHz就可以了,RMII則需要5MHz;對於100Mbps線速,MII需要的時鐘速率是25MHz,RMII則是50MHz.

嵌入式系統可以用來接網口的有:MII,RMII,GMII,RGMII

以太網MAC地址: MAC地址有48位,但它通常被表示爲12位的點分十六進制數。MAC地址全球唯一,由IEEE對這些地址進行管理和分配。每個地址由兩部分組成,分別是供應商代碼和序列號。其中前24位二進制代表該供應商代碼。剩下的24位由廠商自己分配。

三、網口的組成和硬件設計

這裏寫圖片描述
網口由CPU、MAC和PHY三部分組成.DMA控制器通常屬於CPU的一部分,用虛線放在這裏是爲了表示DMA控制器可能會參與到網口數據傳輸中.。
對於上述的三部分,並不一定都是獨立的芯片,根據組合形式,可分爲下列幾種類型:
1. CPU集成MAC與PHY;
2. CPU集成MAC,PHY採用獨立芯片;
3. CPU不集成MAC與PHY,MAC與PHY採用集成芯片;

或則從硬件的角度來說以太網接口電路是由MAC控制器(一般的嵌入式處理器自帶)和物理層接口(PHY)組成。
下面我直接上一張原理圖來看看以太網網口電路的組成和設計到的一些引腳定義。


處理器自帶RGMII
這裏寫圖片描述

一般設計到電路設計的,我們會關係的是時鐘,電壓和信號線(濾波等問題不在這裏的談論範圍)。
電路組成:
1、KSZ9031芯片,25MHz晶振(該電路使用的是無源晶振,外加2個18pF電容)提供25MHz的時鐘電路,RGMII總線連接網絡控制器(MAC)和PHY芯品。
2、KRJ-320DNL網口接頭,自帶變壓器。
3、外部使用3V3和1V2電壓供電


處理器不自帶MII總線
本人比較喜歡用W5300,因此也以W5300爲分析
W5300datasheet裏的第一句話便是High-Performance Internet Connectivity Solution

這裏寫圖片描述
W5300 is a 0.18 µm CMOS technology single chip into which 10/100 Ethernet controller, MAC,
and TCP/IP are integrated. W5300 is designed for Internet embedded applications where easy
implementation, stability, high performance, and effective cost are required.
由上面這段話可以看出W5300是集成MAC與PHY的。


四、後記

由於時間關係,下次我們再深入點去談論下MAC和PHY的工作原理。包括以太網一些其他的問題。
最近博主也在搭建自己的博客主頁,正在建立的初步階段還是比較簡陋,乾貨會慢慢上架,寫貼上去引點流量,可能需要1-2個月才能看起來比較牛逼。。。。。
https://jkfeng1010.github.io/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章