Atualmente, o Smart Display oferece suporte à interface de comunicação CAN bus e utiliza o protocolo CANopen. O CANopen é um protocolo de comunicação industrial amplamente utilizado, baseado em CAN bus, com aplicações em diversos segmentos, como equipamentos médicos, veículos, sistemas ferroviários e automação predial. No entanto, ao utilizar o CANopen, é necessário implementar no Host o mecanismo de comunicação correspondente, o que pode aumentar a complexidade em aplicações que precisam apenas de uma comunicação CAN bus mais simples. Para facilitar essa implementação, desenvolvemos o protocolo Custom CAN ID, que dispensa a implementação do CANopen no Host. Em vez disso, os dados podem ser configurados por meio de um arquivo DBC personalizado, permitindo associar CAN IDs e dados aos Widgets do Smart Display e estabelecer uma interação em tempo real. Essa abordagem facilita a interpretação e o controle dos dados do sistema, além de oferecer maior flexibilidade e facilitar a manutenção.
O protocolo Custom CAN ID utiliza principalmente um arquivo DBC (CAN Database) para configurar os dados e definir como as informações CAN interagem com os Widgets do Smart Display. O arquivo DBC contém informações como CAN IDs, formatos das mensagens e regras de decodificação. Com um arquivo DBC personalizado, diferentes CAN IDs e dados podem ser associados aos Widgets do Smart Display, permitindo a interação em tempo real. Por exemplo, CAN IDs e dados podem controlar elementos gráficos ou textos exibidos na tela, enquanto botões ou sliders do display podem ser utilizados para controlar dados CAN. Essa interação facilita a interpretação e o controle dos dados do sistema, proporcionando uma solução flexível e de fácil manutenção.
Entendendo os arquivos DBC
Um arquivo DBC normalmente é um arquivo de texto simples em formato ASCII que contém informações sobre os sinais físicos transmitidos pelo CAN bus, incluindo CAN ID, nome do sinal, fator de escala e definição. Ele é utilizado para decodificar dados CAN brutos em valores significativos e associar diferentes CAN IDs aos respectivos sinais. Dessa forma, o arquivo DBC fornece as informações necessárias para converter o payload das mensagens CAN em valores físicos correspondentes.
Exemplo de decodificação de dados CAN brutos

Se você tiver um arquivo DBC que contenha as regras de decodificação para o CAN ID 0x181, as informações definidas nesse arquivo poderão ser utilizadas para decodificar os dados apresentados a seguir.

Uma das principais funções de um arquivo DBC é descrever as regras de decodificação das mensagens e dos sinais CAN. O exemplo a seguir apresenta dados de teste extraídos de um arquivo DBC:

Com base nas informações do arquivo DBC acima, é possível obter os seguintes parâmetros de decodificação:

Aplicando as regras de decodificação acima, os dados CAN brutos obtidos anteriormente podem ser convertidos nas seguintes informações:

Como mostra o exemplo acima, as configurações definidas em um arquivo DBC permitem decodificar corretamente os valores reais representados pelos dados CAN associados a um determinado CAN ID. O arquivo DBC contém a estrutura e as definições das mensagens e dos sinais CAN, permitindo interpretar os dados CAN brutos e convertê-los nos valores físicos correspondentes, para que o sistema possa compreender as informações transmitidas pela rede CAN.
Editor de arquivos DBC
Como a estrutura e o formato de um arquivo DBC podem ser difíceis de interpretar e editar diretamente, ferramentas específicas podem ser utilizadas para facilitar a criação e a edição de arquivos DBC personalizados. Uma das ferramentas amplamente utilizadas é o Vector CANdb++, desenvolvido pela Vector Informatik GmbH. O software oferece uma interface gráfica para criar e editar arquivos DBC, adicionar mensagens e sinais e definir parâmetros relacionados, como IDs de mensagens, bits iniciais, comprimentos, fatores de escala e offsets.

Smart Display GUI Builder – Configuração do Custom CAN ID
O Smart Display GUI Builder oferece uma interface intuitiva para a criação de projetos Custom CAN ID. Basta importar um arquivo DBC e associar as Messages/Signals aos Widgets correspondentes para habilitar a exibição de dados e a interação no Smart Display. As seções a seguir mostram como criar um projeto Custom CAN ID no Smart Display GUI Builder e configurar a associação entre o arquivo DBC e os Widgets.
Criar um projeto Custom CAN ID
Insira o nome do Project, selecione o tipo de dispositivo Smart Display e, em Protocol, selecione "Custom CAN Id (CANbus)" para criar um projeto Custom CAN ID.

Importar um arquivo DBC personalizado
Acesse a página DBC Viewer e clique em "Load DBC File" para importar um arquivo DBC personalizado. Após a importação, é possível visualizar as Messages, Signals e demais informações de configuração definidas no arquivo DBC.

Configurar os Widgets Gauge e Horizontal Slider
Selecione o objeto Gauge e, na seção CAN Signal das propriedades do Gauge, defina Message como EEC1 e Signal como EngSpeed. Dessa forma, o Gauge fica associado ao EngSpeed. Após a configuração, o valor exibido pelo Gauge será atualizado de acordo com o valor de EngSpeed.

Selecione o objeto Horizontal Slider e, na seção CAN Signal das propriedades do Horizontal Slider, defina Message como HorizontalSliderMessage e Signal como HorizontalSliderSignal1. Dessa forma, o Horizontal Slider fica associado ao HorizontalSliderSignal1. Após a configuração, a posição do Horizontal Slider será atualizada de acordo com o valor de HorizontalSliderSignal1.

