CAN总线通信

日期: 2024-11-16 08:03:59|浏览: 16|编号: 110172

友情提醒:信息内容由网友发布,请自鉴内容实用性。

CAN总线通信

1. CAN相关芯片

1.CAN控制器

2、CAN收发器:CAN收发器的作用是在逻辑电平和信号电平之间进行转换。

即逻辑电平从CAN控制芯片输出到CAN收发器,然后通过CAN收发器的内部转换,将逻辑电平转换为差分信号输出到CAN总线。 CAN总线上的节点可以决定是否需要总线上的数据。 。

2.CAN配置

无效(无效)

;

;

福雷;

;

3. CAN波特率计算公式

CAN波特率=系统时钟/分频器/(1*tq+tBS1+tBS2)

tBS1=tq*(TS1[3:0]+1)

tBS2=tq*(TS2[2:0]+1)

tq=(BRP[9:0]+1)*tPCLK

这里tq代表1个时间单位

tPCLK=APB时钟的时间周期

BRP[9:0]、TS1[3:0]和TS2[2:0]在寄存器中定义

整体配置保持不变

tBS1>=tBS2,tBS2>=1个CAN时钟周期,tBS2>=2tSJW

4. CAN发送和CAN接收

1、传输过程:CAN控制器将来自CPU的信号转换为逻辑电平(即逻辑0-显性电平或逻辑1-隐性电平)。 CAN发送器接收到逻辑电平后,将其转换为差分电平并输出到CAN总线。

2、接收过程:CAN接收器将CAN_H和CAN_L线上传输的差分电平转换为逻辑电平,输出给CAN控制器。然后CAN控制器将逻辑电平转换成相应的信号并发送给CPU。

5、STM32 CAN控制器介绍——发送过程和接收过程

程序选择一个空邮箱(TME=1)->设置标识符(ID)、数据长度和发送数据->设置TXRQ位为1,请求发送->邮箱注册(等待成为最高优先级)-> > 定时发送(等待总线空闲)->发送->邮箱为空

FIFO为空->收到有效消息->注册_1(保存在FIFO中的邮箱中,这个是由硬件控制的,我们不需要关心)->收到有效消息->注册_2->收到有效消息->- >收到有效消息->溢出。

CAN接收到的有效报文存储在深度为3个邮箱的FIFO中。我们可以通过查询FMP寄存器来获取FIFO接收到的消息数量。只要FMP不为0,我们就可以从FIFO中读取接收到的消息。

关注公众号,点击公众号首页右上角“···”,设置星星,实时关注智能汽车电子及软件最新资讯

提醒:请联系我时一定说明是从浚耀商务生活网上看到的!