在工業自動化的底層通信網絡中,控制器局域網(Controller Area Network, CAN)憑借其高可靠性、實時性和抗干擾能力,成為連接工業設備、車載電子系統和智能傳感器的核心通信協議。從早期的汽車電子到如今的工業物聯網(IIoT),CAN 協議始終保持著旺盛的生命力。GraniStudio 軟件通過對 CAN 協議的深度整合,將復雜的總線仲裁、錯誤檢測和消息處理等底層邏輯封裝為可視化組件,為工業用戶提供了便捷高效的 CAN 通信解決方案。本文將從協議原理、技術特性、GraniStudio 整合實現及工業應用四個維度,全面解析 CAN 協議的技術內核。
一、CAN 協議的核心原理與通信機制
CAN 協議由德國博世公司于 1986 年開發,最初為汽車電子控制系統設計,后廣泛應用于工業自動化、醫療設備等領域。其核心設計理念是 “多主通信、非破壞性仲裁、錯誤檢測與恢復”,適合高可靠性要求的分布式控制系統。
1.1多主通信與總線仲裁機制
CAN 總線數據幀傳輸流程圖
例如在工業自動化生產線上,傳感器節點采集數據后組成數據幀發送,若多個節點同時競爭總線,標識符優先級高的節點仲裁成功后繼續發送,接收節點如 PLC 接收數據后,若校驗正確則發送 ACK 確認,確保數據可靠傳輸。

CAN 總線在汽車領域系統架構流程圖
在汽車領域,CAN(Controller Area Network,控制器局域網)總線是一種用于實現車內各電子控制單元(ECU)之間通信的重要技術,以下是CAN 總線在汽車領域系統架構流程圖:

