首頁 解決方案 Smart Display Custom CAN ID 協定介紹

Smart Display Custom CAN ID 協定介紹

May 04,2023

介紹

Smart Display 目前支援 CAN bus 硬體通訊介面,並使用 CANopen 軟體通訊協定。CANopen 是基於 CAN bus 的工業標準通訊協定,被廣泛應用於各種領域,如醫療設備、車輛、軌道交通或建築自動化。然而,使用 CANopen 協定時,客戶端需要在主機端實作相應的 CANopen 通訊機制,這可能會增加僅希望使用 CAN bus 進行通訊之應用的開發複雜度。因此,為了簡化客戶的使用,我們設計出新的 Custom CAN ID 協定,其不需要在客戶端實作 CANopen 協定,只需要透過自訂的 DBC 檔案設定資料,就能輕易地將 CAN ID / 資料和顯示器上的 Widget 相關聯,從而實現即時互動。此種互動方式可以幫助客戶更好地掌握和控制系統中的資料,並達到彈性高、維護方便等目的。

Custom CAN ID 協定主要是透過 DBC(CAN Database)檔案來設定資料及其與顯示器上 Widget 之間的互動方式。DBC 檔案是用來定義系統中的 CAN ID、訊息格式及解碼資訊等相關內容的重要工具。使用自訂的 DBC 檔案可以輕鬆地將不同的 CAN ID / 資料和顯示器上的 Widget 相關聯,這樣就可以實現即時互動。例如,透過 CAN ID / 資料來控制顯示器上的圖形或文字,顯示器上的按鈕或滑桿可以用來控制 CAN 的資料。這種互動方式可以幫助客戶更好地掌握和控制系統中的資料。

DBC 檔案概述

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

Raw CAN 資料測試範例

raw-can-data-testing-data-example01

假設已有 CAN DBC 檔案,且檔案中包含 CAN ID(0x181)的解碼規則設定,即可透過 DBC 檔案中的資訊解碼出以下內容。

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 資料所代表的實際值。DBC 檔案包含 CAN 訊息與訊號的配置資訊,可用於解析原始資料並將其轉換為對應的物理值,使系統能夠理解透過 CAN 傳輸的實際資訊。

DBC 編輯器

由於 DBC 檔案的內容與格式較不易直接閱讀及編輯,因此可使用 DBC 編輯器協助建立及編輯自訂 DBC 檔案。其中一款常用的 DBC 編輯器為 Vector CANdb++,由 Vector Informatik GmbH 開發,可用於建立及編輯 DBC 檔案,並透過圖形化介面新增訊息與訊號,以及定義訊息和訊號的相關屬性,例如訊息 ID、起始位元、長度、縮放比例與偏移量等。

dbc-editor

Smart Display GUI Builder – Custom CAN ID 設定說明

Smart Display GUI Builder 提供直觀的操作介面,可協助使用者建立 Custom CAN ID 專案。只需匯入 DBC 檔案,並設定訊息/訊號與對應 Widget 之間的關聯,即可在 Smart Display 裝置上進行 CAN 資料顯示與互動。以下將依序介紹如何使用 Smart Display GUI Builder 建立 Custom CAN ID 專案,以及設定 DBC 與 Widget 之間的關聯。

建立 Custom CAN ID 專案

依據需求輸入 Project 名稱、選擇 Smart Display 機種,並於 Protocol 選擇「Custom CAN Id (CANbus)」,即可建立 Custom CAN ID 專案。

create-custom-can-project

匯入自訂 DBC 檔案

切換至 DBC Viewer 頁面,點選「Load DBC File」匯入自訂 DBC 檔案。匯入後可查看 DBC 檔案中的 Message、Signal 及相關設定資訊。

import-custom-dbc-file

設定 Gauge 和 Horizontal Slider Widget

點選 Gauge 物件,並於 Gauge 屬性頁面的 CAN Signal 欄位中,將 Message 設定為 EEC1、Signal 設定為 EngSpeed,即可建立 Gauge 與 EngSpeed 之間的關聯。設定完成後,Gauge 的顯示值將依 EngSpeed 的數值變化。

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

