首頁 技術服務 智能顯示器 SmartDisplay Custom CAN protocol 簡介

SmartDisplay Custom CAN protocol 簡介

前言

SmartDisplay 目前支援CANbus硬體通訊介面,並使用CANopen軟體通訊協定,CANopen是基於CAN總線的工業標準通訊協定,被廣泛應用於各種領域,如醫療設備,車輛,鐵路應用或建築自動化。然而,使用CANopen協定時, 由於它是一種基於節點之間的通訊,因此客戶端需要在其主機端實作協定,這可能對那些想簡單使用CANbus的應用是個負擔。因此,為了簡化客戶的使用,我們設計出新的Custom CAN協定,其不需要在客戶端實作CANopen協定,只需要透過自定義的DBC文件設置資料, 就能輕易地將CAN ID / 數據和顯示器上的Widget相關聯, 從而實現及時的互動, 此種互動方式可以幫助客戶更好的掌握和控制系統中的數據,並達到彈性高、維護方便等目的。

介紹

Custom CAN protocol 主要是透過 DBC(CAN Database)文件來設置數據並和顯示器上的部件之間的互動方式。DBC 文件是用來定義系統中的 CAN ID、消息格式解碼等相關信息的重要工具。使用自定義的 DBC 文件可以輕鬆地將不同的 CAN ID / 數據和顯示器上的部件相關聯,這樣就可以實現及時的互動, 例如透過 CAN ID / 數據來控制顯示器上的圖形或者文字,顯示器上的按鈕或滑動條可以用來控制 CAN 的數據. 這種互動方式可以幫助客戶更好的掌握和控制系統中的數據。

DBC 介紹

DBC檔案通常是ASCII純文字檔, 其中包含各種關於在CAN總線上傳輸的物理信號的資訊, 包括信號的CAN ID、名稱、轉換比例、定義等, 這些檔案用於將原始的CAN數據解碼成有意義的值, 並將不同的CAN ID映射到其對應的信號。DBC檔案提供了將CAN訊息有效載荷轉換為物理信號值所需的資訊。

以下為Raw CAN 資料測試資料範例

raw-can-data-testing-data-example01

假設你有CAN DBC 檔案, 且這個檔案. 有包含此CAN Id (0x181) 的解譯規則設定, 則你可從此DBC File 資訊解碼出下列的資訊

raw-can-data-testing-data-example02

DBC 文件的主要功能為描述如何解碼 CAN 消息和信號的規則,
下列為 DBC 檔案節錄的測試資料說明

test-data-description-excerpted-from-dbc-file01

由上列DBC 資訊中, 可得知下列這些解碼資訊

test-data-description-excerpted-from-dbc-file02

由上列的解碼規則設定, 可將先前取得的Raw CAN Data 解碼成下列資訊

test-data-description-excerpted-from-dbc-file03

藉由以上的說明,有了DBC檔案設定,我們就可以正確解碼出CAN ID與CAN Data所代表的實際值. DBC文件包含訊息和信號布局,可以解析數據並將原始數據轉換為物理值,系統能理解透過CAN傳輸的真實訊息.

DBC 編輯器
DBC檔案通常是ASCII文本檔,其中包含了關於在CAN总线上傳輸的物理信號的資訊,這些檔案由於內容格式的關係,很難讀取和編輯。為了解決這個問題,市面上已經有許多關於DBC編輯器軟體。這些軟體可以幫助用戶更輕鬆地建立和編輯自定義DBC檔案。 其中一個常用的DBC編輯器是 vector CANdb++,由 Vector Informatik GmbH開發,這個軟體可以用於建立和編輯DBC檔案,提供了一個易於使用的介面,可以新增訊息、新增信號、定義訊息和信號的屬性,如訊息ID、起始位、長度、比例、偏移量等等。

dbc-editor

SmartDisplay GUI Builder – Custom CAN 設定說明

SmartDisplay GUI Builder 為您提供了一個直觀友好的操作界面,讓您可以輕鬆創建屬於自己的 CAN 項目,您只需要導入 DBC 檔案並進行信號/訊息與對應的 Widget 的映射,即可在 SmartDisplay 裝置上輕鬆顯示與互動。操作簡單且具有靈活性功能,能夠滿足您的各種需求,讓您的工作更加高效率。

以下會依序介紹SmartDisplay GUI Builder 如何建立Custom CAN project與設定 DBC 與 Widget 關係

● 建立Custom CAN project
依據需求, 輸入project 名稱, 選擇SmartDisplay 機種, 於protocol 選擇 Custom CAN Id (CANbus), 即可建立Custom CAN project.

create-custom-can-project

● 匯入自定義 DBC File

import-custom-dbc-file

● 於主畫面新增一個 Gauge 和 Horizontal Slider widget
點選Gauge object, 並於 Gauge 屬性頁面, 於 CAN Signal 欄位, 設定Message 為 EEC1, Signal為 EngSpeed, 代表此 Gauge物件與EngSpeed 綁上關係, 此Gauge 物件畫面顯示變化是來自 EngSpeed value 值。

add-gauge-and-horizontal-slider-widget-in-the-main-page

點選Horizontal Slider object, 並於 Horizontal Slider 屬性頁面, 於 CAN Signal 欄位, 設定Message 為 HorizontalSliderMessage, Signal為 HorizontalSliderSignal1, 代表此 Horizontal Slider物件與HorizontalSliderSignal1 綁上關係, 此Gauge 物件畫面顯示變化是來自 HorizontalSliderSignal1 值。

