您的位置:首頁(yè) > 資訊 > 行業(yè)動(dòng)態(tài) > 正文

科普:了解 CAN 總線的綜合指南

2024-02-04 13:39 性質(zhì):原創(chuàng) 作者:Mulan 來(lái)源:AGV
免責(zé)聲明:中叉網(wǎng)(www.htyl001.com)尊重合法版權(quán),反對(duì)侵權(quán)盜版。(凡是我網(wǎng)所轉(zhuǎn)載之文章,文中所有文字內(nèi)容和圖片視頻之知識(shí)產(chǎn)權(quán)均系原作者和機(jī)構(gòu)所有。文章內(nèi)容觀點(diǎn),與本網(wǎng)無(wú)關(guān)。如有需要?jiǎng)h除,敬請(qǐng)來(lái)電商榷?。?/div>

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

CAN 總線系統(tǒng)的結(jié)構(gòu) [6] 設(shè)計(jì)用于促進(jìn)多個(gè)節(jié)點(diǎn)之間的高效通信。最基本的 CAN 總線系統(tǒng)由兩條線路組成,即 CAN-高(或 CANH)和 CAN-低(或 CANL),連接到系統(tǒng)中的所有節(jié)點(diǎn)。這兩條線路傳輸代表傳輸數(shù)據(jù)的差分信號(hào)。

圖 2.CAN 總線結(jié)構(gòu)

系統(tǒng)中的每個(gè)節(jié)點(diǎn)都有一個(gè)收發(fā)器(或 CAN 收發(fā)器)和一個(gè)控制器(或 CAN 控制器),前者負(fù)責(zé)與總線線路連接,后者負(fù)責(zé)處理數(shù)據(jù)成幀和錯(cuò)誤檢查。CAN 收發(fā)器負(fù)責(zé)將 CAN 控制器的數(shù)字信號(hào)轉(zhuǎn)換為總線上的差分信號(hào),反之亦然??刂破鲃t負(fù)責(zé)創(chuàng)建包含待傳輸數(shù)據(jù)的幀,并檢查接收到的幀是否有誤。

節(jié)點(diǎn)

在 CAN 總線系統(tǒng)中,節(jié)點(diǎn)指的是與總線相連并能發(fā)送和接收?qǐng)?bào)文的任何設(shè)備。每個(gè)節(jié)點(diǎn)都有自己的控制器和收發(fā)器,以便與總線連接。節(jié)點(diǎn)可以是任何設(shè)備,從簡(jiǎn)單的傳感器或執(zhí)行器到復(fù)雜的設(shè)備,如發(fā)動(dòng)機(jī)控制單元(ECU)。

只要總線空閑,CAN 總線系統(tǒng)中的每個(gè)節(jié)點(diǎn)都會(huì)傳輸數(shù)據(jù)。數(shù)據(jù)以幀的形式發(fā)送,幀中包含數(shù)據(jù)以及表示信息內(nèi)容的標(biāo)識(shí)符??偩€上的所有其他節(jié)點(diǎn)都會(huì)收到該幀,并根據(jù)標(biāo)識(shí)符值決定是否接受該幀。

CAN 總線系統(tǒng)中的節(jié)點(diǎn)還負(fù)責(zé)錯(cuò)誤檢測(cè)。每個(gè)節(jié)點(diǎn)都會(huì)使用多種方法檢查接收到的幀是否存在錯(cuò)誤,包括位監(jiān)控和幀檢查序列。如果一個(gè)節(jié)點(diǎn)檢測(cè)到錯(cuò)誤,它就會(huì)傳輸一個(gè)錯(cuò)誤幀,提醒所有其他節(jié)點(diǎn)注意該錯(cuò)誤。

總線線路

在 CAN 總線系統(tǒng)中,總線線路是節(jié)點(diǎn)之間傳輸數(shù)據(jù)的物理介質(zhì)。有兩條總線線路,即 CAN-High 和 CAN-Low,它們攜帶互補(bǔ)信號(hào)。這些總線通常被絞合在一起,形成一對(duì)雙絞線,這有助于減少電磁干擾和提高信號(hào)完整性。

CAN 總線系統(tǒng)中使用的差分信號(hào)具有以下幾個(gè)優(yōu)點(diǎn):

共模噪聲:確??偩€線路接收到的任何噪聲對(duì)兩條線路的影響相同,從而提高抗噪聲能力。由于接收節(jié)點(diǎn)只關(guān)心兩條線路上的電壓差,因此這種共模噪聲被有效抵消。

