基于使STM32的CAN总线的学习【CAN简介&硬件电路】(江协科技视频)

        本课程会涉及太多的一个代码内容,主要是基于理论和一些注意事项目,带领大家过一遍关于CAN总线(Controller Area Network Bus)控制器局域网总线。

CAN介绍

        CAN总线是由BOSCH公司开发的一种简洁易用、传输速度快、易扩展、可靠性高的串行通信总线,广泛应用于汽车、嵌入式、工业控制等领域。(工程本身的复杂情况与实际需求有关)
        根据实际应用的一个实际情况CAN主要分为广播式和请求式

广播式(Broadcast)

  1. 定义:广播式通信是指一个节点将消息发送到所有节点,所有接收节点都能接收到该消息。发送节点不关心哪些节点接收了消息。

  2. 特点

  3. 所有节点接收:消息会被总线上的所有节点接收。
  4. 无应答机制:发送节点不需要等待接收节点的应答,适合实时数据传输。
  5. 适用场景:适用于需要将相同信息发送给多个节点的场合,比如状态更新、事件通知等。
  6. 示例:一个传感器节点定期广播其测量数据,所有其他节点都可以接收并使用这些数据。

请求式(Request)

  1. 定义:请求式通信是指一个节点向特定的目标节点发送请求,目标节点接收到请求后进行处理,并返回应答。

  2. 特点

  3. 点对点通信:请求和响应的通信是针对特定节点的,发送节点知道接收节点的地址。
  4. 应答机制:发送节点需要等待接收节点的应答,适合需要确认的通信。
  5. 适用场景:适用于需要请求特定数据或执行特定操作的场合,比如读取传感器数据、控制执行器等。
  6. 示例:一个控制器节点向特定的执行器节点发送请求,询问其当前状态,执行器节点接收到请求后返回状态信息。

江协科技视频(点击跳转视频处)

(在此处感谢江协科技对电子爱好者的帮助与支持)

CAN总线特征: 

1.两根通信线(CAN_H、CAN_L),线路少
2.差分信号通信,抗干扰能力强 
3.高速CAN(ISO11898):125k~1Mbps, <40m 
4.低速CAN(ISO11519):10k~125kbps, <1km 
5.异步,无需时钟线,通信速率由设备各自约定 
6.半双工,可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序 
7.11位/29位报文ID,用于区分消息功能,同时决定优先级 
8.可配置1~8字节的有效载荷
9.可实现广播式和请求式两种传输方式 
10.应答、CRC校验、位填充、位同步、错误处理等特性

CAN硬件电路:

        由于CAN总线分为高速CAN和低速CAN两个标准。(重点学习关于高速CAN)         CAN本身具备着很大的优势,是有着比USART(串口)、I2C、SPI的优势点:

         CAN总线采用差分信号,即两线电压差(VCAN_H-VCAN_L)传输数据位
高速CAN规定: 电压差为0V时表示逻辑1(隐性电平)     电压差为2V时表示逻辑0(显性电平) 低速CAN规定: 电压差为-1.5V时表示逻辑1(隐性电平) 电压差为3V时表示逻辑0(显性电平)【考虑到远距离传输线路的一个整体情况可能存在压降的情况,故设置的差分电压的的一个区间比较大】
        终端电阻规定:
高速CAN:CAN_L和CAN_H两端添加120Ω的终端电阻
低速CAN:CAN_L和CAN_H其中一端添加2.2KΩ的终端电阻

逻辑电平可以理解为:(后续的统一展示标准为逻辑电平)
总线的合、逻辑电平为1、总线闭合(差分电平隐形)【默认状态】
总线的开、逻辑电平为0、总线张开(差分电平显形)

        现在大家已经初步掌握关于CAN的外部设备的接线与CAN的工作的时候的基本电平标准。STM32本身具备着关于CAN的外部设备的接口,但是本身还是具备一定的问题(需要搭载CAN收发器:将CAN-(RX/TX)转化为CAN-(H/L))。每个设备通过CAN收发器挂载在CAN总线网络上 CAN控制器引出的TX和RX与CAN收发器相连,CAN收发器引出的CAN_H和CAN_L分别与总线的CAN_H和CAN_L相连
注意:关于CAN在连线的过程中需要根据设备的个数与选择的CAN总线类型(高数/低速)来搭载对应的电阻 (120Ω/2.2KΩ);当只有两个设备直接搭载在CAN总线上的时候,可以用不用考虑电阻的一个问题。
关于终端电阻的一个作用:
 1. 防止回波反射(高频的要注意的点,具体可以去看传输线理论)
【高速CAN:120Ω的电阻阻值比较小,整体的范围会比较快(弊端功耗大)无信号通过的时候,平衡 “差分” 信号的一个电压(保持默认状态为:1)】
【低速CAN:有一定防止回波反射的效应,无保持默认状态】

由于回路本身设计问题,高速CAN回归电路默认电平的时候速度大于低速CAN(由于回归信号本身的一个问题)所以回馈到电路本身的一个细节上便会体现为高数CAN会大于低速CAN(时序的基端决定最高速度)

(简易了解为加了电阻后,电流变小,电压跳变变小,影响干扰变小)

CAN收发器:(JTA1050(高速CAN))

CAN收发器:RX直接连接 RX ;TX直接TX ;H 直接连接H;L直接连接L 
(CAN本身的收发模块本身会比较多,但是大差不差,功能目的是一致的,可能就效果差异)
模块本身具备一定的收紧作用(有但是不会太大)

作者:绪韵

物联沃分享整理
物联沃-IOTWORD物联网 » 基于使STM32的CAN总线的学习【CAN简介&硬件电路】(江协科技视频)

发表回复