STM32-CAN总线

1.CAN总线简介

CAN总线是由BOSCH公司开发的一种简洁易用、传输速度快、易扩展、可靠性高的串行通信总线

2.CAN总线特征

  • 两根通信线(CAN_H、CAN_L),线路少,无需共地
  • 差分信号通信(相对的是单端信号),抗干扰能力强(意思是当有干扰时,两根线同时产生波动,但两根线的差值不变)
  • 高速CAN(ISO11898):125k~1Mbps,<40m
  • 低速CAN(ISO11519):10k~12kbps,<1km
  • 异步,无需时钟线,通信速率由设备各自约定
  • 半双工,可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序
  • 可实现多个主控设备相互进行通讯
  • 11位/29位报文ID,用于区分消息功能,同时决定优先级
  • 可配置1~8字节的有效载荷
  • 可实现广播式和请求式两种传输方式
  • 应答、CRC校验、位填充、位同步、错误处理等特性

总结:CAN总线就是一组半双工异步串行通信的差分信号总线。

3.CAN总线硬件电路

  • 每个设备通过CAN收发器挂载在CAN总线网络上
  • CAN控制器引出的TX和RX与CAN收发器相连,CAN收发器引出的CAN_H和CAN_L分别与总线的CAN_H和CAN_L相连
  • 高速CAN使用闭环网络,CAN_H和CAN_L两端添加120Ω的终端电阻(作用:1.防止回波反射,2.没有设备操作时,将两根差分线的电压收紧)
  • 低速CAN使用开环网络,CAN_H和CAN_L其中一端添加2.2kΩ的终端电阻(作用:防止回波反射)

4.CAN电平标准

  • CAN总线采用差分信号,即两线电压差(Vcan_h-Vcan_l)传输数据位
  • 高速CAN规定:

电压差为0V时表示逻辑1(隐性电平)

电压差为2V时表示逻辑0(显性电平)

  • 低速CAN规定:

电压差为-1.5V时表示逻辑1(隐性电平)

电压差为3V时表示逻辑0(显性电平)

5.CAN总线帧格式

|-----|---------------------|
| 帧格式 | 用途 |
| 数据帧 | 发送设备主动发送数据(广播式) |
| 遥控帧 | 接受设备主动请求数据(请求式) |
| 错误帧 | 某个设备检测出错误时向其他设备通知错误 |
| 过载帧 | 接受设备通知其尚未做好接受准备 |
| 帧间隔 | 用于将数据帧及遥控帧与前面的帧分离开 |

相关推荐
兰_博16 分钟前
ensp配置-无线局域网配置
网络
许彰午31 分钟前
17-22-运维与高级主题
运维·网络
万联WANFLOW31 分钟前
外贸独立站:服务器放海外国内后台卡,放国内海外客户打不开——这道两头难怎么破?
运维·网络·数据库·经验分享
LCG元34 分钟前
STM32 RS485 Modbus RTU通信系统设计:从协议解析到工程实战
stm32·单片机·嵌入式硬件
Kari111 小时前
连锁门店开业网络验收怎么做:把 PDF 清单改造成可回放的 Skill
网络·人工智能·pdf·php
玖玥拾1 小时前
Unity 3D 笔记(十二)Unity/C# Socket 网络笔记1
网络·unity·c#
2401_891957311 小时前
简单了解传输层协议UDP
网络·网络协议·udp
AvatarAI_Walker2 小时前
2026年7月安徽本地健康IP孵化行业观察:不同需求下的服务方向梳理
大数据·网络·tcp/ip·搜索引擎·精选
一棵星2 小时前
WebSocket 长连接不稳?一次完整的排查与修复之旅
网络·websocket·网络协议
发量惊人的中年网工2 小时前
AI服务器托管怎么选机房?GPU集群对机柜、电力和网络的硬要求
服务器·网络·人工智能