當前CAN總線通訊技術已經運用于各行各業(yè)之中,基本是每個總線設計工程師必學的一個通訊網絡。但什么是CAN通訊中的錯誤幀,很多人還是處于只知其名,不知其所以然的狀態(tài),也因此造成許多工程師在明知總線通訊出現(xiàn)問題卻束手無策的困擾。
一、錯誤標定
檢測到錯誤條件的站通過發(fā)送錯誤標志指示錯誤。對于“錯誤主動”的節(jié)點,錯誤信息為“主動錯誤標志”,對于“錯誤被動”的節(jié)點,錯誤信息為“被動錯誤標志”。站檢測到無論是位錯誤、填充錯誤、形式錯誤,還是應答錯誤,這個站會在下一位時發(fā)出錯誤標志信息。
只要檢測到的錯誤的條件是CRC錯誤,錯誤標志的發(fā)送開始于ACK界定符之后的位(其他的錯誤條件除外)。如圖1所示:
二、故障界定
至于故障界定,單元的狀態(tài)可能為以下三種之一:“錯誤主動”、“錯誤被動”、“總線關閉”。
1、“錯誤主動”的單元可以正常地參與總線通訊并在錯誤被檢測到時發(fā)出主動錯誤標志。
2、“錯誤被動”的單元不允許發(fā)送主動錯誤標志?!板e誤被動”的單元參與總線通訊,在錯誤被檢測到時只發(fā)出被動錯誤標志。而且,發(fā)送以后,“錯誤被動”單元將在初始化下一個發(fā)送之前處于等待狀態(tài)。(見“掛起發(fā)送”)
3、“總線關閉”的單元不允許在總線上有任何的影響(比如,關閉輸出驅動器)。
三個轉態(tài)的轉換方式如圖2所示: