今天我們用以太網(wǎng)連接兩臺(tái)電腦,然后用示波器解碼。一邊做實(shí)驗(yàn)一邊講解百兆以太網(wǎng)波形和幀結(jié)構(gòu),最終還會(huì)講解以太網(wǎng)如何從波形得到數(shù)據(jù)的整個(gè)解碼過(guò)程。
準(zhǔn)備工作
我們需要準(zhǔn)備一臺(tái)電腦運(yùn)行簡(jiǎn)單的UDP發(fā)送程序:
并且將這臺(tái)電腦通過(guò)百兆以太網(wǎng)口接上另一臺(tái)電腦,同時(shí)我們用差分探頭和夾具在網(wǎng)線中間探測(cè)波形,觀察波形是否能與程序中發(fā)的數(shù)據(jù)對(duì)應(yīng)。
(連線圖)
黃色網(wǎng)線接DUT(運(yùn)行udp_send.py的電腦),灰色網(wǎng)線接Link Partner(另一臺(tái)電腦,可接收到udp數(shù)據(jù))。
(udp_send.py代碼截圖)
DUT信息:
MAC地址:004C5F:18
IP地址:192.168.2.123
Link Partner信息:
MAC地址:0033D3:B9
IP地址:192.168.2.100
我們提前了解過(guò),網(wǎng)線中一共有4對(duì)差分線,100Base-TX只在其中2對(duì)差分線上單向發(fā)送信號(hào)的。DUT發(fā)往Link Partner的1對(duì)差分線線是夾具上的A,反方向的1對(duì)差分線是夾具上的B。當(dāng)我們探頭按連線圖這樣接線時(shí),測(cè)的波形只是從DUT電腦發(fā)出的。
(以太網(wǎng)解碼設(shè)置)
我們可以開(kāi)啟百兆以太網(wǎng)解碼,并按上圖選擇100BASE-TX,還可以點(diǎn)擊自動(dòng)設(shè)置。
(以太網(wǎng)顯示設(shè)置)
在顯示設(shè)置中,右側(cè)的數(shù)據(jù)格式指的是對(duì)于解出數(shù)據(jù)結(jié)果如何顯示,如果要觀察MAC地址建議選十六進(jìn)制,如果要觀察IP地址建議選無(wú)正負(fù)(整數(shù)),最終要對(duì)比4B5B結(jié)果時(shí)建議選二進(jìn)制。解碼層也很重要,尤其是后面對(duì)比波形和解碼結(jié)果時(shí),打開(kāi)后會(huì)在彩色解碼結(jié)果下出現(xiàn)額外的藍(lán)色結(jié)果,我們會(huì)在文章的后半部分對(duì)其詳細(xì)講解。
以太網(wǎng)幀結(jié)構(gòu)
我們可以先來(lái)大致看一下以太網(wǎng)解碼結(jié)果。
電腦發(fā)送UDP數(shù)據(jù)后,建議示波器使用Normal觸發(fā),并點(diǎn)擊Single,這樣示波器在抓到以太網(wǎng)數(shù)據(jù)后就會(huì)暫停,方便觀察。
(1 MAC結(jié)構(gòu))
你可以看到縮放窗口中是完整的以太網(wǎng)數(shù)據(jù),開(kāi)頭是前導(dǎo)碼,后面淡藍(lán)色是SFD,然后是目標(biāo)MAC和源MAC,綠色是LenType,橙色是數(shù)據(jù),數(shù)據(jù)后面是FCS也就是CRC,再然后深灰色是EOS,淺灰色是IDLE。
可以觀察到目標(biāo)MAC和源MAC確實(shí)與Link Partner和DUT的MAC地址是對(duì)應(yīng)的。
大家習(xí)慣的MAC地址都是用16進(jìn)制顯示,所以顯示頁(yè)面中數(shù)據(jù)格式要選擇“十六進(jìn)制”。
(2 IP結(jié)構(gòu))
我們?cè)倏匆幌鲁壬珨?shù)據(jù),Data13~16對(duì)應(yīng)的是192.168.2.123也就是DUT的IP。
Data17~20對(duì)應(yīng)的是192.168.2.100,也就是Link Partner的IP。
由于IP地址普遍習(xí)慣用十進(jìn)制數(shù)表示,因此顯示頁(yè)面中數(shù)據(jù)格式要選擇“無(wú)正負(fù)(整形)”。
(3載荷內(nèi)容)
再往后看到Data29~Data31,它們是0x31,0x32,0x33,也就是字符串“123”對(duì)應(yīng)的ASCII碼,這個(gè)字符串正好就是我們電腦上python程序中發(fā)送的數(shù)據(jù)。到此為止,我們就成功地用示波器解碼出了電腦發(fā)出的數(shù)據(jù)。
解碼過(guò)程
我們以Data30這個(gè)數(shù)據(jù)的解碼流程為例,講述百兆以太網(wǎng)解碼流程
通過(guò)上面的實(shí)驗(yàn),你大致了解了以太網(wǎng)幀的結(jié)構(gòu),但你有可能會(huì)問(wèn),示波器是如何解出0x31,0x32,0x33這樣的結(jié)果的?它們與模擬波形的關(guān)系是怎樣的呢?我們能否用肉眼從模擬波形中解出這個(gè)結(jié)果?
答案顯然是肯定的,下面我們以Data30這個(gè)數(shù)據(jù)的解碼流程為例,講述百兆以太網(wǎng)解碼流程。
我們放大Data30,它對(duì)應(yīng)的載荷數(shù)據(jù)內(nèi)容是0x32。但為了盡量接近原始數(shù)據(jù),建議顯示中數(shù)據(jù)格式選擇為二進(jìn)制,這樣橙色結(jié)果中就會(huì)顯示為0011 0010,它與我們電腦發(fā)的十六進(jìn)制數(shù)0x32是對(duì)應(yīng)的。接下來(lái)我們一步步演示怎樣從模擬波形解出這個(gè)橙色結(jié)果。
? 先把解碼層選擇為邊沿。
(4解碼層邊沿)
從上圖可以看到,現(xiàn)在藍(lán)色的解碼層結(jié)果是與模擬波形電平對(duì)應(yīng)的,高電平對(duì)應(yīng)1,0V附近對(duì)應(yīng)0,低電平對(duì)應(yīng)-1,這就是通常我們理解的三電平波形。
然后,我們把解碼層改為二進(jìn)制。
(5解碼層二進(jìn)制)
這時(shí)候雖然原始波形和最終數(shù)據(jù)沒(méi)變,但藍(lán)色解碼層結(jié)果有變化,現(xiàn)在變成了模擬波形無(wú)跳變時(shí)對(duì)應(yīng)0,按類似正弦波的規(guī)律跳變時(shí)對(duì)應(yīng)1,這符合MLT-3。
最后,我們把解碼層改為解擾。
(6解碼層解擾)
這時(shí)候,藍(lán)色解碼層結(jié)果又變了,它是把之前的二進(jìn)制數(shù)據(jù)做了解擾運(yùn)算后的結(jié)果(與解擾碼10010 00100求異或),我們觀察到橙色波形Data30下的藍(lán)色部分,一共對(duì)應(yīng)了10個(gè)數(shù)據(jù),10100 10101。如果我們查詢4B5B對(duì)應(yīng)關(guān)系,這兩個(gè)5B結(jié)果對(duì)應(yīng)的應(yīng)該是0010和0011,然后再把這兩組4B數(shù)據(jù)交換,就能得0011和0010,也就是Data30的橙色部分。
(4B5B對(duì)應(yīng)表)
你可能會(huì)問(wèn),我們是怎么知道這時(shí)候要用10010 00100作為解擾碼的?
(用來(lái)生成解擾碼的移位寄存器)
答:解擾碼是使用11位的線性反饋移位寄存器(LFSR)來(lái)生成2047位長(zhǎng)的偽隨機(jī)數(shù)[2],這串?dāng)?shù)據(jù)是固定的,因此事先已知。但我們事先無(wú)法知道的是從解擾碼的哪個(gè)位置起作為開(kāi)頭與波形的二進(jìn)制數(shù)據(jù)開(kāi)頭來(lái)做異或運(yùn)算。我們只能前后滑動(dòng)解擾碼,直到能解出符合我們預(yù)期的結(jié)果后才知道正確的偏移位置。這個(gè)前后滑動(dòng)的嘗試,可能會(huì)高達(dá)8000次。
(幀結(jié)構(gòu)和起始結(jié)束符號(hào)示意圖)
上圖上半部分與我們?cè)谑静ㄆ鹘缑嫔峡吹降腗AC幀結(jié)構(gòu)一致,下半部分是經(jīng)過(guò)正確解擾后的結(jié)果,在Preamble剛出現(xiàn)時(shí)對(duì)應(yīng)的2個(gè)符號(hào)應(yīng)該是J(11000)和K(10001)。上圖中未畫(huà)出的IDLE部分應(yīng)該在Preamble之前和FCS之后,對(duì)應(yīng)的符號(hào)是11111。
也就是說(shuō)如果你前后滑動(dòng)解擾碼,并做異或運(yùn)算,直到得到了11111 11000 10001,那么你就找出了正確的解擾碼起始位置[1],同時(shí)也找出了MAC幀從哪里開(kāi)始(從J開(kāi)始)。
你可能還會(huì)問(wèn)為什么做了4B5B對(duì)應(yīng)后,還要按下圖的方式把連續(xù)兩個(gè)4B交換?
(Nibble交換)
這是因?yàn)镸II接口傳輸?shù)陌胱止?jié)(Nibble)流和PHY芯片內(nèi)的串行比特流的順序?qū)?yīng)關(guān)系導(dǎo)致的。
羅德與施瓦茨業(yè)務(wù)涵蓋測(cè)試測(cè)量、技術(shù)系統(tǒng)、網(wǎng)絡(luò)與網(wǎng)絡(luò)安全,致力于打造一個(gè)更加安全、互聯(lián)的世界。成立90 年來(lái),羅德與施瓦茨作為全球科技集團(tuán),通過(guò)發(fā)展尖端技術(shù),不斷突破技術(shù)界限。公司領(lǐng)先的產(chǎn)品和解決方案賦能眾多行業(yè)客戶,助其獲得數(shù)字技術(shù)領(lǐng)導(dǎo)力。羅德與施瓦茨總部位于德國(guó)慕尼黑,作為一家私有企業(yè),公司在全球范圍內(nèi)獨(dú)立、長(zhǎng)期、可持續(xù)地開(kāi)展業(yè)務(wù)。
-
示波器
+關(guān)注
關(guān)注
113文章
6269瀏覽量
185429 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5445瀏覽量
172105 -
羅德與施瓦茨
+關(guān)注
關(guān)注
9文章
493瀏覽量
45174
原文標(biāo)題:【技術(shù)科普】| 基于R&S RTO示波器的100BASE-TX協(xié)議解碼分析
文章出處:【微信號(hào):羅德與施瓦茨中國(guó),微信公眾號(hào):羅德與施瓦茨中國(guó)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論