尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

PicoScope免费开放40种串行解码器,10Base-T1S车载以太网调试实战

PicoScope免费开放40种串行解码器,10Base-T1S车载以太网调试实战 做嵌入式、汽车电子或者工业通信调试的朋友应该已经注意到PicoScope最近这次更新的分量不是新增了一两款解码器而是直接把40种串行协议解码器全部变成了标准功能还顺手补上了10Base-T1S这种新鲜协议的支持。对一个经常拿示波器抓串行协议的工程师来说这相当于过去要单独掏钱买的Pro版功能今天开机就能用了。这件事最有意思的地方在于10Base-T1S并不是那种“PPT协议”它已经在车载以太网、传感器骨干、分布式执行器这些场景里批量落地了。示波器解码这个功能对USB、CAN、LIN这些老协议来说是锦上添花但用10Base-T1S这种差分、突发、无时钟线的串行信号解码器几乎是刚需。这篇文章不打算讲官方新闻稿我就从怎么用、怎么破、怎么设阈值这几个角度把这次更新里最值得动手的东西拆开聊一遍。1. 40种串行解码器免费标配这笔账怎么算1.1 从付费选件到标配门槛降了多少先说最现实的问题钱。以前PicoScope的串行解码分两档基础型号自带几款低速协议剩下的要靠license解锁。买一个协议就要单独付费你常做的协议越多越能体会那种拧巴的感觉。比如我早期用PicoScope 5000系列主要调CAN和LIN为了解I2C和SPI还得临时去官网开个试用授权到期了再买麻烦得很。这次更新之后PicoScope 7全系从入门的两通道USB示波器到几千兆采样的高端型号40种串行解码器通通内置。也就是说你插上设备、打开软件选择协议、设置通道、点解码完事了。没有授权过期、没有锁定的灰按钮、没有“您需要购买高级串行解码功能”的弹窗。对一个团队来说这意味着省掉的license费用可以直接折算成多配几根电流探头对个人开发者来说意味着你可以放心拿入门型号练手不至于被功能墙卡住。我自己的看法是PicoScope这次表面是“送功能”实际是把竞争重心从授权模式转到了硬件能力和软件体验上。长期来看这反而是好事因为解码这种功能一旦普及用户就会要求解码质量、触发能力和多协议并行这对手里有硬货的厂商是有利的。1.2 协议覆盖到什么程度哪些场景最受益不要以为“40种”是凑数。PicoScope这次覆盖的面很广列举几个我实际会用到的汽车总线CAN、CAN FD、LIN、FlexRay、SENT经典串行UART/RS-232、SPI、I²C、I²S、SMBus工业与楼宇MODBUS、DALI、DMX512、1-Wire航空总线ARINC 429、MIL-STD-1553消费与PCUSB、PS/2网络Ethernet 10Base-T、10Base-T1S新增重点通用编码Manchester、DCC这里面最值得关注的是两组一组是汽车电子相关的CAN FD、LIN、FlexRay、SENT这是当前车载开发的主力协议另一组是Ethernet 10Base-T和10Base-T1S特别是10Base-T1S直接补上了车载以太网低端这一块。为什么覆盖面重要因为实际调试中很少只调一种总线。现代座舱域控制器和智能传感器节点往往同时存在CAN FD、LIN和10Base-T1S三种链路。过去你要是有两台示波器可能一台只带CAN授权另一台带以太网授权调试时两头跑。现在一台设备、一套软件、全部解码器可用切换协议就是下拉菜单的事情。1.3 PicoScope的串行解码机制和纯软件解码有什么区别很多新手会问解码到底是谁在做是我的电脑CPU在算还是示波器硬件在做PicoScope走的是“硬件采样 软件解码”的路线。示波器前端负责高速采集波形把采样点连续地存进深内存然后PicoScope 7软件在PC端把这些波形数据处理成协议帧。这个过程不需要额外硬件解码模块所以才能做到一次性内置40种。这种路线的好处是灵活——同一个波形数据你可以先按CAN解码不满意再切成CAN FD或者再叠加一层Manchester解码完全不需要重新采集。我在实际使用中就很喜欢这一点有时候抓了一条波形第一眼以为是CAN报文解出来是乱码切成SENT就对了这种“后验解码”能力是纯硬件解码器给不了的。但也有代价软件解码严重依赖采样深度和采样率。如果你的示波器存储深度不够抓一小段就撑满了解码长度就受限。所以买PicoScope跑解码我会优先看“采样率 × 存储深度”的乘积而不是单纯看带宽。这一点后面实操部分会详细说。2. 10Base-T1S为什么是这两年的热点2.1 车载以太网的低速分支补的正是CAN的短板10Base-T1S这个名字里有“10”意思是10Mbps和“Base-T”一起表示基带、双绞线最后的“1S”表示单对线Single Pair的短距离Short Reach版本。它由IEEE 802.3cg标准定义目标场景非常明确车载传感器、摄像头、执行器、域控制器之间的低成本、低速率、多点以太网通信。你可以把它理解成“长了以太网脑子”的CAN替代者。CAN和CAN FD虽然可靠但带宽上限摆在那里尤其CAN FD在实际应用中跑到5Mbps已经不错了数据量一旦上去就很吃力。10Base-T1S直接把速率干到10Mbps还保留了对多节点共享总线的支持这对车载分布式系统来说是一步到位的升级。更关键的是10Base-T1S继承了以太网的协议栈意味着你可以在上面直接跑TCP/IP、SOME/IP、DoIP这些市面成熟的协议不需要像CAN那样再套一层TP层转来转去。对软件工程师来说这就是把嵌入式通信从“私有总线时代”拉到了“标准网络时代”。2.2 物理层信号特征单对线、差分、无外部时钟从示波器的角度看10Base-T1S和普通以太网最大的区别在物理层。普通以太网用两对线甚至四对线一对发一对收全双工没压力。10Base-T1S只有一对线数据收发都在这一对线上进行所以天然是半双工模式。信号是差分信号D和D-两根线以差分形式传输逻辑电平靠两根线的相对差值决定不是单端对地的绝对电压。因为只有一对线没有单独的时钟线接收端必须靠信号自身的边沿跳变来恢复时钟也就是所谓的“自同步”编码。这给示波器解码带来的挑战就是你不仅要看电压高还是低还要从波形的边沿密度里“算”出bit周期和帧边界。我见过不少第一次调10Base-T1S的工程师习惯性地拿示波器去测D对地或者D-对地的单端波形结果发现信号看起来“缺了一半”——因为单端信号受共模干扰影响电平判断根本不准。正确的做法是始终以差分对为观察对象要么用差分探头要么双通道分别测D和D-再用数学通道算A-B。2.3 多点拓扑和PLCA为什么示波器要关注仲裁10Base-T1S支持两种拓扑点对点和混合段多点总线。混合段可以想象成一根总线上挂多个节点所有节点共享同一根双绞线。多节点共享一根线冲突怎么避免10Base-T1S引入了一个叫PLCAPhysical Layer Collision Avoidance物理层冲突避免的机制。简单说有一个节点被指定为协调者它周期性地在总线上发BEACON信标信号其余节点收到BEACON后按照预先分配的时间片Transmit OpportunityTO依次发送。这样每个节点在自己的时隙里发数据天然不会撞车。这个机制对示波器解码有实际影响你抓到的一段波形里不仅有普通数据帧还有BEACON信标和节点在空闲时发送的“保持活跃”信号。如果你不懂PLCA看到波形里间歇性出现一个短脉冲很容易误以为是毛刺。PicoScope的10Base-T1S解码器会把这些物理层信号识别出来并标注出来这能省掉大量人工排查时间。2.4 线缆和距离限制25米定律10Base-T1S的混合段长度限制是25米。这个数字指的是主干总线长度不包括节点内部的短线。超过这个长度信号完整性就会出问题。原因在于这是一对线共享多点接收反射和衰减都比点对点更敏感。对测试来说25米意味着什么意味着你在台架上测量时尽量用短线缆连接并且探头靠近收发器端。如果从线缆中间接上示波器一旦匹配阻抗不当反射波会在波形上形成明显的台阶解码器就会在台阶附近反复跳变产生误码。我实测过用一根40厘米的杜邦线去搭10Base-T1S链路波形边沿已经有可见过冲了这时候阈值稍微设置不准解码错误率会直线上升。3. 实操记录在PicoScope上抓10Base-T1S信号并解码3.1 探头连接别用单端探头的习惯去戳差分信号先说结论调试10Base-T1S我建议优先用真正的差分探头。如果你手头只有普通单端探头也有办法用两个通道分别测D和D-地夹都接地然后在PicoScope里用数学通道做A-B。注意两个探头的地夹必须接系统参考地不能夹到信号线上否则等于把差分对短路了。这个操作虽然可行但共模抑制能力完全取决于探头的一致性低频还好10MHz信号的边沿部分就会有明显的共模残留解码更容易抖动。具体接法如下通道A接D通道B接D-两个探头的地夹都接系统GND在解码器设置里把Source设置为A和B并选择差分模式A-B如果你有差分探头那就省心不少。PicoScope支持标准BNC差分探头输入把探头接到D/D-输出直接进示波器阈值设置0V过零即可。我建议做车载以太网相关项目的团队至少备一根带宽在100MHz以上的差分探头这东西在10Base-T1S、CAN FD、FlexRay调试里都能用属于一劳永逸的投资。3.2 创建解码器在PicoScope 7里一步步操作PicoScope 7的串行解码入口不算难找但不同版本的菜单位置略有差异我以当前主流版本为例在软件界面里找到“Decode”相关的下拉菜单或者在波形窗口右键选择“Add Serial Decode”。弹出的设置面板里能看到协议列表按类别筛选找到Ethernet 10Base-T1S。然后需要配置几个关键项Source信号源选择A和B通道设置成差分输入。如果是单端测量就选对应通道。Threshold阈值差分模式下设在0V附近单端模式下需要设在信号中值电压附近。Polarity极性默认Positive。如果解出来帧全是乱码可以试试反相。Bit Rate波特率10Base-T1S固定10Mbps软件一般会自动识别不需要手填。设置完成后点启动。软件会在波形上方叠加一层解码结果不同颜色代表不同字段下方会有一个帧列表并行显示。帧列表里能看到Preamble、SFD、目的MAC、源MAC、EtherType、Payload和CRC字段。我第一次跑通的时候最大的感受是以前分析以太网报文要抓包软件现在直接在示波器上就能看到MAC地址和协议类型这对物理层协议层联动调试太友好了。3.3 采样率和存储深度的硬指标这是整个实操里最容易被忽略、却最要命的一项。10Base-T1S的bit率是10Mbps每个bit周期100ns。软件解码要正确区分每个bit至少要在每个bit周期里采到足够多的点。PicoScope官方推荐跑10Base-T1S解码的采样率下限是1GS/s也就是每个bit采10个点。我个人的经验是1GS/s勉强能解但边沿恶劣的时候解码会抖建议直接上2GS/s以上留足裕量。配套的存储深度也要同步考虑。10Base-T1S的以太网帧可能长达数百字节一个完整帧在10Mbps下会占用几百微秒到毫秒级的时间长度。1GS/s × 10ms就得上千万个采样点PicoScope新款设备的深存储基本是几十M到上百M这在现代设备上不是问题但如果你拿的是早期型号存储深度只有几M点那抓一个长帧就会发现有截断。所以你选型或者调机的时候先看设备最大采样率和最大存储深度这对组合再看带宽。带宽决定你看到的波形保真度采样率和存储深度决定解码器能解多长、多稳。3.4 触发设置先触发帧起始再在结果里找细节解码器已经具备协议级触发能力但你刚开始上手时用不着那么复杂的触发条件。我建议的起步触发方案是先用普通边沿触发把示波器设成单次触发模式Single抓到一段包含帧的波形。然后打开解码器在解码结果里定位帧边界。等确认信号形态和解码结果稳定了再回到触发设置里尝试用10Base-T1S协议触发条件比如触发“帧起始”或“CRC错误”。这样做的原因是10Base-T1S在总线上有PLCA信标和节点休眠唤醒信号如果你一开始就直接用协议触发可能误触发到信标上。先把普通触发抓到完整数据链路熟悉波形长相再上协议触发效率高得多。3.5 解码结果的阅读从波形到MAC帧解码结果除了覆盖层之外通常会生成一张帧表逐行列出每个解码出来的帧。对10Base-T1S来说一帧的标准以太网结构是Preamble: 7字节同步码SFD: 1字节帧起始定界符Destination MAC: 6字节目的地址Source MAC: 6字节源地址EtherType: 2字节标识上层协议Payload: 46到1500字节数据FCS: 4字节CRC校验调试中我习惯先看FCS列有没有报错。如果FCS全部OK说明物理层信号和解码设置是对的问题可以往上层的IP、SOME/IP层找如果FCS大量错误问题大概率在物理层比如信号质量、接地、探头设置。这套“先看FCS”的思路相当于把网络工程师的“先看CRC”经验平移到了示波器上非常管用。4. 解码过程中的坑我把能踩的都踩了一遍4.1 用单端探头直接解差分信号的代价第一个坑也是新手最常踩的拿一根普通探头去戳D以为看到的波形够用。对于10Base-T1S这种差分信号单端测量会看到共模干扰叠加在信号上波形高电平和低电平都不稳定阈值无论怎么设解码器都会在边沿附近反复误判。踩了这个坑之后我总结了一个快速判断方法把示波器设成数学通道A-B如果A-B之后的波形比A单独看明显干净那说明信号确实以差分形式传输如果A-B的波形反而更乱那就要检查两个探头的公共地是不是没接好。这个方法也适用于CAN FD和FlexRay算是通用的排查手法。4.2 采样率不足导致的“假解码”采样率不足的表现很迷惑人因为它不是完全解不出来而是“时好时坏”——短帧能解出来长帧就错同一个波形光标滚到不同位置解码结果可能不同。我遇到过一例用一台采样率500MS/s的示波器解10Base-T1S短报文看着没问题一旦数据长度超过60字节FCS就错。一开始以为是PHY芯片配置问题查了半天最后切回PicoScope把采样率提到2GS/s同一根线、同一个信号FCS全对。原因就是每个bit周期只有3到5个采样点软件解码算法在恢复边沿位置时误差太大长帧累积误差一多CRC自然就错了。所以如果你看到FCS错误率随数据长度增加而上升先别怀疑硬件先把采样率拉满再试一次。这个排查顺序能帮你省下好几个小时。4.3 阈值设置的标准差分看零单端看中点解码器的阈值设置直接影响误码。差分模式下阈值设在0V附近就行因为差分信号的高电平是正电压低电平是负电压零点是天然的分界线。但要注意10Base-T1S的差分摆幅并不是特别大很多PHY芯片的输出差分摆幅在1V上下所以阈值不要设太高0V正负50mV以内都可以。单端模式下就麻烦一些。你需要把阈值设在信号高低电平的中间值附近但这个中间值会受共模电压影响。有些节点的共模电压在2.5V有些在3.3V你按2.5V设了阈值换一个节点又不对。这也是我强烈建议用差分探头或A-B数学通道的原因设置阈值时能少很多麻烦。4.4 不要一上来就纠结协议触发另一个容易让人失去耐心的坑协议触发怎么都触发不了。10Base-T1S总线上的信号混合了BEACON、数据和空闲保持如果你对协议不熟很容易选了一个错误的触发条件。比如你想抓特定MAC地址的帧但PROTOCOL触发面板里设置字段不对示波器就一直不触发。我的建议是刚开始先用“帧起始”这个最简单的条件不要附加MAC或EtherType过滤。等确认能稳定触发到帧了再逐渐加上过滤条件。协议触发是加速工具不是必须工具先用普通的单次触发把波形抓到再在解码结果里做后过滤一样能完成90%的调试工作。4.5 常见问题速查表现象可能原因处理建议解码FCS大量错误短帧正常长帧错采样率不足提高采样率至2GS/s以上解码结果全乱码阈值设置不当或极性反了检查阈值位置尝试调换极性单端波形不稳定高低电平漂移共模干扰测量方法错误改用差分探头或A-B数学通道波形边沿有过冲和振铃探头地线过长或线缆阻抗不匹配使用短接地弹簧检查终端匹配帧列表里看不到几个帧存储深度不够抓取时长太短降低采样时长或增加存储深度协议触发不响应触发条件过滤太严先用帧起始触发再加过滤条件5. 选型建议手中的PicoScope能不能跑这些解码5.1 不同型号的性能匹配PicoScope产品线从入门到高端跨度很大不是所有型号都适合解10Base-T1S。2000系列主打便携和基础调试带宽几十到一百多MHz采样率通常在1GS/s以下跑CAN、LIN、UART、I2C这些低速协议完全够用但解10Base-T1S会有点吃力尤其是长帧场景会暴露存储深度和采样率不足的问题。5000系列是16位高精度示波器采样率500MS/s到1GS/s带宽100到200MHz左右。如果你主要做传感器、音频、电源信号分析偶尔解CAN FD和LIN这个系列很合适。但10Base-T1S依然建议谨慎能解但不要指望它处理长时间高负载总线。6000系列是我愿意明确推荐给需要跑10Base-T1S解码的型号。带宽350MHz到1GHz采样率最高5GS/s存储深度也足够。以10Mbps的bit率来说5GS/s意味着每个bit采500个点解码余量极大即使信号边沿质量一般也能拿到稳定的解码结果。FlexRay、CAN FD、SENT这些协议在这个系列上解码也极其稳健。9000系列是更高端的PC示波器/ 采样仪形态带宽更高通道数更多适合多通道并行分析。如果你要同时解CAN、LIN、10Base-T1S三条总线9000系列的多通道优势就体现出来了。5.2 选解码器之前先想清楚要解什么我见过不少同行一听到“40种解码器免费”就兴奋觉得以后不管什么项目一台示波器通吃。这个想法方向对但得配一个理性判断你的信号速率到底多高你的设备采样率够不够。做一个简单的估算假设你的信号速率是R兆比特每秒。解码至少需要每个bit采10个点那采样率就要10×R。如果信号边沿上升时间很快还得往上加。10Base-T1S的R10所以1GS/s是底线。CAN FD在大多数场景下R最高5到8500MS/s勉强够用。而如果哪天你要解PAM3或者更高速的自定义串行协议那采样率要求会直接飙上去。我个人的选型口诀是低速协议看通道数高速协议看采样率长时长采集看存储深度。三个维度都要满足才是一台真正好用的协议调试工具。5.3 别忽略软件版本和固件更新最后提醒一个容易被忽略的点PicoScope这次的新解码器依赖PicoScope 7软件版本。如果你还在用老版的PicoScope 6界面和功能差异较大串行解码的入口和使用体验也完全不同。拿到新设备或者更新软件之后先确认你的固件和软件都是最新版本然后再试解码功能。我在一次调试中就遇到软件版本太老解码器列表里找不到10Base-T1S选项折腾了半天更新软件就有了。类似这种“不是硬件问题是版本问题”的情况在嵌入式领域太常见了遇到问题先查版本永远不亏。6. 一点真实体会顺手把这次更新的价值再往深里说一句解码器免费真正撬动的不是“省了多少钱”而是降低了大家去试新协议的门槛。以前你要解一个不熟悉的协议得先掂量有没有对应授权现在旁边示波器就是满配的你可以随时抓一段波形把可能的协议挨个试一遍。很多以前觉得像黑盒的串行总线现在花十分钟就能从波形里读出帧、读出CRC、读出时序关系。这种“可试错”的便利往往比省下的license费用更值钱。我在实际项目中经常这样用先拿示波器抓一段可疑的通信波形然后不急着改代码先在解码器里把帧结构看清楚确认物理层没问题了再回软件里查逻辑。这一套下来定位问题的速度比盲改代码快好几倍。希望你也能把这40种解码器用起来尤其是10Base-T1S这个新成员趁它还在普及初期先把工具链跑熟。
返回列表