介紹
本應(yīng)用說明描述了ST10F27x/ST10F25x的CAN中斷驅(qū)動(dòng)程序,并提供了可用于定義中斷方案和寫入中斷驅(qū)動(dòng)程序的編程示例。兩個(gè)C-CAN模塊在ST10F27x/ST10F25x上實(shí)現(xiàn),映射在XBUS上。
描述了中斷源、識(shí)別中斷源的方式以及處理中斷的兩種方法:一種是使用CAN模塊的硬件功能,另一種是通過輪詢內(nèi)部源。
通過CAN硬件功能對CAN中斷驅(qū)動(dòng)程序進(jìn)行編程使用每個(gè)消息對象的RXIE和TXIE位。所有32個(gè)消息對象都是通過接口寄存器訪問的。每個(gè)模塊可使用兩組寄存器,例如CANxIF1寄存器可以用于從消息對象讀取,而CANxIF2寄存器可以用于寫入消息對象。每當(dāng)消息對象發(fā)送或接收消息時(shí),都會(huì)根據(jù)其優(yōu)先級(jí)(基于IntId的值)為相應(yīng)的中斷提供服務(wù)。這種方法需要最小的CPU開銷,是大多數(shù)應(yīng)用程序的首選方法。
每當(dāng)成功傳輸或接收時(shí),CAN輪詢都會(huì)產(chǎn)生中斷。
輪詢的CPU開銷很高,因?yàn)槊看卧贑AN總線上確認(rèn)消息時(shí),CPU都會(huì)中斷。因此,僅建議小型網(wǎng)絡(luò)使用輪詢對中斷驅(qū)動(dòng)程序進(jìn)行編程。
為每種方法提供了示例程序作為示例。