罗德与施瓦茨RTO示波器的100BASE协议解码分析
创始人
2025-11-20 10:35:58
0

今天我们用以太网连接两台电脑,然后用示波器解码。一边做实验一边讲解百兆以太网波形和帧结构,最终还会讲解以太网如何从波形得到数据的整个解码过程。

准备工作

我们需要准备一台电脑运行简单的UDP发送程序:

并且将这台电脑通过百兆以太网口接上另一台电脑,同时我们用差分探头和夹具在网线中间探测波形,观察波形是否能与程序中发的数据对应。

(连线图)

黄色网线接DUT(运行udp_send.py的电脑),灰色网线接Link Partner(另一台电脑,可接收到udp数据)。

(udp_send.py代码截图)

DUT信息:

MAC地址:00:E0:4C:7A:5F:18

IP地址:192.168.2.123

Link Partner信息:

MAC地址:00:E0:33:0B:D3:B9

IP地址:192.168.2.100

我们提前了解过,网线中一共有4对差分线,100Base-TX只在其中2对差分线上单向发送信号的。DUT发往Link Partner的1对差分线线是夹具上的A,反方向的1对差分线是夹具上的B。当我们探头按连线图这样接线时,测的波形只是从DUT电脑发出的。

(以太网解码设置)

我们可以开启百兆以太网解码,并按上图选择100BASE-TX,还可以点击自动设置。

(以太网显示设置)

在显示设置中,右侧的数据格式指的是对于解出数据结果如何显示,如果要观察MAC地址建议选十六进制,如果要观察IP地址建议选无正负(整数),最终要对比4B5B结果时建议选二进制。解码层也很重要,尤其是后面对比波形和解码结果时,打开后会在彩色解码结果下出现额外的蓝色结果,我们会在文章的后半部分对其详细讲解。

以太网帧结构

我们可以先来大致看一下以太网解码结果。

电脑发送UDP数据后,建议示波器使用Normal触发,并点击Single,这样示波器在抓到以太网数据后就会暂停,方便观察。

(1 MAC结构)

你可以看到缩放窗口中是完整的以太网数据,开头是前导码,后面淡蓝色是SFD,然后是目标MAC和源MAC,绿色是LenType,橙色是数据,数据后面是FCS也就是CRC,再然后深灰色是EOS,浅灰色是IDLE。

可以观察到目标MAC和源MAC确实与Link Partner和DUT的MAC地址是对应的。

大家习惯的MAC地址都是用16进制显示,所以显示页面中数据格式要选择“十六进制”。

(2 IP结构)

我们再看一下橙色数据,Data13~16对应的是192.168.2.123也就是DUT的IP。

Data17~20对应的是192.168.2.100,也就是Link Partner的IP。

由于IP地址普遍习惯用十进制数表示,因此显示页面中数据格式要选择“无正负(整形)”。

(3载荷内容)

再往后看到Data29~Data31,它们是0x31,0x32,0x33,也就是字符串“123”对应的ASCII码,这个字符串正好就是我们电脑上python程序中发送的数据。到此为止,我们就成功地用示波器解码出了电脑发出的数据。

解码过程

我们以Data30这个数据的解码流程为例,讲述百兆以太网解码流程

通过上面的实验,你大致了解了以太网帧的结构,但你有可能会问,示波器是如何解出0x31,0x32,0x33这样的结果的?它们与模拟波形的关系是怎样的呢?我们能否用肉眼从模拟波形中解出这个结果?

答案显然是肯定的,下面我们以Data30这个数据的解码流程为例,讲述百兆以太网解码流程。

我们放大Data30,它对应的载荷数据内容是0x32。但为了尽量接近原始数据,建议显示中数据格式选择为二进制,这样橙色结果中就会显示为0011 0010,它与我们电脑发的十六进制数0x32是对应的。接下来我们一步步演示怎样从模拟波形解出这个橙色结果。

✦ 先把解码层选择为边沿。

(4解码层边沿)

从上图可以看到,现在蓝色的解码层结果是与模拟波形电平对应的,高电平对应1,0V附近对应0,低电平对应-1,这就是通常我们理解的三电平波形。

然后,我们把解码层改为二进制。

(5解码层二进制)

这时候虽然原始波形和最终数据没变,但蓝色解码层结果有变化,现在变成了模拟波形无跳变时对应0,按类似正弦波的规律跳变时对应1,这符合MLT-3。

最后,我们把解码层改为解扰。

(6解码层解扰)

