Smart Display prend actuellement en charge l’interface matérielle de communication CAN bus et utilise le protocole de communication CANopen. Basé sur le bus CAN, CANopen est un protocole de communication industriel largement utilisé dans de nombreux domaines, notamment les équipements médicaux, les véhicules, les applications ferroviaires et l’automatisation des bâtiments. Toutefois, l’utilisation de CANopen nécessite l’implémentation du mécanisme de communication CANopen correspondant côté Host, ce qui peut accroître la complexité des applications nécessitant uniquement une communication CAN bus. Afin de simplifier cette mise en œuvre, nous avons développé le protocole Custom CAN ID, qui ne nécessite pas l’implémentation de CANopen côté Host. Les données peuvent être configurées à l’aide d’un fichier DBC personnalisé afin d’associer les CAN ID et les données aux Widgets du Smart Display et de permettre une interaction en temps réel. Cette approche facilite la compréhension et le contrôle des données du système, tout en offrant davantage de flexibilité et une maintenance simplifiée.
Le protocole Custom CAN ID s’appuie principalement sur un fichier DBC (CAN Database) pour configurer les données et définir leur interaction avec les Widgets du Smart Display. Le fichier DBC contient notamment les CAN ID, le format des messages et les informations nécessaires au décodage. À l’aide d’un fichier DBC personnalisé, différents CAN ID et données peuvent être associés aux Widgets du Smart Display afin de permettre une interaction en temps réel. Par exemple, les CAN ID et les données peuvent servir à piloter des éléments graphiques ou du texte à l’écran, tandis que les boutons ou les curseurs du Smart Display peuvent être utilisés pour agir sur les données CAN. Cette interaction permet de mieux visualiser et contrôler les données du système, tout en offrant une solution flexible et facile à maintenir.
Comprendre les fichiers DBC
Un fichier DBC est généralement un fichier texte ASCII contenant les informations relatives aux signaux physiques transmis sur le bus CAN, notamment le CAN ID, le nom du signal, le facteur d’échelle et sa définition. Il permet de décoder les données CAN brutes en valeurs exploitables et d’associer les différents CAN ID aux signaux correspondants. Le fichier DBC fournit ainsi les informations nécessaires pour convertir les données utiles (payload) des messages CAN en valeurs physiques.
Exemple de décodage de données CAN brutes

Si vous disposez d’un fichier DBC CAN contenant les règles de décodage du CAN ID 0x181, les informations définies dans ce fichier peuvent être utilisées pour décoder les données suivantes.

L’une des principales fonctions d’un fichier DBC consiste à définir les règles de décodage des messages et des signaux CAN. L’exemple suivant présente des données de test extraites d’un fichier DBC :

À partir des informations DBC ci-dessus, les paramètres de décodage suivants peuvent être obtenus :

En appliquant les règles de décodage ci-dessus, les données CAN brutes obtenues précédemment peuvent être décodées comme suit :

Comme le montre l’exemple ci-dessus, les paramètres définis dans un fichier DBC permettent de décoder correctement les valeurs réelles représentées par les données CAN associées à un CAN ID. Le fichier DBC décrit la structure et les définitions des messages et des signaux CAN, ce qui permet d’interpréter les données CAN brutes et de les convertir en valeurs physiques correspondantes afin que le système puisse exploiter les informations transmises sur le bus CAN.
Éditeur DBC
La structure et le format d’un fichier DBC pouvant être difficiles à lire et à modifier directement, il est possible d’utiliser un éditeur DBC pour créer et modifier plus facilement des fichiers DBC personnalisés. Vector CANdb++, développé par Vector Informatik GmbH, est l’un des outils couramment utilisés à cet effet. Il propose une interface graphique permettant de créer et de modifier des fichiers DBC, d’ajouter des messages et des signaux, ainsi que de définir les attributs associés, tels que les identifiants de message, les bits de départ, les longueurs, les facteurs d’échelle et les offsets.

