can初步自學筆記

2021-10-07 15:13:01 字數 2780 閱讀 4869

一、can初識

1.can基本概念

can匯流排是在物理層、資料鏈路層和一部分的傳輸層定義的一套標準。

又分為高速can和低速can。

can傳輸線纜採用 雙絞線以便產生差分訊號,提高抗干擾能力。

終端加電阻用來消除電纜線高頻傳輸時產生的末端反射。

11898-1對應controller、11898-2對應高速can收發器、11898-3對應低速can收發器、11898-4增加了時間觸發通訊機制

2.高速can收發器和低速can收發器

can匯流排上產生的是電訊號,由can收發器將電訊號轉換為邏輯電平

顯性點平對應邏輯0 ,隱性點平對應邏輯1,在can匯流排上有著顯性點平覆蓋隱性電平的原則(0&1 = 0)。

低速can 0-125 k ,可以不需要終端電阻

高速can

最大傳輸速率 1m ,需要串聯終端電阻

二、資料傳輸

1.資料幀格式

去中心化,分布式原則:匯流排空閒時間任一節點均可競爭傳送訊息、訊息將被廣播,由節點自己決定是否過濾

sof 1bit:發出乙個顯性位邊沿,網路節點以此開始同步

id 11bit:定義訊息優先順序/匯流排競爭力,數字越低優先順序越高

rtr 1bit:顯性表示資料幀

r 1bit:保留位

dlc 4bit:表示資料場的位元組長度

crc場 16:crc校驗場,含1bit隱性位的界定符

ack場 2bit:ack場,同樣含1bit隱性位界定符(由接收方進行確認,收到訊息給出乙個顯性位,如果乙個節點都沒有確認收到訊息,傳送方監聽此位為**位就會報錯)

ide 1bit:擴充套件幀識別符號,擴充套件幀的id可以有29位,擴充套件幀和標準幀格式不同,不能存在於同一can網路

eof 7bit:結束標誌,7bit隱性位

itm 3bit:幀間隔,實際不屬於幀內的區域,先列出來,必須等待幀間隔才能傳送訊息

2.id優先順序競爭

can匯流排上沒有主控,任意節點主動競爭傳送權,每個節點在傳送訊息時都會監控匯流排上的點平,當send 1 bus 出現0 時說明競爭失敗,該節點轉為接收方,退出此次競爭,等待bus free重新競爭,但這一方式有乙個明顯弊端,低優先順序在訊息眾多的情況下會阻塞很久,造成網路負載率較高。

三、匯流排同步

1.資料幀sof會發出顯性點平表示開始同步。

2.硬同步:幀與幀之間會插入隱性點平來避免訊號線一直拉高點評,硬同步會保障幀頭。

3重同步:控制器會對每乙個位的下降沿進行判斷,如發現自己和匯流排上的時鐘不同步,則會自動進行調整,每次可調整的寬度即同步跳轉寬度(sjw)

四、資料保護機制

1、can匯流排採用nrz編碼(沒有應用曼徹斯特)用來減小干擾,但會影響同步所以引入了位填充機制(傳送器只要檢測到位流裡有5 個連續相同值的位便自動在位流裡插入一補充位)。

2、五種監測機制

接收方檢測:

位填充錯誤:檢視位流裡是否有六個連續相同值得位。

格式錯誤:資料幀格式與標準不符都會從報錯

crc錯誤:接收方生成crc與傳送方比對

接收方檢測:

位傳送錯誤:傳送訊息時匯流排總是傳送點平不同

ack應答錯誤:沒有接受到應答訊號

3、錯誤幀

can匯流排有著保持資料一致性的原則,檢測到錯誤所有節點都會知道

主動錯誤:檢測錯誤主動報錯,發出錯誤識別符號(連續6個顯性位)和錯誤界定符(連續8個**位);目的在於「主動」通知錯誤,即使別的節點沒有發現此錯誤;

被動錯誤:檢測錯誤,被動等待其他節點報錯後傳送錯誤識別符號(連續6個**位)和錯誤識別符號(連續8個**位);目的在於識別錯誤,回應主動錯誤。

兩個六個隱性位的錯誤識別符號可能會由於其他原因重疊。

4、錯誤計數器

為了避免某個裝置因為自身原因(例如硬體損壞)導致無法正常收發資料而不斷地破壞資料幀,從而影響其他正常節點通訊,can-bus規範中規定每個can控制器都有乙個傳送錯誤計數器和乙個接收錯誤計數器。

主動錯誤:發現錯誤後會很積極主動地上報錯誤

被動錯誤:tec or rec 計數超過127就進入此狀態,此時,該節點發現錯誤後只會傳送6個隱性位,不會把錯誤廣播出去,中間隔8位

匯流排關閉狀態:計數器大於255進入此狀態,想要重新掛載到匯流排上需要重啟,需要連續傳送128個隱性點平

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 各種幀的用途 幀幀用途 資料幀用於傳送單元向接收單元傳送資料的幀...