Simular a interação entre CAN ID / CAN Data e Widgets
Clique no ícone "Simulator With GUI" para iniciar o simulador.

Após iniciar o simulador, mova o slider EngSpeed na parte inferior para simular o envio de dados EngSpeed pelo Host e observe as alterações correspondentes no Gauge exibido no simulador. O Message Log à direita mostra as alterações no CAN ID e nos CAN Data. Também é possível operar o Horizontal Slider no simulador para simular os dados enviados pelo Device.

Atualizar a configuração do Smart Display
Após verificar as funções no simulador e confirmar que tudo está operando conforme o esperado, conecte-se ao Device e faça o upload das configurações do Project para o Smart Display.

Aguarde até que o processo de upload e atualização do Project seja concluído.

Verificar a interação entre CAN ID / CAN Data e Widgets no dispositivo
Após fazer o upload do Project para o Device, é possível verificar o funcionamento diretamente no Smart Display. Conecte o GUI Builder ao Device e clique em "Test Device" para abrir a Test Device Window e testar a interação entre o Host e o Device.

Test Device Window
A Test Device Window permite simular o envio, pelo Host, dos CAN IDs e CAN Data correspondentes de acordo com a configuração do arquivo DBC. Mova o slider EngSpeed para simular o envio dos dados EngSpeed pelo Host e observe as alterações correspondentes no Gauge do Smart Display. Os registros de dados CAN exibidos na parte inferior da janela mostram o CAN ID e os CAN Data. Também é possível operar o Horizontal Slider diretamente no Smart Display para verificar se os dados enviados pelo Device atendem aos requisitos definidos.

Visualização no Smart Display

Introdução aos comandos Custom CAN
A seguir, é apresentado o protocolo de comandos utilizado pelo Custom CAN. Por meio desses comandos, o Host pode controlar facilmente o Smart Display, incluindo a troca de páginas, o ajuste de brilho e o acionamento do buzzer.
Configuração do CAN ID
O protocolo de comandos utiliza as seguintes configurações de CAN ID:
- Formato do CAN ID: 29 bits
CAN ID: 0xEF0000 + 0x7B00 (Channel ID padrão. Esse valor pode ser alterado no GUI Builder.)
Formato dos dados de comando
Comando de envio
| Header Byte (1 Byte) |
Length (1 Byte) |
Payload (N Bytes) |
CRC (2 Bytes) |
| Valor fixo: 0x53 (S) |
Valor = 4 + comprimento do Payload
Tamanho máximo do Payload: 250 |
Para o conteúdo e o comprimento dos dados, consulte o Payload do comando de envio. |
Modbus CRC16 |
Comando de resposta
| Header Byte (1 Byte) |
Length (1 Byte) |
Payload (N Bytes) |
CRC (2 Bytes) |
| Valor fixo: 0x52 (R) |
Valor = 4 + comprimento do Payload
Tamanho máximo do Payload: 250 |
Para o conteúdo e o comprimento dos dados, consulte o Payload do comando de resposta. |
Modbus CRC16 |
Payload dos comandos
A seguir são apresentados os parâmetros do Payload de cada comando.
- Set Brightness: 0x6
Comando de envio
| Command Code |
1 Byte |
0x6 |
| Brightness |
1 Byte |
Brightness value |
Comando de resposta
| Command Code |
1 Byte |
0x6 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Set Buzzer: 0x7
Comando de envio
| Command Code |
1 Byte |
0x7 |
| Cycle |
1 Byte |
Cycle value |
| High |
1 Byte |
High value |
| Low |
1 Byte |
Low value |
Comando de resposta
| Command Code |
1 Byte |
0x7 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Set Page Index: 0x8
Comando de envio
| Command Code |
1 Byte |
0x8 |
| Page Index |
1 Byte |
Page Index value |
Comando de resposta
| Command Code |
1 Byte |
0x8 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Get Page Count: 0xA
Comando de envio
Comando de resposta
| Command Code |
1 Byte |
0xA |
| Error Code |
1 Byte |
0:Success
1:Failed |
| High |
1 Byte |
Page Count value |
- Get Current Page Index: 0xF
Comando de envio
Comando de resposta
| Command Code |
1 Byte |
0xF |
| Error Code |
1 Byte |
0:Success
1:Failed |
| Page Index |
1 Byte |
Page Index value |
- Set Device State: 0x20
Comando de envio
| Command Code |
1 Byte |
0x20 |
| Device State |
1 Byte |
0: ConfigMode
1: DisplayMode |
Comando de resposta
| Command Code |
1 Byte |
0x20 |
| Error Code |
1 Byte |
0:Success
1:Failed |
Exemplos de transmissão

- Alterar o Page Index para 1.
Para trocar de página, primeiro defina o Device State como ConfigMode e, em seguida, envie o comando de troca de página. Após a conclusão da troca de página, defina novamente o Device State como DisplayMode. A sequência de comandos é a seguinte:

Simplificando o desenvolvimento de HMI CAN com Custom CAN ID
Com o protocolo Custom CAN ID, é possível definir CAN IDs e CAN Data por meio de um arquivo DBC padrão e utilizar o Smart Display GUI Builder para associar Messages/Signals aos respectivos Widgets, integrando os dados CAN à interface HMI. Para aplicações que não exigem protocolos de comunicação mais abrangentes, como CANopen ou J1939, o Custom CAN ID oferece uma abordagem mais simples para integrar o Host ao Smart Display com base na configuração definida no arquivo DBC.
Antes de conectar um Smart Display físico, também é possível utilizar os recursos de simulação do Smart Display GUI Builder para verificar a interação entre a configuração do DBC, os dados CAN e os Widgets.