CAN控制器 SJA1000中断
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BEI ALI EPI WUI DOI EI
BEIE ALIE EPIE WUIE DOIE EIE
Bit1 Bit0
TI RI
TIE RIE
发送中断 接收中断,接收FIFO不空
3.7 SJA1000中断
概述
SJA1000中断事件
SJA1000中断处理流程
3.7 SJA1000中断
概述
SJA1000中断事件
SJA1000中断处理流程
接收中断
SJA1000使用64字节的FIFO来保存收到的CAN报文,当接收FIFO 中包含有效报文且RIE位置1,产生接收中断。
接收中断的处理
RIE RI
1
1 0
MCU 报文3 报文2 报文1 接收FIFO
若FIFO中还有未读取的CAN 报文,则接收中断将继续有效。
数据溢出中断
SJA1000中断管理
SJA1000共有8种中断事件,使用了2个寄存器来管理中断:
中断寄存器(IR) 中断寄存器用来指示产生的中断事件,当中断寄存器中任意位置1时INT 引脚变为低电平(中断输出)。
中断使能寄存器(IER)
中断使能寄存器设置产生中断事件时是否置位对应的中断寄存器位。
产生中断的条件
1、中断事件发生 2、中断被使能
寄存器描述
IR
(中断寄存器) (寄存器地址3)
IER
(中断使能寄存器) (寄存器地址4)
中断事件
检测到总线错误 发送时丢失总线仲裁 当CAN控制器到达错误消极状态或从 错误消极状态又进入错误活动状态 当CAN控制器在睡眠模式中检测到总 线的活动 数据溢出 错误报警,错误状态位和总线状态位 的改变
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2
处于睡眠模式检测到总线活动时 WUI置位
3.7 SJA1000中断
目 录
单片机最小系统
单片机最小系统的组成
wenku.baidu.com
单片机开发工具
中断处理流程
在使用SJA1000的中断功能时,必须首先对SJA1000进行中断的初始化。
中断初始化 中断处理
读取中断寄存器
根据中断类型 处理中断
小结
目 录
单片机最小系统
单片机最小系统的组成
第3章 CAN控制器驱动
第3章:CAN控制器驱动
SJA1000编程基础
SJA1000硬件连接测试 SJA1000初始化 SJA1000发送CAN帧 SJA1000接收CAN帧 SJA1000验收滤波器 SJA1000中断 虚拟CAN驱动
3.7 SJA1000中断
概述
SJA1000中断事件
SJA1000中断处理流程
单片机开发工具
总线错误 仲裁丢失 BEIE置位 ALIE置位 总线错误中断(BEI) 仲裁丢失中断(ALI)
CAN-bus协议有完善的错误处理机制和自动重发功能,这两种中断都不需要MCU处理。 EPIE置位 进入或退出错误被动状态 错误消极中断(EPI) 错误状态和总线状态发生改变 EIE置位 错误报警中断(EI) 总线唤醒中断(WUI)
当SJA1000发送缓冲区由锁定变为释放且TIE置位时,产生发送中断。
发送缓冲区状态
释放 锁定 中断事件产生
发送完成 发送CAN报文中 如何判断一个报文发送成功? SR.3 CAN总线 发送缓冲区 发送完毕状态
SR.3置位表示上一报文成功发送
与状态相关的中断
与状态相关的中断在CAN控制器发生错误或控制器状态发生改变时产生。
若SJA1000 接收FIFO已满,当接收到CAN报文且DOIE置位时,产 生数据溢出中断。
数据溢出中断的产生
CAN报文
中断事件发生
接收FIFO
MCU
如何从接收FIFO中更快的读取CAN报文? 将CAN报文的读取与处理过程分离。 CAN报文 CAN报文 处理 接收FIFO
MCU接收FIFO
发送中断