點選 Horizontal Slider 物件,並於 Horizontal Slider 屬性頁面的 CAN Signal 欄位中,將 Message 設定為 HorizontalSliderMessage、Signal 設定為 HorizontalSliderSignal1,即可建立 Horizontal Slider 與 HorizontalSliderSignal1 之間的關聯。設定完成後,Horizontal Slider 的數值將對應 HorizontalSliderSignal1。

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

模擬 CAN ID / CAN Data 與 Widget 的互動

點選「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

更新 Smart Display 裝置設定

透過模擬器完成功能驗證並確認沒有問題後,即可連接 Device,將 Project 設定上傳至 Smart Display 裝置端。

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

等待 Project 上傳及更新完成。

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

驗證 Device CAN ID / CAN Data 與 Widget 的互動

將 Project 上傳至 Device 端後,可進一步驗證 Smart Display 裝置端的功能。使用 GUI Builder 連接 Device 後,點選「Test Device」,即可開啟 Test Device Window 進行測試。

verify-data-and-the-widget

使用 Test Device Window 驗證 CAN 資料與 Widget 互動

透過 Test Device Window,可模擬 Host 端依據 DBC 設定送出對應的 CAN ID 與 CAN Data。拉動 EngSpeed slider,可模擬 Host 端送出 EngSpeed 資料,並觀察 Smart Display 裝置上的 Gauge 變化;同時可從畫面下方的 CAN 資料記錄查看 CAN ID 與 CAN Data。此外,也可以操作 Smart Display 裝置上的 Horizontal Slider,驗證 Device 端送出的資料是否符合需求。

test-device-window

Smart Display 裝置實際畫面

actual-display-of-the-smartdisplay-device

Custom CAN Command 說明

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

CAN ID 設定

下列為 Command Protocol 所使用的 CAN ID 設定:

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

Command 基本資料格式

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
Brightness 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 ID 簡化 CAN HMI 開發

透過 Custom CAN ID 協定,使用者可利用標準 DBC 檔案定義 CAN ID 與 CAN Data,並透過 Smart Display GUI Builder 建立 Message / Signal 與 Widget 之間的關聯,完成 CAN 資料與 HMI 介面的整合。對於不需要導入 CANopen 或 J1939 等較完整通訊協定的應用,Custom CAN ID 提供了較簡化的整合方式,讓 Host 與 Smart Display 之間可依 DBC 設定進行資料交換與介面互動。

在連接實際 Smart Display 裝置之前,也可先使用 Smart Display GUI Builder 的模擬功能驗證 DBC、CAN 資料與 Widget 的互動設定。

對顯示器解決方案有疑問?您想做的,由我們實現。 聯絡我們!

訂閱

接收最新顯示器技術知識與新品消息

聯絡我們

價格/規格書/一般查詢

技術支援

聯繫我們詢問技術內容

go top
聯絡我們
close

我們重視您的隱私

通過點擊「允許所有 Cookie」,代表您同意在您的設備上存儲 Cookie 以增強網站瀏覽體驗、分析網站使用情況並協助我們的行銷和網站效能優化工作。您可以在我們的隱私權政策中找到有關於此的更多資訊。

我們重視您的隱私

Winstar 及部分第三方在 www.winstar.com.tw 上使用 cookies。關於 cookie 的種類、用途及相關第三方的詳細資訊,請參見下文及我們的《Cookie 政策》。請點擊「允許全部」來同意我們使用 cookies,以確保您在我們網站上獲得最佳體驗。您也可以設置您的偏好或拒絕 cookies(必要的 cookies 除外)。

管理同意聲明

永久啟用
必要的 Cookie

這些 Cookie 是必不可少的,以便讓您在瀏覽網站並使用其功能上有更好地體驗,例如設置您的隱私偏好、登錄或填寫表單。

分析 Cookie

這些也被稱為「統計cookie」,用於收集您使用網站的資訊,例如您訪問了哪些頁面以及點擊了哪些連結。查看詳細資訊