各部分具體介紹
發動機控制單元(ECU):
功能:負責監測和控制發動機的運行狀態,采集如發動機轉速、溫度、燃油噴射量等關鍵參數,并進行實時分析和處理,以確保發動機在最佳工況下運行。
CAN 總線通信:通過 CAN 總線將發動機運行參數發送給儀表盤 ECU,以便儀表盤能夠實時顯示發動機相關信息,如轉速表、水溫表等;同時,將一些必要的運行數據共享給車身控制模塊,供其進行綜合控制決策。
儀表盤 ECU:
功能:接收來自發動機控制單元等其他 ECU 的數據,并將其轉化為駕駛員能夠直觀讀取的信息,顯示在儀表盤上,如車速、發動機轉速、燃油量、故障指示燈等。
CAN 總線通信:通過 CAN 總線獲取發動機控制單元發送的發動機運行參數,并進行相應的顯示處理,及時向駕駛員反饋車輛的運行狀態。
車身控制模塊(BCM):
功能:作為車身電子系統的核心控制單元,負責管理和協調車身相關的各種功能,如車門鎖控制、車窗升降控制、車燈控制等。它根據接收到的各種信號和指令,對相應的執行器進行控制,實現車身功能的自動化和智能化。
CAN 總線通信:通過 CAN 總線接收來自發動機控制單元的共享數據,以及其他相關 ECU 的信號。根據這些信息,車身控制模塊向車門鎖、車窗升降器、車燈等執行器發送控制信號,實現相應的車身控制功能。
車門鎖:
功能:在接收到車身控制模塊發送的控制信號后,執行車門的鎖定和解鎖操作,保障車內人員和財產的安全。
CAN 總線通信:通過 CAN 總線接收來自車身控制模塊的控制指令,實現車門鎖狀態的改變。
車窗升降:
功能:根據車身控制模塊發送的控制信號,驅動車窗電機,實現車窗的上升和下降操作,滿足車內人員的通風和采光需求。
CAN 總線通信:通過 CAN 總線接收車身控制模塊的控制指令,控制車窗電機的運轉,完成車窗升降動作。
車燈:
功能:根據車身控制模塊發送的控制信號,控制車燈的開啟和關閉,以及燈光的亮度、顏色等,確保車輛在不同環境下的行駛安全和照明需求。
CAN 總線通信:通過 CAN 總線接收車身控制模塊的指令,實現車燈的各種控制功能,如大燈的遠光、近光切換,轉向燈的閃爍等。
CAN 采用 “多主串行通信” 模式,總線上的每個節點都可以主動發送數據,無需中央控制器協調。當多個節點同時發送數據時,通過 “非破壞性位仲裁” 機制解決沖突:
顯性位(Dominant Bit):邏輯 0,具有較高優先級;
隱性位(Recessive Bit):邏輯 1,優先級較低;
仲裁過程:各節點在發送數據時同時監聽總線,當發現自己發送的隱性位與總線上的顯性位沖突時,自動退出發送,轉為接收狀態。
例如,節點 A 發送 ID 為 0x123 的消息,節點 B 發送 ID 為 0x456 的消息。由于 0x123 的二進制表示(0001 0010 0011)前幾位為 0,而 0x456 的前幾位為 1,在仲裁過程中,節點 B 會檢測到沖突并退出發送,節點 A 獲得總線控制權。這種機制確保了高優先級消息(ID 值小的消息)優先傳輸,實現了實時性要求。
1.2 幀結構與數據傳輸
CAN 協議定義了四種幀類型,其中數據幀是最常用的類型,其結構如下:
| 字段 | 長度(位) | 功能描述 |
|---|---|---|
| 幀起始(SOF) | 1 | 標識幀的開始,固定為顯性位(0) |
| 仲裁場 | 11/29 | 包含標識符(ID)和遠程發送請求位(RTR) |
| 控制場 | 6 | 包含數據長度碼(DLC)和保留位 |
| 數據場 | 0-64 | 實際傳輸的數據,長度由 DLC 指定 |
| CRC 場 | 15+1 | 循環冗余校驗碼,用于錯誤檢測 |
| ACK 場 | 2 | 確認場,發送節點發送兩個隱性位,接收節點正確接收后發送顯性位 |
| 幀結束(EOF) | 7 | 標識幀的結束,固定為隱性位(1) |
在 GraniStudio 中,用戶可通過 “CAN總線寫入算子” 在寫入數據時設置幀 ID、數據長度和數據內容,軟件自動完成幀打包和解析。
1.3 錯誤檢測與恢復機制
CAN 協議具備強大的錯誤檢測能力,通過五種錯誤檢測機制確保數據可靠性:
位監測:發送節點在發送每一位后立即監聽總線,檢測發送位與監聽到的位是否一致;
幀校驗:接收節點檢查幀格式是否符合規范(如 SOF、EOF 的位置和值);
CRC 校驗:接收節點計算接收到的數據的 CRC 值,并與發送的 CRC 值比較;
ACK 校驗:發送節點在 ACK 場發送隱性位,若未收到接收節點的顯性 ACK,則認為傳輸失敗;
位填充:發送節點在連續 5 個相同位后自動插入一個相反位,接收節點刪除填充位,檢測是否存在非法位序列。
當檢測到錯誤時,節點會發送錯誤標志并進入錯誤狀態。在GraniStudio流程應用中,可通過“CAN總線讀取/CAN總線寫入”算子對返回值進行判斷,確保數據可靠性,能夠自動觸發報警機制。
二、CAN 協議的技術特性與工業適配
CAN 協議的技術特性使其特別適合工業環境,尤其是在強電磁干擾、實時性要求高的場景中表現突出。
2.1 高可靠性與抗干擾能力
CAN 采用差分信號傳輸(CAN_H 和 CAN_L),具有極強的抗電磁干擾能力:
差分傳輸:信號通過兩根線的電壓差傳輸,噪聲同時影響兩根線,差分接收可消除噪聲;
故障安全:當 CAN 總線短路或斷路時,節點能自動檢測并進入錯誤狀態,避免影響其他節點;
錯誤恢復:節點在發送錯誤后,會根據錯誤計數進入 “錯誤激活”“錯誤認可” 或 “總線關閉” 狀態,并自動嘗試恢復通信。
某鋼鐵廠的實踐顯示,在強電磁干擾環境下,CAN 總線的數據傳輸誤碼率低于 10^-9,遠低于 RS-485 的 10^-6。
2.2 實時性保障
CAN 的非破壞性仲裁機制確保了高優先級消息的實時傳輸:
固定優先級:消息 ID 越小,優先級越高,可根據實時性要求分配 ID;
確定性延遲:在最壞情況下,高優先級消息的傳輸延遲是可計算的,適合對時間敏感的控制應用;
短幀傳輸:CAN 數據幀最長 8 字節,傳輸時間短(在 1Mbps 波特率下,一幀傳輸時間<1ms),減少了沖突概率。
在工業機器人控制中,通過分配低 ID 給關鍵控制指令,確保控制信號在 1ms 內傳輸,滿足機器人運動控制的實時性要求。
2.3 靈活的拓撲結構與擴展性
CAN 總線支持多種拓撲結構:

