CAN DBC/FIBEX Import

Not an actual board, but an interface for importing industry standard DBC or FIBEX files to configure one or more CANIO ESD405 or IXXAT boards.
You must have a FIBEXIMPORT SimWB license to generate a RTDB from a FIBEX file.

Import Tab

On the left-hand pane, is a tab having a file browser to allow the user to select a .dbc or .xml (FIBEX) file to import.

Select a file to import and click on the Import button. The CANIO Boards tab on the left-hand pane will be selected allowing selection of networks on the CANIO ESD405 or IXXAT boards, and the right-hand pane will be populated with ECUs and their message identifiers arranged in a hierarchical tree.

You can also edit the DBC/FIBEX file itself by clicking on the Edit button.

candbc_import.png

CANIO Boards Tab

From there, ECUs or individual message identifiers are assigned to CAN channels in much the same way that I/O points are assigned to hardware channels or message fields.

First, select a network on the left-hand side, then check off the check boxes net to ECUs or message identifiers on the right-hand side. If an ECU is checked, all its messages are checked.

Once all the ECUs and message identifiers of interest have been assigned to networks, I/O points mapped to the fields of the messages can be created in a new or existing RTDB.

You can select the speed of the channel here by clicking on the combo box in the second column.

When clicking the hierarchical RTDB names checkbox, the RTDB variable names will be generated in a hierarchical manner, i.e. ECU_NAME.DIRECTION.CANID_IDNUMBER.MULTIPLEX.SIGNAL_NAME.
When the show ID in hexadecimal checkbox is selected, the RTDB variable names will contains the CAN ID in hexadecimal instead of decimal.

Buttons

Generate New RTDBgenerete_new_rtdb.png

Generate a new real-time database with the selected signals.

Merge to RTDBmerge_to_rtdb.png

Merge the selected signals into the current real-time database.

candbc_ecus.png

DBC/FIBEX File Tab

When you click on the Edit button in the Import table, the DBC/FIBEX File tab will open and the DBC or XML file will be loaded in the editor.
You can modify the file in the editor and save the file and reimport the modified file. Use the button to save the file or save as under a new file name.

Note:   Be aware that loading a large FIBEX file in the editor could bog down the Control Center for several minutes. In this case, we recommend you use an external editor to look at the FIBEX file.

candbc_import.png

Bit Numbering

How bit fields are identified for CAN devices is complicated and different software uses different conventions. This section will attempt to sort through the mess. How bit fields are identified in DBC files depends on the byte ordering used. Byte ordering may be “Little Endian”, meaning the lower addressed bytes of fields that span two or more bytes have the less significant bits (Motorola convention), or it can be “Big Endian”, meaning the lower addressed bytes of fields that span two or more bytes have the more significant bits (Intel convention).

DBC files always number the bits within a byte from the least significant to the most significant bit, and across bytes from the lowest addressed byte to the highest addressed byte. This means that for “Little Endian” messages, the low order bit of the 64-bit CAN messages is bit 0 and the bits are numbered in order of ascending order to bit 63. For “Big Endian” messages the numbering takes a “sawtooth” pattern. The highest order bit is bit 7. The eighth highest bit is bit 0. Then the ninth highest bit is bit 15. Etc.

The SimWB GUI always, for all boards (not just CANIO), numbers the high order bit of the high order byte (of whatever “Endian” format is being used) as bit 0 and numbers the bits down in order of significance to the least significant bit of the low order byte.

Complications don’t end there. In “Big Endian” mode, DBC files specify the bit field by giving the bit position of the high order bit, along with the bit size, but the bit position of the low order bit, along with the bit size, in “Little Endian mode. The SimWB GUI always, for all boards, specifies bit fields with the position of the high order bit and the bit size, regardless of “Endian” format.

Nor is that the end of complications. Other software that manipulates DBC files specify bit fields with yet other numbering conventions. Documentation isn’t always right. And finally, older versions of SimWB as well is the internal data structures on the real-time host, number the bits of “Little Endian” format the same way as the DBC file, except with numbering of the bits within each byte reversed.

Big Endian:
          hi                                                         lo
DBC File:  07-00 | 15-08 | 23-16 | 31-24 | 39-32 | 47-40 | 55-48 | 63-56
SimWB:     00-07 | 08-15 | 16-23 | 24-31 | 32-39 | 40-47 | 48-55 | 56-63

Little Endian:
             lo                                                   hi
DBC File:  07-00 | 15-08 | 23-16 | 31-24 | 39-32 | 47-40 | 55-48 | 63-56
SimWB GUI: 56-63 | 48-55 | 40-47 | 32-39 | 24-31 | 16-23 | 08-15 | 00-07
SimWB Int: 00-07 | 08-15 | 16-23 | 24-31 | 32-39 | 40-47 | 48-55 | 56-63