5. Arquivos DBC
#O que é um DBC
DBC (database CAN) é um arquivo de texto que descreve uma rede CAN: quais mensagens existem, quem transmite cada uma e onde está cada sinal dentro delas. O formato virou o padrão de fato da indústria. Fabricantes de painéis, módulos de câmbio, sensores e dataloggers costumam fornecer o DBC do equipamento, e é com ele que se configura a comunicação sem precisar decifrar bit a bit.
#Anatomia de uma mensagem
Cada mensagem começa com uma linha BO_ e é seguida por uma linha SG_ para cada sinal:

| Nº | Campo | Significado |
|---|---|---|
| 1 | ID | Identificador da mensagem, em decimal (1600 = 0x640). ID estendido aparece com o bit 31 ligado, ou seja, somado de 2147483648 (0x80000000). |
| 2 | Nome da mensagem | Só para leitura humana. |
| 3 | Tamanho | Quantidade de bytes de dados (DLC). |
| 4 | Transmissor | O módulo que envia a mensagem. |
| 5 | Nome do sinal | Só para leitura humana. |
| 6 | Bit de início | Posição do sinal no quadro (convenção explicada no capítulo 3, Sinais). |
| 7 | Tamanho | Quantidade de bits do sinal. |
| 8 | Ordem dos bytes | @1 = Intel, @0 = Motorola. |
| 9 | Sinal | + = sem sinal, − = com sinal. |
| 10 | Fator e offset | valor físico = bruto × fator + offset. |
| 11 | Mínimo e máximo | Faixa do valor físico. Informativa. |
| 12 | Unidade | Informativa. |
| 13 | Receptores | Os módulos que usam o sinal. |
#Outras linhas comuns
Além de BO_ e SG_, um DBC costuma ter linhas de comentário (CM_), atributos (BA_DEF_ e BA_; por exemplo GenMsgCycleTime, o período de transmissão de cada mensagem, em milissegundos) e tabelas de valores (VAL_, que dão nome a cada valor de um sinal, como 0 = Desligado e 1 = Ligado). Mensagens CAN FD são marcadas por atributo, normalmente VFrameFormat, que diz se o quadro é clássico ou FD.