add-gauge-and-horizontal-slider-widget-in-the-main-page02

● 模擬 CAN ID / CAN Data 與 Widget 的互動
點選 icon:"Simulator With GUI" 啟動模擬器

add-gauge-and-horizontal-slider-widget-in-the-main-page03

啟動模擬器後, 可拉動下方 EngSpeed slider 來模擬Host端送出 EngSpeed 資料, 觀察模擬器Gauge 變動, 也可以從右方的Message Log 看到, CAN ID 與 CAN Data 的變化,也可以操作模擬器的Horizontal Slider, 模擬Device端送出的資料。

add-gauge-and-horizontal-slider-widget-in-the-main-page04

● 更新SmartDisplay 裝置設定
經由模擬器驗證功能後, 如果沒有問題後, 就可以連上 Device, 將project 設定上傳到 SmartDisplay 裝置端。

add-gauge-and-horizontal-slider-widget-in-the-main-page05

等待上傳並更新完畢

add-gauge-and-horizontal-slider-widget-in-the-main-page06

● 驗證 Device CAN ID / CAN Data 與 Widget 的互動
上傳Project到Device端後, 可以進一步驗證, SmartDisplay 裝置端功能, 用GUI Builder 連上Device 端後, 點選 "Test Device", 即可測試Host 端與 Device 端的互動了。

verify-data-and-the-widget

Test Device Window

藉由此測試畫面, 可模擬 Host 端依據 DBC 設定送出相對應的 CAN Id 與 CAN Data。
拉動下方 EngSpeed slider 模擬Host端送出 EngSpeed 資料, 觀察裝置Gauge 變動, 也可以從右方的Message Log 看到, CAN ID 與 CAN Data 的變化, 也可以操作Device的Horizontal Slider, 驗證 Device端送出的資料是否合乎需求

test-device-window

SmartDisplay 裝置實際畫面

actual-display-of-the-smartdisplay-device

Custom CAN command說明

接下來將說明Custom CAN所使用的command protocol。透過這些指令,Host端可輕鬆控制SmartDisplay,包括換頁、調整背光亮度,或者使Buzzer發出聲音。

下列為command protocol 所使用到的CAN Id 設定:

  • CAN Id format:29 bit
    CAN Id:0xEF0000 + 0x7B00 (default channel id. 可透過GUI Builder修改)

以下為 Send Command 的基本資料格式

Header Byte (1 Byte) Length (1 Byte) Payload (N byte) CRC (2 Byte)
固定為0x53 (S) Value = 4 + Payload length
Payload max size: 250
資料內容與長度參閱Send Command Payload Modbus CRC16

以下為 Response Command 的基本資料格式

Header Byte (1 Byte) Length (1 Byte) Payload (N byte) CRC (2 Byte)
固定為0x52 (R) Value = 4 + Payload length
Payload max size: 250
資料內容與長度參閱Response Command Payload Modbus CRC16
 

● Command Payload
下列為各個command payload 的說明

  • Set Brightness:0x6
    Send Command
Command Code 1 Byte 0x6
Brightnes 1 Byte Brightness value
 

Response command

Command Code 1 Byte 0x6
Error Code 1 Byte 0:Success
1:Failed
  • Set Buzzer: 0x7
    Send Command
Command Code 1 Byte 0x7
Cycle 1 Byte Cycle value
High 1 Byte High value
Low 1 Byte Low value
 

Response command

Command Code 1 Byte 0x7
Error Code 1 Byte 0:Success
1:Failed
  • Set Page Index:0x8
    Send Command
Command Code 1 Byte 0x8
Page Index 1 Byte Page Index value
 

Response command

Command Code 1 Byte 0x8
Error Code 1 Byte 0:Success
1:Failed
  • Get Page Count: 0xA
    Send Command
Command Code 1 Byte 0xA
 

Response command

Command Code 1 Byte 0xA
Error Code 1 Byte 0:Success
1:Failed
High 1 Byte Page Count value
  • Get Current Page Index:0xF
    Send Command
Command Code 1 Byte 0xF
 

Response command

Command Code 1 Byte 0xF
Error Code 1 Byte 0:Success
1:Failed
Page Index 1 Byte Page Index value
  • Set Device State:0x20
    Send Command
Command Code 1 Byte 0x20
Device State 1 Byte 0: ConfigMode
1: DisplayMode
 

Response command

Command Code 1 Byte 0x20
Error Code 1 Byte 0:Success
1:Failed

● 傳輸範例
  • 設定亮度為 90

transmission-example-set-brightness-to-90

  • 切換Page Index 為 1

切換Page 時, 需要先設定Device State 為ConfigMode, 之後在下換頁命令, 結束換頁命令後, 就再設定Device State Mode 為Display Mode, 即可完成換頁的命令, 相關命令順序如下:

transmission-example-switch-page-index-to-1

結論

經由Custom CAN protocol , 客戶可透過標準 DBC file, 自由無限制地定義CAN Id 與 CAN Data 的設定, 再透過SmartDisplay GUI Builder 綁定Message / Signal 與 Widget 的關係, 就這麼簡單, 一個客制的CAN HMI 就完成了, 不需要複雜的CAN protocol (如 CANopen, J1939…) 與設定即可簡易無縫地與SmartDisplay Device 接軌, 心動了嗎? 趕快下載 SmartDisplay GUI Builder, 在還沒購買SmartDisplay 前, 可先試用模擬器確認SmartDisplay 是否能滿足你的需求!

回分類頁
go top
close