stm32——CAN总线通信

CAN通信

CAN物理层

CAN

复制代码
can采用双总线,差分信号设计(CAN_H,CAN_L),线路少,无需共地
can分为高速can(采用闭环设计、传输距离<40m)与低速can(采用开环设计、传输距离<1km)
半双工异步通信,无需时钟线、多主机间通信
通过报文id区分消息功能与优先级
可实现广播和请求两种传输方式

CAN硬件电路

  1. 高速CAN总线

  2. 低速CAN总线

上图中电阻采用经验设计,主要为了抵抗终端反射的干扰。

CAN电平标准

CAN采用差分信号 即两线的电压差来表示逻辑电平0、1(VCAN_H - VCAN_L)

高速CAN规定:

  1. 电压差为0V表示1
  2. 电压差为2V表示0

低速CAN规定:

  1. 电压差为-1.5V表示1
  2. 电压差为3V表示0

CAN总线帧

数据帧 发送设备主动发送数据
遥控帧 接收设备主动请求数据
错误帧 产生错误向其他设备发送通知错误
过载帧 接收设备通知尚未做好接收准备
帧间隔 将数据帧、遥控帧与前面的帧分割
  1. 数据帧

如上图所示,数据帧分为帧起始、仲裁段、控制段、数据段、CRC校验、ACK、帧结束

其中

帧起始(1 bit)隐形

仲裁段

ID (11 bit) 用来表示消息类型、和进行总线仲裁

RTR (1 bit) 用来区分是数据帧还是遥控帧 相同ID下数据帧的优先级大于遥控帧

控制段

IDE (1 bit) 用来表示采用扩展格式解释还是标准格式解释

r0 (1 bit) 保留位

DLC (4 bit) 有效载荷字节数 <1000

数据段 (0~64 bit)

  1. 遥控帧

  2. 错误帧

  3. 过载帧

  4. 帧间隔

CAN位填充

发送方在发送5个相同的电平后会自动 填充一个相反的位,接收方在接收到填充位后会自动丢弃恢复成原有的数据类型

例如:

发送 111111

经过位填充后 1111101

接收方 111111

标志错误帧与过载帧

错误帧与过载帧 会出现6bit的相同电平 而正常的数据流不会出现

CAN位同步

  1. 硬同步

    每个设备都有一个位时序计数周期,当某个设备率先发送报文,其他所有设备接收报文,当受到帧起始位(SOF)的下降沿时,接收方会将自己的位时序计数周期 拨到ss段位置,与发送方保持同步

    硬同步只在帧的第一个下降沿有效

    经过硬同步后,若后续的时钟没有误差,则后续数据必然是对其的

  2. 再同步

    若发送方与接收方的时钟存在误差,随着误差的累计,数据位边沿会逐渐偏离ss段,则接收方根据再同步补偿宽度值,通过加长PBS1 或者缩短PBS2 以调整

CAN总线仲裁

  1. 先占先得
    1. 若当前已经有设备向总线发送 数据帧/遥控帧,则其他设备不能发送数据帧或者遥控帧
    2. 当任何设备检测到连续11个隐形电平,则认为总线空闲,设备只有在总线空闲的情况下可以发送数据帧/遥控帧
    3. 一旦有设备发送数据帧/遥控帧,则因为拥有位填充必然不会出现11bit相同的电平
  2. 非破环性仲裁
    1. 若多个设备同时到来,则通过ID号来进行非破环性仲裁,ID小的优先级高,仲裁失败后转入接收状态,等待下一次总线空闲
    2. 线与特性:只有所有设备都发送隐形电平的时候,总线上才会显示隐形电平
    3. 回读机制:每个设备发送数据后都会读取线上数据判断是否与当前发送数据相同
      例如: A:ID=0001 B:ID=0010
      0001 B仲裁失败进入接收状态
相关推荐
Yiran_G1 小时前
ZigBee通信正常,数据却是错的?嵌入式开发中的数据链路排查
网络·嵌入式硬件·物联网·智能家居
深圳老胡1 小时前
STM32C5A3ZG开发板:基于STM32CubeMX与VSCode的按键检测与LED闪烁实战
笔记·stm32·单片机·代码规范
像枫一样1 小时前
STM32串口轮询收发实战教程
arm开发·c++·stm32·单片机·嵌入式硬件·fpga开发·51单片机
糖糖单片机设计1 小时前
基于 STM32 的智能书桌控制系统
stm32·单片机·嵌入式硬件
逐步前行1 小时前
嵌入式图形库-LVGL v9.6-环境搭建(Windows+VSCode模拟)
单片机·嵌入式硬件
lhbweilai1 小时前
分析FreeRTOS内核对象API的源码实现(六)
c语言·stm32·单片机
HQB20262 小时前
# EG1190|屹晶微电子 115V 外置 MOS 异步降压 DC‑DC 控制器(零功耗使能) ## 一、产品概述
嵌入式硬件·硬件工程
comyccccc2 小时前
PID扩展板布局布线全解析:高效设计六大优势学习笔记
单片机·嵌入式硬件
服务器硬件项目经理2 小时前
第5章消费级vs专业级vs数据中心:显卡的门派
服务器·嵌入式硬件·gru·硬件工程·硬件