首頁 技術服務 智能顯示器 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

我們重視您的隱私

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

我們重視您的隱私

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

管理同意聲明

永久啟用
必要的 Cookie

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

分析 Cookie

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