Smart Display GUI Builder – Configuration Custom CAN ID
Smart Display GUI Builder propose une interface intuitive pour créer des projets Custom CAN ID. Il suffit d’importer un fichier DBC et d’associer les Messages/Signals aux Widgets correspondants afin d’afficher les données CAN sur le Smart Display et de permettre leur interaction avec l’interface HMI. Les sections suivantes expliquent comment créer un projet Custom CAN ID dans Smart Display GUI Builder et configurer les associations entre le fichier DBC et les Widgets.
Créer un projet Custom CAN ID
Saisissez le nom du Project, sélectionnez le type de Smart Display, puis choisissez "Custom CAN Id (CANbus)" dans Protocol afin de créer un projet Custom CAN ID.

Importer un fichier DBC personnalisé
Accédez à la page DBC Viewer, puis cliquez sur "Load DBC File" pour importer un fichier DBC personnalisé. Une fois le fichier importé, vous pouvez consulter les Messages, Signals et les informations de configuration associées définies dans le fichier DBC.

Configurer les Widgets Gauge et Horizontal Slider
Sélectionnez l’objet Gauge puis, dans la section CAN Signal de ses propriétés, définissez Message sur EEC1 et Signal sur EngSpeed. Le Gauge est ainsi associé au signal EngSpeed et la valeur affichée évolue en fonction de la valeur EngSpeed.

Sélectionnez ensuite l’objet Horizontal Slider puis, dans la section CAN Signal de ses propriétés, définissez Message sur HorizontalSliderMessage et Signal sur HorizontalSliderSignal1. Le Horizontal Slider est ainsi associé à HorizontalSliderSignal1 et évolue en fonction de la valeur de ce signal.

Simuler l’interaction entre CAN ID / CAN Data et les Widgets
Cliquez sur l’icône "Simulator With GUI" pour lancer le simulateur.

Après avoir lancé le simulateur, déplacez le curseur EngSpeed situé en bas de l’écran pour simuler l’envoi de données EngSpeed par le Host et observez les variations correspondantes du Gauge dans le simulateur. Le Message Log situé à droite permet de visualiser les changements de CAN ID et de CAN Data. Vous pouvez également manipuler le Horizontal Slider dans le simulateur afin de simuler les données envoyées par le Device.

Mettre à jour la configuration du Smart Display
Après avoir vérifié le fonctionnement avec le simulateur et confirmé que le résultat correspond aux attentes, connectez-vous au Device et chargez les paramètres du Project sur le Smart Display.

Attendez la fin du chargement et de la mise à jour du Project.

Vérifier l’interaction entre CAN ID / CAN Data du Device et les Widgets
Après avoir chargé le Project sur le Device, vous pouvez vérifier le fonctionnement du Smart Display dans les conditions réelles. Connectez GUI Builder au Device, puis cliquez sur "Test Device" pour ouvrir la fenêtre Test Device et tester l’interaction entre le Host et le Device.

Fenêtre Test Device
La fenêtre Test Device permet de simuler l’envoi par le Host des CAN ID et CAN Data correspondants selon la configuration du fichier DBC. Déplacez le curseur EngSpeed pour simuler l’envoi de données EngSpeed par le Host et observez les variations correspondantes du Gauge sur le Smart Display. Les enregistrements CAN affichés en bas de la fenêtre permettent de vérifier le CAN ID et les CAN Data. Vous pouvez également manipuler le Horizontal Slider directement sur le Smart Display afin de vérifier que les données envoyées par le Device correspondent aux valeurs attendues.

Affichage réel sur le Smart Display

