CAN的全稱是Controller Area Network,譯為控制器區(qū)域網(wǎng)絡(luò),是一種用于車輛、電力系統(tǒng)、工業(yè)設(shè)備等嵌入式系統(tǒng)的半雙工異步串行通信協(xié)議和物理接口。CAN是一種事件驅(qū)動(dòng)的通信協(xié)議,采用非主從結(jié)構(gòu),所有節(jié)點(diǎn)都可以發(fā)送和接收數(shù)據(jù),而不需要主控節(jié)點(diǎn)。它支持多主機(jī)通信,具有優(yōu)先級和沖突解決機(jī)制,能夠?qū)崿F(xiàn)高效的數(shù)據(jù)傳輸。CAN只需要兩根信號線,這兩根信號線通常采用的是雙絞線,且傳輸?shù)氖遣罘中盘枺圆罘中盘杺鬏斝畔⒕哂锌垢蓴_能力強(qiáng),有效抑制外部電磁干擾的優(yōu)點(diǎn)。
工作原理
CAN通信的工作原理依賴于CAN接口的核心組件,包括CAN控制器、CAN收發(fā)器和CAN總線。CAN收發(fā)器的作用是將普通信號轉(zhuǎn)化為差分信號,以提高抗干擾能力和輸出可靠性。CAN 總線的工作電壓通常為5V或3.3V,但通信的關(guān)鍵在于CAN_High和CAN_Low兩根總線間的電壓差。
CAN協(xié)議經(jīng)過ISO標(biāo)準(zhǔn)化后有兩個(gè)標(biāo)準(zhǔn):ISO11898標(biāo)準(zhǔn)和ISO11519-2標(biāo)準(zhǔn);其中標(biāo)準(zhǔn)ISO11519-2-1994已經(jīng)被ISO11898-3-2006 代替,即符合標(biāo)準(zhǔn)ISO11898-3的產(chǎn)品也是符合ISO11519-2標(biāo)準(zhǔn)的產(chǎn)品;ISO11898-2-2016更新并替代了ISO11898-2:2003,ISO11898-5:2007和ISO11898-6:2013。ISO11898標(biāo)準(zhǔn)和ISO11519-2標(biāo)準(zhǔn)對于數(shù)據(jù)鏈路層的定義相同,但物理層不同,兩個(gè)標(biāo)準(zhǔn)間的差異如下:

當(dāng)CAN收到一個(gè)低電平信號,CAN_High輸出3.5V,CAN_Low輸出1.5V,兩者的電壓差是2V,此時(shí)表示邏輯0,也稱顯性電平。
當(dāng)CAN收到一個(gè)高電平信號,CAN_High和CAN_Low輸出均為2.5V,電壓差是0V,此時(shí)表示邏輯1,也稱隱性電平。

為滿足不同通信需求,CAN協(xié)議定義了多種幀類型,包括數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀、過載幀、幀間隔等。數(shù)據(jù)幀用于傳輸數(shù)據(jù),包含實(shí)際的有效數(shù)據(jù)內(nèi)容;遠(yuǎn)程幀用于請求數(shù)據(jù),沒有數(shù)據(jù)部分,只發(fā)送標(biāo)識符和長度信息;錯(cuò)誤幀用于指示總線上的錯(cuò)誤,幫助進(jìn)行錯(cuò)誤處理;過載幀用于指示總線過載,幫助管理數(shù)據(jù)流;幀間隔是兩幀之間的時(shí)間間隔,用于確保幀的正確傳輸,避免幀沖突。其中最常見的幀類型是數(shù)據(jù)幀,分為標(biāo)準(zhǔn)數(shù)據(jù)幀和擴(kuò)展數(shù)據(jù)幀。
標(biāo)準(zhǔn)數(shù)據(jù)幀格式及字段組成如下:


擴(kuò)展數(shù)據(jù)幀格式及字段組成如下:


