热度 14
2013-1-16 16:53
1071 次阅读|
0 个评论
u 每个邮箱具有一个中断屏蔽位( MIM )和一个中断等级位( MIL )。如果要允许邮箱的接收 / 发送中断, MIMn 必须置位。 u 在一个报文被接收( RMPn=1—— 接收邮箱) / 一 个报文被成功发送( TAn=1—— 发送邮箱),一个中断将被发出。 u 如果邮箱被配置成远程请求邮箱( CANMDn=1/MSGCTRL.RTR=1 ) , 当接收到一个应答报文时,发出一个中断。 u 如果一个邮箱自动应答一个 RTR 请求,当成功发送一个应答报文( CANMD=0/AAM=1 ),则发出一个中断。 u 如果相应的中断没有被屏蔽,接收报文挂起( RMP )和发送确认( TA )将置位 GMIF0/GMIF1 ,此时 GMIF1/GMIF0 将产生一个中断。且在 MIV1/MIV0 中存储的是最高优先级的邮箱号。 u 如果通过设置发送命令( TRRn )成功终止了挂起的报文,终止确认( AAn )和终止确认标志( AAIF )将会置位,发出一个中断请求( AAIM=1 屏蔽自动中断禁止)。清除 Aan 将清除 AAIF0/AAIF1 标志位。 u 当一个报文丢失,那么接收报文丢失寄存器( RMLn )将被置位,且接收报文丢失中断( RMLIF0/RMLIF1 )将会置位 。如果需要产生一个报文丢失中断,那么此中断屏蔽必须被置位( RMLIM=1 )。清除 RMLn 寄存器不会清除 RMLIF0/RMLIF1 寄存器,两个寄存器需要分别清除。 u 每个邮箱都与一个报文对象连接到一起 --- à 超时寄存器( MOTO )。如果超时时间发生( TOSn=1 ),如果超时屏蔽位禁止( MTOM=1 ),超时中断将会发出到两个中断线的其中一条上。