Présentation des commandes Custom CAN
Cette section présente le protocole de commande utilisé avec Custom CAN. Ces commandes permettent au Host de contrôler facilement le Smart Display, notamment pour changer de page, régler la luminosité ou activer le buzzer.
Configuration du CAN ID
Le protocole de commande utilise les paramètres CAN ID suivants :
- Format du CAN ID : 29 bits
CAN ID : 0xEF0000 + 0x7B00 (Channel ID par défaut. Cette valeur peut être modifiée dans GUI Builder.)
Format des données de commande
Commande d’envoi
| Octet d’en-tête (1 octet) |
Longueur (1 octet) |
Payload (N octets) |
CRC (2 octets) |
| Valeur fixe : 0x53 (S) |
Valeur = 4 + longueur du Payload
Taille maximale du Payload : 250 |
Pour le contenu et la longueur des données, reportez-vous au Payload de la commande d’envoi. |
Modbus CRC16 |
Commande de réponse
| Octet d’en-tête (1 octet) |
Longueur (1 octet) |
Payload (N octets) |
CRC (2 octets) |
| Valeur fixe : 0x52 (R) |
Valeur = 4 + longueur du Payload
Taille maximale du Payload : 250 |
Pour le contenu et la longueur des données, reportez-vous au Payload de la commande de réponse. |
Modbus CRC16 |
Payload des commandes
Les sections suivantes décrivent le Payload de chaque commande.
- Set Brightness : 0x6
Commande d’envoi
| Command Code |
1 Byte |
0x6 |
| Brightness |
1 Byte |
Brightness value |
Commande de réponse
| Command Code |
1 Byte |
0x6 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Set Buzzer : 0x7
Commande d’envoi
| Command Code |
1 Byte |
0x7 |
| Cycle |
1 Byte |
Cycle value |
| High |
1 Byte |
High value |
| Low |
1 Byte |
Low value |
Commande de réponse
| Command Code |
1 Byte |
0x7 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Set Page Index : 0x8
Commande d’envoi
| Command Code |
1 Byte |
0x8 |
| Page Index |
1 Byte |
Page Index value |
Commande de réponse
| Code de commande |
1 octet |
0x8 |
| Code d’erreur |
1 octet |
0 : Succès
1 : Échec |
- Get Page Count : 0xA
Commande d’envoi
Commande de réponse
| Command Code |
1 Byte |
0xA |
| Error Code |
1 Byte |
0:Success
1:Failed |
| High |
1 Byte |
Page Count value |
- Get Current Page Index : 0xF
Commande d’envoi
Commande de réponse
| Command Code |
1 Byte |
0xF |
| Error Code |
1 Byte |
0:Success
1:Failed |
| Page Index |
1 Byte |
Page Index value |
- Set Device State : 0x20
Commande d’envoi
| Command Code |
1 Byte |
0x20 |
| Device State |
1 Byte |
0: ConfigMode
1: DisplayMode |
Commande de réponse
| Command Code |
1 Byte |
0x20 |
| Error Code |
1 Byte |
0:Success
1:Failed |
Exemples de transmission
- Régler la luminosité sur 90

Pour changer de page, définissez d’abord le Device State sur ConfigMode, puis envoyez la commande de changement de page. Une fois le changement de page terminé, rétablissez le Device State sur DisplayMode. La séquence de commandes est la suivante :

Simplifier le développement d’une IHM CAN avec Custom CAN ID
Avec le protocole Custom CAN ID, les utilisateurs peuvent définir les CAN ID et les données CAN à l’aide d’un fichier DBC standard, puis utiliser Smart Display GUI Builder pour associer les Messages/Signals aux Widgets correspondants. Les données CAN peuvent ainsi être directement intégrées à l’interface IHM. Pour les applications qui ne nécessitent pas de protocoles de communication plus complets tels que CANopen ou J1939, Custom CAN ID offre une approche plus simple pour intégrer un Host à un Smart Display à partir de la configuration DBC.
Avant de connecter un Smart Display réel, les utilisateurs peuvent également exploiter les fonctions de simulation de Smart Display GUI Builder afin de vérifier les interactions entre la configuration DBC, les données CAN et les Widgets.