Information on DBC-file support

This page describes the DBC-parser used by the decoders. The DBC-parser supports a subset of the DBC-file keywords, necessary for decoding of data.


Keywords

The DBC-parser supports the following keywords.

Keyword

Description

BO_

Message definition

SG_

Signal definition

BA_

Attribute value

BA_DEF_

Attribute definition

BA_DEF_DEF_

Attribute default value

SG_MUL_VAL_

Extended multiplexing definition

SIG_VALTYPE_

Extended value type definition

Note

Unsupported keywords can be removed from a DBC-file to reduce parsing-time.


Attributes

The DBC-parser supports a range of custom attributes.

ID-format

The message ID-format is specified using the DBC-file attributes BusType (string) and ProtocolType (string) as defined below.

ID-format

BusType

ProtocolType

LIN

LIN

CAN

CAN / CAN FD

PGN

CAN / CAN FD

J1939

Note

If BusType is not defined or empty, the parser assumes that the ID-format is CAN.

Note

When ID-format PGN all extended-ID messages are interpreted as PGNs. The commonly used attribute VFrameFormat is not used.

For examples see BusType / ProtocolType attribute examples.


Transport protocol

Some bus networks use one or more transport-protocols for transporting payloads (data bytes) exceeding the capacity of a single bus frame. For more information see Information on transport protocol support.

The DBC-parser supports a custom attribute TransportProtocolType used to specify if a message uses a transport protocol as defined below.

Transport protocol

ProtocolType

TransportProtocolType

J1939-21

J1939

ISO-15765-2 / ISO-TP

ISOTP

IEC 61162-3 / NMEA-2000 (fast packet)

NMEATP

CSS MUX-TP

MUXTP#<S1>:<S2>:<S3>:<S4>

The MUXTP transport protocol type takes additional arguments (<S1>:<S2>:<S3>:<S4>) to map muxed channel indexes to new virtual channel numbers (decimal values).

Note

If ProtocolType is set to J1939, the static J1939-21 transport PGNs (EB00 and EC00) are automatically assumed to be transport-protocol messages.

For examples see TransportProtocolType attribute examples.


Message ignore

The DBC-parser supports a custom attribute MessageIgnore used to ignore certain messages defined in the DBC-file. This can be useful to ignore message without removing them completely from the DBC-file.

The MessageIgnore is a message-level attribute (specified by BO_) and takes the following values (INT):

  • MessageIgnore = 0: Message is included

  • MessageIgnore = 1: Message is ignored

The default value can be used to specify if messages should generally be either included or ignored - if no specific value is provided.

For examples see MessageIgnore attribute examples.


Signal ignore

The DBC-parser supports a custom attribute SignalIgnore used to ignore certain signals defined in the DBC-file. This can be useful to ignore superfluous signals, such as e.g. multiplexor switch values.

For examples see SignalIgnore attribute examples.


Signal encoding

The DBC-parser supports the signal encodings defined below.

Supported

Unsupported

Endianness

Intel, Motorola

Signedness[1]

Unsigned, Signed

Extended value types

32-bit IEEE-float[2], 64-bit IEEE-double[3]

Note

Invalid / unsupported signals are ignored as if not present in the DBC-file and parsing continues


Multiplexing

The DBC-parser supports both standard and extended-multiplexing.

When using extended-multiplexing, the parser supports the following switch formats:

Switch

Supported

Example

Single

-

1

Range

+

1-1 or 1-10

List

-

1;3;5-10

Note

A single switch value can be constructed using range with from and to set to the same value.