范圍
ISO 11898-1主要描述了CAN總線的基本架構,定義了CAN在數據鏈路層的通信方式。重點內容是數據鏈路層的兩個子層:邏輯鏈路控制(LLC)和介質訪問控制(MAC)。
LLC和MAC工作使用很少接觸,我理解的是把CAN比作一道菜的話,MAC是廚師,LLC是傳菜員。
ISO 11898-1定義了兩種CAN,經典CAN和CAN FD。
經典CAN:波特率最高1Mbit/s,數據場每幀可達8個字節(jié)。
CAN FD:波特率最高超過1Mbit/s,數據場每幀可超過8個字節(jié)。
其實這里說波特率不是特別準確,看單位就知道規(guī)范的說法是比特率或位速率,標準原文也是bit rates。1個波特表示一個符號,一個符號可以是多個bit組成,而1個比特就是一個bit,但口語大家都說波特率,也沒有歧義,就這么用吧。
波特率達到1Mbit/s時,最大傳輸距離為40m。
CAN的基本特點
CAN有如下特點:
— 基于優(yōu)先權的多主總線訪問;
多主方式是指網絡上的每一節(jié)點都可以發(fā)送信息,每一節(jié)點也都可以對某一信息的標識符進行檢測。優(yōu)先權是根據標識符的值判定,ID值越小,優(yōu)先權越高。
— 基于內容的無損仲裁;
仲裁機制可以保證不會丟失信息,也不會浪費時間。
— 所有幀以廣播方式傳輸;
每一節(jié)點發(fā)出信息,同一總線上的所有節(jié)點都可以選擇接收該信息。
— 通過接收濾波進行多點傳輸;
接收器不判斷是哪個節(jié)點發(fā)送的信息,而是通過幀接收濾波的方法判斷該信息是否和接收器相關。發(fā)送也是一樣。
— 支持遠程數據請求;
某個節(jié)點通過發(fā)送遠程幀,請求另一個節(jié)點向自己回應相應的數據幀,這個數據幀標識符和遠程幀標識符相同。
— 配置靈活;
只要標識符數量夠,可以不做軟件或硬件的變更而增加節(jié)點。
— 全網內數據具有一致性;
某一幀可以同時被所有節(jié)點接收,也可以同時不被所有節(jié)點接收。
— 錯誤檢測和錯誤通報;
總線數據校驗,有多種方式。
— 自動重傳仲裁失敗、未被確認或在傳輸過程中被故障損壞的幀;
仲裁失敗會在下次總線空閑期間自動重發(fā)。錯誤幀在恢復時間之后,如果未再出錯,會被適時重發(fā)。
— 區(qū)分節(jié)點的臨時故障和永久故障,以及自動關閉故障節(jié)點。
故障節(jié)點會被斷開,會無法發(fā)送和無法接收任何幀。
CAN的消息幀
CAN在發(fā)送的時候,由LLC消息幀轉換為MAC消息幀;CAN在接收的時候,由MAC消息幀轉換為LLC消息幀。
LLC消息幀包括:標識符、格式化場、數據長度場、LLC數據場。
MAC消息幀包括:幀起始、仲裁場、控制場、數據場、循環(huán)冗余碼校驗場(CRC場)、應答場、幀結束。
一般好像只討論發(fā)出的MAC消息幀。消息幀分4種:數據幀、遠程幀、錯誤幀、超載幀。數據幀最常見,也最復雜,以此為例說明幀結構。
幀起始(SOF) :數據幀和遠程幀的開始,只由一個顯性位組成,并且只在總線空閑時發(fā)送。
仲裁場 :標準幀中由11位標識符(標識符編碼從ID-28到ID-18)和RTR位組成;擴展幀中由29位標識符(標識符編碼從ID-28到ID-18、ID-17到ID-0)、SRR位、IDE位和RTR位組成組成。
RTR位叫遠程傳輸請求位,數據幀中RTR是顯性電平,遠程幀中RTR是隱性電平。
SRR位叫替代傳輸請求位,在擴展幀中始終是隱性電平。
IDE位叫標識符擴展位。標準幀也有IDE位,只不過是在控制場。IDE位在標準幀中是顯性電平,在擴展幀中是隱性電平。
控制場 :總共6位。標準幀中,由IDE(顯性)、r0(顯性)和DLC組成;擴展幀中,由r1(顯性)、r0(顯性)和DLC組成。
DLC叫數據長度碼,4位。DLC的值就是這一幀里數據場的長度。
數據場 :0~8個字節(jié),存儲著發(fā)送的數據,即這一幀想要傳輸的信息。
CRC場 :循環(huán)冗余碼校驗場,由CRC序列和CRC界定符組成。
CRC序列是發(fā)送節(jié)點根據一個約定好的多項式算出來的校驗碼,這個多項式的系數根據這幀報文里的幀起始、仲裁場等數據確定。接收節(jié)點用同樣的方式計算。如果兩方算出來的校驗碼一致,則報文正常;不一致,則請求重新發(fā)送。
CRC_15用于經典CAN,CRC_17用于數據場不超過16個字節(jié)的CANFD,CRC_21用于數據場超過16個字節(jié)的CANFD。
CRC界定符算是一個分界線,經典CAN中為1個隱性位,CANFD中為1~2個隱性位。
應答場(ACK場) :總共2位,由ACK槽和ACK界定符組成,兩個都是隱性位。
幀結束 :由7個隱性位組成。
其他3種消息幀與數據幀類似,只是結構不太一樣。
遠程幀由6個域組成:幀起始、仲裁場、控制場、CRC場、應答場和幀結束。
錯誤幀由錯誤標志和錯誤界定符組成。
超載幀由超載標志和超載界定符組成。
-
CAN總線
+關注
關注
145文章
1911瀏覽量
130560 -
接收器
+關注
關注
14文章
2454瀏覽量
71751 -
ACK
+關注
關注
0文章
28瀏覽量
11129 -
CRC校驗
+關注
關注
0文章
84瀏覽量
15174 -
LLC電路
+關注
關注
1文章
42瀏覽量
7484
發(fā)布評論請先 登錄
相關推薦
評論