top of page

CAN模組-2

  • 作家相片: Admin
    Admin
  • 5天前
  • 讀畢需時 3 分鐘

在先前的文章中,我們已介紹CAN模組的部分功能,包括CAN 2.0A(Standard CAN)、CAN 2.0B(Extended CAN)等協議,以及MR2操作介面之CAN通訊相關設定。本文將進一步介紹CAN模組所支援的CAN FD(CAN Flexible Data-Rate)協議。本文將說明如何於MR2操作介面配置CAN FD,以協助使用者應用於更高速與更高效能的情境,例如結合第三方RT系統進行聯合仿真或自動化操作等應用。

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

CAN FD與CAN 2.0 A/B之間有些明顯的差異,首先CAN FD的Data field最多可傳輸至64 bytes,遠高於CAN2.0的8 bytes限制,並支援在資料傳輸階段切換至較高的傳輸速率,如(圖2)、(圖3)所示。此外,CAN FD不再支援Remote frame,因為CAN FD著重於高效能傳輸大量資料,故Remote frame的實用性大幅降低,即使CAN FD與CAN 2.0 A/B有許多差異,但仍然維持CAN Bus的核心特性,一個Bus上,可允許有CAN 2.0 A/B與CAN FD等裝置同時存在。


(圖2) CAN FD傳輸速率變化[1]
(圖2) CAN FD傳輸速率變化[1]
(圖3) CAN FD之各Field[1]
(圖3) CAN FD之各Field[1]

首先介紹CAN FD的Arbitration field,此部分與CAN 2.0A/B相似,如(圖4)所示,因此讀者可參考前一篇CAN 2.0的說明,其中值得注意的是RRS Bit,這裡對應到CAN 2.0 A/B中的RTR Bit,由於CAN FD移除Remote frame,因此RRS Bit將維持Dominant。


(圖4) CAN FD Arbitration field[1]
(圖4) CAN FD Arbitration field[1]

接著介紹CAN FD的Control field,其中IDE bit與CAN 2.0 A/B相同,用於表示是否為Extended format;FDF bit則用於表示是否為FD format;res bit為保留位元,BRS bit決定是否於Data phase調整傳輸速率,而ESI bit則標示此CAN device為Error active或Error Passive狀態;DLC bits代表Data field傳輸資料量,如(圖5)所示。CAN FD使用者通常只須了解Arbitration field、Control field與Data field即可,而CRC Field通常由硬體負責計算,故本節將不再詳述,至於ACK Field、EOF、IMF等,與CAN 2.0A/B機制相同。


(圖5) CAN FD Control field[1]
(圖5) CAN FD Control field[1]

於MR2操作介面中,開啟CAN Message視窗,可以看到CAN Type提供兩種CAN FD選項,如(圖6)所示,其中「CAN FD」於整個傳輸過程使用BaudRate設定的速率,而「CAN FD+BRS」則為傳輸過程區分為兩種速率,Arbitration phase使用BaudRate,而Data phase則切換至FD BRS BaudRate,最後傳輸ACK phase則恢復為BaudRate傳輸。我們的CAN模組最高可支援至8Mbps的傳輸速率,可滿足使用者在高速通訊與即時應用等需求。


(圖6) CAN Message視窗
(圖6) CAN Message視窗

於CAN Message下,各配置一個Receive message與Send message,Receive message負責接收CAN Bus上ID=0x64(100)的封包,此時外部裝置可透過傳輸該封包對MR2進行寫入操作,而Send message則負責傳遞MR2 Scope data資訊,由於CAN FD 一個frame最大可傳輸64 Bytes,而MR2 Scope data的資料型態為SGL,每筆資料佔用4 bytes,因此可在一個frame中填入16種Scope data,若使用者需要傳輸更多Scope data,只需額外新增Send message,即可依需求調整資料內容,而我們這次實驗發送的16種Scope data,其中CH_01對應的Scope index為0,因此其發送數值為Scope選單內的「0: DC Bus」。

我們可從外部CAN裝置觀察到ID=0xC8(200)的封包中,前面4 bytes為0x440659AD,進一步將其轉換為SGL後數值為537.401,該值正好對應「0: DC Bus」當前的數值,如(圖7)所示。


(圖7) 讀取範例圖
(圖7) 讀取範例圖

我們從外部CAN裝置對CAN Bus發送ID=0x64(100)的封包,並設定Group=3、Index=36,代表此封包將對MR2 「Traction Speed」參數進行寫入,並且Data=50,意味著將「Traction Speed」設為50,發送後我們可從示波器觀察RPM從0上升至50,代表封包順利寫入,如(圖8)所示。

(圖8) 寫入範例圖
(圖8) 寫入範例圖

於前一篇文章我們已介紹CAN Bus的Topology、Data frame與Remote frame等基本概念,並說明CAN 2.0A與2.0B協議之間在Frame結構上的差異。本文我們進一步延伸向讀者說明CAN FD的特性,並比較其與CAN 2.0A/B協議之間有何不同。當讀者具備這些基礎知識後,即可透過手邊現有的CAN Bus Transceiver與我們的CAN Bus模組進行通訊。我們的CAN Bus模組最高可支援1M/8M的傳輸速率,因此讀者可根據實際應用需求,例如自動化控制,或是結合第三方即時系統進行聯合仿真,選擇適合的 CAN Bus 協議版本與配置傳輸速率,因應各種不同的應用情境。


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

 

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


參考資料

[1].    “CAN FD (flexible data rate) - The basic idea,” https://www.can-cia.org/can-knowledge/can-fd-the-basic-idea, Retrieved on Jun 2025.

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

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

bottom of page