当前位置: 首页 > news >正文

2.2.3、CAN总线-位时间特性、中断

目录

1、位时间特性(位时序)

2、中断


1、位时间特性(位时序)

位时序决定了采样点的位置和一位的时长(波特率)

STM32的位时序与CAN协议规定的位时序有所不同,

STM32相当于把CAN的PTS和PTS1合并在一起了,叫BS1

(1)SS同步段:固定1Tq;

(2)采样点在BS1和BS2之间;

(3)TS1和TS2寄存器同来配置BS1和BS2分别有几个Tq;

(4)BRP寄存器用于配置1个Tq的时长;

BRP时钟分频,36M的时钟经过BRP+1的分频得到Tq的时钟

Tq=1/(fPCLK / (BRP+1))= (BRP+1)/ fPCLK = (BRP+1)*tPCLK

(5)PCLK:对于c8t6这款芯片,CAN外设挂载在APB1总线上,PCLK1时钟一般默认36MHz

tPCLK=1 / 36MHz

2、中断

当CAN外设内部发生一些重要的事件时,程序可以自动跳转到中断函数执行,及时处理重要任务

(1)发送中断:当写入发送邮箱并请求发送后,当这个发送邮箱空的时候,CAN外设就可以请求发送中断;如果代码中允许了该中断并且配置了NVIC,则程序就会在发送邮箱空时进入发送中断函数

(2)FIFO0和FIFO1中断各对应1个中断函数

(3)状态改变错误中断:也是单独的中断函数

(1)RQCP(Request Completed)

发送邮箱0空时,RQCP0自动置1

(2)FIFO0收到一个报文,FMP0不再是0的时候就可以触发中断;

FIFO0满了,FULL0置1,;

FIFO0溢出了,FOVR(FIFO Overrun)置1.

(3)对应的中断允许位为1时,允许中断信号通过与门;

当中断允许位为1时,与门输出固定为0,中断信号无效;

各个中断信号输出的通过或门,输出到NVIC,请求中断;

在NVIC中有4个中断向量,对应4个中断函数

相关文章:

  • 删除排序数组中的重复项 II
  • 搭建Flink分布式集群
  • nginx目录美化
  • OD 算法题 B卷【数字序列比大小】
  • C++法则20:元编程是 C++ 中实现零开销抽象的核心工具之一,但并非所有抽象都能通过它实现零开销。
  • 人大金仓数据库jdbc连接jar包kingbase8-8.6.0.jar驱动包最新版下载(不需要积分)
  • 【世纪龙科技】新能源汽车动力电池总成装调与检修教学软件
  • ADVANCED INTELLIGENT SYSTEMS 东京大学仿生人类手指机器人,实现“皮肤”补水!
  • VS Code 配置本地 Dev Container
  • stream使用案例
  • 代码随想录算法训练营day18
  • 什么是 Paxos和Raft
  • 信号处理学习——文献精读与code复现之TFN——嵌入时频变换的可解释神经网络(下)
  • 商业秘密中经营信息的法律保护探析——以客户名册为例
  • 开源3D 动态银河系特效:Vue 与 THREE.JS 的奇幻之旅
  • 如何在FastAPI中打造坚不可摧的Web安全防线?
  • Java 编程之观察者模式详解
  • 笔记05:Allegro导入DXF文件
  • Tailwind CSS工作原理
  • Harbor的安装与使用