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

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

相关推荐
不被定义的~wolf3 分钟前
【STM32】系统滴答计时器systick
stm32·单片机·嵌入式硬件
盛满暮色 风止何安1 小时前
VLAN的高级特性
运维·服务器·开发语言·网络·网络协议·网络安全·php
yangpipi-1 小时前
6. 王道_网络协议
网络·网络协议
洁白的郁金香1 小时前
HCIP-6 DHCP
网络·学习
是程序喵呀2 小时前
软考《信息系统运行管理员》- 6.2 信息系统硬件的安全运维
网络·安全·软考
AI享网无代码创作2 小时前
WP Mail 邮件发送:WordPress Mail SMTP设置
运维·服务器·网络
二年级程序员3 小时前
51单片机的五类指令(一)——数据传送类指令
汇编·单片机·嵌入式硬件·51单片机
happyblreay4 小时前
如何实现用户态可控的网络传输
网络
相醉为友4 小时前
001 使用单片机实现的逻辑分析仪——吸收篇
笔记·单片机·嵌入式硬件·fpga开发·嵌入式
苏十八4 小时前
计算机网络相关知识小结
服务器·网络·计算机网络