5. DBC files
#What a DBC is
DBC (CAN database) is a text file that describes a CAN network: which messages exist, who transmits each one and where each signal is within them. The format became the de facto industry standard. Manufacturers of dashes, transmission modules, sensors and dataloggers usually provide the equipment's DBC, and it is what you use to configure communication without having to decipher it bit by bit.
#Anatomy of a message
Each message starts with a BO_ line and is followed by one SG_ line for each signal:

| No. | Field | Meaning |
|---|---|---|
| 1 | ID | Message identifier, in decimal (1600 = 0x640). An extended ID appears with bit 31 set, that is, with 2147483648 (0x80000000) added. |
| 2 | Message name | For human reading only. |
| 3 | Size | Number of data bytes (DLC). |
| 4 | Transmitter | The module that sends the message. |
| 5 | Signal name | For human reading only. |
| 6 | Start bit | Position of the signal in the frame (convention explained in chapter 3, Signals). |
| 7 | Size | Number of bits of the signal. |
| 8 | Byte order | @1 = Intel, @0 = Motorola. |
| 9 | Sign | + = unsigned, − = signed. |
| 10 | Factor and offset | physical value = raw × factor + offset. |
| 11 | Minimum and maximum | Range of the physical value. Informational. |
| 12 | Unit | Informational. |
| 13 | Receivers | The modules that use the signal. |
#Other common lines
Besides BO_ and SG_, a DBC usually has comment lines (CM_), attributes (BA_DEF_ and BA_; for example GenMsgCycleTime, the transmit period of each message, in milliseconds) and value tables (VAL_, which give a name to each value of a signal, such as 0 = Off and 1 = On). CAN FD messages are marked by an attribute, normally VFrameFormat, which says whether the frame is classic or FD.