博客專欄

EEPW首頁 > 博客 > CAN協(xié)議的熱門應(yīng)用有哪些?

CAN協(xié)議的熱門應(yīng)用有哪些?

發(fā)布人:電子資料庫 時(shí)間:2023-01-28 來源:工程師 發(fā)布文章

CAN(Controller Area Network)協(xié)議是歐洲汽車電子公司Robert Bosch GmbH于1983年為車載網(wǎng)絡(luò)開發(fā)的。開發(fā) CAN 協(xié)議的目的是在單根電線上實(shí)現(xiàn)車輛的不同電子控制單元 (ECU) 和微控制器控制單元 (MCU) 之間的穩(wěn)健數(shù)據(jù)通信,從而擺脫它們之間復(fù)雜的點(diǎn)對點(diǎn)布線. 盡管通過單一總線傳輸數(shù)據(jù),CAN 不需要任何主機(jī)。

標(biāo)準(zhǔn) CAN 協(xié)議在 OSI 模型的物理層和數(shù)據(jù)鏈路層運(yùn)行。其他協(xié)議棧層沒有在 CAN 中實(shí)現(xiàn),這被證明是一個(gè)很大的優(yōu)勢。系統(tǒng)工程師可以自由地以最適合應(yīng)用程序的方式設(shè)計(jì)其他協(xié)議棧層。如今,CAN 作為一種健壯、簡單、跨域、多功能的串行網(wǎng)絡(luò)通信協(xié)議而享有盛譽(yù),只要屬于不同域的電子設(shè)備之間需要頻繁的實(shí)時(shí)數(shù)據(jù)通信,就必須實(shí)施該協(xié)議。CAN 做出了 CANopen、DeviceNet 和 J1939 等變體,允許實(shí)現(xiàn)所有七個(gè)協(xié)議棧層以及用于特定用例的標(biāo)準(zhǔn) CAN 第 1 層和第 2 層。學(xué)習(xí)標(biāo)準(zhǔn) CAN 協(xié)議的實(shí)現(xiàn)會很有見地。

在本文中,我們將了解 CAN 協(xié)議及其獨(dú)特的功能。然后,我們將探索 CAN 協(xié)議的一些典型應(yīng)用,并研究 CAN 在這些應(yīng)用中是如何被利用的。

CAN 標(biāo)準(zhǔn)
CAN 規(guī)范定義了 CAN 協(xié)議和 CAN 物理層。該協(xié)議主要由 ISO-11898 規(guī)范定義,但其他規(guī)范如用于低速串行數(shù)據(jù)通信的 ISO-11519 也適用于該協(xié)議。ISO-11898 規(guī)范分為三個(gè)部分。第一部分定義了數(shù)據(jù)鏈路層和單一物理鏈路的規(guī)范。規(guī)范的第二部分定義了高速 CAN 的 CAN 物理層。規(guī)范的第三部分定義了低速 CAN 的 CAN 物理層。

低速 CAN 的數(shù)據(jù)速率為 5Kbps、10、20、50 和 125Kbps。高速 CAN 的數(shù)據(jù)速率為 250、500、800Kbps 和 1Mbps。在 CAN 網(wǎng)絡(luò)中,數(shù)據(jù)通過具有 120 歐姆特性阻抗的屏蔽或非屏蔽雙絞線或帶狀電纜進(jìn)行通信。DB9(公)連接器按照 CiA DS-102 規(guī)范使用。CiA 代表“自動化中的 CAN”。CAN 總線的最大范圍是 1000m(40Kbps)。對于高速 CAN,在 1Mbps 時(shí)最大范圍為 40m。一條 CAN 總線最多可連接 127 個(gè)節(jié)點(diǎn)。

CAN 協(xié)議如何工作
在 CAN 網(wǎng)絡(luò)中,連接到總線上的每個(gè)電子設(shè)備或系統(tǒng)都是一個(gè)節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)由三個(gè)元素組成——主機(jī)控制器、CAN 控制器和 CAN 收發(fā)器。主機(jī)控制器是設(shè)備/系統(tǒng)中的微控制器或處理器,它為特定作業(yè)運(yùn)行某些應(yīng)用程序。CAN 控制器處理主機(jī)控制器和 CAN 總線之間 CAN 消息的傳輸和接收。它充當(dāng)協(xié)議處理程序。CAN 收發(fā)器負(fù)責(zé)通過 CAN 總線傳輸和接收 CAN 消息。它充當(dāng)線路驅(qū)動器。主機(jī)控制器是一個(gè)物理控制器/處理器,而 CAN 控制器和 CAN 收發(fā)器是在軟件或固件中實(shí)現(xiàn)的。

