ZHCAD88 October 2023 TMS320F280039
从 CPU 级别(PIE、IFR 和 INTM)来看,DCAN 和 MCAN 之间的中断处理是相同的。但是,中断处理在模块级别有很大不同。表 6-1 总结了 DCAN 和 MCAN 模块之间中断处理的基本差异:
| 类别 | DCAN | MCAN |
|---|---|---|
| 中断源 | 与每个消息对象相对应的错误、状态和发送/接收中断 | 30 个内部中断源(在下表中指定) |
| 全局中断寄存器 | 用于启用、读取和清除存在的全局中断的寄存器 | 对应的寄存器不存在 |
| 配置接收中断 | 可以根据需要,通过设置每个消息对象中的 RxIE 位来单独启用接收中断 | 可以针对专用 Rx 缓冲器中接收的任何新消息启用或禁用中断。 |
| 确定接收中断的源 | 从寄存器 CAN_INT 读取的值对应于已接收到消息的消息对象编号 | 中断仅表示 Rx 缓冲器中已接收到新消息。从 MCAN_NDATx 寄存器读取的值对应于已接收到消息的 Rx 缓冲器元素编号。 |
| Rx FIFO 中断 | 不支持单独的中断功能 | 其他中断源可用,包括 FIFO 中的新消息、FIFO 已满和 FIFO 达到水线(可在消息 RAM 配置期间配置水线,以便在 FIFO 填充到特定水平时生成中断来满足应用需求) |
| 配置发送中断 | 可以根据需要,通过设置每个消息对象中的 TxIE 位来单独启用发送中断 | 可以通过配置寄存器 MCAN_TXBTIE 来单独启用发送中断,其中每个位对应一个单独的 Tx 缓冲器元素。 |
| 确定发送中断的源 | 从寄存器 CAN_INT 读取的值对应于已发送消息的消息对象编号 | 中断仅表示发送已完成。从 MCAN_TXBTO 寄存器读取的值对应于已发送消息的 Tx 缓冲器元素编号。 |