我们重视您的隐私
通过点击「允许所有 Cookie」,代表您同意在您的设备上存储 Cookie 以增强网站浏览体验、分析网站使用情况并协助我们的营销和网站效能优化工作。您可以在我们的隐私权政策中找到有关于此的更多信息。
Smart Display 目前支持 CAN 总线硬件通信接口,并采用 CANopen 通信协议。CANopen 是一种基于 CAN 总线的工业通信协议,广泛应用于医疗设备、车辆、轨道交通以及楼宇自动化等领域。然而,在使用 CANopen 协议时,客户需要在主机端实现相应的 CANopen 通信机制。对于仅需要进行 CAN 总线通信的应用而言,这可能会增加系统开发的复杂度。因此,为了简化开发,我们推出了 Custom CAN ID 协议。客户无需在主机端实现 CANopen 协议,只需通过自定义 DBC 文件进行数据配置,即可将 CAN ID 及数据与 Smart Display 上的 Widget 建立关联,实现实时交互。这种方式有助于客户更方便地掌握和控制系统数据,同时提供更高的灵活性,并简化后续维护。
Custom CAN ID 协议主要通过 DBC(CAN Database)文件进行数据配置,并定义 CAN 数据与 Smart Display 上 Widget 之间的交互方式。DBC 文件用于定义 CAN ID、消息格式及解码信息等相关内容。通过自定义 DBC 文件,可以将不同的 CAN ID 及数据与 Smart Display 上的 Widget 建立关联,实现实时交互。例如,可通过 CAN ID 及数据控制显示器上的图形或文字,也可以通过显示器上的按钮或滑块控制 CAN 数据。这种交互方式有助于客户更方便地掌握和控制系统数据,并提供灵活且便于维护的解决方案。
DBC 文件通常为 ASCII 纯文本文件,其中包含 CAN 总线上传输的物理信号相关信息,包括 CAN ID、信号名称、缩放因子及定义等。DBC 文件可用于将原始 CAN 数据解码为具有实际意义的数值,并将不同的 CAN ID 映射至相应的信号。DBC 文件提供了将 CAN 消息有效载荷转换为物理信号值所需的信息。

假设已有 CAN DBC 文件,且文件中包含 CAN ID 0x181 的解码规则,即可根据 DBC 文件中的信息对以下数据进行解码。

DBC 文件的主要功能之一是定义 CAN 消息与信号的解码规则。以下为从 DBC 文件中截取的测试数据:

根据上述 DBC 信息,可以获得以下解码信息:

根据上述解码规则,可将先前获得的 Raw CAN Data 解码为以下信息:

通过上述示例可以看出,利用 DBC 文件中定义的设置,可以正确解码与 CAN ID 对应的 CAN 数据所表示的实际值。DBC 文件包含 CAN 消息与信号的布局及定义信息,可用于解析原始 CAN 数据并将其转换为相应的物理值,使系统能够理解通过 CAN 总线传输的实际信息。
由于 DBC 文件的结构和格式不便于直接阅读和编辑,因此可以使用 DBC 编辑器来协助创建及编辑自定义 DBC 文件。其中较常用的 DBC 编辑器之一是由 Vector Informatik GmbH 开发的 Vector CANdb++。该工具提供图形化操作界面,可用于创建和编辑 DBC 文件、新增消息与信号,并定义消息和信号的相关属性,例如消息 ID、起始位、长度、缩放因子及偏移量等。

Smart Display GUI Builder 提供直观的操作界面,可用于创建 Custom CAN ID 项目。只需导入 DBC 文件,并将消息/信号与对应的 Widget 建立关联,即可在 Smart Display 上实现 CAN 数据显示与交互。以下将依次介绍如何使用 Smart Display GUI Builder 创建 Custom CAN ID 项目,以及配置 DBC 文件与 Widget 之间的关联。
根据需求输入 Project 名称、选择 Smart Display 设备型号,并在 Protocol 中选择“Custom CAN Id (CANbus)”,即可创建 Custom CAN ID 项目。

切换至 DBC Viewer 页面,点击“Load DBC File”导入自定义 DBC 文件。导入后,可查看 DBC 文件中定义的 Message、Signal 及相关配置信息。

选择 Gauge 对象,在 Gauge 属性页面的 CAN Signal 栏位中,将 Message 设置为 EEC1、Signal 设置为 EngSpeed,即可建立 Gauge 与 EngSpeed 之间的关联。完成配置后,Gauge 的显示值将根据 EngSpeed 的数值变化。

选择 Horizontal Slider 对象,在 Horizontal Slider 属性页面的 CAN Signal 栏位中,将 Message 设置为 HorizontalSliderMessage、Signal 设置为 HorizontalSliderSignal1,即可建立 Horizontal Slider 与 HorizontalSliderSignal1 之间的关联。完成配置后,Horizontal Slider 将根据 HorizontalSliderSignal1 的数值变化。

点击“Simulator With GUI”图标启动模拟器。

启动模拟器后,可拖动下方的 EngSpeed slider 模拟 Host 端发送 EngSpeed 数据,并观察模拟器中 Gauge 的相应变化。右侧的 Message Log 可查看 CAN ID 与 CAN Data 的变化。此外,也可以操作模拟器中的 Horizontal Slider,模拟 Device 端发送的数据。

通过模拟器完成功能验证并确认运行符合预期后,即可连接 Device,将 Project 设置上传至 Smart Display。

等待 Project 上传及更新完成。

将 Project 上传至 Device 后,可进一步验证 Smart Display 的功能。使用 GUI Builder 连接 Device,并点击“Test Device”,即可打开 Test Device Window,测试 Host 与 Device 之间的交互。

通过 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 端发送的数据是否符合要求。


以下将介绍 Custom CAN 所使用的命令协议。通过这些命令,Host 端可以控制 Smart Display,包括切换页面、调整背光亮度以及控制 Buzzer 发声。
以下为命令协议使用的 CAN ID 设置:
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 Code | 1 Byte | 0x6 |
| Brightness | 1 Byte | Brightness value |
Response Command
| Command Code | 1 Byte | 0x6 |
| Error Code | 1 Byte | 0:Success 1:Failed |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |

切换页面时,首先将 Device State 设置为 ConfigMode,然后发送页面切换命令。页面切换命令执行完成后,再将 Device State 设置回 DisplayMode。相关命令执行顺序如下:

通过 Custom CAN ID 协议,用户可以使用标准 DBC 文件定义 CAN ID 和 CAN Data,并通过 Smart Display GUI Builder 将 Message/Signal 与对应的 Widget 建立关联,从而实现 CAN 数据与 HMI 界面的集成。对于不需要 CANopen 或 J1939 等更完整通信协议的应用,Custom CAN ID 可基于 DBC 配置,为 Host 与 Smart Display 之间的集成提供更简单的实现方式。
在连接实际的 Smart Display 设备之前,用户还可以使用 Smart Display GUI Builder 的模拟功能,验证 DBC 配置、CAN 数据与 Widget 之间的交互是否符合预期。
通过点击「允许所有 Cookie」,代表您同意在您的设备上存储 Cookie 以增强网站浏览体验、分析网站使用情况并协助我们的营销和网站效能优化工作。您可以在我们的隐私权政策中找到有关于此的更多信息。