赞
踩
转发: 10Base-T Ethernet decording
项目介绍
你好!
今天我将通过直接测量波形来分析10Base-T的链接过程以及数据是如何发送的。
测量使用的模块是W5100S-EVB-PICO,设置为10M half而不是Auto negotiagion,并使用TCP环回服务器示例。
请注意,10Base-t 使用正常链路脉冲 (NLP),与使用快速链路脉冲 (FLP) 的 100Base-t 不同。
蓝色波形是 W5100S-EVB-PICO 的 TX,黄色波形是 RX。
NLP 的波形周期为 100 ns,每 16 ms±8 ms 发送一次 NLP。
当数据包成为链路后发送时,必须在发送数据包之前生成前导码 (PRE) 波形和帧起始定界符 (SFD) 波形后发送。
PRE 波形是一个 7 字节(56 位)长的“10101010...”位模式,具有以下用途
1.时钟同步:前导码的主要目的是使接收器的时钟与发送器的时钟同步,这对于与网络上的其他设备进行准确的数据交换至关重要。在曼彻斯特编码方法中,每一位数据都有一个上升沿或下降沿,这些转变允许提取时钟信号并保持准确的时序。
2. 信号检测和稳定:前导码还允许网络设备检测信号的开始并为其做好准备。特别是如果设备很长一段时间没有接收到信号,前导码有助于确保接收电路被激活并准备好处理即将到来的信号。
3. 帧开始的识别:前导码后面的SFD通知接收器以太网帧中数据的实际开始。这阐明了接收器何时可以准确识别并开始处理帧的数据部分。
W5100S 上的 PRE 和 SFD
上面波形的开头是 PRE 和 SFD。
然而,要将上述波形读取为位,我们需要了解10Base-T传输数据所使用的Manchseter Encode方法。
Manchseter Encode方法是利用信号的上升沿(从0变为1)和下降沿(从1变为0)对数据位进行编码。曼彻斯特编码将时钟信号和数据信号结合起来,并将它们作为一个信号进行传输。这种方法的优点是可以从信号本身提取时钟信息。
10base-t的传输速率为10 Mbps,这意味着必须以100 ns的速率传输一位。
使用Manchseter Encode方法,我们可以分析上面测得的W5100S的PRE前导码。
您可以看到波形重复了 101010,如前所述。
PRE 和 SFD 的完整波形如下所示
您可以看到“10101011”的 SFD 波形,紧接着是一个 7 字节(56 位)长的 PRE 重复 10101010
PRE 和 SFD 波形后面是目标 MAC 和源 Mac 以太网类型、数据和帧校验序列 (FCS) 波形。
W5100S-EVB-PICO 的 Mac 为 00:08:DC:12:34:56,连接的客户端的 Mac 为 50:EB:F6:E6:5B:F8。
目标 MAC 读取“0000 1010 1101 0111 0110 1111 0110 0111 1101 1010 0001 1111”,将其翻转并转换为十六进制以获得目标 MAC。
也可以用同样的方法读取Source MAC。
对于以太网类型,您可以以相同的方式读取它来确定 IPv4。
之后测量的波形是数据波形,分析该波形将显示所使用的协议,Src IP、Dst IP、Src Port、Dst Port 等。
但下次我会分析数据波形。
波形末尾的 4 个字节(32 位)是帧校验序列 (FCS) 和 TP_IDL 波形测量。
FCS 使用 CRC-32 校验和算法检查数据错误。
TP_IDL 信号始终出现在 FCS 之后,以表示 FCS 结束,并保持 1 至少 250 ns。
在本文中,您学习了如何分析 W5100S 发送的数据波形,以了解链路在 10Base-T 上运行时会发生什么情况。
下次,我将分析本文中未涉及的数据波形,以检查协议和其他设置,并看看FCS使用的CRC-32校验和如何检测数据错误。
谢谢阅读!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。