简介:CAN通讯物理层测试文档面向高校电子、车辆工程及汽车电子方向的学习者与调试人员,围绕CAN总线物理层性能验证展开,适合作为通信稳定性与可靠性测试的入门参考。内容按测试流程组织,依次涉及终端电阻、低压与高压通讯范围、显性及隐性输出电压、上升沿与下降沿时间等项目,并给出测试目的、评价标准、实测结果与PASS判定,部分章节附截图说明;地偏移项目标注为SKIP,也保留了流程完整性。压缩包仅含1个doc文件,大小约5.61MB,结构集中,便于按章节查阅测试条目与参数表。已有1932人学习,读者可借此理解CAN物理层关键参数、测试记录写法及结果判读思路,为硬件调试和测试报告整理提供参考。
1. 一份把 CAN总线通讯测试流程压到八条用例的实测记录
拿到一份八条用例的物理层测试记录,TC1 到 TC7 全绿,TC8 地偏移那一栏写着 SKIP。多数人翻到这里就合上了,但真正决定这份 CAN总线通讯测试流程 能不能复用的,恰恰是那行 SKIP,以及几个“看着刚刚好”的实测值:终端电阻 2540Ω 判了 PASS,共模电压 5.04V 也判了 PASS,而这两条背后的判据口径都不是一眼能看出来的。这份资源的价值不在于它给出了多少 PASS,而在于它把终端电阻、通信电压窗口、显性/隐性电平、上升下降沿这些物理层指标,一条条拆到了具体参数、具体单位和具体数值上,让你能照着搭台架、照着读判据、照着复核。适合正在做 ECU 硬件验证、总线一致性测试,或者要给新人讲清“物理层到底测什么”的从业者。
2. 台架先立住:仪器清单、三个采样点与共模干扰
物理层测试翻车,十次里有六次不是 DUT 的问题,是台架的问题。这一章把最小可复现的仪器组合、探头该落在哪、以及为什么同一个信号你能量出两个不同的数讲清楚,后面的七条用例才有意义。
2.1 做完全部八项的最小仪器组合
不要一上来就追求全套自动化,先把“能测准”这条线搭起来。终端电阻、电平、边沿、地偏移这四类测试对仪器的要求并不一样,混在一起买容易花冤枉钱。
| 设备 | 覆盖用例 | 关键指标 | 容易被忽略的点 |
|---|---|---|---|
| 程控直流电源 | TC2、TC3、TC4、TC5 | 0~30V 可调,纹波 <5mV,带远端采样 | 必须支持远端采样,否则线损直接吃掉高压端余量 |
| 高阻万用表 / 四线毫欧表 | TC1 | 分辨率 1Ω 以下 | 普通两线档测 2.5kΩ 会叠加表笔和接触电阻 |
| 差分探头 + 示波器 | TC4~TC7 | 探头带宽 ≥500MHz,示波器采样率 ≥1GSa/s | 探头带宽不够,边沿时间会虚高 |
| 单端探头 ×2 | TC4、TC5 | 与差分探头同批次校准 | 两通道之间的时延差要已知,否则 VCom 会算偏 |
| 总线分析工具 | 全部 | 支持错误帧计数与报文触发 | 要有硬件时间戳,软件时间戳统计错误帧会漏 |
| 隔离电源 / 隔离 DC-DC | TC8 | 输出与大地完全浮空 | 不隔离,地偏移测试根本做不了 |
| 双向程控源或地偏移模拟器 | TC8 | 能灌电流也能吸电流 | 只灌不吸的源,负偏移点会拉不住 |
表里最后两行是 TC8 常年写 SKIP 的直接原因,很多台架从一开始就没准备隔离供电,后面想补测等于重搭。我的建议是:哪怕这次不测地偏移,台架设计时也把隔离电源的位置留出来。
另外一类容易被省掉的东西是负载和线束。总线终端、支线长度、节点数量都会影响电平测量结果,测试记录里如果没写清“当时挂了几块板、线束多长”,这个 PASS 是不可复现的。做测试记录时,把台架配置写在第一页,比写测试结论更重要。
2.2 三个采样点:终端、差分对、地
八条用例看着杂,落到探头上其实只有三个位置。
TC1 的终端电阻测量点在总线两端,做法是断电、拔掉所有节点、用万用表跨接 CAN_H 与 CAN_L。这里有个前提必须确认:DUT 的内部终端是不是由软件使能。如果是可配置终端,断电测到的只是一个固定电阻,跟实际工作状态可能对不上,这时候要按规范要求分别在“终端使能”和“终端关闭”两种状态下各测一次。
TC4 到 TC7 的采样点在 DUT 的收发器引脚附近,理想位置是收发器到连接器之间的那段走线。差分探头两个尖端分别接 CAN_H 和 CAN_L,地线接 DUT 的参考地。单端探头量 VCAN_H 和 VCAN_L 时,两个探头的地必须落在同一个点,否则两个通道的共模误差会直接进到 VDiff 里。
TC8 的采样点在 DUT 地与总线参考地之间。这个点的特殊之处在于:探头地一旦接错,等于用示波器把偏移电压短路掉了,测出来的波形永远是干净的,测试也就白做了。
2.3 探头接地做错,VDiff 会凭空多出 0.3V
这是我最开始做物理层测试时踩得最疼的一脚。同一块板,同一个工况,换个人量出来的显性差分电压能差 0.3V 以上,两边都觉得自己是对的。
原因通常在探头地线的长度上。标准探头自带的鳄鱼夹地线大概 10cm,这段线在几十兆赫兹上就是一个不可忽略的电感,总线上的共模电流流过它会产生压降,叠加到测量结果里。CAN 的边沿时间只有几十纳秒,等效带宽已经到了几十兆到上百兆,这个问题不是理论上的。
常见的做法是换探头自带的接地弹簧,把地回路缩到 2~3mm,或者用差分探头(差分探头对共模的抑制本来就是这个场景的核心价值)。如果只能用长地线,至少在报告里注明接地方式,别让下一个人拿着你的数据当基准。
| 接地方式 | 对 VDiff 的影响 | 对 tR / tF 的影响 |
|---|---|---|
| 鳄鱼夹长地线(约 10cm) | 偏高 0.1~0.4V,随负载变化 | 边沿变缓,读数偏大 5~20ns |
| 接地弹簧(2~3mm) | 基本无偏差 | 接近真实值 |
| 差分探头 | 共模被抑制,偏差最小 | 最稳定 |
| 两探头分别接地且不共点 | 偏差不可预测 | 抖动明显 |
搭完台架先别急着跑用例,花五分钟做一件事:在 DUT 不通信的静态下,把差分探头短接在同一个点上,看示波器读到的 VDiff 是不是接近 0。如果读出来几十毫伏,说明探头本身有偏置或者地回路有问题,这个偏置会一路带到 TC5 的隐性位测量里,而隐性位的判据窗口只有 ±50mV 量级。
提示:每次换探头、换量程、换被测板,都重新做一遍这个静态校零。省下来的这几分钟,能避免后面几小时的返工。
3. 终端电阻与供电窗口:TC1 到 TC3 的判据怎么核
前三条用例是整份记录里最容易“抄作业抄错”的部分。它们的实测值都写在表里,但判据的算法藏在规范条文和几个不起眼的备注里,不自己算一遍,你不知道那个 PASS 是怎么来的。
3.1 2540Ω 这个 PASS 需要复核一遍
TC1 的测试值写的是终端电阻 2540Ω,结果是 PASS。判据那一栏引的是“支线终端推荐值范围 2×1.3kΩ±1%”。
先算一遍:1.3kΩ 的 ±1% 是 1287Ω 到 1313Ω,两倍就是 2574Ω 到 2626Ω。2540Ω 落在区间外侧,偏低约 34Ω,相对标称值 2600Ω 偏差约 -2.3%。严格按 ±1% 判,这一条是过不了的。
那 PASS 是怎么来的?可能是三种情况之一:一是判据实际采用的是更宽的工程窗,比如 ±5%(2470Ω~2730Ω)或者 ±10%;二是测量本身包含了线束电阻、接触电阻,实际电阻体比 2540Ω 更接近标称;三是记录时把测量值和判定结果分别由不同环节填写,中间没有复核。
不管哪一种,结论是同一个:这条不能直接信。我一般的复核顺序是这样:
第一步,确认测量状态。断电测还是上电测,节点是否全部断开,终端是否使能。这三项任何一项不对,数就没有可比性。
第二步,换四线法重测。2.5kΩ 这个量级,两线法表笔和接触电阻加起来几十欧是常事,而这几十欧在 ±1% 的窗口里已经占了三分之一。
第三步,把 DUT 内部的终端网络画出来,确认它是单个电阻还是电阻串并联。表里给出的 R1/R2 是 60Ω 量级、容差 ±1%,那是总线终端的参数;而 2×1.3kΩ 是支线终端的推荐值,两者不是一回事。这份记录把两个概念放在同一节里,很容易让人把 60Ω 的容差要求套到 1.3kΩ 上,或者反过来。
把这三步走完,你手上的数才有资格叫 PASS 或者 FAIL。
| 参数 | 最小值 | 标称值 | 最大值 | 单位 | 说明 |
|---|---|---|---|---|---|
| R1 | 50 | 60 | 65 | Ω | 总线终端电阻之一 |
| R2 | 50 | 60 | 65 | Ω | 总线终端电阻之二 |
| C1 | — | 100 | — | nF | 终端网络并联电容 |
| R1/R2 耗散功率 | 220 | 250 | 400 | mW | 选型时要留降额 |
| 电阻容差 | -1 | 0 | +1 | % | 支线终端推荐值同量级 |
耗散功率这一行经常被跳过,但它决定了终端电阻的封装。60Ω 上长期加 3.5V 显性电平,功耗约 200mW,贴着下限;如果总线占空比高、环境温度高,220mW 的电阻长期跑在边界上,阻值会漂。这也是为什么同一块板子跑了几个月之后,终端电阻测出来和出厂时对不上。
3.2 三段式电压判据:VError、VStop、VStart 各自在测什么
TC2 和 TC3 是一对镜像用例,一个往下扫电压,一个往上扫,判据都指向规范里定义的通信电压范围:最小值 7V,最大值 18V。
三个参数的含义要分清,否则记录里全是同一个数:
- VError:DUT 开始出现错误帧时的供电电压。注意这不一定等于通信中断,CAN 控制器在电平劣化时会先报错误帧,此时报文可能还在勉强传输。
- VStop:DUT 完全停止收发时的电压。判据要求这个点必须落在规范允许的通信电压范围之外,也就是低于 7V(低压侧)或高于 18V(高压侧)。
- VStart:电压恢复过程中,DUT 重新正常通信的电压。判据同样要求在范围之外。
低压侧的判据是 VError、VStop、VStart 三个值都 ≤7V;高压侧是三个值都 ≥18V。翻译成人话:在规范承诺的 7~18V 区间内,DUT 不许出错误帧、不许停通信、不许反复重启。
这份记录的实测值,低压侧三个参数全写成 5.0V,高压侧全写成 19.0V。能判 PASS,但信息量被压掉了:三个电压完全相同,说明扫描粒度太粗,或者记录时把三段合并成了一个“临界点”。真正的价值在于 VStop 和 VStart 之间的迟滞——如果 VStart 明显高于 VStop,说明 DUT 有欠压复位逻辑,恢复需要更高的电压。这个差值在整车冷启动场景里非常关键,记录里没有体现,等于丢掉了一半结论。
高压侧的余量更值得说。判据要求 ≥18V,实测 19.0V,余量只有 1V。这 1V 里还要扣掉电源线损、连接器接触压降、DUT 内部防反接二极管的压降。如果台架用的是普通台式电源、没有远端采样,设 19.0V 到 DUT 端可能只剩 18.3V,再算上纹波,实际余量不到 0.3V。这种“看着过了、实际在悬崖边”的结论,比直接 FAIL 更危险。
| 参数 | 低压侧判据 | 高压侧判据 | 实测(低压) | 实测(高压) | 结果 |
|---|---|---|---|---|---|
| VError | ≤7V | ≥18V | 5.0V | 19.0V | PASS |
| VStop | ≤7V | ≥18V | 5.0V | 19.0V | PASS |
| VStart | ≤7V | ≥18V | 5.0V | 19.0V | PASS |
| 通信电压范围 | 7~18V | 7~18V | — | — | 判据基准 |
3.3 用 Python 驱动程控电源做 0.1V 步进扫描
手拧旋钮扫电压,扫一遍下来手酸,数据还不可靠。常见的做法是用 SCPI 指令把电源接管,步进 0.1V、每步驻留足够长,让 DUT 的电源管理状态机走完。
import csv import time import pyvisa PSU_RESOURCE = "USB0::0x0000::0x0000::SN000000::INSTR" # 换成你电源的实际资源串 CHANNEL = 1 V_START, V_STOP, V_STEP = 6.0, 9.0, 0.1 # 低压侧扫描窗,比 7V 判据留 1V 余量 DWELL_S = 0.5 # 每步驻留,别低于 0.3s rm = pyvisa.ResourceManager() psu = rm.open_resource(PSU_RESOURCE) psu.timeout = 5000 psu.write(f"INST:NSEL {CHANNEL}") # 多通道电源先选通道 psu.write("OUTP ON") rows = [] volt = V_START while volt <= V_STOP + 1e-9: psu.write(f"VOLT {volt:.2f}") # 设定电压 time.sleep(DWELL_S) # 等 DUT 电源稳定,这一步省不得 # 下面两个字段由总线工具日志回填,这里先占位 rows.append({"volt": round(volt, 2), "err_frames": "", "comm_state": ""}) volt = round(volt + V_STEP, 2) psu.write("VOLT 12.00") # 扫完回到标称电压 psu.write("OUTP OFF") with open("v_scan_low.csv", "w", newline="", encoding="utf-8") as f: writer = csv.DictWriter(f, fieldnames=["volt", "err_frames", "comm_state"]) writer.writeheader() writer.writerows(rows)这段脚本只负责“把电压稳定地走过去”,不负责判读。V_START定在 6.0V 而不是 7.0V,是因为判据要求 VStop 出现在 7V 以下,从 7V 起扫你只能看到“没停”,看不到“在哪停”。DWELL_S设 0.5s 是经验值,如果 DUT 的电源管理有软件滤波(常见的做法是连续 10 帧异常才进保护),驻留时间要相应拉长到 1s 以上。err_frames和comm_state两列不要偷懒不填,扫描数据没有配套的总线状态,等于一张废表。
扫描方向也有讲究。只做单向扫描(从高到低)会漏掉迟滞,建议低到高、高到低各扫一遍,同一电压点两次的通信状态不一致,就说明有迟滞或者软件去抖,这在 VStop 和 VStart 之间是正常现象,但差值要记录下来。
提示:扫描前先把电源的过流保护设到 DUT 额定电流的 1.5 倍左右。扫描过程中 DUT 反复进入欠压复位,瞬态电流可能比稳态大不少。
4. 电平与边沿:TC4 到 TC7 的四个电压、两个时间
这一段是整份记录里技术含量最高的部分,也是最容易因为“口径不同”吵起来的地方。同样的波形,不同的人按不同的算法,能得出完全相反的结论。
4.1 显性位四参数同屏:VDiff 是差、VCom 是和
TC4 的实测值是 VCAN_H 3.9V、VCAN_L 1.14V、VDiff 2.76V、VCom 5.04V。四个数摆在一起,先做个自洽性检查:
3.9 - 1.14 = 2.76,和 VDiff 对得上。
3.9 + 1.14 = 5.04,和 VCom 对得上。
如果按常见的共模定义——两线对地电压的平均值 (VCAN_H + VCAN_L) / 2 来算,得到的是 2.52V,这时候再看判据表里 VCom 的下限 4.25V,结论立刻变成 FAIL。
这就是整份文档里最隐蔽的一个坑:这里的 VCom 取的是两线之和,不是平均值。判据范围 4.25~5.8V 也只有按和值口径才说得通——如果按均值口径,对应的合理范围应该是 2.1~2.9V 这个量级。TC5 的隐性位数据同样能验证:2.54 + 2.52 = 5.06,报告写 5.04,差 0.02V 属于四舍五入或两次采样的漂移。
| 参数 | 最小值 | 标称值 | 最大值 | 单位 | 实测(显性) | 实测(隐性) |
|---|---|---|---|---|---|---|
| VCAN_H | 2.75 | 3.5 | 4.5 | V | 3.9 | 2.54 |
| VCAN_L | 0.5 | 1.5 | 2.25 | V | 1.14 | 2.52 |
| VDiff | 1.5 | 2.0 | 3.0 | V | 2.76 | 0.02 |
| VCom(和值口径) | 4.25 | — | 5.8 | V | 5.04 | 5.04 |
拿到任何一份物理层报告,先做这个自洽性检查:VDiff 能不能由两路单端相减得到,VCom 能不能由相加或平均得到。对不上,说明采样时刻不同步,或者探头的两个通道增益不匹配,后面的判读都不用做了。
实操上,同步采样是前提。示波器双通道的时延差如果达到几个纳秒,在边沿上取点就会带来几十毫伏的误差。常见的做法是先用同一个信号同时进两个通道,量一下两个通道的时延差,把差值记下来,在计算 VDiff 时补偿掉。
4.2 隐性位与 ±50mV 窗口:校零比探头贵不贵更重要
TC5 的判据里,VDiff 的范围是 -0.5V 到 +0.05V,实测 0.02V。这个 +50mV 的上限,是整个测试里最窄的一个窗口。
隐性位下,收发器的两个输出管都关断,CAN_H 和 CAN_L 各自被拉到 2.5V 附近的偏置电压,理论上差分是 0。实际能测到 20mV 左右,来源包括:两路偏置网络的电阻失配、探头两通道的增益误差、探头自身的直流偏置、台架的共模噪声。
所以这个测试真正的门槛不在 DUT,在测量链路。几个具体动作:
第一,示波器开机预热 20 分钟以上再测。冷机状态下的偏置漂移能到十几毫伏,正好吃掉一半的判据余量。
第二,差分探头两个尖端短接在同一根线上,做一次直流校零,把残余偏置归零。
第三,量程不要开太大。VDiff 信号在显性态是 2V 量级,隐性态只有几十毫伏,同一档量程下隐性态的量化误差就被放大了。如果示波器支持,显性和隐性分开设置量程,或者用高分辨率模式。
第四,注意隐性位到显性位的转换瞬间。很多示波器的自动测量会把整个采集窗内的峰峰值报上来,那个数对应的是显性态的幅度,不是隐性态。测隐性 VDiff 必须手动把测量门放在隐性位中间那段平顶上。
| 误差来源 | 典型量级 | 控制手段 |
|---|---|---|
| 探头直流偏置 | 5~20mV | 短接校零 |
| 两通道增益失配 | 1~2% | 同源校准,记录失配系数 |
| 示波器冷机漂移 | 10~15mV | 预热 20min 以上 |
| 台架共模噪声 | 不定 | 缩短地回路,远离开关电源 |
| 测量门放错位置 | 可达数百 mV | 手动门控,落在平顶中段 |
4.3 tR 与 tF:门限口径不统一,32ns 和 65ns 都“对”
TC6 和 TC7 的判据是上升沿时间 0~150ns、下降沿时间 0~200ns,实测 tR 32ns、tF 40ns。两个数的下限都是 0,说明这条判据本质上是包络而不是硬门限,真正起作用的是上限。
这里最需要先统一的,是“边沿时间”从哪算到哪。行业里至少有两套口径:一套是在差分波形上取 10% 到 90% 幅度;另一套是在固定的两个判决门限之间取,比如从 0.9V 到 2.0V。两套口径测出来的数能差一倍,32ns 和 65ns 可能描述的是同一个边沿。
所以看到一份报告里的 tR,先问三件事:测量对象是单端还是差分、百分比还是绝对门限、示波器的测量门有没有排除振铃。三个都不写,这个数就没法横向比较。
第二件事是探头带宽。上升沿的等效带宽和边沿时间成反比,32ns 对应的带宽量级在 10MHz 出头,看起来 100MHz 探头绰绰有余。但边沿测量要求探头带宽至少是被测信号带宽的 3~5 倍,还要考虑示波器本身的带宽限制和采样率。采样率不够的时候,示波器会用插值把边沿“抹平”,读出来的数偏大;采样率够但探头带宽不够,读出来的数也偏大,而且波形上会出现明显的圆角。
第三件事是“边沿越快越好”这个直觉是错的。边沿太陡会加剧总线振铃和辐射发射,收发器设计上通常在 30~80ns 之间做折中。32ns 这个数在判据内,但如果同一块板上其他节点的边沿明显更缓,混合组网时可能出现采样点偏移问题。物理层测试只保证单个节点的电气特性,组网后的时序裕量是另一回事。
顺带一提,记录里 TC7 的结果栏写的是“上升沿测试 tFdiff 40ns”,标签和符号对不上,这属于典型的复制粘贴残留。拿到这类文档,符号、单位、标签三处对不上的地方,都要回头核对原始波形,别照着抄进自己的报告。
4.4 带宽与采样率的下限怎么定
给一个可以直接照着设的底线配置,覆盖 TC4 到 TC7:
| 项目 | 底线要求 | 推荐值 | 不满足时的表现 |
|---|---|---|---|
| 探头带宽 | ≥200MHz | ≥500MHz | 边沿读数偏大 10~30% |
| 示波器模拟带宽 | ≥200MHz | ≥500MHz | 波形圆角,振铃被滤掉 |
| 采样率 | ≥500MSa/s | ≥1GSa/s | 边沿点数不足,读数抖动 |
| 垂直分辨率 | 8bit | 12bit 或高分辨率模式 | 隐性位几十毫伏测不准 |
| 记录长度 | ≥1M 点 | ≥10M 点 | 长时间采集时边沿被抽点 |
采样率和记录长度是一对矛盾。为了抓边沿要提高采样率,为了看长时间报文又要拉长记录长度,两者相乘就是存储深度。做 TC6/TC7 时用单次触发、短记录长度、高采样率;做 TC4/TC5 时反过来,低采样率、长记录,抓稳态电平。别指望一套设置通吃。
5. 避坑:五条现象、原因和补救
下面这五条,是我在类似台架上反复见过的,按“看到什么、为什么、怎么办”写,直接对照排查。
5.1 终端与连接类
现象一:万用表跨接 CAN_H 和 CAN_L,读出来 120Ω,而规范要求 60Ω。
原因:只量到了总线一端的终端电阻。CAN 总线两端各有一个 120Ω 终端,并联后才是 60Ω。如果 DUT 只是其中一个节点、另一端悬空或者另一端节点没上电,量到的就是单端值。另一种情况是 DUT 的内部终端由软件控制,断电状态下没使能。
解决:先把两端终端都接上、确认上电状态,再测。如果 DUT 的终端可配置,分别在使能和关闭状态下各测一次并记录,两个数都要进报告。测量时用四线法或者先短接表笔读一次表笔电阻,从结果里扣掉。
现象二:2540Ω 判了 PASS,但按 ±1% 复算过不了。
原因:判据口径没对齐。2×1.3kΩ±1% 对应 2574Ω~2626Ω,而测量值 2540Ω 偏低 34Ω。可能是工程窗放宽到了 ±5%,也可能是测量包含了线束和接触电阻,还可能是记录环节没做复核。
解决:按 3.1 节的三步走一遍,把测量状态、测量方法、判据来源都写清楚。如果确认超差,走偏差评审流程而不是直接改成 PASS。这一条最怕的就是“前人判了 PASS,后人照着抄”。
5.2 电源扫描类
现象三:电压扫描时,VStart 低于 VStop,DUT 在某个电压点反复通断。
原因:扫描速度太快,DUT 电源入口的去耦电容还没放完电,电压就已经升回去了;或者扫描是单向的,只记录了下降过程,没记录上升过程。还有一种是 DUT 的欠压复位有软件去抖,驻留时间不够,状态机没来得及切换。
解决:驻留时间加到 1s 以上,扫描前先让 DUT 在欠压点稳定 10s 再往上扫。双向各扫一遍,把两个方向的 VStop 和 VStart 都记下来,差值就是迟滞。差值过大(比如超过 1V)要去查 DUT 的电源管理设计,这不是测试问题。
现象四:高压侧判据 18V,实测 19.0V 判 PASS,但换一台电源就 FAIL。
原因:电源到 DUT 之间的线损和连接器压降没算进去。普通台式电源没有远端采样,设定值和 DUT 端实际值能差 0.5V 以上,19.0V 的余量本来就只有 1V。
解决:改用带远端采样(四线补偿)的电源,采样点直接引到 DUT 的电源引脚。没有远端采样就老老实实测量 DUT 端的实际电压并以此记录,不要拿电源面板上的读数当测试值。线束加粗、缩短,连接器换成低接触电阻的型号。
5.3 波形与判据类
现象五:VCom 按平均值口径算是 2.52V,对着判据下限 4.25V 判 FAIL,但 DUT 明明是好的。
原因:判据里的 VCom 取的是 CAN_H 与 CAN_L 之和,不是平均值。这两个口径差了整整一倍,用错了必然误判。
解决:拿到判据表先做自洽性验证——用实测的 VCAN_H 和 VCAN_L 分别做加法和平均,看哪个结果能落进判据窗口,口径就确定了。确定之后写进测试记录,避免下一个人重新踩一遍。这一条属于“黑匣子”级别的坑,光看参数名永远看不出来。
现象六:示波器自动测出的 tR 只有 8ns,明显不合理。
原因:测量门放在了显性位到隐性位的转换沿上,或者自动测量抓到的是共模噪声的毛刺,不是真正的差分边沿。也可能探头带宽过高而采样率不足,波形上出现了混叠。
解决:把测量源明确设为差分通道(Math 通道),手动设置测量门,门宽覆盖边沿前后各 20% 的时间窗。用单次触发抓单个边沿,逐条波形目视确认后再读数。示波器的自动测量只能当参考,进报告的数值必须目视核过。
6. 地偏移被写成 SKIP:一套能落地的补测方案
TC8 那一栏写着 SKIP,这在物理层测试记录里太常见了。原因基本只有一个:台架做不了。地偏移要在 DUT 地与总线参考地之间串一个偏移电压,而大部分台架的 DUT 供电和总线分析工具共地,一加偏移源就等于对地短路,测出来的波形永远干净。
6.1 补测前的三个硬条件
第一,DUT 必须由隔离电源供电,输出与大地完全浮空。用普通的隔离 DC-DC 模块也行,但要确认隔离耐压和漏电流满足要求。
第二,偏移源必须能双向工作——既能往外灌电流,也能往回收电流。只灌不吸的源,在负偏移点上拉不住,实测值会飘。
第三,示波器探头的地必须接在总线侧的参考地上,不能接 DUT 地。接错了,探头地线就成了偏移源的旁路,测量回路直接把偏移短路掉。
6.2 偏移点选取与判据
偏移量程按项目规范定,常见的是 ±2V 这个量级,取 0、±1、±2 五个点。每个点的判据不是看波形好不好看,是看通信有没有中断:
| 偏移点 | 施加方式 | 驻留时间 | 判据 | 记录字段 |
|---|---|---|---|---|
| 0V | 基线,不施加偏移 | 10s | 连续 1000 帧无错误帧 | 错误帧数、DUT 复位标志 |
| +1V | DUT 地抬高于总线地 | 10s | 同上 | 同上 |
| +2V | 同上,取规范上限 | 10s | 同上 | 同上 |
| -1V | DUT 地低于总线地 | 10s | 同上 | 同上 |
| -2V | 同上,取规范下限 | 10s | 同上 | 同上 |
除了错误帧计数,还要记录 DUT 的应用层状态:有没有复位、有没有故障码置位、复位后能不能自恢复。物理层过了但应用层挂了,这条用例照样不算过。
6.3 一个反直觉的观察
地偏移测试里最容易出问题的不是偏移量最大的那个点,而是偏移量刚加上去的瞬间。偏移源阶跃建立的那几百微秒里,DUT 收发器的共模抑制还没反应过来,总线上会出现一批错误帧;等稳态建立之后,通信反而恢复了。
如果判据只统计稳态错误帧,这条就过了;如果统计的是全过程,可能就挂了。规范里对建立时间有没有要求、统计窗口从哪开始算,这两点必须在测试前定死,否则同一个 DUT 能测出两个结论。
我的做法是:偏移建立后先等 1s 再开始计数,同时在记录里注明“统计窗口从偏移稳态建立后 1s 开始”。这条备注写上去,别人复现的时候才不会有歧义。
6.4 收尾
从那以后我每次看到报告里的 SKIP,都会先问一句:是台架真做不了,还是判据根本没定死。前者是资源问题,加设备就能解决;后者是流程问题,补多少设备都测不出可信的结论。地偏移这一条尤其典型——它不难,难的是把隔离、双向源、探头落点、统计窗口这四件事在动手之前全部定清楚。希望帮到你。
本文还有配套的精品资源,点击获取