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