FIBERIOT / 基础知识
一台老式控制器通过10M电口向工业交换机发数据,网线上没有专门跟着它走的一根时钟线。交换机却能把连续的电信号还原成一个个比特。关键线索藏在信号变化的时间里。10BASE-T使用曼彻斯特编码,发送侧让每个比特的中间都有一次跳变,接收侧从这些跳变中跟踪节拍,再结合约定的方向恢复数据。
01数据值和线路电平是两件事
先想象一个未经线路编码的表示方法:用高电平保持一整位表示1,用低电平保持一整位表示0。这个方法叫不归零表示,常写成NRZ。如果连续发送多个相同值,电平会长时间不变。接收器看见一段平直信号时,除了知道它处于某种电平,还得知道这一段包含几位。两端各自的振荡器并不会在所有时刻完全同相,仅靠事先说好速率,长期运行仍需要定时线索。
曼彻斯特编码换了一种写法。一个比特被分成前半和后半,两个半位的电平不同,因此位的中间必有变化。对本文使用的IEEE 802.3方向约定,0是先高后低,1是先低后高。这个规则描述编码后的差分信号极性,并不把网口某根导体固定叫作高电平线。真实线路上的幅度、边沿和正负方向,应按接口与测量定义理解。
数据本身没有凭空多出一位,发生变化的是每位在线路上的表示。一个数据位需要两个半位来描述,所以不能把半位数量直接当作有效载荷数量。10BASE-T的数据速率为每秒一千万比特,每位时间为100纳秒,半位时间为50纳秒。这里的简单时间关系帮助我们在图上量位置,不能用它推断用户每秒一定能获得相同数量的应用数据,帧和协议还有开销。

02把0011画出来,为什么边界也可能跳变
用四位示例0011逐位展开。第一个0写成高、低,第二个0也写成高、低,接着两个1分别写成低、高。把八个半位接起来,就得到高低、高低、低高、低高。每个位中间的方向分别是下降、下降、上升、上升。只要已经知道各个位的起点,接收器就能按中间跳变的方向判断这四位。
问题在于,波形中可能还有别的跳变。第一个0结束时处于低,第二个0开始时处于高,两位交界又发生一次上升。第二个0结束为低,第一个1开始也为低,这个交界没有跳变。两个连续的1交界,则从高回到低。可见每个位中间一定跳变,而位边界是否跳变与相邻数据有关。把所有边沿都当成一个新比特的中间,会把节拍数错。
图中的实线竖标记标出四个位的中间,浅色分隔线表示位边界,两者有意分开。读图时先沿分隔线确认每位有多宽,再看位中间的方向。波形只是编码规则示意,未画出实际发送滤波、线缆损耗或接收噪声。理想方波说明的是时间与符号关系,不能据此判断某块网卡的电气合规性。
再把四位示例放到明确时间轴上:若第一位从零时刻开始,四个位中点依次在50、150、250和350纳秒。100、200和300纳秒是内部位边界。0011在100和300纳秒处有边界跳变,200纳秒处没有。把这三处与四个中点分开数,可以直接检查“每个边沿算一位”的读法为何失败。起点是为了画图假定的零点,并不表示接收器能预先知道任意波形片段的相位。
03接收器怎样跟上节拍
在实际端口里,连接器和网口磁件把双绞线信号送到物理层收发器PHY。接收电路先把到达的模拟信号处理成可供判决的变化,再由时钟恢复和解码部分跟踪边沿的时间。前导序列提供开始接收时的定时线索,后续每位必有的中间跳变,帮助接收侧持续维持节拍。时钟恢复是内部电路的功能,图里放大的轨迹不表示板卡上真的有一根叫作“恢复时钟”的外接网线。
可以把内部定时想成一把会调整位置的尺子。尺子的格宽对应预期位时间,格子中点尽量对齐应有的中间跳变。它不能看到任何边沿就立刻把尺子移动半格,否则边界跳变会把定位带偏。实际接收器根据所用编码和当前同步状态解释边沿,并在允许范围内跟踪相位变化。不同芯片实现会不同,本篇不把这一比喻当成完整锁相环电路图。
图里给出同一段0011的两条定时轨迹:左侧中点标在正确跳变,右侧把窗口错移半位。错误窗口会遇到有时存在、有时消失的边界变化,无法仅按“这里有一个边沿”稳定恢复数据。接收器要同时利用节拍、边沿方向和接收状态。即使能识别线路符号,上层仍要验证帧边界和校验结果;线路编码本身没有替以太网帧完成全部正确性检查。

04在现场怎样观察,哪些信息不能混着看
如果工业交换机仍连接10M控制器,先从管理状态确认该端口实际工作在10BASE-T。设备名字带千兆,只说明某些能力范围,实际协商结果取决于两端配置与共同能力。100BASE-TX和1000BASE-T采用不同的线路处理,不能把本图的每位高低翻转套到所有RJ45电口。单对以太网10BASE-T1L也不能因同样写10M,就沿用本篇10BASE-T波形。
想看编码后的电信号,需要适合以太网物理层的探测方法、夹具和仪器设置。随意用普通接地探头夹在未知导体上,可能改变被测条件;应按仪表及接口资料在授权台架上测量。记录测量位置、极性定义、速率、触发条件和时基。比较图形之前,先确认看到的是传输中的数据段还是链路检测相关脉冲,不能把所有空闲时观察到的变化都当成载荷位。
普通电脑抓包看到的是已经由PHY和后续逻辑还原的帧。抓包中的0x00不对应网线上一整段恒定低电平,连续相同比特仍会按线路编码跳变。同样,端口显示接收错误,只能作为进一步定位的线索,无法独立断定问题来自时钟恢复、线缆、连接器还是其他环节。需要对照两端统计、合格短线和适当物理层测量,逐段缩小范围。

05从通用机制回到产品和验收
飞畅工业轨式钢壳五路千兆电交换机资料列出10/100/1000BASE-T接口,可作为多速率工业电口的真实产品例子。使用前仍应核对交付型号、当前版本和两端协商设置。本文解释其中10BASE-T的通用编码机制,没有据此推断产品采用的PHY型号或对外开放的内部测试点,也不将示意电路作为具体整机剖面。
一次可复查的验证可以从短链路开始:记录两端型号和工作方式,发送可识别测试流,核对接收统计和业务结果。如果需要观察波形,在相同夹具与时基下比较已知合格条件和待查条件。把编码图与0011的半位顺序逐项核对,可以解释接收器怎样获取节拍;把实际运行结果和测量证据联系起来,才能判断现场链路是否正常。长时间稳定性还要按约定工况和观察时长验证,不能由一小段理想波形代替。
资料与适用范围
TI DP83848-EP 10BASE-T transmitter and receiver · Microchip IEEE 802.3 Manchester convention · 飞畅钢壳五口工业交换机
现场常见问题
10M电口的0是不是整位保持低电平?
不是。10BASE-T曼彻斯特编码下,每个0按本文方向约定由高转低,位中间发生跳变。
所有波形边沿都是位中间吗?
不是。相邻相同比特的边界也可能跳变,接收器需要按节拍与同步状态辨认。
电脑抓包能直接看见曼彻斯特波形吗?
普通抓包看已经恢复的帧。线路编码须用合适的物理层测量方法观察。
适用边界与延伸阅读
本文仅讨论10BASE-T的曼彻斯特编码。其他以太网速率、单对接口及实际波形按对应资料核对。


