10BASE-T1S存在问题,还不能胜过CAN
10BASE-T1S存在问题,还不能胜过CAN
杨福宇 yfy812@163.com 2025-9-29
摘要:10BASE-T1S是为汽车中用的连接上层以太网而开发的底层协议,目标是取代各种CAN,FlexRay,Link等传统应用的协议,达到一网到底。据本文引用的内容,10BASE-T1S的总线非终端节点在干扰下有干扰引起的共振,终端节点无共振,共振使局部通信出错,而它没有CAN的报错功能,就无法保证数据无时差的全局一致性。
10BASE-T1S的干扰测试幅度比汽车中常用的ISO7637-3,3a,3b要小一些,它的标准要求的共模抑制比指标很高,但是实用的共模电感没有提供产品的该项指标,按常规商品的指标,即使没有共振,也是会引起出错的。
10BASE-T1S的调度功能PLCA协议有二个弱点:其一,它不是时间调度,而是节点轮流发送,前面发送占的时长变化会影响到后面节点开始发送时间,形成抖动。第二个问题是一些控制符出错后会丢帧。
10BASE-T1S的扰码器部份是画蛇添足,即使没有,后面的差分曼彻斯特编码已经能保证总线电平没有长时间的低频分量。扰码器有错误增多的特点:总线传送时的一个错会引起扰码器和解码器不同步,形成后续更多的错,增加了错帧漏检的概率,而10BASE-T1S没有提供错帧漏检的概率的分析,无法证明它能满足功能安全要求的级别。
这些问题表明它要代替CAN还有更多的工作要做。
关键字:以太网,10BASE-T1S,CAN,功能安全,汽车电子,
全面的信息是作好正确决策的前题,否则事倍功半,失去先机。一年3千万辆车有几年可持续?假设出口600万辆,2400万辆要国内消化。截至2025年3月,中国中产阶级人数达1.09亿人,截至2024年,国内中产(年可支配收入15-50万元)已购车的比例达到43.54%,剩下的要从脱贫转为中产才有新的买方。哪么市场容量是6.16千万辆车。3年后市场必定要小很多,卖不出去的车就是全损了,卖不出的车一定是安全性差的车。安全是以木桶最短板来决定的,车内通信是这个最短板一类的,没加改进L2级车都不安全,辅助自动驾驶系统ADAS只讨论感知和决策,却不考虑通信阻当了正确执行,L3、L4级车就建在沙滩上了。所以我写了为什么要改掉CAN的error passive和bus off V1_can error passive-CSDN博客
https://blog.csdn.net/yfy812/article/details/149198472
Achilles‘ Heel of 100Base-T1:Link re-establish time of 200ms-CSDN博客
https://blog.csdn.net/yfy812/article/details/150349692
这是另外的大家可能未注意的议题10BASE-T1S,是与CAN竞争的对手。对它要充份了解,不要盲目跟踪芯片开发和应用的选用。我们应该推动国内对以太网及CAN协议的改进,注意应用上的补救措施的研究。
#1带共模电感的测试结果不理想
这是NXP专家2024年10月写的干扰测试的结果:1)支线接收节点上有干扰共振,会造成误码;2)因此支线上有共振引起的误码而终端节点无误码,(我认为这本身是一个重大隐患:网络内数据将是不一致的);3)实车测试存在未说明的原因引起的、与DPI,BCI测试的巨大差别,这个差别可大到58%。
P6/27
P7/27
这个共振将引起误码:10BASE-T1的传送Symbol是12.5MHz,在差分曼彻斯特码传送时,位值采样和时钟采样的间隔是1/2Bit,即40ns,1.81Mhz的共振干扰,其干扰宽将是552ns。按差分输入阻抗20K(p6图),总线上DPI输入干扰40V(本图)时干扰幅度可达18V(本图内数据)。而信号幅度为1V(p15图),所以是会形成误码的。
另外,共模电感在热拔插时可能单线先断路,造成感应高压,伤及收发器芯片,这在用共模电感的CAN线路中发生断线时伤及收发器是有提醒的。
P8/27
总线式应用是车内用法的主要形式,要求高。
P12/27解释了3种测试场境
P15/27 0.7VRMS=1VPP
P13/27三种测试结果有巨大差别,即使DPI/BCI测试通过,车测也通不过!
P18/27注,将终端电阻去掉就代表分支上的节点,故有“floating”的说法。注意DPI的设定值为30VRMS=43VPP,它是加到总线上的,比后面分析ISO7637-3a,3b时的值还小一些。
为了用DPI/BCI测试结果来反映车内测试结果,修改了测试方法,然后比较了测试方法的差别:
P17/27
P19/27
P21/27
结果就比较一致了:
P20/27
这种一致是新方法中添加了Updated Coupling Network ,它实际上是加入了很大的差模干扰,幅度差~58%。而这个差模干扰不是共模电感形成的,因为共模电感在新老测试方法中都存在。那么这个差模电压是哪里来的?原文没有回答。因此没有解决实际车内的性能保证。
作为猜想,我感到可能是电源线部份的干扰引起的差别(在DPI,BCI测试时电源是不受干扰的)。由此,10Base-T1S的总线供电用法要警惕了。
#2共模电感本身的共模变差模系数在实物中未提供
“IEEE 10BASE-T1S EMC Test Specification for Common Mode Chokes”
Version 1.0 p35/39 这个附录中要求很高,但在标准中没测试,令人怀疑其有效性。
TDK的“Common mode filters for automotive Ethernet 10BASE-T1S.” ACT1210E type数据表没有CDMR指标 这种模糊也可认为CDMR指标是按实际可达的现状实施的。
高频信号线用共模电感(用于 USB、HDMI、以太网等,频率可达 100MHz 以上)这类电感通常很小,采用镍锌铁氧体等高频材料。CDMR 比值:相对较低,因为物理尺寸小,绕组紧密耦合。典型值可能在 10:1 到 100:1 之间。大约 20 dB 到 40 dB。其主要作用是抑制高频共模噪声,同时必须保证对高速差分信号的完整性影响最小。
现在分析1/100的CDMR可能的影响:
下文可导出辐射干扰的等效表达方法,可用于计算总线上干扰量的大小。【D:\AUTO\CCC_paper_TEMC—7637-3模拟】Niels Lambrecht , H. Pues et al. A Circuit Modeling Technique for the ISO 7637-3 Capacitive Coupling Clamp Test. IEEE TRANSACTIONS ON ELECTROMAGNETIC COMPATIBILITY, VOL. 60, NO. 4, AUGUST 2018
Lambrecht 对ISO 7637-3电容耦合钳法(CCC)作了理论分析建模:
进行了仿真与实测的比较。该文提到其内容以ISO 7637-3 的60V干扰波型3B(REF 6.p3/9)为例。他说 “In this paper, we will test with the pulse 3b shown in Fig. 3 at level II. This test level corresponds to the following parameter values: US = 60 V, tr = 5 ns, td = 0.15 μs, t1 = 100 μs, t4 = 10 ms, and t5 = 90 ms.”。而这个实测数据我将用于本文中。
当干扰源为60V,负载为10KΩ时,实测负载上分得的电压为25V(引述上图9),这个结果可以推导出传递途径的等效阻抗约为14KΩ@16MHz(由td = 0.15 μs近似)。
10Base-T1S用的共模电感为200μH ,在ISO7637-3的3a,3b的16MHz干扰下,其感抗近似20.1K@16MHz。因此在ISO7637-3的3a,3干扰幅度100V时总线上分得的干扰为20/(20+14)*100V=58V,按照CDMR =1/100计算,将有0.58V的差模干扰进入节点,引起误码。
P44/45
例如作为PLCA调度中至关重要的用于分隔各节点发送用的TO为空闲,其电平判据为300mVpp,如果干扰大就判错,后面的执行就乱套。据介绍,TO时发送节点输出应处于短路状态。因为干扰有局部特性,干扰在传输线终端短路时会有反射,但是其它方向的接收节点已经收到干扰。接收节点接收干扰的强度也有差异,每经过一个分叉瞬态就要降1/2,等stub反射后再升上去,结果干扰下游节点可能有的认为有TO,有的认为没有,加上干扰进入位置可能在总线的某个中间位置,情况会更复杂。整个PLCA循环就会乱,无错的收下新帧,有错的等下一个TO,一个PLCA循环少了一个TO,后续演变如何?
https://microchip.my.site.com/s/article/Encoding-and-Polarity-of-10BASE-T1S-BEACON中讲到
“Five of these N symbols make up the BEACON (20 x 100ns bit times, 2us).”
由此可以看到如果干扰引起部份节点的Beacon出错,那么这个PLCA循环的帧就会不一致接收。
如果要完全达到IEEE 10BASE-T1S EMC Test Specification for Common Mode Chokes Version 1.0 p35/39 附录中要求CDMR =64dB。那么制造工艺的不对称性要控制到0.06%(包括长期应用中的环境变化),这可能使共模电感的成本远高于收发器芯片。
#3 10Base-T1S的物理层冲突避撞机制PLCA(Physical Layer collision Avoidance)讨论
这是2018年7月关于PICA的介绍
P3/23
每个节点有一个ID, ID=0的节点负责管理整个总线上的循环发送的控制。ID=0的节点以发送Beacon开始循环,每个节点以收到Beacon来同步自己的循环开始。循环开始后节点按ID编号轮流发送,前一个节点发送完后有一个总线静默时间TO(20bit),作为下一个ID节点的发送机会。如果一个节点来不及发,那么为了不超过20bit长,就必须先发一个称为COMMIT的字符占了这个发送机会。
由这段概论可以知道,Beacon引导的循环时长是可变的。当然每个节点占的带宽是不受主节点控制的,有点像CAN那种事件触发机制,但又不是,ID低的节点总是优先占带宽,无论其内容是否紧要。
这种机制的消息送达时间的抖动可能比较大。举例:每个节点发送时刻有初始相位差,1)如果没有全系统的时间同步机制,这个初始相位差由于各节点的时钟有差而周期性变化,在某时刻它们的发送要求就不再有相位差,在某最小公倍数时所有节点会同时要求发送,总有节点被推迟发送。极端情况例如各个节点都在发送Beacon时就绪待发,前7个节点每个节点发1个以太帧=1518字节=12144bit=1.21ms,那么PLCA前面7个节点需要8.50ms,第8个节点的8ms周期的消息发送推迟,就丢帧了。非极端情况,例如第8个节点的20ms周期的消息发送推迟了8.50ms,就是抖动(正常送达时间和最迟送达时间之差)8.50ms。2)即使有了全系统的时间同步机制,并非所有帧都是周期性发送,部份节点的事件性发送也会推迟后续节点的发送,形成抖动,例如有一个节点本来无发送,突然某事件发送要发1帧,后续节点就推迟1.21ms。
P8/23这是介绍如何使急着发送的节点用碰撞机制抢先的设想,由于要深入了解内部设计是超出了用户能力,无法加以评论。
这是另一个涉及PLCA的文件,谈到了BUG(2018年9月)
#4扰码器有点像蛇足
长时间的同极性电平会形成传输线电容直流电平偏移,信号电平变化因此也偏移,眼图变小,在线路上信号抖动增大,甚至出错。10BASE-T1S在信道编码上采用了多种方法来避免总线上持续的同极性symbol传送。这些方法有扰码器,4B5B编码,差分曼彻斯特编码。实际上只要4B5B编码,差分曼彻斯特编码就够了。其中4B5B编码还要用于补充控制码的传送用途,否则也可省。
差分曼彻斯特编码的核心口诀是“有0则跳,有1则延”,即发送方数据位为0时在起始处跳变,为1时保持电平不变,每位中间固定跳变用于同步。从原理上讲:它是由沿的变化决定位值的,接收方要在上一位后1/4处和本位前1/4处采样2次,才能判出是否有跳变。发送方在位时间1/2处制造时钟沿,接收方要对此处的上升沿或下降沿同步。这种差分曼彻斯特编码的每bit都有正负各占半的电平,所以它没有直流电平的积累。
10BASE-T1S的差分曼彻斯特编码定义略有不同。
此图引自 经纬恒润“10BASE-T1S协议解读系列(3)—PHY机制”
这是从标准来的( IEEE, 802.3cg-2019, "IEEE Standard for Ethernet, Amendment 5: Physical Layer Specifications and Management Parameters for 10 Mb/s Operation and Associated Power Delivery over a Single Balanced Pair of Conductors ", 2019.)我未看到原文,从图可知它与平时我们知道的DME(见上节)不同。时钟沿在每位开始处,所以不管下一位是0还是1,都要有跳变。而位值在50%处有跳变为1,无跳变为0。
这个编码方法下,1的前半位和后半位电平相反,直流电平贡献=0。0的贡献在偶数个且相邻时贡献=0。而奇数可表达为若干个相邻偶数0和若干个1位0,可能的直流电平贡献=1/2幅值,不会积累,它是一位高频波动,可以被滤除。所以不会影响共模电感的工作。
扰码器是一个线性反馈移位寄存存器,生成多项式为G(X)=X17+X14+1,它的种子是一个伪随机数,假设为(X0,X1,X2,…,X16)=(a0,a1,a2,…,a16)
10BASE-T1的扰码器更新规则为反馈项FB=X16 xor X13, 输出OUT=FB xor IN, 而扰码器状态更新为将OUT移入X0。
于是当IN= FB时便有OUT=0,扰码器状态可以通过IN的配合逐渐变为全0。
从初始状态求对应输入的过程如下:
IN1=X16 xor X13=a16 xor a13时,OUT1=0
IN2=X16 xor X13=a15 xor a12时,OUT2=0
IN3=X16 xor X13=a14 xor a11时,OUT3=0
…
IN13=X16 xor X13=a3 xor a0时,OUT13=0
IN14=X16 xor X13=a2 xor OUT1 =a2 时,OUT14=0
IN15=X16 xor X13=a1 xor OUT2 =a1 时,OUT15=0
IN16=X16 xor X13=a0 xor OUT3 =a0 时,OUT16=0
因此对应每个扰码器初始状态,都有一个输入IN可使输出OUT=0。
当扰码器状态为全0之后的连续17位,输出便是输入的复制,而且扰码器的状态也是输入的状态。
FB17=0, OUT17=IN17
FB18=0, OUT18=IN18
…
FB32=0, OUT32=IN32,
因此,当后继输入(IN17之后)为0时,扰码器的状态保留为全0,输出状态也是全0。扰码器的分散输出电平的作用就没有了。例如传送AI的稀疏矩阵数据就是这种状况。
但是后面连接的的差分曼彻斯特编码DME在全0时仍可保证没有直流电平偏移。因此扰码器既不能保证它的输出无相同位流;没有它也可以总线上无直流电平持续,所以是多余的。
相反,扰码器的错误增多机制是有害的。假设总线上symbol1处传送有错,那么这个错在解码器处变为解码错误,这个解码错存入了解码器的a0处,使解码器的状态与扰码器的状态不再同步,随着新symbol移入,a0移到a13,a16时symbol13和symbol16又会解码错,这些新错又存入新的a0处,形成扰码器与解码器新的异步,造成新一轮解码错,直到这个帧结束。假设从symbol1处到结束有8字节,那么会有symbol1,symbol13,symbol16,symbol26,symbol32,symbol39,symbol48,symbol52,symbol64共9个错,到结束越远,错越多,而这只是总线上实际只发生了一个错(symbol1)的情况,发生2个错又如何?
而以太帧用的CRC32只能保证查出3位错,错帧漏检的概率可能增大,现在还没有10BASE-T1S关于扰码器增错后的漏检概率的文献。如果错帧漏检了,就可以认为发生了一次故障(例如本应减速的数值变为加速的数值),就可以算出每小时的故障率。因此无法证明这种技术能满足功能安全需要的ASIL要求。
#5小结
10BASE-T1S是为汽车中用的连接上层以太网而开发的底层协议,目标是取代各种CAN,FlexRay,Lin等传统应用的协议。达到一网到底,方便上层应用与底层控制连接,降低应用成本的目的。作为汽车现场电磁干扰环境下服务的系统,它必须能抗得住干扰。所谓抗得住,不是不出错,而是出错后的处理及时、可控,不会引起功能安全失控。
据本文引用的内容,10BASE-T1S的总线用法时非终端节点在干扰下有共振,而且幅度很大,是会出错的;终端节点无共振,就无错。所以这个错不是全局性的,关键在于10BASE-T1S没有CAN的报错功能,就无法保证数据无时差的全局一致性。
10BASE-T1S的干扰测试幅度比汽车中常用的ISO7637-3,3a,3b要小一些,它的标准要求的共模抑制比指标很高,但是实用的共模电感没有提供产品的该指标。按常规商品的指标,即使没有共振,也是会引起出错的,也无法保证数据无时差的全局一致性。
10BASE-T1S的调度功能看似简单,但是这个PLCA协议有二个弱点:其一,它不是时间调度,而是节点轮流发送,前面发送占的时长变化会影响到后面节点开始发送时间,特别在各节点时差消失而产生发送峰值时,后面节点的送达时间抖动就会很大,甚致丢帧。第二个问题是一些控制符出错后会丢帧,特别是不一致出错后无法保证数据无时差的全局一致性。
10BASE-T1S的扰码器部份是画蛇添足,即使省掉,后面的差分曼彻斯特编码已经能保证总线电平没有长时间的低频分量。而且它要求的随机初值在对应的输入下会变成全0,失去随机性。扰码器有错误增多的特点,总线传送时的一个错会引起扰码器和解码器不同步,形成后续更多的错,这更多的错增加了错帧漏检的概率,10BASE-T1S没有提供错帧漏检的概率的分析,无法证明它能满足功能安全要求的级别。
与有重要缺陷(Conflict in CAN XL system due to DLC receiving error V2 ,
(PDF) Conflict in Data Field of CAN XL V1 2022 (researchgate.net))的CAN XL性能比较:1)CAN XL除了路径逸出情况外,在CRC后还能报错,取得数据的无时差全局一致;2)CAN XL的点到点传送达20Mbit/s,高于10BASE-T1S。所以10BASE-T1S要代替CAN、CAN FD、CAN XL实现功能安全的应用还有更多的工作要做。
再有一点,10BASE-T1S的应用非常依赖上游高速以太网的信号源,即网关转来的低速信号。而高速以太网的100BASE-T1存在LINK FAIL恢复的200ms延迟的问题(Achilles‘ Heel of 100Base-T1:Link re-establish time of 200ms-CSDN博客 https://blog.csdn.net/yfy812/article/details/150349692),这也限制了10BASE-T1S的发展。