Can总线学习笔记

通信总线学习笔记:TTL、RS-232、RS-485、CAN 总线详解

1. 通信接口的本质

电子设备之间要交换数据,需要一种“通信方式”。

通信主要解决三个问题:

  1. 信号怎么表示?

    • 电压高低代表什么?
    • 0 和 1 怎么表示?
  2. 数据怎么组织?

    • 谁发送?
    • 谁接收?
    • 数据长度是多少?
  3. 多个设备同时通信怎么办?

    • 冲突如何解决?
    • 谁优先发送?

不同通信标准解决问题的层次不同。


2. TTL UART

2.1 什么是 TTL?

TTL 是最基础的数字电平通信。

例如 STM32:

  • 高电平:3.3V
  • 低电平:0V

通常:


1 → 3.3V
0 → 0V

它是单端通信。


2.2 什么叫单端通信?

单端通信:

信号线相对于 GND(地)判断电压。

例如:


信号线 ---- STM32
|
|
GND

接收端测量:


信号线电压 - 地电压

来判断 0 和 1。

优点:

  • 简单
  • 成本低

缺点:

  • 抗干扰能力弱
  • 传输距离短

典型:

TTL UART:

  • 距离:几米以内
  • 速度:几 Mbps(短距离)

应用:

  • STM32连接传感器
  • 蓝牙模块
  • GPS模块

3. RS-232

3.1 RS-232是什么?

RS-232 是一种串口通信标准。

它也是:

  • 单端通信
  • 需要参考地

典型连接:


设备A          设备B

TX ------------ RX

GND ----------- GND


3.2 RS-232为什么有正负电压?

RS-232不是0V和5V。

它使用:

  • 正电压
  • 负电压

例如:


+12V
-12V

并且逻辑和TTL相反:

通常:


逻辑1 → 负电压

逻辑0 → 正电压

所以叫:

负逻辑电平


3.3 为什么STM32不能直接接RS-232?

因为STM32 UART:


0V ~ 3.3V

而RS-232:


±12V

电压不匹配。

需要转换芯片:

例如:


STM32 UART


MAX232


RS-232接口


3.4 RS-232特点

优点:

  • 简单
  • 历史悠久

缺点:

  • 单端通信
  • 抗干扰差

参数:

距离:

约15米

速度:

几十kbps到115.2kbps常见

应用:

  • 老式电脑串口
  • 工业仪器

4. RS-485

4.1 RS-485是什么?

RS-485 是差分通信。

它使用两根线:


A
B

也叫:


D+
D-


4.2 什么叫差分通信?

差分通信不是看某根线是多少伏。

而是看:


A - B

的电压差。

例如:

状态1:


A = 2.6V
B = 2.4V

差值 = +0.2V

状态2:


A = 2.4V
B = 2.6V

差值 = -0.2V

接收器只关心:


两根线谁高,谁低


4.3 为什么差分抗干扰强?

假设外界噪声:


A受到 +1V干扰

B受到 +1V干扰

那么:

原本:


A-B = 2V

干扰后:


(A+1)-(B+1)

= A-B

噪声抵消。

所以:

差分通信适合:

  • 长距离
  • 工业环境

4.4 RS-485需要几根线?

理论:

两根:


A
B

即可通信。

工程:

通常加:


GND

形成:


A
B
GND


4.5 RS-485特点

距离:

约1200米(低速)

速度:

最高可到数Mbps(短距离)

常见:

  • 9600bps
  • 115200bps
  • 1Mbps

应用:

  • PLC
  • 变频器
  • 工业传感器

5. Modbus 和 RS-485 的关系

这是容易混淆的地方。

RS-485:

解决:

电怎么传?

属于物理层。

Modbus:

解决:

数据是什么意思?

属于通信协议。

类似:

RS-485 = 电话线路

Modbus = 说话规则


例如:

RS-485发送:


01 03 00 10 00 02

Modbus规定:


01代表设备地址

03代表读取命令

00 10代表寄存器地址

所以:

RS-485 + Modbus

≈ 工业设备通信方案。


6. CAN总线

6.1 CAN是什么?

CAN:

Controller Area Network

控制器局域网。