減少磁場(chǎng):互補(bǔ)信號(hào)的使用意味著一條線路上的電流與另一條線路上的電流相等且相反。這就減少了電流產(chǎn)生的凈磁場(chǎng),進(jìn)一步降低了電磁干擾。

總線線路的兩端使用電阻器(通常為 120 歐姆)進(jìn)行端接,以匹配線路的特性阻抗。這種端接對(duì)于防止信號(hào)反射至關(guān)重要,信號(hào)反射會(huì)導(dǎo)致數(shù)據(jù)傳輸錯(cuò)誤。在某些情況下,還可使用稱為偏置電阻器的附加電阻器,以確保總線線路在無(wú)節(jié)點(diǎn)傳輸時(shí)處于已知狀態(tài)。

總線線路的長(zhǎng)度和與之相連的節(jié)點(diǎn)數(shù)量會(huì)影響 CAN 總線系統(tǒng)的性能。較長(zhǎng)的總線線路和較多的節(jié)點(diǎn)會(huì)導(dǎo)致電容增加,從而減慢信號(hào)的上升和下降時(shí)間。這反過(guò)來(lái)又會(huì)限制總線上可實(shí)現(xiàn)的最大數(shù)據(jù)傳輸速率。為緩解這一問(wèn)題,CAN 總線規(guī)范定義了不同的數(shù)據(jù)傳輸速率和最大總線長(zhǎng)度,使系統(tǒng)設(shè)計(jì)人員能夠根據(jù)具體應(yīng)用選擇合適的組合。

CAN 協(xié)議

CAN 總線是公認(rèn)的數(shù)據(jù)通信國(guó)際標(biāo)準(zhǔn)。CAN 總線通信系統(tǒng)使用多種協(xié)議 [7],每種協(xié)議都有自己的特點(diǎn)和功能。這些協(xié)議定義了數(shù)據(jù)傳輸規(guī)則,包括幀格式、數(shù)據(jù)速率和錯(cuò)誤處理。要為特定應(yīng)用選擇合適的協(xié)議,了解這些協(xié)議之間的差異至關(guān)重要。

使用最廣泛的 CAN 總線協(xié)議是 CAN 2.0A、CAN 2.0B(也稱為傳統(tǒng) CAN)和 CAN FD(靈活數(shù)據(jù)速率)。這些協(xié)議都建立在 CAN 總線系統(tǒng)的基本原理之上,并增加了新的特性和功能,以滿足汽車和工業(yè)應(yīng)用不斷發(fā)展的需求。

CAN 協(xié)議 2.0A 和 2.0B

經(jīng)典 CAN(即 CAN 2.0A 和 CAN 2.0B)是兩個(gè)密切相關(guān)的協(xié)議,主要區(qū)別在于其標(biāo)識(shí)符字段的長(zhǎng)度。CAN 2.0A 也稱為標(biāo)準(zhǔn) CAN,使用 11 位標(biāo)識(shí)符,而 CAN 2.0B 或擴(kuò)展 CAN 使用 29 位標(biāo)識(shí)符。標(biāo)識(shí)符長(zhǎng)度上的這種差異(如圖 1 所示)對(duì)數(shù)據(jù)傳輸有若干影響。下面我們來(lái)談?wù)剮讉€(gè)基本影響:

適用于復(fù)雜系統(tǒng):CAN 2.0B 中較長(zhǎng)的標(biāo)識(shí)符允許使用更多的唯一報(bào)文標(biāo)識(shí)符,這在具有許多節(jié)點(diǎn)和數(shù)據(jù)類型的復(fù)雜系統(tǒng)中非常有用。不過(guò),較長(zhǎng)的標(biāo)識(shí)符也會(huì)增加幀的長(zhǎng)度,從而降低總線上可實(shí)現(xiàn)的最大數(shù)據(jù)傳輸速率。

更精細(xì)的優(yōu)先級(jí):CAN 2.0B 中更長(zhǎng)的標(biāo)識(shí)符為報(bào)文的優(yōu)先級(jí)排序提供了更多機(jī)會(huì)。由于較低的標(biāo)識(shí)符值在 CAN 總線系統(tǒng)中具有最高的優(yōu)先級(jí),CAN 2.0B 標(biāo)識(shí)符中的額外位允許對(duì)報(bào)文優(yōu)先級(jí)進(jìn)行更精細(xì)的控制。

靈活性:在 CAN 2.0A 和 CAN 2.0B 中使用不同長(zhǎng)度的標(biāo)識(shí)符會(huì)影響設(shè)備之間的兼容性。雖然 CAN 2.0B 設(shè)備通常可以與 CAN 2.0A 設(shè)備進(jìn)行通信,但情況并非總是如此。這是因?yàn)?CAN 2.0B 幀中較長(zhǎng)的標(biāo)識(shí)符可能會(huì)導(dǎo)致設(shè)計(jì)上不適合處理這些標(biāo)識(shí)符的 CAN 2.0A 設(shè)備出錯(cuò)。

