首页 技术服务 智能显示屏 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」,用于收集您使用网站的信息,例如您访问了哪些页面以及点击了哪些连结。查看详细信息