top of page

CAN模組

  • 作家相片: Admin
    Admin
  • 16小时前
  • 讀畢需時 4 分鐘

在先前的文章中,我們介紹了RS-485通訊模組,使用者可透過RS-485通訊操作MR2,以實現自動化實驗等應用。本次則聚焦於CAN Bus模組,該模組支援CAN 2.0A(Standard CAN)、CAN 2.0B(Extended CAN)以及CAN FD等協議,並採用 High-Speed設計,讓使用者能透過CAN協議操作MR2,進而實現自動化操作,或結合第三方RT系統進行聯合仿真。由於此模組支援多種協議,本文將分為兩篇進行介紹。本篇將著重於CAN 2.0A與CAN 2.0B協議的介紹,並說明如何搭配此CAN Bus模組與MR2進行通訊。


(圖1) CAN Bus模組之實體圖
(圖1) CAN Bus模組之實體圖

CAN Bus為Multi-Master架構,並以Differential signal進行傳輸,可允許多個Node同時存在於同一條Bus上,且每個Node皆具備收發功能,如(圖2)所示。此外,每個Node可同時持有多組ID編號,這部分將於後文進一步補充。我們的CAN Bus模組在Bus上扮演其中一個Node,只需將腳位SD連接至CAN_H,而SD連接至CAN_L,即可開始進行CAN Bus通訊。

(圖2) CAN Bus topology [1]
(圖2) CAN Bus topology [1]

於CAN Bus通訊中,訊號的電位狀態以Dominant與Recessive來描述,其中Dominant代表Logic 0,而Recessive代表Logic 1,如(圖3)所示。此外CAN Bus仲裁機制基於Wire-AND設計,也就是Dominant與Recessive之間的優先權(Dominant > Recessive),這裡舉個簡單的例子,假設Bus上同時有兩個Node正在發送信號,A Node發送Dominant,而B Node發送Recessive,此時Bus上只會呈現Dominant。本節僅對仲裁機制進行初步介紹,後續說明Data frame時,會在進一步解釋Wire-AND如何應用於CAN Bus仲裁機制。

(圖3) High-speed Dominant與Recessive [2]
(圖3) High-speed Dominant與Recessive [2]

前文我們已經對CAN Bus之Physical layer有基礎的認識,接下來將逐步介紹CAN 2.0A與CAN 2.0B的Data frame與Remote frame。首先Data frame由多個Field組成,如(圖4)所示。

(圖4) Data frame [3]
(圖4) Data frame [3]

Arbitration field主要用於判斷該Frame由哪個ID進行發送,此外基於Wire-AND設計,較低的ID編號擁有更高的發送優先權,其中ID最大值將根據CAN 2.0A與CAN 2.0B而有所不同,CAN 2.0A為11-bit,而CAN 2.0B為29-bit。另外RTR bit用於發送Remote frame請求,當指定的ID接收到Remote frame請求時,將會回傳對應的數據,而SRR bit只會在CAN 2.0B出現,其始終保持Recessive,其設計確保Data frame優先級大於Remote frame,並允許CAN 2.0A裝置與CAN 2.0B裝置同時存在於同一條Bus上。Control field主要透過DLC表示Data field長度,而r0與r1為Reserved bit。Data field可傳輸0~8個Bytes,最後CRC Field用於確保Frame的完整性,當接收端收到CRC Field並檢驗CRC是否正確後,會在ACK Field的ACK Slot回傳Dominant,而發送端則在ACK Slot發送Recessive,並同時監測Bus上的ACK Slot的電位狀態,若為Dominant則代表此次傳輸正確。

(圖5) CAN 2.0A與CAN 2.0B之Data frame format [3]
(圖5) CAN 2.0A與CAN 2.0B之Data frame format [3]
(圖6) ACK Field [4]
(圖6) ACK Field [4]

接著介紹Remote frame,其組成方式與Data frame相似,同樣包含Arbitration field、Control field、CRC field與ACK Field,如(圖7)所示,其中各Field的內容與Data frame相同,可參考前文Data frame的介紹,這裡說明幾個關鍵點,Arbitration Field用於指定哪個ID應回傳資料,並且須將RTR Bit設為Recessive,而Control field則表示該ID應回傳的資料長度。