image.png


CAN 節(jié)點(diǎn)的組件

每個(gè)節(jié)點(diǎn)都是一個(gè) CAN 收發(fā)器。數(shù)據(jù)以半雙工、異步方式傳送。這些位使用差分電壓通過 CAN 總線傳輸。CAN 總線中的兩條線稱為 CAN low 和 CAN high。CAN 總線有兩種不尋常的邏輯狀態(tài),稱為隱性和顯性。邏輯1是隱性狀態(tài),邏輯0是顯性狀態(tài)。通常,總線處于隱性狀態(tài),即邏輯 1。對于隱性狀態(tài)或通信邏輯 1,線 CAN low 和 CAN high 都施加電源電壓 VDD 或 VCC 一半的電壓。電源電壓通常為 5V,因此兩條線均施加 2.5V。結(jié)果,導(dǎo)線之間的差分電壓為 0V。這被讀作邏輯 1。在顯性狀態(tài)下,CAN 高電平被拉高至 3.5V,CAN 低電平被拉高至 1.5V。因此,兩根線之間的電壓差為2V。這是總線的顯性狀態(tài),由 CAN 收發(fā)器讀取為邏輯 0。

image.png


CAN 信號電平示例

顯性狀態(tài)總是覆蓋隱性狀態(tài)。只有當(dāng)所有節(jié)點(diǎn)都發(fā)送隱性位時(shí),總線才處于隱性電平。由于 AND 邏輯,即使單個(gè)節(jié)點(diǎn)發(fā)送顯性位,總線狀態(tài)也是顯性的。

CAN 是一種基于消息的協(xié)議。數(shù)據(jù)以消息幀的形式進(jìn)行通信。幀是有意義的位序列。消息幀有四種類型——數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀和過載幀。數(shù)據(jù)幀攜帶來自一個(gè)CAN收發(fā)器的消息,發(fā)送遠(yuǎn)程幀向其他CAN收發(fā)器請求數(shù)據(jù),發(fā)送錯(cuò)誤幀表示數(shù)據(jù)幀有錯(cuò)誤,發(fā)送過載幀表示數(shù)據(jù)幀過載,表示要求數(shù)據(jù)幀傳輸延遲。標(biāo)識符字段標(biāo)識每個(gè)幀。標(biāo)識符字段在標(biāo)準(zhǔn) CAN 中為 11 位長,在擴(kuò)展 CAN 協(xié)議中為 29 位長。要了解有關(guān)數(shù)據(jù)幀和其他 CAN 幀的結(jié)構(gòu)/格式的更多信息,請查看這篇關(guān)于標(biāo)準(zhǔn) CAN 協(xié)議的文章。

同一時(shí)間,只有一個(gè)節(jié)點(diǎn)可以訪問總線。CAN 協(xié)議中使用的訪問方法是一種稱為按位仲裁 (BA) 的帶沖突檢測的載波偵聽多路訪問 (CSMA/CD) 方法。數(shù)據(jù)幀的標(biāo)識符字段設(shè)置消息的優(yōu)先級。標(biāo)識符值越低,優(yōu)先級越高。因此,標(biāo)識符字段為 0x6C3 的數(shù)據(jù)幀比標(biāo)識符字段為 0x7B4 的數(shù)據(jù)幀具有更高的優(yōu)先級。類似地,標(biāo)識符字段為0x7B3的數(shù)據(jù)幀比標(biāo)識符字段為0x7B4的數(shù)據(jù)幀具有更高的優(yōu)先級。

如果任何節(jié)點(diǎn)處于空閑狀態(tài),即處于隱性狀態(tài),則它可以訪問 CAN 總線。如果兩個(gè)或多個(gè)節(jié)點(diǎn)試圖同時(shí)訪問總線,則傳輸具有較低標(biāo)識符字段的數(shù)據(jù)幀的節(jié)點(diǎn),即具有較高優(yōu)先級的數(shù)據(jù)幀獲得總線訪問權(quán)。標(biāo)識符字段從 MSB(位 10)到 LSB(位 0)逐位比較,直到節(jié)點(diǎn)贏得仲裁。如果一個(gè)節(jié)點(diǎn)正在傳輸相應(yīng)的隱性位,而任何其他節(jié)點(diǎn)正在傳輸顯性位,則該節(jié)點(diǎn)將失去仲裁。以這種方式,發(fā)送具有最低標(biāo)識符值即最高優(yōu)先級的數(shù)據(jù)幀的節(jié)點(diǎn)獲得對CAN總線的訪問。其他節(jié)點(diǎn)必須根據(jù)其數(shù)據(jù)幀的優(yōu)先級等待輪到他們。