圖 3.CAN FD 數(shù)據(jù)框圖

CAN FD(靈活數(shù)據(jù)速率)是 CAN 總線協(xié)議系列(2012 年)的最新成員,旨在解決 CAN 2.0A 和 CAN 2.0B 的一些局限性。CAN FD 的主要優(yōu)點(diǎn)是能夠支持更高的數(shù)據(jù)傳輸速率和更大的數(shù)據(jù)有效載荷,因此非常適合需要更快通信速度和更大數(shù)據(jù)吞吐量的現(xiàn)代汽車和工業(yè)應(yīng)用。

CAN FD 通過(guò)對(duì) CAN 總線協(xié)議引入兩個(gè)關(guān)鍵變化來(lái)實(shí)現(xiàn)這些改進(jìn):

可變數(shù)據(jù)速率:它允許在單幀傳輸過(guò)程中采用可變數(shù)據(jù)速率。這意味著,在節(jié)點(diǎn)爭(zhēng)奪總線訪問(wèn)權(quán)的仲裁階段,可以采用較低的數(shù)據(jù)傳輸速率,以確保通信的穩(wěn)健性,而數(shù)據(jù)有效載荷則以較高的數(shù)據(jù)傳輸速率傳輸,以提高吞吐量。這在電噪聲環(huán)境中尤其有用,因?yàn)檩^低的數(shù)據(jù)傳輸速率可以提供更好的抗噪能力。

靈活的數(shù)據(jù)字段大小:CAN FD 將幀中數(shù)據(jù)字段的最大大小從 CAN 2.0 的 8 字節(jié)增加到 64 字節(jié)。更大的數(shù)據(jù)有效載荷可以提高數(shù)據(jù)傳輸效率,因?yàn)閭鬏斚嗤瑪?shù)量的信息所需的幀數(shù)更少。這對(duì)于需要快速傳輸大量數(shù)據(jù)(如高分辨率傳感器數(shù)據(jù)或軟件更新)的應(yīng)用尤其有利。

向后兼容性:盡管有這些改進(jìn),CAN FD 仍保持了與 CAN 2.0A 和 CAN 2.0B 設(shè)備的向后兼容性。這是通過(guò)使用與 CAN 2.0B 相同的幀格式實(shí)現(xiàn)的,但增加了一個(gè)新的控制字段,用于指示該幀是 CAN FD 幀還是標(biāo)準(zhǔn) CAN 2.0B 幀。這樣,CAN FD 設(shè)備就可以與 CAN 2.0A 和 CAN 2.0B 設(shè)備在同一總線上共存,但 CAN FD 的更高數(shù)據(jù)傳輸速率和更大數(shù)據(jù)有效載荷只有在與其他 CAN FD 設(shè)備通信時(shí)才能使用。

CAN 總線變體

CAN 總線的物理層和數(shù)據(jù)鏈路層功能與 RS-485 類似。必須認(rèn)識(shí)到,有兩種廣泛使用的 CAN 總線規(guī)格。一聽(tīng)到 "CAN 總線 "一詞,幾乎每個(gè)人都會(huì)立即想到 ISO 11898-2 標(biāo)準(zhǔn),也稱為高速 CAN。CAN 協(xié)議有兩種變體,即高速 CAN 和低速 CAN,每種變體都是為了滿足特定的通信要求而設(shè)計(jì)的。

高速 CAN 適用于需要實(shí)時(shí)和快速數(shù)據(jù)交換的用途。最大數(shù)據(jù)傳輸速率可達(dá) 1 Mbps。高速 CAN 的典型電壓值確保了通信的可靠性,隱性狀態(tài)下的電壓值為 2.5V,顯性狀態(tài)下的電壓值為 3.5V。這一點(diǎn)在嘈雜的工業(yè)和汽車環(huán)境中尤為重要。

圖 4.高速 CAN 總線

相反,CAN 總線標(biāo)準(zhǔn)的容錯(cuò)和低速變體是 ISO 11898-3 或低速 CAN。它適用于對(duì)數(shù)據(jù)傳輸速率要求較低的系統(tǒng),最高可達(dá) 125 Kbps。低速 CAN 采用與高速 CAN 相同的電壓電平,即隱性狀態(tài)約為 2.5V,顯性狀態(tài)約為 3.5V。與高速 CAN 不同的是,這里的電阻分散在每個(gè)節(jié)點(diǎn)上,而不是在總線的起點(diǎn)和終點(diǎn)使用兩個(gè)終端電阻。

