https://blog.csdn.net/weixin_46094676/article/details/134802138 摘錄這個地址 我有空要仔細看看
呆萌理科生
於 2023-12-05 11:05:37 釋出
閱讀量1.2k
收藏 29
點贊數 18
文章標籤: 驅動開發
版權
偶爾看到一篇對phy與mac講解清楚的優秀文章,因此記錄下來,此文章轉發自知乎圖解通訊原理(乙太網通訊及物理層工作原理) - 知乎
概述
乙太網是一種計算機區域網通訊技術,主要由介質訪問層(MAC L2) 協議、物理層(PHY L1)協議、電子訊號連線組成。
MAC層主要有交換晶片實現,物理層由PHY晶片實現,電訊號連線主要定義電訊號的介面規範。
本文以成熟的乙太網的技術實現為案例,解讀數字通訊的部分基本原理,澄清數字通訊中一些核心的概念 :時鐘、4B/5B編碼、曼切斯特編碼、NRZI編碼、符號、波特率、位元率、CRC、擾碼。
並把關注的重點放在乙太網物理層的協議規範。
訊號傳送接收流程
信源資訊傳送-》離散資料-》信源編碼-》應用層資料處理-》網路層編碼-》物理層通道編碼-》電氣訊號符號編碼-》電訊號傳送=》
電訊號接收=》電氣訊號符號解碼-》物理層通道解碼-》網路層編碼-》應用層資料處理-》信源解碼-》信宿資訊感知
整個過程,均為二進位制離散資料處理,因此本文是一個純數字通訊的案例。
乙太網序列通訊與Uart串列埠通訊、I2C序列通訊、SPI序列通訊等序列通訊,有兩個顯著的差別:
(1)需要傳輸的物理層幀中的二進位制資料與物理線路上傳送的訊號電平之間是不再是1對1的對映關係。
(2)不需要專門的時鐘訊號線在兩個通訊的節點之間傳遞時鐘,而是透過特定的物理層的編碼技術,實現在傳輸資料的同時,也同時能夠傳遞同步時鐘。
(3)支援遠端傳輸的數字編碼技術
本文將重點闡述這這三種技術方法。
———————————————————————————————————————
一、 什麼是乙太網數字通訊
乙太網是一種基帶、區域網技術。
乙太網通訊是一種使用同軸電纜或光纖作為傳輸通道,採用載波多路訪問和衝突檢測機制的通訊方式。
資料傳輸速率高達到10M、100M、1Gbit/s, 10Gbit/s, 25Gbit/s、100G, 可滿足非持續性網路資料傳輸的需要。
1、標準乙太網
10Base-5 使用粗同軸電纜,最大網段長度為500m,基帶傳輸方法;
10Base-2 使用細同軸電纜,最大網段長度為185m,基帶傳輸方法;
10Base-T 使用雙絞線電纜,最大網段長度為100m;
1Base-5 使用雙絞線電纜,最大網段長度為500m,傳輸速度為1Mbps;
10Broad-36 使用同軸電纜(RG-59/U CATV),最大網段長度為3600m,是一種寬頻傳輸方式;
10Base-F 使用光纖傳輸介質,傳輸速率為10Mbps;
2、快速乙太網
100Base-TX 物理介質採用5類以上雙絞線, 網段長度最多100米
100Base-FX 物理介質採用單模光纖,網段長度可達10公里
3、千兆乙太網
1000Base-SX 只支援多模光纖,可以採用直徑為62.5um或50um的多模光纖,工作波長為770-860nm,傳輸距離為220-550m。
1000Base-LX 可以採用直徑為62.5um或50um的多模光纖,工作波長範圍為1270-1355nm,傳輸距離為550m。
1000Base-LX 可以支援直徑為9um或10um的單模光纖,工作波長範圍為1270-1355nm,傳輸距離為5km左右。
1000Base-CX 採用150歐遮蔽雙絞線(STP),傳輸距離為25m。
000Base-T 是100Base-T自然擴充套件,與10Base-T、100Base-T完全相容
4、10Gbps乙太網
10GBASE-CX4 -- 短距離銅纜方案用於InfiniBand4x聯結器和CX4電纜,最大長度15米。
10GBASE-SR -- 用於短距離多模光纖,根據電纜型別能達到26-82米,使用新型2GHz多模光纖可以達到300米。
10GBASE-LX4 -- 使用波長分波多工支援多模光纖240-300米,單模光纖超過10公里。
10GBASE-LR和10GBASE-ER -- 透過單模光纖分別支援10公里和40公里
10GBASE-SW、10GBASE-LW、10GBASE-EW。用於廣域網PHY、OC-192 / STM-64同步光纖網/SDH裝置。物理層分別對應10GBASE-SR、10GBASE-LR和10GBASE-ER,因此使用相同光纖支援距離也一致。(無廣域網PHY標準)
10GBASE-T-- 使用遮蔽或非遮蔽雙絞線,使用CAT-6A類線至少支援100米傳輸。CAT-6類線也在較短的距離上支援10GBASE-T。
5、40G/100Gbps乙太網
40GBASE-KR4 -- 背板方案,最少距離1米。
40GBASE-CR4 / 100GBASE-CR10 -- 短距離銅纜方案,最大長度大約7米。
40GBASE-SR4 / 100GBASE-SR10 -- 用於短距離多模光纖,長度至少在100米以上。
40GBASE-LR4 / 100GBASE-LR10 -- 使用單模光纖,距離超過10公里。
100GBASE-ER4 -- 使用單模光纖,距離超過40公里。
雖然,乙太網支援上述各種速率和物理層介面規範,但從通訊的角度來看,基本原理是相似的,是一脈相承的。
二、乙太網數字通訊案例的需求架構
為重點介紹乙太網物理層協議,本文的兩個對等的乙太網終端,跳過中間的乙太網交換機,直接採用點對點連線。
帥哥A與美女B不再透過RS232串列埠相連,而是透過乙太網相連。
目標:
帥哥A透過乙太網向美女B傳送一條二進位制訊息:0x0049 0x0020 0x004c 0x0006f 0x00076 0x0065 0x0020 0x0059 0x006f 0x0075。
對應的ASCII碼字元是:I Love You
三、乙太網數字通訊的軟硬體實現方案
1、協議棧
2、軟硬體架構與軟硬體分工
帥哥A傳送的資料,封裝(編碼)過程如下:
應用層資料編碼=》HTTP層資料編碼=》TCP層資料編碼=》IP層資料編碼=》MAC層資料編碼=》物理層資料編碼=》物理層電訊號傳送=》
美女接受的資料,拆封(解碼)過程如下:
物理層電訊號接收=》物理層資料解碼=》MAC層資料解碼=》IP層資料解碼=》TCP層資料解碼=》HTTP層資料解碼=》應用層資料解碼。
至於MAC層以上(IP以及IP之上)的編碼和解碼過程,不在本文的討論範圍。
本文重點放在MAC+PHY+線路介面層,特別是物理層的編解碼過程。
3、乙太網協議規範
IEEE802.3標準給出了乙太網的MAC層和物理層的協議規範
四、乙太網MAC+PHY+線路層的通訊模型
下面,將詳細介紹上述過程的每個環節,以及每個環節中涉及到的通訊原理中的關鍵技術。
五、信源對資訊的傳送過程及其關鍵性原理
1、信源:
這裡的信源就是計算機A。
2、離散的二進位制資料
信源需要傳送的離散的二進位制資料: 0x0049 0x0020 0x004c 0x0006f 0x00076 0x0065 0x0020 0x0059 0x006f 0x0075。
對應的ASCII碼字元是:I Love You
3、網路層編碼
IP以及IP之上,不在本章的討論範圍,本章討論MAC以及MAC層之下的協議規。
(1)探討前的概念澄清:
MAC層:稱為幀(frame)
物理層:並行資料稱為包(package)
物理層:序列資料稱為流(stream)
(2)MAC層幀結構
LLC data:信源需要傳送的離散的二進位制資料。
MAC地址:也叫實體地址、硬體地址,由網路裝置製造商生產時燒錄在網路卡(Network lnterface Card)的EPROM(一種快閃記憶體晶片,通常可以透過程式擦寫)。
MAC地址的長度為48位(6個位元組),通常表示為12個16進位制數,如:00-16-EA-AE-3C-40就是一個MAC地址,其中前6位16進位制數00-16-EA代表網路硬體製造商的編號,它由IEEE(電氣與電子工程師協會)分配,而後6位16進位制數AE-3C-40代表該製造商所製造的某個網路產品(如網路卡)的系列號。只要不更改自己的MAC地址,MAC地址在世界是惟一的。形象地說,MAC地址就如同身份證上的身份證號碼,具有唯一性。
目的地址:資料的接收方(信宿)的MAC地址。
源地址:資料的傳送方(信源)的MAC地址。
幀定界符SFD:1個位元組(8個bits:0x1010 1011),MAC層的幀同步。
由於在傳輸一個位元組時最低位最先傳輸(LSB),因此其相應的16進製表示為:0xD5,這裡有一個同樣的問題,乙太網幀的淨荷正巧也有該資料怎麼辦呢?
同步前導碼preamble:7個位元組(56個bits:0x1010 1010 ......),MAC層的位元時鐘同步。
由於在傳輸一個位元組時最低位最先傳輸(LSB),因此其相應的16進製表示為:0x55 0x55 0x55 0x55 0x55 0x55 0x55,這個連續的56個二進位制位元流,用於接收方與傳送方的二進位制位元時鐘同步。
這裡有一個問題,乙太網幀的淨荷真巧也有該資料怎麼辦呢?
解決的方法:
MAC層和物理層之間透過Tx_EN和Rx_EN來傳遞乙太網幀的開始。
兩個對等的兩個物理層實體之間,透過物理層的4B/5B編碼表明乙太網幀的開始和結束,而這兩個編碼,是不同於資料域中的任何資料的4B/5B編碼。
FCS( Frame Check Sequence):幀檢查驗序列,實際上就是CRC校驗。
CRC校驗序列的新增是
在資料傳輸過程中,無論傳輸系統的設計再怎麼完美,差錯總會存在,這種差錯可能會導致在鏈路上傳輸的一個或者多個幀被破壞(出現位元差錯,0變為1,或者1變為0),從而接受方接收到錯誤的資料。為儘量提高接受方收到資料的正確率,在接收方接收資料之前需要對資料進行差錯檢測,當且僅當檢測的結果為正確時接收方才真正收下資料。
檢測的方式有多種,常見的有奇偶校驗、和迴圈冗餘校驗等。
前一篇討論過,Uart/RS232串列埠通訊採用的就是有奇偶校驗。
迴圈冗餘校驗(Cyclic Redundancy Check, CRC):是一種根據網路資料包或計算機檔案等資料產生簡短固定位數校驗碼的一種通道編碼技術,主要用來檢測或校驗資料傳輸或者儲存後可能出現的錯誤。它是利用除法及餘數的原理來作錯誤偵測的。
乙太網通訊採用CRC32作為乙太網MAC幀資料淨荷的檢錯碼。
注意:FCS值針對乙太網MAC幀的淨荷部分,包括MAC地址+資料淨荷,不包括乙太網MAC層幀的同步字和幀定界符SFD。
4、物理層編碼
簡單的說,物理層編碼是確保原始的MAC層資料可在多種物理媒體上、安全、可靠的傳輸。
(1) 乙太網物理層又分為3個子層和2個介面
(2) 兩個介面:
Medium Independent Interface (MII): 介質無關介面。提供公共介面,遮蔽多個物理層的不同細節。這是數字MAC層與數字物理層的介面。
Medium Dependent Interface (MDI): 介質相關介面。到傳輸介質的介面,如100M電口和1000M電口或1000M光口等。這是數字物理層與物理訊號媒介的介面(光、電訊號)。
(3) 三個子層:
Physical Coding Sublayer (PCS): 物理編碼子層。完成物理層編碼/解碼功能
Physical Medium Attachment sublayer (PMA):物理介質連線子層。執行並串轉換和串並轉換功能。
Physical Medium Dependent sublayer (PMD): 物理介質相關子層。電訊號轉換到特定介質上或反向轉換(光電轉換、電電轉換)
不同乙太網速率,其物理層的協議規範是不一樣的。
不同廠家的晶片,在實現乙太網物理層協議規範時,也是有差別。
接下來,將以古老的RTL8201 10/100M PHY晶片為例,由簡單到複雜,有淺入深的介紹物理層的通訊原理:
RTL8201 10M乙太網通訊的原理
RTL8201 100M乙太網通訊的原理
其他更加複雜的功能實現,基本是基於此原理的升級與擴充套件。
(4) 802.3 物理層功能棧
(5) RTL8201功能架構
在上圖中,10M和100M的功能實現是完全不同的電路。
綠色框標註的是10M的功能實現。
紅色框標註的是100M的功能實現
接下來,將詳解其功能。
4.1 RTL8201 10M乙太網的通訊原理
4.1.1 PCS子層(Physical Coding Sublayer):物理層編碼子層
PCS子層的功能是物理層的編碼/解碼。包括三部分:
(1)與MAC層的介面
(2)物理層包的結構
(3)物理層的編碼
PCS子層與MAC層的物理介面
TXD0、RXD0:是序列資料介面, 10M速率時,物理層晶片無需要進行串並轉換,串並轉換是MAC完成的。
TXC和RXC: 接收和傳送時鐘。
COL (I): 衝突檢測的輸入,表明MAC層檢測到了衝突。
CRS(O): 載波檢測,用於PHY向MAC指示,鏈路上是否有資料正在傳送。
TXEN: MAC傳送資料指示。
PCS子層的包結構
10M速率是,物理層包的結構與MAC層的幀結構是一致的
PCS子層的編碼
物理層編碼一個重要的功能就是把原始的物理層幀資料,編碼成適合物理線路傳輸的二進位制資料。
在10M通訊的情況下,物理層晶片並沒有對物理層進行某種物理層編碼,比如4B/5B編碼或8B/10B編碼。
4.1.2 PMA子層:物理介質連線子層
PMA的功能包括
(1)傳送方向是並串轉換,接收方向是串並轉換
(2)物理層訊號編碼
(3)物理鏈路時鐘的合成/恢復。
PMA從PCS接收序列bit流,然後傳送到PMD層。
PMA使用數字鎖相環PLL,在傳送端根據標準時鍾介面傳送bit流,在接收端PLL同步序列資料流並從中提取時鐘。
傳送方向是並串轉換,接收方向是串並轉換
在10M速率下,無並串轉換,與MAC層的介面MAC本身就是序列資料。
物理層訊號編碼
物理層訊號編碼:即如何透過物理層的電訊號傳遞0和1的二進位制資料流。
常見的編碼有兩大類:不歸零碼和歸零碼。
不歸零碼:是訊號電平在一個碼元之內都要不恢復到零的編碼方式。在不歸零碼中,高電平代表1, 0電平本身就表示0,因此不能歸0.
歸零碼 :是訊號電平在一個碼元之內都要恢復到零的編碼方式。在歸零碼中,高電平和低電平不表示任何數值,而是利用訊號的上升沿或下降沿表示0或1,因此可以歸零。
在SPI和I2C通訊中,透過CMOS或TTL高低電平傳送1和0。高電平代表1,低電平代表0,
在UART通訊中,與SPI和I2C相同。
在RS232通訊中,採用了反邏輯以及15V電壓。+15V電訊號表示0, -15V電訊號表示1.
這些編碼方式都稱為不歸零碼。
其中SPI, I2C, Uart串列埠通訊的編碼方式稱為:單極性不歸零0碼,單極性指只有正(+)電平。
RS232串列埠通訊的編碼方式稱為雙極性不歸0碼。雙極性是指正(+)電平與負(-)電平。
如下圖所示:(a)就是單極性不歸零碼,(b)雙極性不歸零碼。
相對於前面提到的幾種電訊號編碼方式,在10M乙太網中,採用了一種新的物理層訊號編碼方法:曼徹斯特編碼!
曼徹斯特編碼(Manchester)又稱裂相碼、同步碼、相位編碼,它是一種歸零的編碼方式, 用電平跳變來表示1或0的編碼方法。
其變化規則很簡單:
這裡也有兩種碼元,但每個碼元不是用簡單的高電平或低電平,每個碼元symbol(代表0或1的電訊號)均用兩個不同相位的電平訊號(高電平+低電平)表示。
實際上,每個碼元是一個完整的方波訊號(有高電平,也有低電平),這裡就有兩種方式來定義方波訊號。
(A) G.E. Thomas曼切斯特編碼(又稱為標準曼切斯特編碼)
0度相位的方波(類似正弦波)表示“1”,
180相位的方波(類似餘弦波)表示“0”.
(B) 802.3 曼切斯特編碼(簡稱為曼切斯特編碼)
0度相位的方波(類似正弦波)表示“0”,
180相位的方波(類似餘弦波)表示“1”.
正好與標準曼切斯特編碼相反。
如下是用兩種不同的曼徹斯特編碼表示的一連串的二進位制碼1010 0111 001的示意圖:
從上圖示意可以看出:
在兩種曼徹斯特編碼中,每個位元位的中間都有一次跳變。差別在於上升沿和下降沿表示的數字正好相反。
並用中間的跳變表示要傳輸的二進位制資料,同時中間的跳變又可以作為時鐘訊號。
(C)差分曼徹斯特編碼
還有一種差分曼徹斯特編碼,它是曼徹斯特編碼的改進。
在差分曼徹斯特編碼中,每個位元位的中間也有一跳變。
但中間的跳變不表示要傳輸的二進位制資料,中間的跳變僅僅作為時鐘訊號。
差分曼徹斯特編碼的特別之處在於,它不是用固定的波形標識0或1,而是使用了相鄰的兩個波形符號的變化來標識0或1。
不管前一個波形符號是“類正弦的方波”,還是“類餘弦的方波”,
如果後一個波形符號symbol和前一個的波形符號symbol相同,則表示0,如下圖所示,這樣標識“0”的波形符號(symbol)就不是唯一的。
如果後一個波形符號(symbol)和前一個的波形符號(symbol)不同,則表示1,如下圖所示,這樣標識“1”的波形符號(symbol)就不是唯一的。
這種編碼方式,規避了Thomas曼切斯特編碼與802.3 曼切斯特編碼,使用固定波形標識0或1的問題。
如下是三種曼切斯特編碼的比較:
上述三種曼切斯特編碼方式,每個時鐘位都必然有一次變化,所以這三種編碼的效率僅可達到50%左右,這是曼切斯特編碼的缺點。
結論:
按照無論是資料0還是資料1,都是透過一個完整週期的正弦或餘弦訊號(當然,也可以說是方波)承載的。
物理鏈路時鐘的合成/恢復。
如上描述的,在傳送端,在時鐘的驅動下,按照曼切斯特編碼的資料,本身就內含的傳送端的時脈頻率。
從上圖可以看出,時鐘訊號是一個方波訊號,在資料0或1的電平期間,包含了一個完整的時鐘方波訊號,一個方波訊號是一個高電平,一個低電平的組合。
時鐘訊號的週期正好於承載資料0或資料1的類正弦與類餘弦的方波訊號的週期是一樣的,即頻率是一樣的。
透過曼切斯特編碼,通訊的傳送端和接收端,即不需要專門的時鐘訊號線來傳遞時鐘資訊了。
接收端透過數字鎖相環,從鏈路中恢復傳送端傳送二進位制位元的時鐘訊號的頻率與相位,且能夠完全同步。
至此10M資料速率的通訊方式下,二進位制位元就可以透過物理訊號進行傳送了。
(2)RTL8201 100M乙太網通訊的原理
1)PCS子層(Physical Coding Sublayer):物理層編碼子層
PCS子層的功能是物理層的編碼/解碼。包括三部分:
PCS子層與MAC層的介面
PCS子層的包結構
PCS子層的編碼
(1). 與MAC層的物理介面
從上圖,可看出, MII介面,物理層與MAC層之間是4位元的並行資料,而不是序列資料。
之所以是4位元的並行資料,與緊接著介紹的4B/5B編碼有很大的關係。
(2)物理層幀的傳送
Tx_En:啟動MAC幀的傳送。
TXD<3:0>:MAC層的幀,包括前導碼、幀同步碼、資料淨荷和CRC.
(3)物理層幀的接收
RX_DV:有效資料開始
RXD<3:0>:MAC層的幀,包括前導碼、幀同步碼、資料淨荷和CRC.
RX_ER:物理層接收出錯,比如資料接收到一半異常中斷,無資料。
PCS子層包的結構:物理層的包結構與MAC層的幀結構是一致的。
PCS子層的編碼
物理層編碼一個重要的功能就是把原始的物理層幀資料,編碼成適合物理線路傳輸的二進位制資料,主要用於鏈路控制、檢錯、糾錯和差錯後的重傳。
相對於10M速率的物理鏈路,100M的速率,二進位制資料的速率整整提升了10倍,導致每個通訊節點之間的干擾也會增加、受到線路噪音的干擾的影響也急劇的增加,因此需要一定的資料編碼,用來進行鏈路控制、檢錯、糾錯和差錯後的重傳。
從上圖中,可以看出,相對於10M速率,增加了4B/5B編碼/解碼、擾碼/解擾
(A)4B/5B編碼和解碼
4B/5B編碼方案是把4位元的二進位制資料轉換成5位元二進位制資料的編碼方案。
這種編碼的特點是將欲傳送的資料流每4位元作為一個組,然後按照4B/5B編碼規則將其轉換成相應5位元的編碼。
5位元的碼共有32種組合:
其中16種組合用於承載4位元的資料。
其他的16種組合用作鏈路控制碼或保留使用,如表示幀的開始和結束、物理線路的狀態(靜止、空閒、暫停)等。
如下是乙太網4B/5B資料碼對映表:
4位元的0000被編碼成了5位元的11110;
4位元的1111被編碼成了5位元的11101;
資料的編碼效率=4/5 = 80%, 即80%的編碼效率。
4B/5B編碼,還有一個重要的特性:即使原始的4位元的資料有4個全0或有3個0,編碼後的5B特的資料中,0的個數最多也就是2個。如:
0000被編碼成了11110 =》4個1,1個0
0001被編碼成了10101 =》3個1, 2個0
如下是乙太網4B/5B控制碼編碼表:
11111: 用於物理層資料流之間的填充字元,表示空閒狀態,無有效資料,主要用於維持鏈路時鐘同步。
11000/10001:物理層資料流的開始標誌,MAC層幀的前導碼的第一個位元組被對映成此5B編碼。
01101/00111:物理層資料流的結束標誌。沒有MAC層幀的相應位元域與之對應,與TX_EN和RX_DV對應。
傳送資料時,MAC層與PHY層之間的電訊號TX_EN由高電平變成低電平,則自動轉換成物理層資料流的結束標誌。
接收資料時,物理層收到該物理層資料流的結束標誌,自動把MAC層與PHY層之間的電訊號RX_DV由高電平變成低電平,通知MAC層資料傳送完成。
4B/5B編碼的好處:
採用4B/5B編碼的主要目的是為了減少傳輸線路上出現多個連續的0或1,有利於接受端提取時鐘訊號。也稱為保持線路的交流(AC)平衡, 與NRZI編碼配合使用。
額外增加的5位元的控制碼,用於通訊雙方,在物理層PCS子層實體之間,進行物理鏈路的監控和控制。
額外增加的5位元的控制碼,用於物理層實體PCS子層把監控到的鏈路狀態,透過晶片的訊號管腳,反饋到MAC層。
PCS子層資料流的結構(4B/5B編碼後的物理層的位元流)
SSD(11000/10001):物理層使用該5B控制碼,替換MAC層幀的前導碼preamble的第一個位元組。
ESD(01101/00111):物理層使用該5B控制碼,新增到MAC層幀的尾部。
IDLE(11111):物理層空閒指示,用於時鐘同步。
上述5B控制碼,對MAC層不可見,終止於PCS子層。
(B)加碼(Scrambling)和解碼
加擾是數字訊號的加工處理方法,就是用二進位制擾碼與原始二進位制資料相乘,從而得到新的二進位制資料。
與原始二進位制相比,新的二進位制在時間上被打散。
一般來說,數字通訊系統的設計及其效能都與所傳輸的數字訊號的統計特性有關。
透過加擾技術,在不增加新的資料位元的情況下,擾亂原有資料的位元順序,改變數字訊號統計特性,使其近似於白噪聲統計特性。這種技術的基礎是建立在反饋移存器序列(一種偽隨機序列)的理論基礎之上。
PMA子層:物理介質連線子層
PMA的功能包括
傳送方向是並串轉換,接收方向是串並轉換
物理層訊號編碼
物理鏈路時鐘的合成/恢復。
PMA從PCS接收並行位元流,然後轉換成序列位元流傳送到PMD層。
PMA使用數字鎖相環PLL,在傳送端根據標準時鍾介面傳送二進位制位元流,在接收端PLL同步序列二進位制流從中提取時鐘。
(1)並串轉換
這個沒有什麼可以多說的,就是5位元的並行資料,轉換成1bit的序列資料,用於線路傳送。
(2)物理層訊號編碼
在10M速率的情況系,採用的是曼切斯特編碼,即用一個完整的正弦波或餘弦表示的方波訊號表示0或1,這種編碼方案的優點是,在傳輸資料的同時,也能夠傳遞資料位元的時鐘週期,不需要專門的時鐘訊號在收發雙方傳輸時鐘訊號。
但缺點也是很明顯的,編碼後訊號的頻率是編碼前的資料頻率的2倍,即編碼效率只有50%。
有沒有一種編碼方法,既能夠傳送時鐘訊號,也能夠傳送資料,且訊號的編碼效率100%呢?很顯然目前沒有找到。
採用歸零碼NRZ編碼的I2C、SPI序列通訊,訊號的週期與二進位制資料的週期是完全對應的,編碼效率達到100%,然而,序列通訊的兩端,需要專門的時鐘訊號線傳遞時鐘。
那麼,有沒有一種編碼方式,既能夠傳送時鐘訊號,也能夠傳送資料,且訊號的編碼效率在50%~100%之間呢?
乙太網100M速率的情況下,採用的4B/5B+NRZI混合編碼的方式,就能夠得到此效果。
NRZI編碼效率為100%,且能夠確保在傳輸資料“1”的情況下,同時能夠傳遞時鐘資訊。但在傳遞資料“0”的情況下,無法傳遞時鐘資訊。
4B/5B編碼能夠確保(1)編碼效率達到80%;(2)即使使用者資料中包含連續的0位元,該編碼可以避免連續的傳輸資料0位元。
NRZI + 4B/5B的組合編碼,得到這樣的效果:既能夠傳送時鐘訊號,也能夠傳送資料,且訊號的編碼效率在80%。
不歸零碼NRZ、曼切斯特編碼、差分曼切斯特編碼、4B/5B編碼在前面已經討論過了,在這裡,探討一下NRZI 。
NRZI(Non Return to Zero Inverted),即不歸零反轉編碼,NRZI是結合了NRZ和差分曼切斯特編碼的思想。
首先,NRZI的基礎是不歸零碼NRZ,因此電訊號的符號是高電平與低電平,週期與二進位制資料的週期是一樣的。
但為了傳遞時鐘資訊,該編碼並沒有直接使用高電平或低電平表示0或1資料,而是藉助了差分曼切斯特編碼的思想,即用前後兩個電平訊號的變化來表示1和0。
如果前後兩個電平保持不變時(連續的低電平或連續的高電平),表示資料“0”;
如果前後兩個電平發生變化時(一個高電平+一個低電平或者一個低電平+一個高電平),表示資料“1”。
為了更好的理解NRZI,參見如下示意圖:
全“1”資料的NRZI編碼:
全1的二進位制位元的NRZI編碼,就是一個與資料位元率等速率的方波週期訊號。
全“0”資料的NRZI編碼:
全0的二進位制位元的NRZI編碼,是一個恆低電平或恆高電平的訊號,沒有時鐘資訊。
這是NRZI編碼最大的缺陷!!
好在4B/5B編碼,彌補了此缺陷,4B/5B編碼後,規避了全0的情況,任意4位元的資料,都會被編碼成至少包含3個1的5位元資料。
並且5位元的11111被編碼成了idle控制碼,用於在沒有資料傳送時,用此編碼傳遞時鐘同步訊號:
———————————————————————————————————————
PMD子層
PMD子層位於整個網路的最底層, 且只適用於>=100M速率的情形,主要完成
(1)MDI輸出訊號
MDI的介面訊號是差分訊號,如Tx+, TX-, 就是一對差分訊號。
差分傳輸是一種訊號傳輸的技術,區別於傳統的一根訊號線一根地線的做法,差分傳輸在這兩根線上都傳輸訊號,這兩個訊號的振幅相同,相位相反。在這兩根線上的傳輸的訊號就是差分訊號。
訊號接收端比較這兩個電壓的差值來判斷髮送端傳送的邏輯狀態。
從嚴格意義上來講,所有電壓訊號都是差分的,因為一個電壓只能是相對於另一個電壓而言的。
在非差分訊號系統裡,"系統地"被用作電壓基準點。當'地'當作電壓測量基準時,這種訊號被稱之為單端電壓。
當兩個導體上被同時加入的一個幅度相等、相位相反的電壓,也就是所謂共模訊號,訊號值是兩個導體間的電壓差。
差分訊號的第一個好處是,線路中傳輸的訊號自包含了“基準訊號”,因此能夠很容易地識別小訊號。在一個“地”做基準的單端訊號方案的系統裡,測量訊號的精確值依賴系統內'地'的一致性。訊號源和訊號接收器距離越遠,他們區域性地的電壓值之間有差異的可能性就越大,因此被傳輸訊號的幅度就不能太低。差分訊號恢復的訊號值在很大程度上與雙方的系統'地'訊號的精確值無關,只與傳輸的訊號的幅度差有關。
差分訊號的第二個主要好處是,它對外部電磁干擾(EMI Electromagnetic Interference)是高度免疫的。一個干擾源幾乎相同程度地影響差分訊號對的每一端。既然電壓差異決定訊號值,這樣將忽視在兩個導體上出現的任何同樣干擾。除了對干擾不大靈敏外,差分訊號比單端訊號生成的 EMI 還要少。
差分訊號提供的第三個好處是,在一個單電源系統,能夠從容精確地處理'雙極'(正負)訊號。為了處理單端,單電源系統的雙極訊號,我們必須在地和電源幹線之間某任意電壓處(通常是中點)建立一個虛地。用高於虛地的電壓來表示正極訊號,低於虛地的電壓來表示負極訊號。接下來,必須把虛地正確地分佈到整個系統裡。而對於差分訊號,不需要這樣一個虛地,這就使我們處理和傳播雙極訊號有一個高真度,而無須依賴虛地的穩定性。
(2)網路變壓器
在物理層晶片輸出與RJ45線路訊號輸出之前還有一個網路變壓器,進行電訊號的隔離。
變壓器功能
電氣隔離
任何CMOS的晶片工作的時候產生的訊號電平總是大於0V的,PHY輸出訊號送到100米甚至更長的地方會有很大的直流分量的損失。而且如果外部網線直接和晶片相連的話,電磁感應(打雷)和靜電,很容易造成晶片的損壞。網路變壓器本身就是設計為耐2KV~3KV的電壓的。也起到了防雷保護作用。
再就是裝置接地方法不同,電網環境不同會導致雙方的0V電平不一致,這樣訊號從A傳到B,由於A裝置的0V電平和B點的0V電平不一樣,這樣可能會導致很大的電流從電勢高的裝置流向電勢低的裝置。
網路變壓器把PHY送出來的差分訊號用差模耦合的線圈耦合濾波以增強訊號,並且透過電磁場的轉換耦合到連線網線的另外一端。這樣不但使網線和PHY之間沒有物理上的連線而換傳遞了訊號,隔斷了訊號中的直流分量,還可以在不同0V電平的裝置中傳送資料。
從這個層面上看,網路變壓器有點像“天線”:裝置上的電訊號,透過變壓器“耦合”到RJ45的線路中,就像天線把電訊號耦合成成電磁波訊號,傳送到空間中一樣。
共模抑制
在雙絞線中的每一對訊號(如Tx+,Tx-)導線是以雙螺旋形結構相互纏繞著。流過每根導線的電信幅度相同、相位差180度,因此其所產生的磁場受螺旋形的制約、抵消,防止了訊號自傳輸過程中能量的散發損耗。
即對差模訊號而言,它在每一根導線上的電流是以相反方向(幅度相等的一對正負訊號)在一對導線上傳送。如果這一對導線是均勻的纏繞,這些相反的電流就會產生大小相等,反向極化的磁場,使它的輸出互相抵消。
在這一點上,正好與天線相反:
天線中的電流在兩根導線上以相同方向流動,並經過寄生電容CP到地返回。在這種情況下,電流產生大小相等極性相同的磁場,它們的輸出不能相互抵消。共模電流在對絞線的表面產生一個電磁場, 電訊號就透過電磁場散發到空間中。
(3)SFP光訊號介面:光纖連線、電/光轉換等功能。
PMD是由電/光收發器SFP完成的,SFP光模組是光通訊的核心器件,是透過光電轉換來實現裝置間資訊傳輸的介面模組,由接收部分和發射部分組成。其中傳送端把電訊號轉換成光訊號,透過光纖傳送後,接收端再把光訊號轉換成電訊號,傳輸媒質為光纖。
SFP與物理層晶片之間的訊號介面:
發射部分原理
輸入一定位元速率的電訊號經內部的驅動晶片處理後驅動半導體鐳射器(LD)或發光二極體(LED)發射出相應速率的調製光訊號,其內部帶有光功率自動控制電路(APC), 使輸出的光訊號功率保持穩定。
接收部分原理
一定位元速率的光訊號輸入模組後由光探測二極體轉換為電訊號,經前置放大器後輸出相應位元速率的電訊號。同時在輸入光功率小於一定值後會輸出一個告警訊號。
光模組的主要引數及意義
傳輸速率
傳輸速率指每秒傳輸位元數,單位 Mbps 或 Gbps。
目前常用的傳輸速率有 155Mbps, 1.25Gbps, 2.5Gbps, 10Gbps等。
傳輸距離
光模組一般有多模550m, 單模15km, 40km, 80km和120km等。
光模組的傳輸距離分為短距、中距和長距三種。一般劃分如下:
光訊號在光纖中傳輸時會有一定的損耗和色散,這是光模組的傳輸距離受到限制的主要原因。
中心波長
中心波長指光訊號傳輸所使用的光波段,單位奈米(nm), 目前主要有850nm波段、1310nm 波段以及 1550nm 波段。
至於電訊號如何調製到光訊號上,將單獨的章節探討。
至此,使用者資料的與“I Love you”對應的二進位制資料,經過乙太網MAC層封裝、物理層的數字編碼、電訊號符號編碼,轉成了相關的電訊號,再經過網路變壓器或SFP光電轉換器,就可以在物理線路上傳送了。
六、通道對資訊的傳輸過程
這裡的通道主要是指RJ45雙絞線通道與光纖通道。
七、信宿對資訊的接收過程及其關鍵原理
1、乙太網的解碼過程
2、信宿的接收過程
信宿對資訊的接收過是訊號的傳送過程的反向過程
(1)訊號的接收:
如果是10/100M電口,這裡主要是RJ45口和網路變壓器對物理訊號的接收
如果是100M光口,這裡主要是SFP光電轉換器對光訊號的接收,並轉換成電訊號。
(2)物理層電訊號解碼或符號解碼
如果是10電口, 主要是曼切斯特編碼解碼。
如果是100M電/光,這裡主要是NRZI解碼。
(3)物理層通道解碼:如果是100M電/光,主要是擾碼、4B/5B編碼
(4)網路解碼:解碼MAC層解幀與CRC校驗。
(5)資料:經過CRC檢查和MAC幀解碼,得到“I Love You”對應的二進位制ASCII編碼的資料。
(6)信宿:美女B
美女B是一個程式設計師,透過二進位制,直接翻譯成“I Love You”,感受到了帥哥A的濃濃愛意。
至此,整個乙太網通訊案例介紹完畢。
擴充套件閱讀:
訊號波形及頻譜
樂竹:網路層接收訊息—分片組裝
09 論資料如何被切片的-IP切片及IP首部講解
————————————————
版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。
原文連結:https://blog.csdn.net/weixin_46094676/article/details/134802138