一個(gè) CAN 節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)幀被傳輸?shù)娇偩€上的所有其他節(jié)點(diǎn)。在其他節(jié)點(diǎn),只有當(dāng)標(biāo)識符字段適用于它們時(shí),它才會被它們過濾并接收。

為什么可以?
選擇 CAN 協(xié)議的原因有很多。CAN 是一種串行網(wǎng)絡(luò)通信協(xié)議,只需要兩根線即可在多個(gè)設(shè)備之間進(jìn)行數(shù)據(jù)通信。連接在 CAN 網(wǎng)絡(luò)中的所有設(shè)備都通過公共雙線總線進(jìn)行通信。不需要一對一連接兩個(gè)節(jié)點(diǎn)/設(shè)備。

由于 CAN 控制器和 CAN 收發(fā)器是在軟件/固件級別實(shí)現(xiàn)的,并且協(xié)議僅在物理和數(shù)據(jù)鏈路層實(shí)現(xiàn),因此來自不同域的設(shè)備可以在同一總線上進(jìn)行通信。每個(gè)設(shè)備或節(jié)點(diǎn)上的 OSI 模型的其他層可以由系統(tǒng)工程師根據(jù)特定節(jié)點(diǎn)/設(shè)備的需要或角色單獨(dú)設(shè)計(jì)。

CAN 是一種基于消息的協(xié)議。與基于地址的協(xié)議不同,這種類型的協(xié)議不受總線上添加或刪除節(jié)點(diǎn)的影響。通過總線傳輸?shù)南⒈粡V播到所有其他節(jié)點(diǎn),并根據(jù)節(jié)點(diǎn)級別的標(biāo)識符字段進(jìn)行過濾。優(yōu)先級通過其標(biāo)識符字段附加到消息幀,而不是 CAN 節(jié)點(diǎn)。這樣就不需要識別共享CAN總線的節(jié)點(diǎn)??梢栽诓挥绊?CAN 網(wǎng)絡(luò)的情況下插入或刪除節(jié)點(diǎn)。

作為為車載網(wǎng)絡(luò)構(gòu)建的協(xié)議,該協(xié)議使用差分電壓。因此,數(shù)據(jù)不能被其他節(jié)點(diǎn)破壞或更改。由于電壓電平不同,CAN 是最強(qiáng)大的串行通信協(xié)議之一。

CAN 總線在設(shè)備之間發(fā)生任何沖突的可能性最小。通過按位仲裁,優(yōu)先級附加到消息,因此最重要的消息首先通過總線進(jìn)行通信,而不管傳輸它們的節(jié)點(diǎn)如何。數(shù)據(jù)通過總線異步傳輸,并通過按位仲裁確定優(yōu)先級。

該協(xié)議支持錯(cuò)誤檢查以確??煽啃圆⑻峁┏錾目乖胄?。CAN 是一種廣泛使用的串行通信協(xié)議,用于嵌入式電子設(shè)備之間低速但頻繁的數(shù)據(jù)交換。許多芯片都內(nèi)置了 CAN 接口。用于設(shè)置 CAN 網(wǎng)絡(luò)的半導(dǎo)體芯片可從 Maxim Integrated、Texas Instruments、Analog Devices、Microchip Technology、NXP、ST Microelectronics 等供應(yīng)商處獲得。

CAN的應(yīng)用
CAN 協(xié)議廣泛用于所有類型的汽車行業(yè)應(yīng)用,包括乘用車、重型貨車和多用途車輛以及農(nóng)用車輛。作為一種健壯、可靠和通用的串行通信協(xié)議,CAN 不僅限于汽車。該協(xié)議被高速列車和飛機(jī)的控制模塊使用。它被汽車中的娛樂和信息娛樂系統(tǒng)使用。該協(xié)議用于控制和監(jiān)控起重機(jī)和鉆探探頭。它被電梯和電梯控制系統(tǒng)使用。該協(xié)議用于樓宇自動化,如供暖和空調(diào)系統(tǒng)。它也被用于自動門和窗簾開啟器。它用于溫室和農(nóng)場的自動澆水。由于其穩(wěn)健性和多功能性,該協(xié)議在醫(yī)療儀器中得到廣泛采用。許多機(jī)床控制系統(tǒng)使用 CAN 網(wǎng)絡(luò)作為實(shí)現(xiàn)工廠自動化的設(shè)備內(nèi)總線系統(tǒng)。傳感器網(wǎng)絡(luò)也使用該協(xié)議,因?yàn)榄h(huán)境因素需要信號穩(wěn)健性。