特点:

  • 差分通信
  • 多节点
  • 自动仲裁
  • 高可靠性

应用:

  • 汽车
  • 机器人
  • RoboMaster电机

7. CAN物理线路

CAN通信主要两根线:


CAN_H

CAN_L

通常:

再加:


GND

所以实际:


CAN_H
CAN_L
GND


8. CAN电压

高速CAN:

空闲:


CAN_H ≈ 2.5V

CAN_L ≈ 2.5V

差值:


≈0V

发送显性位:


CAN_H ≈3.5V

CAN_L ≈1.5V

差值:


≈2V


9. CAN的显性和隐性

CAN最巧妙的地方:

它定义:

隐性位

逻辑:


1

特点:

两根线电压接近。

显性位

逻辑:


0

特点:

产生明显差分电压。

关键:

显性0可以覆盖隐性1


10. CAN为什么能解决冲突?

假设两个设备同时发送:

设备A:


发送1

设备B:


发送0

总线:

因为0是显性:

结果:


总线=0

设备A发现:


我发1

但是检测到0

说明:

有更高优先级设备发送

于是:

A停止发送。

设备B继续发送。

这叫:

CAN仲裁机制


11. CAN的ID是什么?

CAN ID不是简单地址。

更准确:

报文标识符

它有两个作用:

1. 表示消息类型

例如:


0x201

表示1号电机反馈

2. 决定优先级

ID越小:

优先级越高。

例如:


0x100

优先级高

0x300

优先级低


12. 电机如何知道是不是自己的数据?

靠协议规定。

例如四个电机:


电机1:

ID=0x201

电机2:

ID=0x202

电机3:

ID=0x203

电机4:

ID=0x204

STM32收到:


0x203

知道:

这是3号电机。


13. CAN节点结构

一个CAN设备内部:


CPU

|
|

CAN控制器

|

CAN收发器

|


CAN_H CAN_L


CAN控制器负责:

  • 报文封装
  • CRC计算
  • 仲裁
  • 错误检测

CAN收发器负责:

数字信号

差分电压

例如:

常见芯片:

TJA1050


14. RoboMaster C型STM32F4开发板

这块板:

内部STM32有:


CAN控制器

外部:


CAN收发器

所以提供:


CAN1接口

CAN2接口


15. 为什么有CAN1和CAN2?

不是因为CAN必须两根。

而是:

两个独立CAN网络。

例如:

CAN1:


底盘电机

CAN2:


云台设备

两条网络互不影响。


16. USB转CAN是什么?

USB转CAN设备:

本质:

电脑和CAN网络之间的桥梁。

结构:


电脑USB

↓

USB控制器

↓

CAN控制器

↓

CAN收发器

↓

CAN_H/CAN_L

用途:

  • 调试电机
  • 查看报文
  • 测试CAN协议

17. CAN、485、232、TTL对比

类型 信号方式 线数 距离 速度 特点
TTL 单端 TX/RX/GND 几米 Mbps级 板内通信
RS232 单端 TX/RX/GND 15m左右 115kbps常见 老串口
RS485 差分 A/B/GND 1200m Mbps级 工业通信
CAN 差分 H/L/GND 百米级 1Mbps 多节点实时控制

18. 最核心的理解

如果一句话总结:

TTL

我告诉你电压是多少。

RS232

我用正负电压告诉你数据。

RS485

我用两根线的电压差告诉你数据。

CAN

我不仅告诉你数据,还帮你管理很多设备同时通信。


19. 学习CAN需要掌握的知识路线

建议顺序:

  1. UART基础
  2. TTL电平
  3. RS232/RS485区别
  4. 差分信号
  5. CAN物理层
  6. CAN帧结构
  7. CAN ID和仲裁
  8. STM32 CAN外设
  9. 电机CAN协议

对于RoboMaster开发:

重点:

  • CAN_H/CAN_L接线
  • 波特率
  • ID规划
  • 发送报文
  • 接收反馈
  • 电机协议

总结:

CAN最大的特点不是“两根线”,因为485也是两根线。

CAN真正厉害的是:

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

所以汽车、电机、机器人特别喜欢用CAN。

posted @ 2026-07-25 21:09  wangya216  阅读(11)  评论(0)    收藏  举报