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

CAN 总线深入理解:从差分通信、节点仲裁到终端电阻

CAN 总线深入理解:从差分通信、节点仲裁到终端电阻

1. CAN 总线为什么适合机器人和电机控制?

在机器人、电动车、工业控制领域,经常需要一个控制器同时连接多个设备,例如:

  • 多个电机
  • 编码器
  • 传感器
  • 执行机构

如果每个设备都单独占用一组 UART,那么设备数量一多,线路会非常复杂。

CAN(Controller Area Network)就是为了解决这种多节点实时通信问题而设计的。

它最大的特点:

  1. 一根总线可以挂多个设备
  2. 多个设备可以主动发送数据
  3. 硬件自动解决通信冲突
  4. 具有较强抗干扰能力

这也是为什么汽车和 RoboMaster 机器人大量采用 CAN 通信。


2. CAN 总线的基本结构

一个完整的 CAN 节点通常包含:

             MCU||CAN 控制器|CAN 收发器|CAN_H     CAN_L|CAN 总线

例如 STM32:

  • CPU 负责产生控制逻辑
  • CAN 控制器负责 CAN 协议处理
  • CAN 收发器负责电平转换

2.1 CAN 控制器是什么?

CAN 控制器不是单片机。

它更像 STM32 内部的一个通信模块。

类似:

  • UART 控制器
  • SPI 控制器
  • I2C 控制器
  • CAN 控制器

它负责:

  • 生成 CAN 帧
  • 计算 CRC
  • 检测错误
  • 自动仲裁
  • 管理发送和接收

例如:

程序告诉 CAN 控制器:

我要发送 ID=0x201,数据长度8字节,数据内容XXXX

后面的事情:

  • 加帧头
  • 加校验
  • 判断总线状态

由硬件自动完成。


2.2 CAN 收发器是什么?

CAN 控制器输出的是 MCU 内部数字信号:

例如:

0
1
0
1

但是 CAN 总线上需要的是:

CAN_H
CAN_L

两根差分电压信号。

所以需要 CAN 收发器。

例如:

  • TJA1050
  • SN65HVD系列

它负责:

数字信号

差分电平


3. CAN 和 RS485 的区别

很多初学者会发现:

CAN 和 RS485 都是两根线,而且都是差分通信,它们是不是一样?

答案:

物理层类似,但是通信机制不同。


3.1 RS485

RS485 主要解决:

数据如何可靠传输

它只规定:

  • 两根差分线
  • 电气标准

但是:

谁发送?
什么时候发送?
数据代表什么?

需要上层协议决定。

例如:

RS485 + Modbus

结构:

主机↓RS485↓设备

一般采用:

主站询问

从站回复


3.2 CAN

CAN 不仅规定电气层,还规定通信机制。

例如:

  • 消息 ID
  • 优先级
  • 仲裁
  • 错误检测

多个设备可以同时尝试发送。

CAN 自己解决冲突。


4. CAN 总线为什么只有两根通信线?

CAN 使用差分通信:

两根线:

CAN_HCAN_L

接收端判断:

CAN_H - CAN_L

的电压差。

而不是看:

某根线相对于 GND 是多少伏。


4.1 CAN 电平变化

典型高速 CAN:

隐性位(逻辑1)

CAN_H ≈ 2.5VCAN_L ≈ 2.5V差值≈0V

显性位(逻辑0)

CAN_H ≈3.5VCAN_L≈1.5V差值≈2V

CAN 的巧妙设计:

显性0可以覆盖隐性1。


5. CAN 为什么可以多个设备同时通信?

这是 CAN 最核心的地方:

总线仲裁机制

假设两个设备同时发送:

设备A:

发送1

设备B:

发送0

因为:

0 是显性

1 是隐性

所以总线上表现:

0

设备A检测:

自己发送:

1

但是总线:

0

于是知道:

有更高优先级的数据正在发送

A 自动停止。

B 继续发送。

整个过程:

  • 不需要软件判断
  • 不需要重新排队
  • 硬件自动完成

6. CAN ID 是地址吗?

这是很多人的误区。