汽車
中的 CAN CAN 協(xié)議專為車載網(wǎng)絡(luò)而構(gòu)建,用于大多數(shù)乘用車。它可以實(shí)現(xiàn)多個(gè) ECU 之間的數(shù)據(jù)通信,而無需任何一對一的布線。大多數(shù)汽車都有基于 CAN 的發(fā)動機(jī)管理系統(tǒng)。不僅如此,大多數(shù)汽車都通過基于 CAN 的多路復(fù)用系統(tǒng)連接車身電子 ECU。車載娛樂系統(tǒng)通過CAN總線連接。除此之外,車載診斷系統(tǒng)還使用 CAN 總線。ISO-15765 是基于 CAN 的診斷接口的規(guī)范。CAN 還用于車載娛樂設(shè)備之間面向連接的數(shù)據(jù)通信。

在電動汽車和混合動力汽車中,CAN 網(wǎng)絡(luò)可以發(fā)揮意想不到的廣泛作用。它對于逆變器、電池管理系統(tǒng)和伺服電機(jī)控制器之間的通信很有用。它還將伺服控制器與驅(qū)動器的人機(jī)界面連接起來。盡管 CANopen 是主要用于非汽車應(yīng)用的 CAN 變體,但它是一種在混合動力和電動汽車中找到實(shí)用性的變體。

挖掘機(jī)和叉車等許多農(nóng)業(yè)機(jī)械都依賴基于 CAN 的網(wǎng)絡(luò)。在卡車起重機(jī)中,CAN 用于監(jiān)測和控制起重機(jī)系統(tǒng)。

公共交通系統(tǒng)中的
CAN CAN協(xié)議廣泛應(yīng)用于高速列車和飛機(jī)?;疖囀褂?CAN 連接制動控制系統(tǒng)。在高速列車中,CAN 用于實(shí)現(xiàn)自動制動?;疖囘€使用 CAN 與制動控制、門控制、診斷、貨車監(jiān)控等子系統(tǒng)進(jìn)行通信,并與火車總線系統(tǒng)的網(wǎng)關(guān)進(jìn)行通信。CAN 在自動化客戶服務(wù)和乘客信息系統(tǒng)方面也很有用。

在公路運(yùn)輸中,基于 CAN 的傳感器網(wǎng)絡(luò)用于速度檢測、交通監(jiān)控和交通信號燈管理。CAN 也是海事電子設(shè)備使用的協(xié)議。它還用于連接飛機(jī)發(fā)動機(jī)控制系統(tǒng)與飛行狀態(tài)傳感器和導(dǎo)航系統(tǒng)。

用于工業(yè)自動化的 CAN
作為一種可靠的串行通信協(xié)議,具有錯(cuò)誤檢測方法、穩(wěn)健的信號邏輯和故障限制能力,基于 CAN 的協(xié)議(如 CANopen、DeviceNet 和智能分布式系統(tǒng))廣泛用于工業(yè)機(jī)器控制。半導(dǎo)體制造設(shè)備、紙箱包裝機(jī)、紡織品加工機(jī)、印刷機(jī)和質(zhì)量控制設(shè)備,都依賴于嵌入式 CAN 網(wǎng)絡(luò)?;贑AN的分布式控制系統(tǒng)廣泛用于機(jī)器人控制和流水線自動化。

樓宇自動化中的CAN
在樓宇自動化中,CAN 協(xié)議被子網(wǎng)廣泛使用。電梯和升降機(jī)控制系統(tǒng)、空調(diào)系統(tǒng)、自動門、自動窗簾開啟器、窗簾控制系統(tǒng)、加熱和冷卻系統(tǒng)以及照明控制系統(tǒng)使用基于 CAN 的協(xié)議在來自不同域的電子設(shè)備之間進(jìn)行通信。

醫(yī)療電子中的 CAN
由于具有穩(wěn)健的信號、錯(cuò)誤檢測能力和跨域通信,CAN 是一種廣泛應(yīng)用于 X 光機(jī)和 CT 掃描儀等醫(yī)療電子設(shè)備中的設(shè)備內(nèi)通信的協(xié)議?;?CAN 的協(xié)議也適用于重癥監(jiān)護(hù)室和手術(shù)室的設(shè)備間網(wǎng)絡(luò)。

嵌入式電子產(chǎn)品中的
CAN CAN 支持靈活的嵌入式網(wǎng)絡(luò),并在許多消費(fèi)電器和設(shè)備中用作系統(tǒng)總線,例如洗衣機(jī)、自動售貨機(jī)、音頻視頻系統(tǒng)、咖啡機(jī)和許多其他家用電器。


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。

電容相關(guān)文章:電容原理


關(guān)鍵詞: CAN 協(xié)議

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