CAN筆記(3) 錯誤狀態

2021-09-26 19:28:35 字數 1530 閱讀 6608

2. 錯誤計數值

單元 始終處於 3 種狀態之一

主動錯誤狀態是可以正常參加匯流排通訊的狀態

處於主動錯誤狀態的單元檢測出錯誤時,輸出主動錯誤標誌

被動錯誤狀態是易引起錯誤的狀態

處於被動錯誤狀態的單元雖能參加匯流排通訊

但為不妨礙其它單元通訊,接收時不能積極地傳送錯誤通知

處於被動錯誤狀態的單元即使檢測出錯誤

而其它處於主動錯誤狀態的單元如果沒發現錯誤,整個匯流排也被認為是沒有錯誤的

處於被動錯誤狀態的單元檢測出錯誤時,輸出被動錯誤標誌

另外,處於被動錯誤狀態的單元在傳送結束後不能馬上再次開始傳送

在開始下次傳送前,在間隔幀期間內必須插入「延遲傳送」(8 個位的隱性位)

匯流排關閉態是不能參加匯流排上通訊的狀態

資訊的接收和傳送均被禁止

這些狀態依靠傳送錯誤計數接收錯誤計數來管理

根據計數值決定進入何種狀態,錯誤狀態和計數值的關係如下:

單元錯誤狀態

傳送錯誤計數值(tec)

接收錯誤計數值(rec)

主動錯誤狀態

且 0~127

且 0~127

被動錯誤狀態

或 128~255

或 128~255

匯流排關閉態

256~∞

-關係圖如下:

傳送錯誤計數值和接收錯誤計數值根據一定的條件發生變化

一次資料的接收和傳送可能同時滿足多個條件

錯誤計數器在錯誤標誌的第乙個位出現的時間點上開始計數

錯誤計數值的變動條件如下表:

接受和傳送錯誤計數值的變動條件

傳送錯誤計數值(tec)

接收錯誤計數值(rec)

接收單元檢測出錯誤-+1

接收單元在傳送完錯誤標誌後,檢測到的第乙個位為顯性電平時-+8

傳送單元在輸出錯誤標誌時+8-

傳送單元在傳送主動錯誤標誌或過載標誌時,檢測出位錯誤+8-

接收單元在傳送主動錯誤標誌或過載標誌時,檢測出位錯誤-+8

各單元從主動錯誤標誌、過載標誌的最開始檢測出連續14個位的顯性位時之後,每檢測出連續的 8 個位的顯性位時

+8+8

檢測出在被動錯誤標誌後追加的連續 8 個位的顯性位時

+8+8

傳送單元正常傳送資料結束時(返回 ack 1

且到幀結束也未檢測出錯誤時)

−1 ;tec=0 時 ±0

-接收單元正常接收資料結束時(crc 2

未檢測出錯誤且正常返回 ack 時)

-1≤rec≤127 時 -1;rec=0 時 ±0;rec>127 時 =127

處於匯流排關閉態的單元,檢測到 128 次連續 11 個位的隱性位

=0=0

參考:《can入門書》

CAN筆記(1) CAN簡介

can 是 控制器區域網路 controller area network 的縮寫 can 是 iso 1 國際標準化的序列通訊協議 在當前的汽車產業中,出於對安全性 舒適性 方便性 低公害 低成本的要求 各種各樣的電子控制系統被開發了出來 由於這些系統之間通訊所用的資料型別及對可靠性的要求不盡相同...

CAN匯流排筆記

在沒有can匯流排之前,所有外設和控制器都是單線連線,導致線布局和數量巨大,錯綜複雜。匯流排的含義就是所有資訊都在這根線上傳輸,當然,can匯流排是兩根。can是controller area network 的縮寫 以下稱為can 是iso國際標準化的序列通訊協議。由德國電氣商博世公司在1986 ...

CAN筆記(6) CAN協議(一)

通訊是通過以下 5 種型別的幀進行的 另外,資料幀和遙控幀有標準格式 can2.0a 和和擴充套件格式 can2.0b 兩種格式 標準格式有 11 個位的識別符號 identifier 以下稱 id 擴充套件格式有 29 個位的 id 各種幀的用途 幀幀用途 資料幀用於傳送單元向接收單元傳送資料的幀...