CAN协议详解+常见问题汇总,吐血整理!!!

本文详述了CAN协议的物理层、协议层,并以STM32为例探讨了配置、发送与接收机制。CAN总线是异步通讯,支持高速短距离和低速远距离通讯。在STM32中,CAN配置涉及主控制寄存器和位时序,发送邮箱和接收FIFO管理数据传输,验收筛选器则用于过滤不必要的报文。文章还列举了CAN常见问题,如仲裁机制、波特率计算等。
摘要由CSDN通过智能技术生成

文章分两部分,一是CAN的详解,二是常见问题汇总;文章长,但是都是重点精华,往有帮助~

(参考的是火哥的STM32有关CAN协议的文档)

一、CAN的详解

1. 物理层

  • CAN总线:成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。
  • CAN是异步通讯,只有CAN_High和CAN_Low两条信号线,且这两条信号线是差分信号线,以差分信号的形式通讯;
  • CAN是半双工的,在同一时刻,一个通讯节点发送消息,其他节点只能接收消息;
  • CAN物理层的形式分为闭环总线和开环总线,闭环总线是高速短距离的,长度最长40m,通信速度最高10Mbps;开环总线是低速远距离的,长度最长1km,通信速度最高125kbps。开环闭环的区别在于差分信号线是不是连在一起的。
  • CAN总线可以挂载多个节点:

  • 差分信号:两根信号线的幅度相同,相位相反,通过电压差代表电平1和0;差分信号优点:抗干扰能力强,因为有外界噪声干扰时,会同时耦合到这两条信号线上,由于接收端只关心信号的差值,因此噪声可以抵消。
  • 逻辑电平为1是隐性电平,CAN_High和CAN_Low电压都是2.5v,压差为0;逻辑电平为0显性电平,CAN_High电压3.5v和CAN_Low电压1.5v,压差2v。

2. 协议层

  • CAN中,每个数据位又分为多个段,包括:SS、PTS、PBS1、PBS2;一个数据位由8~25个Tq表示,这个段的作用是保证让该节点与总线的时序同步,确保通讯正常;
  • 7
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值