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个中断函数