CAN ID 更准确叫:

报文标识符(Identifier)

它有两个作用:

作用1:区分消息

例如:

0x201代表1号电机反馈0x202代表2号电机反馈

STM32收到:

ID=0x203

就知道:

这是3号电机的数据。


作用2:决定优先级

CAN 仲裁:

ID越小,优先级越高。

例如:

0x100优先级高0x300优先级低

7. 四个电机如何区分?

假设:

四个 CAN 电机:

电机1ID=0x201电机2ID=0x202电机3ID=0x203电机4ID=0x204

它们发送:

速度

角度

温度

错误状态

主控收到数据:

看到 ID:

就知道:

谁发来的


8. 电机 ID 是怎么来的?

通常有几种方式:

方法1:厂家固定

例如 RoboMaster 电机。

协议规定:

电机1:0x201电机2:0x202

用户不能修改。


方法2:软件配置

工业 CAN 设备:

可以通过上位机修改:

例如:

设备地址:

1234

保存到内部 Flash。


方法3:拨码开关

一些设备:

直接通过硬件拨码设置地址。


9. 电机是主动发送还是被询问?

两种方式都有。

方式1:主动上报

例如 RoboMaster:

电机周期性发送:

角度速度电流温度

STM32只监听。


方式2:查询响应

类似 Modbus:

主机:

请告诉我速度

电机:

当前速度100rpm

具体采用哪种:

由设备协议决定。

CAN 本身不规定。


10. CAN 总线为什么需要120Ω终端电阻?

这是 CAN 布线非常重要的知识。

高速信号在线缆上传输时:

如果末端没有匹配:

会产生:

信号反射

类似:

水管突然堵住:

水流会反弹。

电信号也一样。


11. 什么叫阻抗匹配?

简单理解:

让信号看到:

前面的路和自己一样宽

不会突然遇到:

  • 开路
  • 突然变化

这样信号可以继续传播。

CAN 双绞线特性阻抗:

约:

120Ω

所以末端加:

120Ω电阻

让信号能量被吸收。


12. 120Ω电阻应该怎么接?

注意:

不是:

CAN_H 接一个120Ω

CAN_L 接一个120Ω

而是:

CAN_H||
120Ω||
CAN_L

也就是:

跨接 CAN_H 和 CAN_L。


13. 终端电阻应该放在哪里?

原则:

整条 CAN 网络两端各一个

例如:

STM32|电机1|电机2|电机3|电机4

那么:

STM32端120Ω电机4端120Ω

中间:

电机1、2、3

不要接。


14. 为什么中间节点不能接120Ω?

假设:

四个设备全部接120Ω:

等效阻抗会降低。

两个120Ω:

等效:

60Ω

多个:

越来越低。

结果:

  • 总线负载增加
  • 电流增大
  • 信号幅度下降
  • 通信不稳定

所以:

CAN 网络永远只需要两个终端电阻。


15. 短距离可以不接终端电阻吗?

例如:

四个电机距离:

10厘米以内。

实验:

可能可以通信。

但是工程:

不建议。

原因:

今天短:

明天可能:

  • 加长线
  • 加传感器
  • 改布局

按照规范设计:

永远保留两个终端电阻。


16. CAN 总线拓扑结构

CAN 推荐:

总线型拓扑

例如:

================|    |    |电机1 电机2 电机3================

不推荐:

星型

例如:

        电机1|电机2---STM32---电机3|电机4

原因:

分支过多:

容易产生反射。


17. RoboMaster STM32开发板中的CAN

RoboMaster C型开发板:

通常具有:

CAN1

CAN2

它们代表:

两套独立 CAN 网络。

例如:

CAN1:

底盘电机

CAN2:

云台电机

不是因为一条 CAN 必须有两个接口。

而是方便系统划分。


18. USB转CAN是什么?

USB转CAN设备:

本质:

电脑和 CAN 网络之间的转换器。

结构:

PC|USB控制器|CAN控制器|CAN收发器|CAN_H/CAN_L

用途:

  • 查看 CAN 数据
  • 调试电机
  • 分析协议

19. 总结