線型拓撲:最簡單的結構,節點分布在總線兩端之間,適合大多數工業場景;
星型拓撲:通過 CAN 中繼器實現,適合節點分布分散的場景;
樹型拓撲:線型拓撲的擴展,適合復雜的工業網絡。
GraniStudio 支持多種 CAN 接口設備(如 PCI 卡、USB 轉 CAN 模塊),可根據實際需求構建不同拓撲結構的 CAN 網絡。例如,某汽車生產線通過樹型拓撲連接 100 + 個 CAN 節點,覆蓋涂裝、焊接、總裝等多個工藝段。
三、GraniStudio 對 CAN 協議的工具統一
針對工業 CAN 應用的復雜性,GraniStudio 構建了 “CAN總線初始化 - CAN總線讀取 - CAN總線寫入-關閉CAN” 的工具鏈,大幅降低開發門檻。
3.1 CAN 設備配置與初始化
GraniStudio 提供可視化的 CAN 設備配置界面:

“品牌”品牌列表顯示常用Can卡品牌,支持Can卡品牌包括周立功、Kvaser、廣成科技等常用品牌Can卡使用。
“類型”品牌列表選擇后類型列表自動刷新顯示此品牌支持的Can卡類型,包括 PCI 卡、USB 轉 CAN 模塊 。
“設備索引”設置設備索引號。
“通道號”配置使用的通道號,默認值為0,范圍為0-15。
“波特率”提供選擇10、50、100、125、500、1000,單位為Kbit/s,默認值為10。
“濾波”支持單濾波設置,打開自動顯示濾波設置區域。
“驗收碼” 設置濾波驗收碼,驗收碼是一個與 CAN 幀 ID 長度相同的二進制值(標準幀 ID 為 11 位,擴展幀 ID 為 29 位),用于指定需要匹配的 ID 模式,輸出時需輸入16進制字節。
“屏蔽碼”驗收碼和屏蔽碼一起使用,屏蔽碼決定了哪些位需要嚴格匹配,哪些位可以忽略,輸出時需輸入16進制字節。
“協議類型”支持Can、CanFD、CanOpen三種協議選擇,選擇CanPD協議時。
顯示數據率設置區域。
“數據率”支持設置10、50、100、125、500、1000、2000、3000、5000,單位為Kbit/s,默認值為10。
3.2 CAN 消息讀取
Can總線讀取通過引用Can總線初始化算子輸出的對象Can對象實現Can信息接收,支持PDO讀取以及SDO讀取,支持設置讀取時間,當在設定時間內讀取到Can卡返回信息算子執行結束,可根據引用Can對象自動解析使用的協議,當解析為使用CanOpen協議時支持讀取信息的時候也支持SDO讀取以及PDO讀取,支持顯示交互信息。


“引用依賴,Can對象”引用Can總線初始化輸出對象

“讀取配置”默認值為常規讀取,包含SDO讀取、PDO讀取和心跳讀取,當引用Can總線初始化Can對象使用的協議為不為CanOpen時,使用SDO讀取、PDO讀取和心跳讀取功能無效。
SDO讀取


