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总线帧格式

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

相关推荐
fanged11 小时前
设备树学习2--一个设备
嵌入式硬件
天启HTTP11 小时前
开启全局代理后网络变慢,问题出在哪
开发语言·前端·网络·tcp/ip·php
信息安全失业大专人员11 小时前
网络可靠性之战——物理检测与网络逻辑检测
网络
数智工坊12 小时前
【ROS 2 全栈入门指南三】:Action、参数与Launch文件全链路指南
android·stm32·嵌入式硬件·学习·机器人
科技风向标go12 小时前
QYResearch联合发布:《2026室外网络摄像头行业白皮书》格行视精灵成用户室外硬核环境首选监控
大数据·网络·安全·监控·户外安防
Inhand陈工12 小时前
映翰通IG502实战:通过RS232采集交通信号灯数据,实现自动短信告警
网络·嵌入式硬件·物联网·网络安全·边缘计算·信息与通信·信号处理
weixin_6042366712 小时前
华三 二层交换机 企业完整正式版配置
运维·网络·华为·华为交换机命令
不脱发的程序猿12 小时前
我把360里真正用得到的功能拆出来,做个轻量工具
stm32·单片机·嵌入式硬件
hai31524754312 小时前
libcore_final.c —— 九章数流矩阵系统
linux·运维·网络
刘哥测评技术zcwz62612 小时前
海外动态IP和静态IP需要怎么选择
网络·网络协议·tcp/ip