CAN 最核心的几个知识点:

1.

CAN 是差分通信:

CAN_H + CAN_L

2.

CAN 不靠电压高低判断,而看差分。

3.

CAN 控制器负责:

  • 仲裁
  • CRC
  • 错误检测

4.

CAN ID:

不是简单地址,而是报文标识符。

5.

ID越小:

优先级越高。

6.

CAN允许多个设备同时发送:

靠显性/隐性机制自动仲裁。

7.

CAN总线需要:

两个120Ω终端电阻。

8.

终端电阻:

接在物理总线两端。

9.

中间节点:

不要加终端电阻。

10.

CAN真正强大的地方:

不是“两根线”,而是:

它把多设备通信中的冲突处理、优先级管理、错误检测,都集成到了硬件里面。

这也是为什么 CAN 成为了机器人、电动车和工业控制领域最常用的通信方式之一。

http://www.jsqmd.com/news/1263468/

相关文章:

  • MARS框架三大实例:MARS-AdamW、MARS-Lion与MARS-Shampoo对比分析
  • Zotero OCR完整指南:让扫描PDF秒变可搜索文献的终极解决方案
  • 90%的简单任务不该用GPT-5.4:我在Taotoken平台验证的分级路由策略
  • 大模型选型实战:从Kimi K3到开源方案的性能、成本与工程化考量
  • 资本家内刊:《1000千亿人民币规模地下土地财政效益评估制度》著作家 方达炬
  • 2026 年至今,六枝特优秀的道路分隔护栏制造厂家哪家强,别再浪费钱!这套护栏如何让你省下百万维修费?-文兴声屏障护栏网 - 行业推荐官[官方】--
  • 5分钟上手PyOfficeRobot:微信机器人新手必备技能清单
  • SmartAny使用指南:SmartCodable如何优雅处理Any类型
  • 港科大EMBA对比:民营企业家择校选择指南 - 品牌2026推荐
  • 都江堰本地整装装饰公司靠谱推荐,分阶段验收付款 + 24 小时全天候售后 附家庭装修预算合理规划指南 - 资讯速览
  • 上海专业涉外继承律师|境外文书公证认证、跨境遗产确权纠纷解决方案 - 速递信息
  • day9
  • 天津北辰哪里回收黄金不坑?3 家本土实体门店实地测评汇总 - 华金汇黄金回收
  • 远程精确打击系统技术解析:从目标识别到毁伤评估的完整链条
  • 如何禁止特定Item拖拽?android-drag-FlowLayout的IDraggable接口使用教程
  • Jenkins 部署实战:从 Java -jar 到 Systemd 服务治理的完整演进
  • 你的 Agent Demo 能跑,为什么不敢进生产环境?权限与日志才是生死线
  • AI客服如何助力中小企业降本增效?
  • 解析semantic_slam核心模块:语义点云生成与八叉树融合技术
  • DAC39J84 JESD204B接口与DSP链配置实战:从参数计算到系统调试
  • 2026 年 7 月新发布:宽城口碑好的5米钢板卷圆源头厂家哪家权威,揭秘:5米钢板卷圆如何颠覆您的生产效率-晶玉激光切割 - 企业信息推荐【官方】
  • Java面试进阶:从八股文到系统设计,构建高效解题思维
  • 个性化学习失效的真相,深度剖析87%自适应平台未公开的3个数据断层与修复方案
  • 广州管道疏通那家专业 马桶疏通那家好 地漏疏通那家专业,洗菜池疏通那家那家好,清理化粪池清理 隔油池清理 高压疏通主管道。 - 园子一号
  • 10分钟上手Open-Builder:从安装到创建第一个世界的快速启动教程
  • 告别JSX?react-hyperscript让React开发更简洁:语法规则与最佳实践
  • ERC20代币集成教程:使用web3.swift实现转账与余额查询
  • Godot引擎入门:场景树、GDScript与2D游戏开发实战
  • 济南壹软加入山东省软件行业协会,积极拓展多语言软件与海外数字化服务 - 壹软科技
  • Headless Tree 自定义主题与样式:打造符合品牌风格的树形组件