
The in-vehicle network communication leverages the CAN bus to transmit information from ECUs in the vehicle. The data representation of this information is captured via the advanced DBC file format (DataBase Container). Our earlier article explored the inner workings of the DBC file format — from the need for this standard to the details of messages, signals, and data representation with practical examples. This article covers advanced DBC file format concepts such as keywords, message attributes, signals in DBC file attributes, and multiplexors, along with a quick overview of popular editors and parsers. Let us take a deep dive into the advanced DBC file format!
In an advanced DBC file format, various keywords define and describe messages and signals, providing valuable information for interpreting and decoding CAN data.
Version:This keyword indicates the version of the advanced DBC file format being used, ensuring compatibility between different versions. For example:
VERSION 'RELEASE_1_2'
The 'NS_' keyword defines the namespace for the messages and signals in the advanced DBC file format, providing a way to organize and categorize them.
BO_:This keyword defines a message in the advanced DBC file format, specifying the message identifier, attributes, and associated signals.
SG_:This keyword defines a signal in the advanced DBC file format, specifying the signal name, bit start position, bit size, data type, and other attributes.
CM_:The CM_ keyword adds comments and annotations to messages and signals, providing additional context about the purpose and functionality of each element in the advanced DBC file format.
BA_:The 'BA_' and 'BA_DEF_' keywords define attributes for messages and signals in the advanced DBC file format. For example:
BA_ 'ECUErrorState' BO_ 2000 1;
Indicates that ECUErrorState is conveyed via the message with CAN ID 2000.
BA_DEF_ BO_ ' ECUErrorState ' ENUM 'No','Yes';
Defines ECUErrorState as an enumerated value with possible values Yes and No.
BA_DEF_DEF_ ' ECUErrorState ' 'No';
Defines the default value of ECUErrorState as 'No'.
In addition to the keywords, the advanced DBC file format includes message attributes that provide further details about message timing and behavior. Understanding message attributes is essential for correctly configuring message scheduling in a CAN network. Typical message attributes used in the advanced DBC file format are:
GenMsgSendType:This message attribute specifies the transmission type — cyclic, triggered, cyclicIfActive, cyclicAndTriggered, cyclicIfActiveAndTriggered — depending on system requirements.
GenMsgCycleTime:This message attribute defines the time interval in milliseconds between consecutive transmissions of a periodic message. It ensures that the message is sent at regular intervals.
GenMsgStartDelayTime:This message attribute specifies the delay before a periodic message starts transmitting, allowing synchronization of messages in a network.
GenMsgDelayTime:This message attribute defines the minimum time delay between consecutive transmissions of a condition-triggered message, preventing a message from being transmitted too frequently.
These message attributes in the advanced DBC file format collectively determine the bus load profile and timing behavior of the entire CAN network. Embien's automotive user experience services use advanced DBC file format message attributes to simulate realistic CAN traffic for HMI and instrument cluster testing scenarios.
Messages in DBC file are the containers that the message attributes configure. When a tool processes an advanced DBC file format, it reads the message attributes associated with each of the messages in DBC file to determine transmission scheduling. For example, a cyclic message in the advanced DBC file format with a GenMsgCycleTime of 10 ms will be transmitted 100 times per second, while a triggered message will only be sent on a state change event. Understanding how message attributes relate to messages in DBC file is key to implementing correct ECU behavior from advanced DBC file format specifications.
In addition to message attributes, the advanced DBC file format includes attributes for individual signals in DBC file. One such attribute is 'GenSigStartValue,' which specifies the initial value of a signal when a message is transmitted. The same value is used in the receiver as the default until the signal is received.
The 'GenSigStartValue' attribute is useful in scenarios where the initial value of signals in DBC file is important for system initialization or calibration. It ensures that signals in DBC file have a predefined value when the system starts up, preventing undefined behavior in dependent ECUs.
Other common signal attributes in the advanced DBC file format include GenSigSendType (cyclic or on-change), GenSigInactiveValue (the value transmitted when the signal source is inactive), and GenSigSendTimeout (the maximum interval before a signal is considered lost). These signal attributes in the advanced DBC file format enable tools to perform health monitoring and timeout detection on signals in DBC file without manual configuration. Embien's product engineering services cover advanced DBC file format signal attribute design and validation for multi-ECU CAN networks.
In some cases, when there is a lot of information to be sent, it is better to leverage the same CAN ID rather than allocating one for each message. For example, consider 100 sensors available in an ECU — rather than allocating separate messages, the advanced DBC file format supports multiplexed messages.
A multiplexed message uses a multiplexer signal (marked with M in the advanced DBC file format) to determine which signals are transmitted. With keywords m0, m1, and so on, other signals represent the value of the selection signal.
Take the example of the below advanced DBC file format snippet:
VERSION '' BO_ 123 SensorValue: 8 Vector__XXX SG_ SensorSelect M : 0|8@1+ (1,0) [0|100] '' InstrumentCluster SG_ SensorTime : 8|16@1+ (1,0) [0|65535] '' InstrumentCluster SG_ Sensor1Value m0 : 24|16@1+ (1,0) [0|65535] 'g' InstrumentCluster SG_ Sensor2Value m1 : 24|16@1+ (1,0) [0|65535] 'g' InstrumentCluster SG_ Sensor3Value m2 : 24|16@1+ (1,0) [0|65535] 'g' InstrumentCluster SG_ Sensor4Value m3 : 24|16@1+ (1,0) [0|65535] 'g' InstrumentCluster SG_ Sensor100Value m99 : 24|16@1+ (1,0) [0|65535] 'g' InstrumentCluster
Here, SensorSelect is the multiplexer signal. If it is 0, 16-bits starting from position 24 carry Sensor1Value. If it is 1, Sensor2Value is present. Thus the single message in the advanced DBC file format can represent data from up to 100 sensors. The SensorTime signal is un-multiplexed and appears in all messages regardless of the selector value.
Multiplexed Signal in Advanced DBC File Format
It is possible to go further with extended multiplexing where a multiplexed signal can itself be used as a selector for another set of multiplexed signals. Multiplexed messages in the advanced DBC file format are widely used in automotive systems to optimize bandwidth and reduce the total number of CAN IDs consumed.
Though technically the advanced DBC file format can be created or edited with simple text editors, larger DBC files require specialized tools. DBC editors provide a user-friendly interface for working with the advanced DBC file format — creating, modifying, and validating DBC files without manual text editing.
Popular DBC editors include Vector CANDB++, Kvaser Database Editor, and CSS Online Editor. These tools offer features such as syntax highlighting, auto-completion, and error checking, along with visual representations of messages and signals, making it easier to understand the structure of an advanced DBC file format database.
DBC parsers are software libraries or modules used to interpret and decode the contents of an advanced DBC file format file. They provide APIs that allow developers to read and extract information from DBC files programmatically.
DBC parsers are essential for developing applications that need to interpret and process DBC files. They handle the complex parsing and decoding logic, freeing up developers to focus on actual application functionality.
Embien's Flint tool allows importing advanced DBC file format files directly and can be used to receive signals from other ECUs and transfer data to the in-vehicle network using the RAPIDSEA IVN stack.
The advanced DBC file format is a foundational artifact in automotive software development workflows. In automotive software development, the DBC file acts as the interface specification between ECUs — it is the document from which code generators, simulation tools, and test frameworks all derive their CAN communication logic. Automotive software development teams use advanced DBC file format features such as message attributes, signals in DBC file attributes, and multiplexed messages to auto-generate C structures, LabVIEW VIs, and Python decoders without manual coding. Mastering the advanced DBC file format is therefore a core competency for automotive software development engineers working on CAN network integration.
In conclusion, the advanced DBC file format plays a crucial role in the development and testing of automotive systems. With a deep understanding of message attributes, signals in DBC file attributes, keywords, and multiplexed messages in the advanced DBC file format, automotive software development engineers can implement ECU functionalities accurately from network specifications. The advanced DBC file format remains the universal language for CAN database exchange in automotive software development, and mastering it is essential for anyone working with vehicle electronic systems.

Embien's cross-domain embedded services include advanced DBC file format integration, message attributes configuration, and signals in DBC file validation for multi-ECU automotive programs.

Embien's automotive electronics development services cover advanced DBC file format design, signals in DBC file attribute definition, and CAN network database management.

A PCIe FPGA-based multi-channel video mixer demonstrating Embien's advanced embedded expertise applicable to automotive software development and advanced DBC file format tool integration.