(圖7) Remote frame [3]
(圖7) Remote frame [3]

開啟CAN Message視窗,請參考(圖8)所示,紅框處由左至右的四個按鍵分別為「當前CAN設定檔轉為DBC檔」客戶可將當前設定檔轉成DBC檔後,再由第三方軟體載入此設定,「更新CAN設定」客戶配置好CAN Message並點選此按鍵後,當前設定的參數內容將立即更新至CAN Bus模組,「儲存CAN設定檔」與「載入CAN設定檔」客戶可儲存當前的設定內容,並作為下次使用時快速導入。CAN Message主要分為Send message與Receive message,其設定可參考如(圖9)所示,若啟用Extended ID則代表該ID所傳遞的Frame為CAN 2.0B規格,黃框處的Period(ms)最低可設定1ms,若設定為0ms則作為Remote frame回傳使用。

(圖8) CAN Message視窗
(圖8) CAN Message視窗
(圖9) 各ID編號的設定
(圖9) 各ID編號的設定

根據上述的設定,MR2分別設定ID=1、ID=2、ID=3等編號,各編號分別對應不同功能。從CAN Bus應可觀察到ID=1每1000ms週期性地發送DC Bus與Motor theta等資訊,如(圖10)所示,SGL 1代表DC Bus、SGL 2代表Motor theta。

(圖10) ID=1的資訊
(圖10) ID=1的資訊

接著嘗試在CAN Bus上發送Remote frame request,因此須設定Set RTR Flag,並指定ID=3,發送後,便可在CAN Bus上接收到來自ID=3所發送的RPM與TL等資訊,如(圖11)所示。

(圖11) ID=3的資訊
(圖11) ID=3的資訊

CAN Bus模組可對MR2進行寫入,指定對應的Group與Index後,將Data值寫入該參數,即可透過CAN Bus對MR2進行配置,如(圖12)所示。Group與Index對應參數表的方式,可參考先前文章「通訊模組」中的相關介紹。

(圖12) 對ID=2發送Data frame
(圖12) 對ID=2發送Data frame

經過前文介紹,我們逐步協助讀者理解CAN Bus的Topology、Data frame與Remote frame等基礎知識,並且指出CAN 2.0A與CAN 2.0B等協議在Frame結構上的差異。當讀者掌握這些基礎知識後,即可透過手邊的CAN Bus Transceiver與我們的CAN Bus模組進行通訊,進而實現自動化操作或結合第三方RT系統進行聯合仿真。此外,CAN Bus模組除了支援CAN 2.0A與CAN 2.0B等協議外,還支援CAN FD協議,日後我們將獨立撰寫一篇介紹CAN FD協議的文章,以幫助讀者在掌握該協議後,將我們的CAN Bus模組應用於更高速的應用情境。


凱登將陸續推出MR2軟體特色、電機模型解析、編碼器驗證、各式外掛模組、應用案例等文章,敬請期待。


如有任何問題歡迎請隨時聯繫我們,並給與我們指教。



參考資料

[1].    “Controller Area Network (CAN Bus) - Physical Layer And Bus Topology,” https://copperhilltech.com/blog/controller-area-network-can-bus-physical-layer-and-bus-topology/, Retrieved on March 2025.

[2].    “CAN bus,” https://en.wikipedia.org/wiki/CAN_bus, Retrieved on March 2025.

[3].    “CAN,” https://wiki.csie.ncku.edu.tw/embedded/CAN, Retrieved on March 2025.

[4].    “Controller Area Network (CAN Bus) Tutorial - Message Frame Format,” https://copperhilltech.com/blog/controller-area-network-can-bus-tutorial-message-frame-format/, Retrieved on March 2025.

Comentários


Gathertech Intelligent Automation CO., LTD. | Tainan, Taiwan

Copyright © 凱登智動科技(Gathertech Intelligent Automation CO., LTD.) 版權所有

bottom of page