我知道,我對與電子有關的所有事情都很著迷,但不論從哪個角度看,今天的現(xiàn)場可編程門陣列(FPGA),都顯得“鶴立雞群”,真是非常棒的器件。如果在這個智能時代,在這個領域,想擁有一技之長的你還沒有關注FPGA,那么世界將拋棄你,時代將拋棄你。作者ALIFPGA,多年FPGA開發(fā)經(jīng)驗,所有文章皆為多年學習和工作經(jīng)驗之總結。
CAN總線是一種串行數(shù)據(jù)通信協(xié)議,其通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等項工作。
CAN總線結構
CAN總線規(guī)范采用了ISO-OSI(Open System Interconnection Reference Model,開放式通信系統(tǒng)互聯(lián)參考模型)的三層網(wǎng)絡結構,有三種不同的器件與之相對應。
對應物理層的是收發(fā)器;
對應數(shù)據(jù)鏈路層的是CAN控制器;
應用層上主要是用戶特殊的應用,對應的器件是微控制器。
CAN總線標準幀
標準幀11位標識符。
幀類型數(shù)據(jù)幀、遠程幀、錯誤幀和過載幀
數(shù)據(jù)幀:數(shù)據(jù)幀攜帶數(shù)據(jù)從發(fā)送器至接收器??偩€上傳輸?shù)拇蠖嗍沁@個幀。
遠程幀:由總線單元發(fā)出,請求發(fā)送具有同一識別符的數(shù)據(jù)幀。數(shù)據(jù)幀(或遠程幀)通過幀間空間與其他各幀分開。
錯誤幀:任何單元一但檢測到總線錯誤就發(fā)出錯誤幀。
過載幀:過載幀用以在先行的和后續(xù)的數(shù)據(jù)幀(或遠程幀)之間提供一附加的延時。
幀以起始幀(SOF)位開始, SOF 為顯性狀態(tài),允許所有節(jié)點的硬同步。SOF之后是仲裁字段,由12個位組成,分別為11個標識位和一個遠程發(fā)送請求(Remote TransmissionRequest, RTR)位。RTR 位用于區(qū)分報文是數(shù)據(jù)幀
(RTR 位為顯性狀態(tài))還是遠程幀(RTR 位為隱性狀態(tài))。
仲裁字段之后是控制字段,由6 個位組成??刂谱侄蔚牡谝晃粸闃俗R擴展(Identifier Extension,IDE)位,該位應是顯性狀態(tài)來指定標準幀。標識擴展位的下一位為零保留位(RB0),CAN 協(xié)議將其定義為顯性位??刂?/p>
字段的其余4 位為數(shù)據(jù)長度碼(Data Length Code,DLC),用來指定報文中包含的數(shù)據(jù)字節(jié)數(shù)(0 到8 字節(jié))。
控制字段之后為數(shù)據(jù)字段,包含要發(fā)送的任何數(shù)據(jù)字節(jié)。數(shù)據(jù)字段長度由上述DLC 定義(0 到8 字節(jié))。
數(shù)據(jù)字段之后為循環(huán)冗余校驗(CRC)字段,用來檢測報文傳輸錯誤。CRC 字段包含一個15 位的CRC 序列,之后是隱性的CRC 定界位。
最后一個字段是確認字段(ACK),由2 個位組成。在確認時隙(ACK Slot)位執(zhí)行期間,發(fā)送節(jié)點發(fā)出一個隱性位。任何收到無錯誤幀的節(jié)點會發(fā)回一個顯性位(無論該節(jié)點是否配置為接受該報文與否)來確認幀收到無誤。確認字段以隱性確認定界符結束,該定界符可能不允許被改寫為顯性位。
-
FPGA
+關注
關注
1645文章
22050瀏覽量
618576 -
CAN總線
+關注
關注
145文章
1987瀏覽量
132880
原文標題:CAN總線標準幀
文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
淺談CAN FD總線協(xié)議幀格式

高速CAN總線和低速CAN總線的特性

can總線結構和原理

CAN總線過載幀及數(shù)據(jù)幀詳解

CAN總線擴展幀的雙濾波方式
虹科干貨 | 帶你全面認識“CAN總線錯誤”(一)——CAN總線錯誤與錯誤幀

評論