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