CAN(控制器局域網(wǎng))簡(jiǎn)介
出處:網(wǎng)絡(luò)整理 發(fā)布于:2023-12-04 16:11:48
CAN 初由博世發(fā)明,后來(lái)編入 ISO11898-1 標(biāo)準(zhǔn),它定義了開放系統(tǒng)互連 (OSI) 模型的數(shù)據(jù)鏈路和物理層,為高速車載通信提供低級(jí)網(wǎng)絡(luò)解決方案。特別是,CAN 的開發(fā)是為了減少電纜布線,因此車輛內(nèi)的獨(dú)立電子控制單元 (ECU) 只能與一對(duì)電線進(jìn)行通信。圖 1 顯示了汽車中連接到 CAN 總線的 ECU。
車載診斷 (OBD) 是車輛的診斷和系統(tǒng),允許您或技術(shù)人員通過(guò)診斷故障代碼 (DTC) 排除問(wèn)題。當(dāng)“檢查發(fā)動(dòng)機(jī)”燈亮起時(shí),技術(shù)人員通常會(huì)使用手持設(shè)備讀取車輛的發(fā)動(dòng)機(jī)代碼。在層,該數(shù)據(jù)通過(guò)信令協(xié)議(大多數(shù)情況下是 CAN)傳輸。
DeviceNet 是工業(yè)應(yīng)用中使用的網(wǎng)絡(luò)協(xié)議。它大大減少了控制系統(tǒng)和 I/O 設(shè)備之間所需的接線。設(shè)備可以通過(guò)四線連接器連接在一起并連接到 PLC 上的網(wǎng)絡(luò)掃描儀,而不是將每個(gè)設(shè)備連接到 PLC I/O 模塊上的單獨(dú)輸入/輸出。在層,我們發(fā)現(xiàn) CAN 在 DeviceNet 協(xié)議中發(fā)揮著其魔力。圖 2 顯示了 PLC 掃描通過(guò) DeviceNet 進(jìn)行通信的工業(yè)設(shè)備網(wǎng)絡(luò)。
CAN 消息幀
那么 CAN 消息實(shí)際上是什么樣子的呢?初的 ISO 標(biāo)準(zhǔn)制定了所謂的標(biāo)準(zhǔn) CAN。標(biāo)準(zhǔn)CAN對(duì)不同的報(bào)文使用11位標(biāo)識(shí)符,總共有2 11,即2048個(gè)不同的報(bào)文ID。CAN后來(lái)被修改;標(biāo)識(shí)符擴(kuò)展為 29 位,給出 2 29 個(gè)標(biāo)識(shí)符。這稱為擴(kuò)展 CAN。CAN 使用多主總線,所有消息都在整個(gè)網(wǎng)絡(luò)上廣播。標(biāo)識(shí)符提供仲裁的消息優(yōu)先級(jí)。
CAN 使用具有兩種邏輯狀態(tài)的差分信號(hào),稱為隱性和顯性。隱性表示差分電壓小于閾值電壓。顯性指示差分電壓大于此閾值。有趣的是,顯性狀態(tài)是通過(guò)將邏輯“0”驅(qū)動(dòng)到總線上來(lái)實(shí)現(xiàn)的,而隱性狀態(tài)是通過(guò)邏輯“1”來(lái)實(shí)現(xiàn)的。這與大多數(shù)系統(tǒng)中使用的傳統(tǒng)高和低相反。本文稍后將詳細(xì)介紹這兩種狀態(tài)。重要的是,在仲裁過(guò)程中,主導(dǎo)國(guó)家優(yōu)先于隱性國(guó)家。
標(biāo)準(zhǔn)CAN
標(biāo)準(zhǔn) CAN 消息幀由許多位字段組成。這些如圖 3 所示。
位是幀開始 (SOF)。該顯性位代表 CAN 消息的開始。接下來(lái)是 11 位標(biāo)識(shí)符,它確定 CAN 消息的優(yōu)先級(jí)。標(biāo)識(shí)符越小,消息的優(yōu)先級(jí)越高。
遠(yuǎn)程傳輸請(qǐng)求 (RTR) 位通常為顯性位,但當(dāng)一個(gè)節(jié)點(diǎn)向另一節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)時(shí),該位會(huì)變?yōu)殡[性。當(dāng)發(fā)送標(biāo)準(zhǔn) CAN 幀而非擴(kuò)展幀時(shí),標(biāo)識(shí)符擴(kuò)展 (IDE) 位占主導(dǎo)地位。r0 位被保留,當(dāng)前未使用。數(shù)據(jù)長(zhǎng)度代碼 (DLC) 半字節(jié)表示此消息中有多少個(gè)數(shù)據(jù)字節(jié)。
接下來(lái)是數(shù)據(jù)本身,其字節(jié)數(shù)與 DLC 位中表示的字節(jié)數(shù)相同。循環(huán)冗余校驗(yàn) (CRC) 是一個(gè) 16 位校驗(yàn)和,用于檢測(cè)傳輸數(shù)據(jù)中的錯(cuò)誤。如果消息被正確接收,接收節(jié)點(diǎn)將用顯性位覆蓋隱性確認(rèn)位 (ACK)。ACK 還包含一個(gè)分隔符位以保持同步。幀結(jié)束 (EOF) 表示 CAN 消息的結(jié)束,為 7 位寬,用于檢測(cè)位填充錯(cuò)誤。CAN 消息的一部分是幀間空間 (IFS),用作時(shí)間延遲。該時(shí)間延遲正是 CAN 控制器將接收到的消息移至緩沖區(qū)以進(jìn)行進(jìn)一步處理所需的時(shí)間量。
擴(kuò)展CAN
擴(kuò)展 CAN 使用 29 位標(biāo)識(shí)符以及一些附加位。擴(kuò)展消息在 11 位標(biāo)識(shí)符后面有一個(gè)替代遠(yuǎn)程請(qǐng)求 (SRR) 位,它充當(dāng)占位符以保持與標(biāo)準(zhǔn) CAN 相同的結(jié)構(gòu)。這次標(biāo)識(shí)符擴(kuò)展(IDE)應(yīng)該是隱性的,表示后面跟著擴(kuò)展標(biāo)識(shí)符。RTR 位位于 18 位 ID 之后,后面是第二個(gè)保留位 r1。消息的其余部分保持不變。
CAN 消息類型
現(xiàn)在您已經(jīng)了解了 CAN 消息的樣子,您可能想知道總線上傳遞的消息類型。CAN 允許四種不同的消息類型。它們是數(shù)據(jù)幀、遠(yuǎn)程幀、過(guò)載幀和錯(cuò)誤幀。
標(biāo)準(zhǔn) CAN 數(shù)據(jù)幀使用標(biāo)識(shí)符、數(shù)據(jù)和數(shù)據(jù)長(zhǎng)度代碼、循環(huán)冗余校驗(yàn)和確認(rèn)位。RTR 和IDE 位在數(shù)據(jù)幀中均占主導(dǎo)地位。如果接收端的隱性確認(rèn)位被顯性位覆蓋,則發(fā)送器和接收器都認(rèn)為這是成功的傳輸。
CAN 遠(yuǎn)程幀看起來(lái)與數(shù)據(jù)幀類似,只是它不包含任何數(shù)據(jù)。發(fā)送時(shí)RTR位處于隱性狀態(tài);這表明它是一個(gè)遠(yuǎn)程幀。遠(yuǎn)程幀用于從節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)。
當(dāng)節(jié)點(diǎn)檢測(cè)到 CAN 總線上的消息中存在錯(cuò)誤時(shí),它會(huì)發(fā)送錯(cuò)誤幀。這會(huì)導(dǎo)致所有其他節(jié)點(diǎn)發(fā)送錯(cuò)誤幀。此后,發(fā)生錯(cuò)誤的節(jié)點(diǎn)重新傳輸該消息。過(guò)載幀的工作原理類似,但當(dāng)節(jié)點(diǎn)接收幀的速度快于處理幀的速度時(shí)使用。該幀提供了時(shí)間緩沖區(qū),以便節(jié)點(diǎn)可以趕上。
總線仲裁和信令
CAN 是一種 CSMA/CD 協(xié)議,這意味著總線上的每個(gè)節(jié)點(diǎn)都可以檢測(cè)沖突并在嘗試重新傳輸之前后退一定時(shí)間。這種沖突檢測(cè)是通過(guò)基于消息標(biāo)識(shí)符的優(yōu)先級(jí)仲裁來(lái)實(shí)現(xiàn)的。在討論仲裁之前,讓我們仔細(xì)看看 CAN 總線上使用的顯性位和隱性位。
倒置邏輯
CAN 總線的一個(gè)有趣的方面是它使用具有兩種狀態(tài)(顯性狀態(tài)和隱性狀態(tài))的反轉(zhuǎn)邏輯形式。下面的圖 5 顯示了 CAN 收發(fā)器輸出和輸入的簡(jiǎn)化版本?!?01”比特流來(lái)自/去往 CAN 控制器和/或微控制器。請(qǐng)注意,當(dāng)控制器發(fā)送位流時(shí),這些位流會(huì)被補(bǔ)充并放置在 CANH 線上。CANL 線始終是 CANH 的補(bǔ)充。為了使仲裁發(fā)揮作用,CAN 設(shè)備必須監(jiān)視它正在發(fā)送的內(nèi)容以及當(dāng)前總線上的內(nèi)容(即它正在接收的內(nèi)容)。
圖 6 同時(shí)顯示了 CANH 和 CANL 信號(hào),以便您可以看到 CAN 總線的運(yùn)行情況??偩€信號(hào)下方繪制的是與 CAN 信號(hào)的顯性和隱性狀態(tài)相對(duì)應(yīng)的差分電壓。時(shí)間上的前三個(gè)段 t1–t3 被繪制為與圖 5 中所示的三個(gè)位相匹配。我們將從輸出驅(qū)動(dòng)器的角度來(lái)看待這一點(diǎn)。驅(qū)動(dòng)器的輸入初看到“1”,并將其補(bǔ)為零,然后將其放置在 CANH 上。CANL 看到 CANH 的補(bǔ)碼并走高。這如圖 6 中的 t1 所示。請(qǐng)注意,CANH 和 CANL 電壓彼此偏移。在時(shí)間 t1 期間,CANH – CANL 非常接近于零,因?yàn)?CANH 和 CANL 的電壓幾乎相同。在此期間,驅(qū)動(dòng)程序發(fā)送邏輯“1”
發(fā)送的下一位是“0”。CANH 得到其補(bǔ)碼,CANL 再次得到 CANH 的補(bǔ)碼。請(qǐng)注意,這次 CANH 和 CANL 電壓并不接近。因此,差分電壓(VDIFF)較大。這是 CAN 主導(dǎo)狀態(tài)。我們說(shuō)邏輯是顛倒的,因?yàn)椤?”使總線處于低電平,而“0”則使總線處于高電平。輸入接收器以類似的方式工作。
優(yōu)先仲裁
正如前面提到的,11 位標(biāo)識(shí)符越小,消息的優(yōu)先級(jí)就越高。節(jié)點(diǎn)傳輸?shù)拿恳晃欢紩?huì)受到監(jiān)控。這就是節(jié)點(diǎn)檢測(cè)總線上正在放置更高優(yōu)先級(jí)消息的方式。當(dāng)節(jié)點(diǎn)發(fā)送隱性位但在總線上檢測(cè)到顯性位時(shí),它就會(huì)后退。這稱為非破壞性仲裁,因?yàn)閯俪龅南⒗^續(xù)傳輸,沒有任何問(wèn)題。請(qǐng)注意,隱性邏輯“1”輸給了顯性邏輯“0”。這是有道理的,因?yàn)檩^低的標(biāo)識(shí)符值代表較高的優(yōu)先級(jí)。為了更好地了解這意味著什么,請(qǐng)查看圖 7,其中顯示了 CAN 總線上嘗試控制的三個(gè)節(jié)點(diǎn)。重要的是要記住,每次顯示隱性位時(shí),控制器都會(huì)發(fā)送“1”,
節(jié)點(diǎn) 1-3 都在發(fā)送比特流。該位流代表消息標(biāo)識(shí)符及其優(yōu)先級(jí)。首先,所有三個(gè)節(jié)點(diǎn)均發(fā)送“1”,該值在 CAN 總線上表示為隱性位。接下來(lái),每個(gè)節(jié)點(diǎn)發(fā)送“0”或顯性位。總線上放置的第三位是另一個(gè)“1”,或隱性位。此時(shí),沒有一個(gè)節(jié)點(diǎn)檢測(cè)到與總線上的另一個(gè)節(jié)點(diǎn)有任何沖突,因此它們繼續(xù)傳輸。
對(duì)于第四位,節(jié)點(diǎn) 1 發(fā)送“0”或顯性位。節(jié)點(diǎn) 2 傳輸隱性位,但檢測(cè)總線上的顯性位。它立即后退,知道當(dāng)前正在發(fā)送更高優(yōu)先級(jí)的消息。節(jié)點(diǎn) 3 繼續(xù)發(fā)送,因?yàn)樗x回了與發(fā)送的相同的顯性位。當(dāng)?shù)谖逦槐环胖迷诳偩€上時(shí),節(jié)點(diǎn) 3 就會(huì)識(shí)別出它的優(yōu)先級(jí)較低并停止傳輸。節(jié)點(diǎn) 2 和節(jié)點(diǎn) 3 都會(huì)等待一定時(shí)間,然后再次嘗試。如圖 7 的右半部分所示,節(jié)點(diǎn) 3 贏得了仲裁。正如您所看到的,與較低消息標(biāo)識(shí)符相對(duì)應(yīng)的邏輯“0”顯性位允許進(jìn)行仲裁。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.udpf.com.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ASK 解調(diào)的核心要點(diǎn)與實(shí)現(xiàn)方式2025/9/5 16:46:17
- 雙偶極子天線:結(jié)構(gòu)、特性與應(yīng)用全解析2025/9/3 10:29:21
- 幾種流行無(wú)線通信方式及其特點(diǎn)2025/9/2 17:14:12
- 解密射頻線纜彎曲衰減變化,掌握有效應(yīng)對(duì)策略2025/8/29 16:22:47
- LoRa1120 模塊與 ESP32 點(diǎn)對(duì)點(diǎn) LoRa 通信實(shí)踐全流程2025/8/29 16:16:44
- 線性穩(wěn)壓電源與開關(guān)穩(wěn)壓電源:原理、特性及應(yīng)用
- 電容器旁路的基本原理
- TTL、RS232、485 到底能傳輸多遠(yuǎn)距離
- 一文了解車規(guī)級(jí)芯片認(rèn)證標(biāo)準(zhǔn)
- eMMC 屬于閃存還是內(nèi)存?從定義到應(yīng)用講透核心區(qū)別
- 什么是芯片的納米等級(jí)的含義,28nm,14nm,3nm 工藝
- 一文詳解:半導(dǎo)體、芯片、集成電路、晶圓之差異
- 深度解析:“直流變頻” 與 “變頻” 的本質(zhì)區(qū)別與應(yīng)用選擇
- 直線電機(jī)工作原理與應(yīng)用全解析
- 空調(diào)空開跳閘的原因及解決方法