此外,低速容錯(cuò) CAN 可以有多種不同的設(shè)計(jì)方式,例如星形總線、類似高速 CAN 的線性總線或由線性總線連接的多個(gè)星形總線。

圖 5.低速 CAN 總線

CAN 總線在汽車中的應(yīng)用

CAN 總線以其高效性和靈活性成為現(xiàn)代汽車工業(yè)不可或缺的一部分。它用于促進(jìn)汽車內(nèi)各種電子控制單元(ECU)和傳感器之間的通信,實(shí)現(xiàn)眾多子系統(tǒng)的無(wú)縫集成。CAN 總線在汽車系統(tǒng)中的一些主要應(yīng)用包括發(fā)動(dòng)機(jī)控制、安全系統(tǒng)、車身控制和信息娛樂(lè)系統(tǒng)。通過(guò)使用通用通信協(xié)議,CAN 總線簡(jiǎn)化了布線,降低了汽車電子結(jié)構(gòu)的復(fù)雜性,從而減輕了重量,降低了制造成本,并使診斷更加容易。

發(fā)動(dòng)機(jī)控制

CAN 總線在汽車系統(tǒng)中的主要應(yīng)用之一是發(fā)動(dòng)機(jī)控制。發(fā)動(dòng)機(jī)控制模塊(ECM)負(fù)責(zé)管理發(fā)動(dòng)機(jī)運(yùn)行的各個(gè)方面,如燃油噴射、點(diǎn)火正時(shí)和排放控制。為了執(zhí)行這些任務(wù),ECM 需要接收來(lái)自節(jié)氣門位置傳感器、氧傳感器和曲軸位置傳感器等各種傳感器的數(shù)據(jù),并向噴油器和點(diǎn)火線圈等執(zhí)行器發(fā)送指令。

CAN 總線在促進(jìn) ECM 與其他設(shè)備之間的通信方面發(fā)揮著至關(guān)重要的作用。通過(guò)使用單一總線在 ECM 與各種傳感器和執(zhí)行器之間傳輸數(shù)據(jù),CAN 總線簡(jiǎn)化了布線并減少了所需連接的數(shù)量。這不僅減輕了發(fā)動(dòng)機(jī)控制系統(tǒng)的重量和復(fù)雜性,還提高了其可靠性和可維護(hù)性。

此外,CAN 總線的使用允許對(duì)發(fā)動(dòng)機(jī)的運(yùn)行進(jìn)行實(shí)時(shí)監(jiān)控。這使得 ECM 能夠根據(jù)從傳感器接收到的數(shù)據(jù)對(duì)發(fā)動(dòng)機(jī)參數(shù)進(jìn)行快速調(diào)整,從而確保最佳的性能、燃油效率和排放控制。此外,CAN 總線通信可實(shí)現(xiàn)先進(jìn)的診斷功能,使技術(shù)人員能夠快速識(shí)別和解決發(fā)動(dòng)機(jī)控制系統(tǒng)的問(wèn)題。

安全系統(tǒng)

CAN 總線通信在車輛安全系統(tǒng)的各種操作中發(fā)揮著至關(guān)重要的作用。這些系統(tǒng)依靠傳感器、執(zhí)行器和控制模塊之間有效的數(shù)據(jù)交換來(lái)確保車內(nèi)人員和其他道路使用者的安全。使用 CAN 總線的一些關(guān)鍵安全系統(tǒng)包括防抱死制動(dòng)系統(tǒng) (ABS)、電子穩(wěn)定性控制系統(tǒng) (ESC) 和高級(jí)駕駛員輔助系統(tǒng) (ADAS)。

防抱死制動(dòng)系統(tǒng) (ABS) 的設(shè)計(jì)目的是防止在重制動(dòng)時(shí)車輪抱死,否則會(huì)導(dǎo)致側(cè)滑和失控。防抱死制動(dòng)系統(tǒng)控制模塊從車輪速度傳感器接收數(shù)據(jù),并利用這些信息調(diào)節(jié)施加到每個(gè)車輪上的制動(dòng)力。通過(guò) CAN 總線傳輸這些數(shù)據(jù),ABS 控制模塊可以快速、準(zhǔn)確地調(diào)節(jié)制動(dòng)力,確保最佳的制動(dòng)性能和車輛穩(wěn)定性。