这时候,蓝色解码层结果又变了,它是把之前的二进制数据做了解扰运算后的结果(与解扰码10010 00100求异或),我们观察到橙色波形Data30下的蓝色部分,一共对应了10个数据,10100 10101。如果我们查询4B5B对应关系,这两个5B结果对应的应该是0010和0011,然后再把这两组4B数据交换,就能得0011和0010,也就是Data30的橙色部分。

(4B5B对应表)

你可能会问,我们是怎么知道这时候要用10010 00100作为解扰码的?

(用来生成解扰码的移位寄存器)

答:解扰码是使用11位的线性反馈移位寄存器(LFSR)来生成2047位长的伪随机数[2],这串数据是固定的,因此事先已知。但我们事先无法知道的是从解扰码的哪个位置起作为开头与波形的二进制数据开头来做异或运算。我们只能前后滑动解扰码,直到能解出符合我们预期的结果后才知道正确的偏移位置。这个前后滑动的尝试,可能会高达8000次。

(帧结构和起始结束符号示意图)

上图上半部分与我们在示波器界面上看到的MAC帧结构一致,下半部分是经过正确解扰后的结果,在Preamble刚出现时对应的2个符号应该是J(11000)和K(10001)。上图中未画出的IDLE部分应该在Preamble之前和FCS之后,对应的符号是11111。

也就是说如果你前后滑动解扰码,并做异或运算,直到得到了11111 11000 10001,那么你就找出了正确的解扰码起始位置[1],同时也找出了MAC帧从哪里开始(从J开始)。

你可能还会问为什么做了4B5B对应后,还要按下图的方式把连续两个4B交换?

(Nibble交换)

(MII接口和PHY芯片)

这是因为MII接口传输的半字节(Nibble)流和PHY芯片内的串行比特流的顺序对应关系导致的。

相关内容

新海电气取得电流行波监测装...
国家知识产权局信息显示,保定市新海电气有限公司取得一项名为“一种电...
2026-06-21 21:41:08
加码半导体硅片!68812...
上证报中国证券网讯 沪硅产业(688126)联手股东拟向子公司增资...
2026-06-21 21:40:51
深圳基本半导体通过港交所上...
利弗莫尔 证券显示,深圳基本 半导体股份有限公司更新聆讯后资料集,...
2026-06-21 21:40:40
603986,存储芯片大牛...
据证券时报·数据宝统计,本周(6月22日至26日)A股将有49家公...
2026-06-21 21:40:12
公告精选 | 智微智能:与...
业绩报告 中国化学(601117.SH):2026年1—5月境内合...
2026-06-21 21:39:41
智微智能(001339.S...
智通财经讯, 智微智能(001339.SZ)发布公告,公司股票于2...
2026-06-21 21:39:33
打造“花生基因银行”!阳江...
打造“花生基因银行”!阳江企业自主培育13个新品种,把农业“芯片
2026-06-21 21:39:14
SiC 驱动测试:探头与示...
一、核心测试需求 SiC(碳化硅)器件开关速度快(ns 级)、电压...
2026-06-21 21:38:46

热门资讯

加码半导体硅片!688126,... 上证报中国证券网讯 沪硅产业(688126)联手股东拟向子公司增资超百亿元,加码300mm硅片产能。...
云图控股:目前暂未生产电子级磷... 【财华社讯】6月4日,云图控股(002539.SZ)在互动平台表示,公司自产的硫酸及磷酸主要用于下游...
中京电子:股票交易异常波动,提... 中京电子发布异动公告,公司股票连续3个交易日(2026年6月16日、6月17日、6月18日)日收盘价...
原创 徕... 根据RD观测的爆料,小米17T系列的首销情况(Sell out)出炉:开售前四天销量超过了7万台,其...
是德示波器企业梳理:生产测试与... 导语:在电子制造与通信测试领域,示波器作为核心测量工具,其性能稳定性与技术服务能力直接影响生产效率与...
fedDSP 发布基于电子管、... fedDSP推出了一款名为TNT的全新饱和度插件,该插件是一款零延迟饱和器,其设计基于电子管、磁带和...
每周股票复盘:中瓷电子(003... 截至2026年6月18日收盘,中瓷电子(003031)报收于176.29元,较上周的144.0元上涨...
北京弘图半导体申请通道不平衡校... 国家知识产权局信息显示,北京弘图半导体有限公司申请一项名为“通道不平衡校正方法、图像传感器、成像模组...
晶合集成申请半导体缺陷智能分析... 国家知识产权局信息显示,合肥晶合集成电路股份有限公司申请一项名为“半导体缺陷智能分析方法及装置”的专...
武汉锦秀地坪申请高透光性幻彩磨... 国家知识产权局信息显示,武汉锦秀地坪建筑工程有限公司申请一项名为“一种高透光性幻彩磨石及其制备工艺”...