在正常工作時(shí)CAN總線上可能會掛載很多設(shè)備,如果兩個(gè)設(shè)備同時(shí)發(fā)送信息,就會發(fā)生沖突,為了避免總線沖突,需由總線仲裁機(jī)構(gòu)合理地控制和管理系統(tǒng)中需要占用總線的申請者,在多個(gè)申請者同時(shí)提出總線請求時(shí),以一定的優(yōu)先算法仲裁哪個(gè)應(yīng)獲得對總線的使用權(quán)。只有獲得了總線控制權(quán)的設(shè)備,才能開始傳送數(shù)據(jù)。
報(bào)文的優(yōu)先級,是通過對 ID(識別碼) 的仲裁來確定的。CAN總線上有兩種電平狀態(tài),如果總線上同時(shí)出現(xiàn)顯性電平和隱性電平,總線的狀態(tài)會被置為顯性電平,CAN正是利用這個(gè)特性進(jìn)行仲裁。
類型分類
以上介紹的都是關(guān)于標(biāo)準(zhǔn)CAN的內(nèi)容,此外還有一種CAN FD,它的全稱是Flexible Data Rate,譯為可變速率的CAN。CAN和CAN FD是兩種不同的總線標(biāo)準(zhǔn),它們都是基于CAN技術(shù)實(shí)現(xiàn)的,但它們之間有明顯的區(qū)別。CAN是一種多點(diǎn)總線,它可以用于連接許多設(shè)備,而CAN FD是一種更高級的多點(diǎn)總線,它可以提供更高的傳輸速率和更高的傳輸容量。
CAN和CAN FD之間最大的區(qū)別在于傳輸容量。CAN的最大傳輸容量為8字節(jié),而CAN FD的最大傳輸容量可以達(dá)到64字節(jié)。這意味著CAN FD可以提供更多的數(shù)據(jù),因此可以傳輸更大的數(shù)據(jù)包,從而更好地滿足應(yīng)用需求。
另一個(gè)不同點(diǎn)是傳輸速率。CAN的最大傳輸速率為1 Mbps,而CAN FD的最大傳輸速率可以達(dá)到8 Mbps。
以上就是關(guān)于CAN接口的核心內(nèi)容解析。希望本文分享能夠?yàn)?a href="http://m.xsypw.cn/v/tag/232/" target="_blank">嵌入式開發(fā)技術(shù)愛好者及相關(guān)專業(yè)的高校學(xué)生提供切實(shí)可行的項(xiàng)目實(shí)踐參考。若您在應(yīng)用場景中遇到CAN接口開發(fā)或調(diào)試問題,歡迎隨時(shí)私信與我們技術(shù)團(tuán)隊(duì)深入交流,我們將結(jié)合多年嵌入式開發(fā)經(jīng)驗(yàn),為您提供針對性解決方案建議。
-
單片機(jī)
+關(guān)注
關(guān)注
6061文章
44910瀏覽量
646495 -
嵌入式
+關(guān)注
關(guān)注
5138文章
19521瀏覽量
314608 -
CAN
+關(guān)注
關(guān)注
57文章
2882瀏覽量
466667 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5495瀏覽量
102004 -
嵌入式開發(fā)板
+關(guān)注
關(guān)注
5文章
89瀏覽量
19075
發(fā)布評論請先 登錄
第61屆高博會圓滿閉幕,飛凌嵌入式教育品牌ElfBoard精彩回顧

嵌入式教育科普|GPIO接口全面解析

嵌入式教育科普|I2C接口全面解析

ElfBoard嵌入式教育科普|ADC接口全面解析

嵌入式Ethernet/CAN網(wǎng)關(guān)接口設(shè)計(jì)與驅(qū)動(dòng)
嵌入式Linux下CAN接口調(diào)試
嵌入式系統(tǒng)的全面解析
嵌入式Linux CAN

ElfBoard,為嵌入式學(xué)習(xí)愛好者創(chuàng)造更具價(jià)值的學(xué)習(xí)體驗(yàn)

第61屆高博會圓滿閉幕,飛凌嵌入式教育品牌ElfBoard精彩回顧

飛凌嵌入式旗下教育品牌ElfBoard亮相全國大學(xué)生嵌入式競賽總決賽現(xiàn)場

ElfBoard嵌入式教育科普|UART接口全面解析

飛凌嵌入式旗下教育品牌ElfBoard即將亮相「第63屆高等教育博覽會」

評論