“自定義幀ID”選擇此模式界面發生變化,顯示手動輸入幀ID界面,以幀ID文本框數據作為幀ID使用,數據格式為16進制字符串“自定義幀ID”選擇此模式界面發生變化,顯示手動輸入幀ID界面,以幀ID文本框數據作為幀ID使用,數據格式為16進制字符串。

“引用幀ID”選擇此模式界面發生變化,通過“引用依賴,幀ID”數據作為幀ID使用。

“自定義字典索引”選擇此模式界面發生變化,顯示手動輸入字典索引界面,以字典索引文本框數據作為字典索引使用,數據格式為16進制字符串。

“引用字典索引”選擇此模式界面發生變化,通過“引用依賴,字典索引”數據作為字典索引使用。

“自定義子索引”選擇此模式界面發生變化,顯示手動輸入子索引界面,以子索引文本框數據作為子索引使用,數據格式為16進制字符串。

“引用子索引”選擇此模式界面發生變化,通過“引用依賴,子索引”數據作為子索引使用。
PDO讀取

“自定義PDO編號”選擇此模式界面發生變化,顯示手動設置PDO編號界面,數據范圍為1-4,默認值為1

“引用PDO編號”選擇此模式界面發生變化,通過“引用依賴,PDO編號”數據作為PDO編號使用

心跳讀取:選擇此模式界面發生變化


“超時設置”設置默認打開,打開后可實現在規定事件內判斷是否有信息反饋的功能。

“自定義超時時間”選擇此模式界面發生變化,顯示手動設置超時時間界面,默認值為10000,范圍為毫秒

“引用超時時間”選擇此模式界面發生變化,通過“引用依賴,超時時間”數據作為超時時間使用

“字節顯示”當使用SDO、PDO和心跳讀取模式時使用界面功能時顯示發送幀ID數據和產生交互的信息,包括引用依賴的選擇、單選按鈕的使用等。
3.3 CAN 消息寫入與控制
GraniStudio 的Can總線寫入算子通過引用Can總線寫入算子輸出的對象Can對象實現Can信息寫入并能夠自動解析使用協議,支持選擇三種方式進行寫入,分別為常規發送、SDO寫入以及PDO寫入,支持Can通道、幀ID、數據長度、字典索引、字索引、PDO編號、超時時間選擇自定義與引用依賴,根據解析的協議類型配置界面提供不同配置參數。
交互信息支持顯示:當使用SDO、PDO寫入時可在配置界面顯示交互信息,使用SDO寫入時顯示格式為“幀ID: 發送數據: 等待接收”,使用PDO寫入時顯示格式為“幀ID: 發送數據: 等待接收”,使用心跳寫入顯示格式為“幀ID: 等待接收:”。


“引用依賴,Can總線對象”引用Can總線初始化輸出對象

“寫入配置”默認值為常規讀取,包含SDO寫入和PDO,當引用Can總線初始化Can對象使用的協議為不為CanOpen時,使用SDO寫入、PDO寫入功能無效。

“常規寫入”使用時界面自動變化

“SD0寫入”使用時界面自動變化,在配置表中,此時無法添加和刪除行

“PD0寫入”使用時界面自動變化,顯示PDO編號

“自定義PDO編號”選擇此模式界面發生變化,顯示手動設置PDO編號界面,數據范圍為1-4,默認值為1

“引用PDO編號”選擇此模式界面發生變化,通過“引用依賴,PDO編號”數據作為PDO編號使用

“幀ID”:

“自定義幀ID”選擇此模式界面發生變化,顯示手動輸入幀ID界面,以幀ID文本框數據作為幀ID使用,數據格式為16進制字符串

“引用幀ID”選擇此模式界面發生變化,通過“引用依賴,幀ID”數據作為幀ID使用
“幀類型”:分別標準幀和擴展幀
“幀格式”:分別數據幀和遠程幀
“數據長度”:配置長度數據長度,對應表格顯示行數

“自定義數據長度”選擇此模式界面發生變化,顯示手動設置長度界面,默認值為8,范圍為1-64

