当前位置: 首页 > news >正文

示波器 CAN 总线波形解读与 CAN 通信观测实操

一、图整体解读:CAN FD/CAN 标准帧波形 + 位填充规则

1. 核心知识点:CAN 位填充规则(图红色标注)

CAN 总线硬件规定:发送时连续出现 5 个相同电平(5 个 0或5 个 1),自动插入 1 位相反电平(补充位),接收端识别后自动剔除填充位,用于同步时钟、避免长时间无跳变导致采样失步。图中红框00000连续 5 个 0,因此插入 1 个 1 作为填充位,波形上能看到额外的跳变脉冲。

2. 帧分段逐段拆解(二进制串:0001 000001 001 0001 0000 101010

  1. 超起始位(SOF 帧起始)空闲时 CAN-H 高、CAN-L 低(隐性电平 1);SOF 强制拉为显性 0,1 个显性位,作为一帧数据的开始,图最左侧第一个下降沿就是 SOF。
  2. 仲裁段 - ID:0x101(标准 11 位 ID)二进制0001000001,对应十进制 257、十六进制0x101;中间00000连续 5 个 0,触发位填充,插入 1 位 1(粉色框标注的补充位),原始 ID 逻辑要去掉填充位才是真实 ID。
  3. RTR 位(远程发送请求)0 = 数据帧(本机发送数据);1 = 远程帧(请求对方发数据),本帧 RTR=0,是普通数据帧。
  4. IDE 位(标识符格式)0 = 标准 11 位 CAN2.0A;1 = 扩展 29 位 CAN2.0B,本帧 IDE=0,标准帧。
  5. r0 保留位CAN 标准帧预留位,固定填 0。
  6. DLC 数据长度码4bit,代表后续数据段字节数,图中0000代表 DLC=0,本帧无数据负载。
  7. 后续:CRC 校验 + ACK 应答 + 帧结束 EOF末尾101010是 CRC 校验区、ACK 槽、EOF 结束位,隐性电平 1 为主。

3. 示波器波形通道说明

  • CH2:CAN 差分总线原始波形(CANH/CANL 差分信号);
  • ΔX=20.90μs:示波器光标测得 1bit 位宽;
  • 波特率计算:1/20.90μs ≈ 47.85kHz,总线波特率约 50kbit/s;
  • 时基档位 5us/div:横轴一格代表 5 微秒,方便测量单 bit 宽度。

二、示波器观测 CAN 通信操作步骤

步骤 1:硬件接线(差分测量,避免干扰)

CAN 是差分信号,推荐两种测量方式:

  1. 差分探头:差分探头正极接 CAN-H,负极接 CAN-L,GND 接地;直接输出差分波形,抗电机、电源干扰,波形干净(图中 CH2 就是差分波形)。
  2. 普通单端探头(简易)
    • CH1 接 CAN-H,CH2 接 CAN-L;
    • 示波器开启数学运算 MATH:CH1-CH2,得到差分 CAN 波形;
    • 两个探头地线必须共接GND,减少噪声。

注意:CAN 隐性电平(空闲):CANH≈2.5V、CANL≈2.5V,差分压差≈0V(逻辑 1);显性电平:CANH≈3.5V、CANL≈1.5V,差分压差≈2V(逻辑 0)。

步骤 2:示波器基础参数配置

  1. 垂直档位(电压)单端探头:1V/div(图 CH2 标注 1V,10X 衰减探头);差分波形峰峰值约 2V,1V/div 刻度刚好看清高低电平。
  2. 时基(横轴时间)根据波特率选择:
    • 50k~125k:5μs/div(本图档位);
    • 250k~500k:1μs/div;
    • 1M 波特:0.5μs/div;目标:屏幕能放下完整一帧波形,同时看清单个 bit 跳变。

步骤 3:触发设置(稳定抓取单帧 CAN 波形,最关键)

CAN 空闲时全是隐性 1,只有 SOF 是显性 0,用下降沿触发锁定每一帧:

  1. 触发源:选择差分运算通道(或 CH1 CAN-H);
  2. 触发类型:边沿触发,下降沿
  3. 触发电平 Level:调至 2V 左右,只捕捉 SOF 的下降沿;
  4. 触发模式:正常 / Normal,避免自动 Auto 持续滚动。设置后示波器每收到一帧,自动定格完整波形,不会杂乱滚动。

步骤 4:位宽与波特率测量(图中光标操作)

  1. 开启双光标(图右侧两个光标按钮);
  2. 光标 1 对准某 bit 上升沿,光标 2 对准下一个 bit 同位置;
  3. ΔX 读数 = 单 bit 时间,计算波特率:波特率=1/ΔX本图 ΔX=20.9μs,1/20.9e-6≈47847bps,实际总线 50kbps,微小误差来自示波器采样。

步骤 5:解码读取 CAN 数据(两种方法)

方法 A:人工逐 bit 读取(本图方式,适合理解协议)

  1. 以 SOF 下降沿为起点,按 bit 依次记录高低电平(低 = 0 显性,高 = 1 隐性);
  2. 遇到连续 5 个相同 bit 时,剔除填充位,还原原始协议二进制;
  3. 按 SOF→ID→RTR→IDE→DLC→CRC 分段翻译,转十六进制 ID、DLC、数据。

方法 B:示波器自动 CAN 解码(推荐,效率高)

中高端示波器内置 CAN 协议解码:

  1. 菜单开启【总线解码】→协议选择 CAN2.0A/B;
  2. 指定差分输入通道、总线波特率(匹配硬件 50k/125k/500k 等);
  3. 屏幕下方自动滚动解析出每一帧:ID、RTR、DLC、数据字节、CRC;
  4. 搭配存储功能(图「快速保存」),记录故障瞬间多帧报文。

步骤 6:故障观测辅助操作

  1. 位填充异常排查波形出现无规律窄脉冲、5 个相同 bit 后无填充位→CAN 控制器硬件故障;
  2. 波形畸变观察显性电平压差不足、边沿缓变、毛刺尖峰→线束接触不良、终端电阻缺失(CAN 两端需 120Ω 终端电阻);
  3. 长时间抓包开启单次触发 + 快速保存,抓取偶发报错帧、总线离线波形。

三、关键总结

  1. 图本质:标准 CAN2.0A 数据帧差分波形,演示位填充规则与帧结构分段;
  2. 示波器看 CAN 核心流程:差分接线→边沿下降沿触发→时基匹配波特率→光标测位宽 / 人工解码,或开启自动 CAN 总线解码;
  3. 判读核心逻辑:显性低电平 = 0,隐性高电平 = 1,连续 5 同 bit 需删除填充位再解析真实报文。
http://www.jsqmd.com/news/1099591/

相关文章:

  • 【无标题】当工具返回 50KB 结果时发生了什么?—— OpenClaw 处理大工具输出的工程实践
  • 【题解-信息学奥赛一本通】1228:书架
  • 第一单元:在 Kotlin 中创建和使用函数
  • 20260630 - 看门狗
  • 垃圾自动分类技术:从AI识别到机械分拣的工程实践与选型指南
  • 谷歌研究院打造“论文助手工具“,AI审稿时代正在悄然开启
  • 王建:GEO的效果与信源密不可分 企业不要再一味追求“效率”
  • 【实证分析】地级市互联网综合发展指数(2003-2024年)
  • ArkTS 双向绑定输入框代码完整详解和 个人信息卡片代码完整详解(ArkTS)
  • Agent Skill 学习笔记
  • LeetCode 902 最大为 N 的数字组合:python3 题解
  • 基于.NET AgentFramework开发OpenClaw智能体框架
  • OpenClaw Ubuntu 部署经验总结
  • Go语言面试遇到,面试官问什么是协程、什么是协程泄漏和数组跟切片是用该如何回答
  • 深入浅出理解卷积的概念
  • GESP2026年6月认证C++三级( 第三部分编程题(1、加密))精讲
  • 仅限高级运维查看:VMware跨主机磁盘共享映射的3层隔离机制(含vSAN与NFS混合场景避坑清单)
  • 告别锁竞争:用C++11的concurrentqueue重构你的生产者消费者模型(附完整代码)
  • 一天一个Python库:tomlkit - 轻松解析和操作TOML配置
  • Magpie深度解析:3步让老旧游戏在4K屏幕上焕发新生
  • 【Java从入门到精通】第10篇:抽象类与接口的博弈——模板方法模式与面向接口编程
  • 从 Chatbot 到 Agent:Skill、MCP、CLI 如何让 AI 真正干活
  • NSF与NASA联合资助国际空间站研究:软骨组织工程“飞向”太空轨道
  • 基于51/STM32单片机分贝仪检测 噪音等级声音采集(设计源文件+万字报告+讲解)(支持资料、图片参考_降重降ai)
  • 终极指南:如何安全备份微信聊天记录的技术方案解析
  • Python基础:三元表达式极简写法与高阶嵌套、场景避坑指南
  • 运维实战:从Linux基础到Zabbix、Docker、MySQL的系统化集成与监控
  • RAG 查询改写:如何把用户的随口一问,改写成检索系统能命中问题
  • 第22天:CFS 调度:完全公平调度的核心原理
  • Adobe-GenP 3.0:终极Adobe软件激活指南与使用技巧