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

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

CAN總線的標(biāo)準(zhǔn)幀和擴(kuò)展幀
can總線結(jié)構(gòu)和原理

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

can總線結(jié)構(gòu)

CAN總線基礎(chǔ)的詳細(xì)資料概述

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

CAN總線的標(biāo)準(zhǔn)幀和擴(kuò)展幀有什么區(qū)別呢?分別適用于什么工況?

評(píng)論