電子穩(wěn)定性控制系統(tǒng)(ESC)是另一個(gè)依靠 CAN 總線進(jìn)行通信的安全系統(tǒng)。ESC 的設(shè)計(jì)目的是通過(guò)選擇性制動(dòng)和調(diào)整發(fā)動(dòng)機(jī)扭矩來(lái)檢測(cè)和糾正牽引力損失或車輛側(cè)滑。ESC 控制模塊從轉(zhuǎn)向角傳感器、偏航率傳感器和車輪速度傳感器等各種傳感器接收數(shù)據(jù),并利用這些信息確定適當(dāng)?shù)募m正措施。CAN 總線實(shí)現(xiàn)了 ESC 控制模塊與其他設(shè)備之間的快速通信,使系統(tǒng)能夠?qū)Σ粩嘧兓臈l件做出快速反應(yīng),并保持車輛穩(wěn)定性。

高級(jí)駕駛員輔助系統(tǒng)(ADAS)包括自適應(yīng)巡航控制、車道偏離警告和防碰撞系統(tǒng)等多種安全功能。這些系統(tǒng)依靠攝像頭、雷達(dá)和激光雷達(dá)等各種傳感器的數(shù)據(jù)來(lái)監(jiān)控車輛周圍的環(huán)境,并為駕駛員提供幫助。CAN 總線對(duì)于在 ADAS 控制模塊和其他設(shè)備之間傳輸這些數(shù)據(jù)至關(guān)重要,可實(shí)現(xiàn)車輛安全系統(tǒng)的實(shí)時(shí)決策和控制。

通過(guò)促進(jìn)這些系統(tǒng)之間的有效通信,CAN 總線有助于提高車輛的整體安全性,降低事故發(fā)生的可能性。

CAN 總線在工業(yè)領(lǐng)域的應(yīng)用

CAN 總線除了在汽車系統(tǒng)中得到廣泛應(yīng)用外,在各種工業(yè)環(huán)境中也有應(yīng)用。它的堅(jiān)固性、可靠性和靈活性使其成為工業(yè)自動(dòng)化和控制系統(tǒng)中設(shè)備間通信的理想選擇。CAN 總線的一些主要工業(yè)應(yīng)用包括機(jī)器控制、傳感器網(wǎng)絡(luò)和分布式控制系統(tǒng)。

機(jī)器控制

機(jī)器控制是工業(yè)自動(dòng)化的一個(gè)重要方面,它需要電機(jī)、執(zhí)行器和傳感器等各種設(shè)備之間的精確協(xié)調(diào),以確保高效準(zhǔn)確的運(yùn)行。CAN 總線可實(shí)現(xiàn)設(shè)備間的實(shí)時(shí)通信,并允許執(zhí)行復(fù)雜的控制算法,因此非常適合實(shí)現(xiàn)這一目的。

在典型的機(jī)器控制應(yīng)用中,中央控制模塊(通常稱為可編程邏輯控制器 (PLC))負(fù)責(zé)協(xié)調(diào)各種設(shè)備的運(yùn)行。PLC 接收來(lái)自位置傳感器、溫度傳感器和壓力傳感器等傳感器的數(shù)據(jù),并利用這些信息確定電機(jī)、閥門和電磁閥等執(zhí)行器的適當(dāng)操作。

CAN 總線促進(jìn)了 PLC 與各種設(shè)備之間的通信,從而實(shí)現(xiàn)了快速數(shù)據(jù)交換和實(shí)時(shí)控制。通過(guò)使用單一總線進(jìn)行通信,CAN 總線簡(jiǎn)化了布線,降低了機(jī)器控制系統(tǒng)的復(fù)雜性,從而降低了安裝和維護(hù)成本。此外,CAN 總線精確的錯(cuò)誤檢測(cè)和處理能力確保了可靠的通信,即使在電氣噪聲較大的工業(yè)環(huán)境中也是如此。

在機(jī)器控制應(yīng)用中使用 CAN 總線還能實(shí)現(xiàn)分布式控制和遠(yuǎn)程監(jiān)控等高級(jí)功能。分布式控制實(shí)現(xiàn)了控制任務(wù)的分散化,系統(tǒng)中的每個(gè)設(shè)備都能根據(jù)本地?cái)?shù)據(jù)做出決策。這可以提高系統(tǒng)的整體性能和靈活性,并減輕中央控制模塊的負(fù)擔(dān)。另一方面,遠(yuǎn)程監(jiān)控使操作員能夠從遠(yuǎn)程位置監(jiān)控系統(tǒng),提高效率并減少停機(jī)時(shí)間。

網(wǎng)友評(píng)論
文明上網(wǎng),理性發(fā)言,拒絕廣告

相關(guān)資訊

關(guān)注官方微信

手機(jī)掃碼看新聞