“引用數據長度”選擇此模式界面發生變化,通過“引用依賴,數據長度”數據作為數據長度使用
“表格”用于配置發送數據


”通過此按鈕可刪除表格行

”賦值表格行并添加到表中

“數據字節”用于配置輸入字節,默認為手動輸入,當點擊圖表時切換為可引用數據。
“超時設置”設置默認打開,打開后可實現在規定事件內判斷是否有信息反饋的功能。

“自定義超時時間”選擇此模式界面發生變化,顯示手動設置超時時間界面,默認值為10000,范圍為毫秒

“引用超時時間”選擇此模式界面發生變化,通過“引用依賴,超時時間”數據作為超時時間使用
“字節顯示”顯示發送幀ID數據和產生交互的信息,使用時引用依賴的選擇、單選按鈕的使用等都可刷新顯示。
應用場景:在工業機器人控制中,GraniStudio 通過 CAN 寫入功能向伺服驅動器發送位置控制命令。系統根據運動規劃算法計算目標位置,動態生成 CAN 消息并以 10ms 周期發送,實現機器人關節的精確控制。同時,系統可實時接收驅動器反饋的實際位置,形成閉環控制。
3.4 高級協議支持:CANOpen與CAN FD
GraniStudio 在原生 CAN 支持基礎上,進一步擴展了對CANOpen和CAN FD的支持:
3.4.1 CANOpen 協議支持
CANOpen是基于 CAN 總線的高層協議,由 CiA(CAN in Automation)協會于 1992 年推出,旨在為工業自動化設備提供標準化的通信協議。其核心優勢在于:
(1)標準化設備模型
(2)定義了 30 + 種標準設備類型(如驅動器、I/O 模塊、編碼器)
(3)通過設備類型編號(Device Type)和配置文件(Profile)實現設備互操作性
(4)對象字典(Object Dictionary):所有通信參數和設備參數都存儲在對象字典中
對象字典采用分層結構(索引 + 子索引),便于管理和訪問
GraniStudio 對CANOpen的支持包括:
SDO(服務數據對象):用于參數配置和非周期數據傳輸
PDO(過程數據對象):用于實時數據交換(如傳感器讀數、控制命令)
PDO 映射與數據交換:通過拖放操作配置過程數據對象映射關系
3.4.2 CAN FD 協議支持
CAN FD(Flexible Data Rate)是 CAN 協議的擴展版本,由博世公司于 2012 年推出,旨在提高數據傳輸速率和有效載荷:
CAN FD(Flexible Data Rate)提升了數據傳輸速率和有效載荷:
硬件適配層:支持兼容 CAN FD 的硬件接口
雙速率配置:獨立配置仲裁段和數據段的波特率
擴展幀處理:支持 CAN FD 的擴展數據長度碼(DLC 最大 64 字節)
四、CAN 協議的工業應用場景與價值
在工業自動化領域,CAN 協議憑借其特性優勢,在多個關鍵場景中發揮著核心作用:
4.1 工業設備聯網與監控
在工廠自動化系統中,CAN 總線廣泛用于連接各類設備:
傳感器網絡:溫度、壓力、流量等傳感器通過 CAN 接口將數據上傳至 PLC 或監控系統;
執行器控制:電機驅動器、閥門控制器等通過 CAN 接收控制指令,實現精確控制;
分布式 I/O:遠程 I/O 模塊通過 CAN 與主控制器通信,擴展 I/O 點數。
某食品加工廠的包裝生產線中,通過 CAN 總線連接 20 臺包裝機、10 個傳感器節點和 5 個監控終端,實現生產數據的實時采集和設備的集中控制,生產線效率提升 15%。
4.2 車載電子系統通信
在汽車電子領域,CAN 是事實上的標準協議:
動力系統:發動機控制單元(ECU)、變速箱控制單元(TCU)通過 CAN 交換數據;
車身電子:車門、車窗、燈光等控制系統通過 CAN 實現協同工作;
診斷系統:車載診斷系統(OBD)通過 CAN 接口讀取車輛故障碼。
現代汽車通常包含多個 CAN 網絡(如動力 CAN、舒適 CAN),節點數量可達數十個。GraniStudio 支持多 CAN 通道同時工作,可用于汽車電子開發和測試。
4.3 醫療設備通信
在醫療設備領域,CAN 協議因其可靠性和實時性被廣泛應用:
手術設備:麻醉機、呼吸機等通過 CAN 實現精確控制和數據交換;
監測設備:心電監護儀、血壓計等通過 CAN 將數據傳輸至中央監護系統;
實驗室設備:分析儀、培養箱等通過 CAN 實現自動化操作。
某醫療器械廠商開發的多參數監護儀,通過 CAN 總線連接各種傳感器模塊,實現生命體征數據的實時采集和分析,響應時間<100ms,確保患者安全。
4.4 基于 CAN 讀取 / 寫入的實時監控與控制
在工業自動化系統中,CAN 讀取 / 寫入功能常結合使用,實現復雜的監控與控制邏輯:
1.設備狀態監控
通過 CAN 讀取采集設備運行參數(溫度、壓力、振動等)
基于預設閾值觸發報警,實現 predictive maintenance
2.遠程參數配置
通過 CAN 寫入修改設備參數(如 PID 控制參數、采樣頻率)
支持批量配置和參數同步,提高系統調試效率
3.分布式協同控制
多個控制器通過 CAN 總線交換數據,實現協同工作
例如,在多軸同步系統中,主控制器通過 CAN 寫入發送同步命令,從控制器通過 CAN 讀取接收命令并執行
應用案例:
某食品包裝生產線采用 GraniStudio 的 CAN 讀取 / 寫入功能實現全線協同控制。系統通過 CAN 讀取采集各包裝機的運行狀態(速度、產量、故障信息),并通過 CAN 寫入向各設備發送同步控制命令。當某臺設備出現故障時,系統自動調整其他設備參數,維持生產線整體效率。
在實際工業應用中,常采用 “CAN + 以太網” 的混合架構:CAN 負責設備層的實時通信,以太網負責將數據上傳至管理層。GraniStudio 支持這種混合架構,通過 “協議轉換” 組件將 CAN 數據轉換為以太網協議(如 Modbus TCP、MQTT),實現跨層通信。
五、總結與技術展望
CAN 協議在工業領域的核心價值在于 “高可靠性、實時性和抗干擾能力”,而 GraniStudio 的深度整合使其從 “底層通信協議” 升級為 “工業通信解決方案”。通過可視化配置、智能解析和靈活的消息處理,軟件解決了 CAN 應用的 “開發難度大、調試復雜、系統集成難” 等痛點。
對于工業用戶而言,GraniStudio 中的 CAN 方案不僅是一種通信工具,更是構建 “可靠、實時、智能” 工業控制系統的基礎,在智能制造、新能源汽車、醫療設備等領域將持續發揮重要作用。
審核編輯 黃宇
-
CAN
+關注
關注
59文章
3068瀏覽量
472803 -
CAN協議
+關注
關注
1文章
42瀏覽量
13189
發布評論請先 登錄
MC協議的深度剖析
TCP/IP(Socket)協議深度剖析
串口協議的深度剖析
深度剖析TCAN33x系列3.3-V CAN收發器:功能、特性與應用全解析
MAX3058/MAX3059:5V、1Mbps低功耗CAN收發器的深度剖析
汽車級 CAN 收發器 TCAN1051-Q1 深度剖析
深度剖析TCAN1043A-Q1:汽車級CAN FD收發器的卓越之選
Modbus協議的深度剖析
GraniStudio : MC 協議深度剖析
GraniStudio :MQTT 協議的深度剖析
GraniStudio : TCP/IP(Socket)協議深度剖析
GraniStudio:OPC UA 協議深度剖析
GraniStudio零代碼平臺支持哪些品牌PLC和協議?
GraniStudio :CAN協議的深度剖析
評論