5. Archivos DBC
#Qué es un DBC
DBC (database CAN) es un archivo de texto que describe una red CAN: qué mensajes existen, quién transmite cada uno y dónde está cada señal dentro de ellos. El formato se convirtió en el estándar de facto de la industria. Los fabricantes de paneles, módulos de caja de cambios, sensores y dataloggers suelen proporcionar el DBC del equipo, y con él se configura la comunicación sin necesidad de descifrar bit a bit.
#Anatomía de un mensaje
Cada mensaje comienza con una línea BO_ y le sigue una línea SG_ por cada señal:

| Nº | Campo | Significado |
|---|---|---|
| 1 | ID | Identificador del mensaje, en decimal (1600 = 0x640). El ID extendido aparece con el bit 31 activado, es decir, sumado a 2147483648 (0x80000000). |
| 2 | Nombre del mensaje | Solo para lectura humana. |
| 3 | Tamaño | Cantidad de bytes de datos (DLC). |
| 4 | Transmisor | El módulo que envía el mensaje. |
| 5 | Nombre de la señal | Solo para lectura humana. |
| 6 | Bit de inicio | Posición de la señal en la trama (convención explicada en el capítulo 3, Señales). |
| 7 | Tamaño | Cantidad de bits de la señal. |
| 8 | Orden de bytes | @1 = Intel, @0 = Motorola. |
| 9 | Signo | + = sin signo, − = con signo. |
| 10 | Factor y offset | valor físico = bruto × factor + offset. |
| 11 | Mínimo y máximo | Rango del valor físico. Informativo. |
| 12 | Unidad | Informativa. |
| 13 | Receptores | Los módulos que usan la señal. |
#Otras líneas comunes
Además de BO_ y SG_, un DBC suele tener líneas de comentario (CM_), atributos (BA_DEF_ y BA_; por ejemplo GenMsgCycleTime, el período de transmisión de cada mensaje, en milisegundos) y tablas de valores (VAL_, que dan nombre a cada valor de una señal, como 0 = Desactivado y 1 = Activado). Los mensajes CAN FD se marcan por atributo, normalmente VFrameFormat, que dice si la trama es clásica o FD.