CAN總線(Controller Area Network)是一種用于車輛、工業(yè)自動化和其他領(lǐng)域的高可靠性、實時性強的串行通信協(xié)議。它允許多個微控制器和設(shè)備在沒有主機計算機的情況下相互通信。
CAN總線最初由德國BOSCH公司在1980年代初期為汽車內(nèi)部通信而開發(fā)。1993年,ISO發(fā)布了CAN總線標(biāo)準(zhǔn)(ISO 11898),包括數(shù)據(jù)鏈路層協(xié)議和物理層協(xié)議。
ISO 11898-1:定義數(shù)據(jù)鏈路層協(xié)議。
ISO 11898-2:定義高速CAN總線物理層協(xié)議,最高數(shù)據(jù)傳輸速率為1Mbps。推薦使用線形拓?fù)?,適用于實時性要求高的場合。
ISO 11898-3:定義低速CAN總線物理層協(xié)議,數(shù)據(jù)傳輸速率在40Kbps到125Kbps之間。也稱為容錯CAN,能夠在一根信號線失效時繼續(xù)通信,適用于實時性要求較低的場合。
CAN總線特點:
多主控制:CAN總線支持多個主設(shè)備同時存在于網(wǎng)絡(luò)上,沒有主從之分,設(shè)備根據(jù)消息的優(yōu)先級進行通信。
差分信號:使用兩根線(CAN_H和CAN_L)傳輸差分信號,提高了抗電磁干擾的能力。
非破壞性仲裁:在消息傳輸過程中,如果發(fā)生沖突,優(yōu)先級高的消息將被傳輸,低優(yōu)先級的消息將等待重傳。
錯誤檢測與處理:具有強大的錯誤檢測和處理能力,包括CRC校驗、位錯誤檢查等。
靈活的拓?fù)浣Y(jié)構(gòu):支持多種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),如線形、星形、樹形和環(huán)形。
在CAN總線上,邏輯“0”和“1”之間顯著的電壓差是總線可靠通信的保證。參照上面的描述,CAN總線上兩種電平狀態(tài)分別為:
顯性(Dominant ): 0
隱性(Recessive ): 1
CAN總線的信號電平具有線與特性,線與特性是CAN總線仲裁的電路基礎(chǔ),即顯性電平(0)總是會掩蓋隱性電平(1),如果不同節(jié)點同時發(fā)送顯性和隱性電平,總線上表現(xiàn)出顯性電平(0),只有在總線上所有節(jié)點發(fā)送的都是隱性電平(1)時,總線才表現(xiàn)為隱性。
顯性電平:邏輯0,高速CAN中CAN_H端向5V,CAN_L端向0V。
隱性電平:邏輯1,不驅(qū)動任何一端。
高速CAN和低速CAN總線在物理層信號電平上定義有所不同:
高速CAN,定義 CANH 和 CANL 電壓相同(CANH = CANL = 2.5V)時為邏輯“1”,CANH和CANL 電壓相差 2V(CANH = 3.5V, CANL = 1.5V)時為邏輯“0”。
高速CAN收發(fā)器在共模電壓范圍內(nèi)(-12V ~ 12V),將CANH和CANL電壓相差大于0.9V 解釋為顯性狀態(tài)(Dominant),而將CANH和CANL電壓相差小于0.5V 解釋為為隱性狀態(tài)(Recessive)。收發(fā)器內(nèi)部有遲滯電路可以降低干擾。
低速CAN,定義CANH和CANL電壓相差 5V (CANH =0V, CANL = 5V)時為邏輯“1”,相差 2.2V (CANH = 3.6V, CANL = 1.4V)時為邏輯“0”。
高速CAN信號電平( ISO 11898-2)
低速CAN信號電平( ISO 11898-3)
CAN的錯誤處理機制:
CRC錯誤:通過計算和校驗數(shù)據(jù)的CRC值來檢測錯誤。
位錯誤:在傳輸過程中實時檢測比特錯誤。
錯誤幀:當(dāng)檢測到錯誤時,發(fā)送錯誤幀以請求重傳。
總結(jié)
CAN總線以其高可靠性、實時性和靈活性,在多個領(lǐng)域得到了廣泛應(yīng)用。隨著技術(shù)的發(fā)展,CAN總線也在不斷演進,例如BOSCH發(fā)布的CAN FD(Flexible Data-Rate)標(biāo)準(zhǔn),進一步提高了數(shù)據(jù)傳輸速率,滿足了更高帶寬需求的應(yīng)用場景。
審核編輯:劉清
-
微控制器
+關(guān)注
關(guān)注
48文章
7399瀏覽量
150683 -
CAN總線
+關(guān)注
關(guān)注
145文章
1908瀏覽量
130516 -
SoC芯片
+關(guān)注
關(guān)注
1文章
592瀏覽量
34814 -
串行通信
+關(guān)注
關(guān)注
4文章
561瀏覽量
35212 -
數(shù)字信號電平
+關(guān)注
關(guān)注
0文章
9瀏覽量
7168
原文標(biāo)題:SoC芯片的CAN總線詳解(一)
文章出處:【微信號:全棧芯片工程師,微信公眾號:全棧芯片工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論