錯誤計數器

即接收錯誤暫存器(CANREC)和傳送錯誤暫存器(CANTEC)。

錯誤計數器

μC/TCP-IP在運行過程中維護著一組計數器,用於追蹤網路協定棧的各種錯誤態。如果需要的話,應用程式可以通過檢查錯誤計數器來調試運行當中的問題,包括記憶體剩餘空間較低、性能差或數據包丟失等等。

網路協定的錯誤計數器被放在一個命名為Net_ ErrCtrs的結構體變數中,可以利用調試器或應用程式(以外部變數的形式引用)在運行時檢測該變數。

要使能這些錯誤統計,必須將net_cfg.h中的 NET_CTR_CFG_ERR_EN配置為DEF_ENABLED。

相關概念

錯誤狀態

檢測到的錯誤公布到錯誤幀經過的其他節點,傳送失敗的錯誤信息會儘可能快地重複傳送幀,而且根據內部錯誤計數器的值,每個CAN節點都可有3個錯誤狀態(主動錯誤、被動錯誤和匯流排斷開)之一。主動錯誤狀態是一種通常狀態,能夠不受任何限制地傳送信息和主動錯誤(由顯性位組成)。在被動錯誤狀態,可以傳送信息和被動錯誤幀(由隱性位組成)。匯流排斷開會使這個節點暫時不能參與匯流排通信,當處於這個狀態時,既不能接收也不能傳送信息。

CAN中斷

CAN模組有幾個中斷源。每箇中斷源都能獨立地使能或關閉。CANINTF暫存器內有中斷標誌位,CANINTF包含8個主要的中斷使能位。CANSTAT暫存器的一個特殊的唯讀位(ICODE位)配合跳轉表使用,可以對中斷進行高效的處理。除了錯誤中斷以外,所有中斷都對應一個中斷源。任何一個錯誤中斷源都能使錯誤中斷標誌置位。可以通過讀通信狀態暫存器 COMSTAT來確定錯誤中斷的來源。

中斷可分為2類:接收中斷和傳送中斷。

與接收相關中斷的有:接收中斷、喚醒中斷、接收器溢出中斷、接收器警告中斷和接收器錯誤被動中斷。

與傳送相關中斷的有:傳送中斷、傳送器警告中斷、傳送器被動錯誤中斷和匯流排關閉中斷。

錯誤界定

CAN具有錯誤分析功能。每個CAN通信單元能夠在3個錯誤狀態之一中工作:錯誤激活、錯誤認可、匯流排關閉。這些錯誤的區分取決於硬體自帶錯誤計數器(接收錯誤暫存器、傳送錯誤暫存器)的值。

(1)錯誤激活狀態:如果兩個錯誤計數器的值都在0~127之間,則通信單元是“錯誤激活”的;一且檢測到錯誤,則產生激活錯誤標誌(6個顯性位)。錯誤激活單元可以正常地參與匯流排通信。

(2)錯誤認可狀態:如果錯誤計數器值位於128~255之間,則通信單元是錯誤認可的;一旦檢測到錯誤,則產生認可錯誤標誌(6個隱性位))。錯誤認可單元可以參與匯流排通信,只是在傳送錯誤之後,再啟動下一次傳送之前處於等待狀態。

(3)如果傳送錯誤計數器高於255,則到達匯流排關閉狀態;在這種狀態下復位請求位自動置位CAN節點,對匯流排沒有影響。

相關詞條

熱門詞條

聯絡我們