Automotive Buses - CAN measurement

This course will guide you through the basics of Controller Area Network (CAN), CAN channel setup, reading and storing data from a CAN network, sending data on to the network with Dewesoft X2.

Vehicle subsystems from the internal combustion engine to powered windows are controlled by electronic control units (ECU). These units are usually dependent of each other and have to pass information between one another.


For example a control unit in the car’s automatic gearbox shifts gears based on engine revolutions per minute and throttle position. Control unit in automatic transmission runs an algorithm that determines if the gear change is required based on the data that it gets from the engine control unit (engine speed (RPM), throttle position, emission sensors...). To ensure smooth gear shifting engine speed has to be adjusted to the next gear. Therefore both control units have to constantly communicate with each other to ensure correct operation.


Another example are powered windows in a road vehicle. Their upward and downward motion is controlled by an electronic control unit. This control unit switches the electric motor in the correct direction and also stops the electric motor when the window is in the fully closed or fully opened position. The electronic control unit gets messages to move windows from other control units. For example it can get an order from a control unit that checks the position of dashboard buttons or from a unit that receives signals from a vehicle remote control. Each of the mentioned control units performs its task and signals other control units to perform a task that is required from them. The messages can go either way. For example the window control unit can send a message back to other control units that the window is fully closed or fully opened.


As we can see from the previous example a single unit works only if it is connected to other units. Message transfer between units could be made with direct connections based on the dependency of electronic control units.




Electronic control units connected based on information flow between them


Electronic subsystems on modern road vehicles are usually controlled by more then 150 ECUs. These control units are highly dependent of each other and are connected to a single or multiple serial networks.

On a serial network data is being transmitted bit by bit onto a network. Each device can read all of the messages on the network but responds only to those that are meant for it. To ensure that critical messages get to their recipients with the least possible delay message priority is based on message importance.





Electronic control units connected on to a serial bus

Communication networks in modern road vehicles connect all of the electronic subsystems together. With transfer speeds of up to 10 Mb/s large amounts of data can be generated. With Dewesoft, we can decode and store this data.




Dewesoft device connected on to a serial bus

Even though this PRO Training lecture is primarily focused on Controller Area Network (CAN) it is worth noting that Dewesoft X supports other commonly used protocols in the automotive industry. The supported protocols are:

Controller Area Network (CAN)

  • A message based protocol, designed for automotive applications,
  • native support in Dewesoft X,
  • CAN interfaces available on different Dewesoft devices: DS-CAN2DS-CAN4DS-CAN8DEWE-43SIRIUS...
  • Vector CAN hardware supported: CAN_CARD_X, CAN_CARD_XL, CAN_CARD_XLE, CAN_CASE_XL, CAN_BOARD_XL,
  • VN7600, VN1630, VN1640, VN7610
  • VN7600, VN1630, VN1640, VN7610

FlexRay

  • Automotive network communication protocol,
  • faster more reliable than CAN,
  • more expensive then CAN, not widely used yet,
  • available as Dewesoft X plugin,
  • Vector FlexRay hardware supported: VN3600, VN7600, VN7610, VN7570, VN7572, VN8970, VN8972
  • Fibex ( FIeld Bus EXchange) signal definition file supported.

OBD-II

  • Vehicle On-board diagnostics (low sampling rate),
  • provides access to various vehicle subsystem,
  • only OBD-II on CAN is supported - some newer vehicles and all of those sold in US after 2008 have OBD-II on CAN. If a vehicle is equipped with OBD-II on CAN diagnostics CAN High can be found on pin 6 and CAN Low on pin 14 of the OBD-II connector.



Normally needed pins for CAN communication on OBD-II connector

XCP / CCP

  • Protocol for ECU memory access with A2L definition file,
  • available as a Dewesoft plugin,
  • Supported protocols
    • CCP (Dewesoft CAN device required)
      XCP on CAN (Dewesoft CAN device required)
      XCP on ethernet (computer with ethernet port)

Controller Area Network (CAN) is the most widely used communication protocol in automotive applications. It was developed to replace complex wiring harnesses with a two-wire bus. CAN network consists of nodes – electronic control units (ECU) that are connected on to a two wire bus. Any electronic device with a CAN interface can be connected on to a network. 


Messages on CAN aren’t passed directly from node to node but are transmitted on to the network. Messages each have their unique message identification number which is also used to determine message priority. CAN network can operate without a central control node, message hierarchy is not based on nodes but on the messages that they transmit. Therefore, one node can transmit both high and low priority messages.


Error in message transmission is checked by all of the nodes that are connected to the network. If one of the nodes detects an error in message reception it sends a special error message on to the network. A node that originally sent the message has to retransmit it.


Different versions CAN configurations are defined by ISO standards. Normally there are two configurations used in automotive applications. High speed CAN is used for communications between critical subsystems that require high update rates and data correctness (anti lock braking system, electronic stability control, airbags, engine control unit...). Data transfer speeds of high speed CAN ranges from 1 kbit to 1 Mbit per second. Low speed CAN is used for fault tolerant systems that do not require high update rates. Their maximum data transfer rate is limited to 125 kbit per second but their wiring architecture can be more economical. In automotive applications low speed CAN is normally used for diagnostics, dashboard controls and displays, power windows...






During CAN bus operation additional nodes can be connected on to it. Dewesoft devices with CAN interfaces act like additional nodes on the CAN network. Dewesoft devices can read and also write data on to the CAN network.

There are four different message types/frames that can be transmitted on to the CAN network

  1. Data frame
    A message that transmits data through the CAN network. It is the most common message type on the network. Message consists of:
    • arbitration field - field that contains the message identification number and remote transmission request bit. More important messages have lower ID numbers, when multiple nodes want to transmit at the same time they start a simultaneous arbitration. A node with the lowest message id number wins. The message identifier can be 11 bit (Standard CAN, 2048 different message identifiers) or 29 bit in length (Extended CAN, 537 million different message identifiers). The remote transmission request bit is dominant and signals that data is being transmitted,
    • data field - field in length from 0 to 8 bytes that holds data,
    • crc field - cyclic redundancy check field, shows if there were any mistakes during message transfer,
    • acknowledge field - every node changes this field if it received a message without any errors.

  2. Dewesoft X can read or transmit data frames. It only needs message identification numbers and lengths of data fields of each data message. All of the other frames are automatically taken care of by Dewesoft devices and software.
  3. Remote frame
    The purpose of the remote frame is to request a message from another node. By structure it is similar to the data frame. The difference is that it doesn’t contain any data and has a recessive remote transmission request (RTR) bit which signals a message request from another node.
  4. Error frame
    Error frame is a special frame that violates CAN formatting rules and signals an error in data transmission. A node that detects an error while reading the message on the network transmits an error message. Because an error frame violates CAN formatting rules all of the nodes that were reading from the network retransmit it. After that a node that originally transmitted a message with an error has to retransmit the original message.
  5. Overload frame
    It is similar to the error frame with regard to formatting. It is transmitted by a node that becomes too busy. It is primarily used as an extra delay between messages.

Dewesoft offers multiple devices with CAN interfaces. They all support CAN 2.0b input and output with a speed of up to 1Mbit/s. All of the devices have a sync port installed for hardware synchronization with other Dewesoft devices.

DEWE - 43

A small and versatile device with 2 CAN ports packed together with 8 analog and 8 counter inputs.

DEWE-43 product website

Dewesoft USB CAN interfaces

USB CAN interface products website

DS-CAN2


2 port USB CAN interface


SIRIUSim 4x CAN


4 port USB CAN interface



SIRIUSf 8x CAN

8 port USB CAN interface

SIRIUS USB product line

CAN interfaces can be installed in instruments of the SIRIUS USB product line.

CAN configurations in Dewesoft X are going to be presented through an example with CAN input and output functionality. To recreate this example and even access all of the CAN settings in Dewesoft X, a Dewesoft device with at least two CAN ports and a simple CAN bus are needed. An example is just a guide that is going to steer us through the available CAN settings in Dewesoft X. You should still go through the next pages even if you don't have the required equipment.



CAN input/output test setup: DEWE 43 with CAN bus connected on CAN ports 1 and 2, computer with Dewesoft X2 installed


During the test one of the ports is going to transmit data the second port is going to read transmitted data from the network. CAN port on a Dewesoft device acts like a node on the CAN network. To connect both ports a simple serial bus has to be constructed that connects CAN high and CAN low pins from one port to another. Connections have to be terminated with a 120 Ohm resistor.



Test setup sketch

Through the constructed bus Dewesoft math and user input channels are going to be transmitted from one port to another




Virtual CAN


Without a Dewesoft device a part of the example, mainly message and channel setup can be tested with CAN simulation in Dewesoft X. Virtual CAN can be used to make and verify CAN message setups offline, there is no data transmission between virtual CAN ports.

To set up virtual CAN ports go to Settings → Devices and pick Simulation as the Operation mode.


Press the add button  and select a Test CAN device.

Test CAN device number of ports, replay file and CAN plugin can then be configured in device settings.

Virtual CAN device settings

To access CAN settings in Dewesoft X go to Settings → Devices and click on the a connected device with CAN ports. In our example that is a DEWE-43 device that has two CAN ports. CAN ports should appear under the device info.

Device CAN ports in Dewesoft settings

CAN port settings can be accessed by right clicking on the port that we want to configure. A context menu with available options should appear after the right mouse click.

  • CAN port baud rate
    CAN port baud rate on the Dewesoft device has to be the same as the baud rate of the CAN bus that we are connecting to. The default baud rate in Dewesoft X is 500 kbit/s this it is more then enough for our example and there is no need of changing it.

CAN port baud rate setup

  • Enabling CAN output
    With the device connected we have to enable data transmission on one port. In this example we choose CAN 1 port and change its operational mode from Read only to Read/Write/Acknowledge.

CAN port operational mode setup

  • CAN plugin
    Data transfer of some devices or some protocols is based on CAN messaging protocol. Messages from those devices can be read in Dewesoft X if we know which data is present in certain messages. With CAN plugins this is done automatically and also adds some
    • OBD-II - Vehicle On Board Diagnostics on CAN, plugin has standardized OBDII messages preconfigured. Additional messages can be added, the existing messages can be reconfigured.
    • ADMA - plugin that supports Genesys ADMA (Automotive Dynamic Motion Analyser) an inertial measurement unit with GNSS that is specialized for vehicle dynamics measurements. The device sends measured data in CAN messages but is configured through COM port. Everything can be done in the plugin.
    • CPAD2 - plugin for CPAD2 devices that run on CAN.
  • Some additional devices or protocols that run on CAN are supported with additional plugins. (XCP Engine Control Unit memory access protocol on CAN, Kistler Wheel force transducers with CAN interface…). With our test we are going to generate our own messages and read them. Therefore, none of the plugins are needed.

  • Acquisition loop
    The maximum frequency of CAN output is dependent on the acquisition loop frequency of Dewesoft X software. With performance improvements of Dewesoft X2 the acquisition loop rate can be increased from standard 50 Hz to up to 1000 Hz. This is necessary for CAN output test and can be done under Settings >> Performance >> Acquisition update rate.

With a CAN device connected and configured CAN channel setup module can be added with a "More..." button.


CAN channel setup module addition

In CAN channel setup you are going to find a setup screen for each of the CAN ports that are present on the connected Dewesoft device with a list of all the CAN messages and channels that are on the selected CAN port.


CAN port message list in CAN message/channel setup

Options in CAN channel setup

Number 

Setting

Description

1

Error message count

Displays the count of error messages compared to correct messages present on the bus.

Baud rate setting

CAN port baud rate setting in kbit/s. Same setting as the device CAN port setting.

J1939

Changes CAN message decoding to J1939 standard. Messages on CAN bus have to be formatted according to J1939 standard, data messages have the same length as extended CAN standard. Arbitration field contains additional source and destination address. Baud rate is limited to 250 kbit/s or 500 kbit/s depending on the J1939 standard version.

2

Store all messages

All messages that are present on the CAN bus can be stored even if we don’t have them defined in the message list. Stored CAN data can be decoded later in CAN offline mode.

Scan

With bus scan turned on Dewesoft X recognizes CAN messages that are being transmitted on to a network.

3

Message/Channel search

Message/Channel list filter based on written text.

Add read only message

A button that adds a read only message on to the message list. Read only messages can be added in read only and read/write/acknowledge mode.

Add message to transmit

Adds a CAN message that is going to be transmitted by a Dewesoft device. This setting is available only if the selected CAN port is in read/write/acknowledge operational mode.

Delete CAN message

Deletes a selected message independent of message type.

4

Filters

Message/Channel display filters in CAN Message/Channel list.

5

DBC / XML import and export

CAN messages with channel definitions can be imported from DBC or XML files. DBC files are common for CAN database definition. XML has some additional info and is specific to Dewesoft X. Both formats can be exported from CAN channel setup.

File transmit

Stored CAN channels can be exported into .csv format. Exported .csv files can be transmitted again as CAN channels.

  1. Math channels
    In Acquisition mode under channel setup go to Math channel setup. In it we are going to add three new math formulas: sine, cosine and square signal.

  2. Math channel setup

    • Adding sine signal formula - add a new formula and name it “Math_Sine”, you can either click on sine function under Other Functions >> Signals in Formula Options dialog and write the frequency of 10 Hz inside the sine function brackets. Or you can just write sine(10) in formula syntax dialog.
    • Sine signal definition in Formula Setup


    • Adding cosine signal formula - name it “Math_Cosine”, it is similar to sine signal but with a phase shift of 90° that has to be written in radians, formula syntax: sine(10, 0.5*pi).
    • Adding square formula - name it “Math_Square”, a square signal with frequency of 10 Hz, formula syntax: square(10).

  3. User input channel
    In channel setup add user input channel settings with More button.
  4. User input module addition

    In User inputs channel setup add a channel, name it “Value_0_100” set the time base as ASync, channel value limits should be 0 for minimum and 100 for maximum.

In CAN channel setup on CAN 1 port which was previously set up on read/write/acknowledge has to be selected. With the AddTx button we define a new message that is going to be transmitted on to the CAN bus. This message is going to transmit sine and cosine signals that we created in math channel setup. In message dialog we define global message settings and can define channels that are going to be carried by message data field.

Transmit message setting

Setting 

Description

Name

Name of CAN message

Arb. ID

Message arbitration identification number input in hexadecimal notation. It is used for message identification and arbitration. When two CAN nodes want to transmit their message simultaneously lower message ID wins arbitration and can be transmitted.

Type

CAN standard or CAN extended can be picked. The difference is in the length of the arbitration identifier (11 bit on standard CAN 29 bit on extended CAN). Messages with extended ID have lower priority and will lose arbitration with standard CAN message type.

Schedule

Only available with transmitted messages. It determines message transmission type. There are 8 options of message scheduling available.

Types of transmission message scheduling

  • Periodic - message is going to be transmitted periodically with a defined period in milliseconds,
  • On button - User input channel that is connected to a button has to be specified. Message is going to be transmitted when that button is pressed.
  • On start acq. - message is going to be transmitted when switching from Dewesoft Channel Setup to Measure mode, or when storing is started. A delay can be specified in milliseconds.
  • On stop acq. - message is going to be sent when measurement stops.
  • On msg. change. - message transmission when the transmitted value changes. This means that it is going to be sent when measurement starts.
  • On trigger - channel trigger level and trigger logic (channel value is more or less than trigger value). Message is sent when trigger condition is true.
  • Before message - another CAN message has to be specified, message is transmitted before the selected message is sent.
  • After message - similar to Before message scheduling, message is transmitted after the selected channel is sent.

In the defined transmission message, we are going to define two channels that are going to transmit sine and cosine math channels.


Sine and cosine message settings

Name

SineAndCosine


Arbitration ID

0

lowest available number, highest priority

Type

CAN standard

short message ID

DLC

8

data field in length of 8 Bytes

Schedule

Periodic


Period [ms] 

10

approximate message async rate of 100 Hz



CAN data message structure

If we take a look at the structure of CAN messages, we defined message arbitration ID and defined the length of the data field. Now we have to define which data is going to be present in the data field by adding channels into the message.

Sine and cosine signals are going to be carried by a single message. With 8 Bytes of space data field can be composed of two floats with the length of 4 Bytes. 

Sine channel definitions

In Message setup click the Add button to add a new channel. Channel settings should appear with default options filed in.


Default CAN channel settings

Channel option 

Selections


Name, Unit, Color

-

CAN channel name, unit and color in signal display

Value

Constant

Channel

This option is available only with transmitted channels. Value can either be constant or equal to selected channel

Data format

Intel

Motorola

Byte sequence order.

Data type

Unsigned

Signed

IEEE float

Channel data types unsigned and signed integers or IEEE floats. Integer data type can have user defined length, float data type is standardized and has a length of 4 Bytes/32 bits

Start bit

-

Starting bit of channel in the data field.

Length [bits]

-

Length on integer data type

Scale and Sensitivity

-

Default scaling value is 1. Scaling is applied differently if message is read or transmitted. With transmission channels scaling factor divides the required channel value before sending it through the message. If message is being read value in the message is multiplied with the scaling factor before it is displayed and stored in Dewesoft X

Sensitivity is a reciprocal value of scaling value.

Offset

-

Offset is added to the original value if the channel is being read and subtracted from the original value if the message is being transmitted.

Sine CAN channel settings

We name the new channel as “Sine_on_CAN”. Value type should be set to Channel, math channel with a sine signal should be picked as the value provider. Data type should be picked as IEEE float. Current values should appear on the bottom right side of the signal setup screen.

Cosine channel definition

Similar as with the sine channel definition we define a CAN channel that will carry a cosine signal.

Cosine CAN channel settings

Special care should be taken when specifying the start bit of the message in the data field. There is no safeguard for message overlapping, improper definition results in wrong decoding of channel data.

The visual representation of data field in the upper right corner is full. We cannot add any new channels into the message. 

Square channel definition

We define a new message CAN message that is transmitted periodically every 10 milliseconds similarly as the “SineAndCosine” message and name it “SquareMessage”. Square signal alternates between values -1 and 1. To accurately transmit it we only need one Byte in the data field. DLC can be set to 1.
A channel “Square_on_CAN” should be added to the message. Channel should take the value from “Math_Square” channel. Data type should be changed to Signed because positive and negative values are going to be transmitted. The length of data type should be as small as 2 (one bit for sign, one bit for value 1) but should not be larger than 8 (bits in one Byte).

Square signal channel settings on CAN

User input channel definition

Create a new transmission message with the name “User_Message”. Change the DLC to 1 Byte and select On button message scheduling. As the Button channel select the user input channel that was created previously.
Add a channel and name it “User_Value_on_CAN”, as value type select channel and assign user input channel “Value_0_100” as the value provider. User input channel goes from 0 to 100 and is always positive. Select an Unsigned value type, specify data field length as 8.

User input channel settings on CAN

Transmission messages/channels on CAN port 1 message list

Message/Channel list on CAN port 1 is now fully populated with CAN transmission channels. To receive this channels, we have to define what messages and channels are going to be received by CAN port 2 which is in read only mode.
If we want to receive the messages that are being transmitted, we have to define read only messages and channels on CAN port 2 with exactly the same formatting as the transmitted channels on CAN port 1. This can be done manually or with message copying from one port to another.

Manual channel definitions

Definition of read only messages is fairly similar to transmission message definitions. To define a new channel a new read only message has to be added. For correct reception of data read only messages have to have exactly the same setup in terms of CAN message formatting, message ID and message data field structure.


Sine and cosine read only message settings

As we can see in there is no message scheduling but there is a time delay if we want to compensate CAN delay when we are storing the data.
In channel setup there is no need to define channel value. There is an additional option regarding channel signal type which offers three options: Regular signal, Multiplexor signal and Multiplexed signal. This is an additional option that enables the reception and identification of different variables in CAN messages with the same message ID as data channels on their own.

Message copying

Message and channel copying is implemented in CAN channel setup to avoid mistakes and reduce the time required when similar channels are being defined. Either messages or channels can be copied. Copying works even from one CAN port to another.
For our example a specific form of copying from port to port exists that enables quick read only message definition by copying transmit messages on to the second CAN port and swapping message property from transmission to read only.

Transmit message copying

Pasting transmit messages from CAN port 1 to CAN port 2 and swapping them to read only

If read only channels are properly defined and the CAN 2 port (Read only CAN port) should receive the messages transmitted from the CAN 1 port (Read/Write/Acknowledge CAN port). This can be seen in the CAN message/value channel setup. In the frequency column an approximate frequency of periodically transmitted channels should appear, also the bit value in the value column should change values.

In CAN channel setup we can see that there is no message transmission of the user input channel "Value_0_100". The reason for it is that it is transmitted only when a user clicks on a visual control that has a user input channel defined on it. This was defined in CAN message setup where message scheduling was set to "On button" option. For this to work the measurement screen has to be properly set up.

We go on to the Measure screen and the measurement screen Design mode. In design mode we define two recorders one can be used to view channels that are transmitted periodically and one can be used to monitor the user input channel.
To change the value of the user input channel and enable the transmission of CAN channel with user input scheduling an "Input control display" has to be added on to the measurement screen.

Button icon and location of Input control display visual control

The "Input control display" settings have to be changed. And the user input channel "Value_0_100" has to be assigned to the Input control display visual control. "Input control display" should be set to "Control channel" with the "Control channel" set to "Vertical slider". Slider minimum and maximum should be changed from 0 to 100. To assign the user input channel on to the slider with the slider selected click on the user input "Value_0_100" channel in the channel tree view.

Input control display setup with user input channel assigned

After everything is set up we can proceed with the measurements and compare math channels with those that are read from the CAN bus.

Sine and cosine signal

Math generated sine signal - red, received CAN signal - blue

We can compare the original math sine signal with the received sine signal from the CAN network. It can be seen that the received sine signal isn't as accurate as the generated math signal. That is a consequence of 10 ms periodic message scheduling (approximate asynchronous rate of 100 Hz), one period of a sine signal with 10 Hz frequency is represented by 10 samples that were read from CAN. The received signal is asynchronous, even with the lowest arbitration ID of the message that carries sine and cosine data the message cannot be transmitted if the network is full (another node is in the middle of message transmission). Received signal has a delay between 7 and 8.5 milliseconds. This delay is caused by the data conversion and transmission, because at first a new math channel value has to be generated packed into the CAN message transmitted through the network, decoded and then stored in Dewesoft X.

Sine and cosine signals received through the CAN network

Time stamps from sine and cosine signals that were received through the CAN network are equal. Sine and cosine samples came in together with the same CAN message.

Square signal

Math generated square signal - red, received square signal - blue

We can see that a CAN message with the square signal isn't sent at exact frequency of 100 Hz (periodic scheduling on 10 ms) the transitions of generated and received signal aren't equally spaced.

User input channel


Recorded user input channel value slider movement

User input channel is transmitted only when a user clicks on a slider, this can be seen on the recorder.


DBC/XML file import

As mentioned on the channel setup page, CAN channel setup can be imported from DBC or XML files. CAN database DBC files are common files for CAN message and channel definitions.

A DBC file for DS-VGPS device is included with each Dewesoft X installation. Messages from this DBC can be included alongside messages that were defined in the example. In CAN channel setup (CAN port isn't important) click on the DBC/XML Import button.

DBC/XML Import button in CAN channel setup

A file picking window should appear with additional import settings for CAN message merging.

Import CAN setup file import file picker with message merging options

Delete existing messages:

Existing messages from CAN port are going to be replaced with those defined in DBC/XML file.

Keep existing messages: 

No merge (add signals)

Imported messages are going to be appended to the message list.

By ArbID + signal name

Existing and imported messages with the same arbitration ID are merged based on signal/channel names. If names aren't the same additional channels are added.

By ArbID + signal bits

Existing and imported messages with the same arbitration ID are merged based on bits that represent a signal/channel in CAN message data field. If bits from existing signals aren't matching the imported ones new channels are appended to the message.

Navigate to installation folder of Dewesoft X, DBC file VGPS_200C_1v3.dbc should be located in the Setups folder ( Path: ..\Dewesoft\Setups\VGPS_200C_1v3.dbc). Pick "Keep existing messages", "No merge (add signals)" and import the DBC. Imported channels should appear in CAN channel setup.


Imported channels (unused) 


DBC/XML file export

To export a DBC configuration file click on DBC/XML file Export button. An export window will appear pick a folder and save the configuration file in the selected format.

Configuration file export window

Difference between DBC an XML files

As was mentioned DBC files are common for CAN applications. DBC files only contain information needed to decode messages on the bus (structure of messages). Because of that DBC files do not support transmission channels (in Dewesoft X imported read only messages can always be copied and swapped to transmission channels) 

XML format is specific for Dewesoft X and holds more information than DBC format. It supports transmission channels and all of the settings specific for transmission channels available in Dewesoft X. XML also supports used/unused channel setting and channel display color.

With Dewesoft X it is still possible to measure CAN messages even if they weren't configured in CAN channel setup. Dewesoft X has two functions which help us decode the messages on the CAN bus. With the "Scan" option turned on Dewesoft X recognizes messages that are present on the CAN bus and adds them to the CAN channel setup. However there is also an option "Store all messages", when it is turned on all of the data that passed through the CAN network is stored in Dewesoft X and can be later decoded with offline scaning, DBC or XML import.

This can be tested on our setup. At first the read only message settings defined on CAN port 2 should be exported into a DBC or XML file. To test both options all of the read only channels on CAN port 2 should be deleted. CAN channel list on CAN port 2 is now empty but it can be seen from the upper left corner of the channel setup that messages are still being transmitted on to the CAN network from CAN port 1.


Empty channel list on CAN port 2, message counter upper left corner

CAN network "Scan" function

When "Scan" button is activated in CAN channel setup any messages that weren't defined in the CAN channel setup appear in it. If "Scan" option is activated two messages appear in CAN channel setup on CAN port 2.

From arbitration ID and data field length we can see that the scanned messages are messages that carry sine and cosine channels and a message that carries a square channel. The user input channel is missing because it isn't being transmitted in CAN channel setup (only transmitted on button in Dewesoft X Acquisition mode). Therefore it cannot be found with CAN bus scan.

CAN storing option "Store all messages"

Some CAN messages are transmitted only when certain conditions are met or aren't sent frequently. It could happen that they aren't detected while CAN network scan is turned on in CAN channel setup. To store all of the messages that are going to be present on the network an option "Store all messages" has to be activated. Whenever a new message appears on the network it is automatically added to the CAN channel list and stored in Dewesoft X

With "Store all messages" option turned on the user input channel in our example is going to be detected and stored. With the "Store all messages" turned on store CAN data, user input channel should be transmitted during acquisition (pressing the user input channel slider).

CAN data storage with "Store all messages" turned on

CAN offline

To enter CAN channel setup in offline mode open a file that was stored with "Store all messages" option turned on. Under Setup in Dewesoft X Analysis mode open CAN setup. CAN message list is populated with messages that were defined before storage. An additional scan has to be performed on stored CAN data to add messages which weren't defined in channel setup and were present on the network during the measurement.
After an offline scan on the data file that we created an additional message should appear in CAN message list. From the arbitration ID we can see that this message is actually a user input message that was transmitted during acquisition.

Additional CAN message added to the list after offline scan

Even though all of the messages are defined in CAN message setup, none of the CAN channels are defined. This cannot be done without additional information about structure of message data fields. This can be accomplished either manually or with CAN configuration file import (DBC or XML).


CAN channels defined with previously created DBC

Stored CAN messages can be retransmitted on to the CAN network. This can be useful if we want to recreate a certain event that was previously stored from the CAN network. To retransmit CAN messages they have to be exported to a CAN csv file. This file can then be retransmitted.

CAN message export to .csv

To export CAN messages to .csv format that enables CAN message retransmission open a Dewesoft X file that was used to store CAN messages. Go to Export, pick CAN messages and channels that you want to export. CAN messages (.csv) file format should be selected.

CAN message export to csv format

CAN file transmit

In CAN channel setup of Dewesoft X Acquisition mode a csv file for message transmission can be picked. After a file is picked a "Transmit on start measure" option has to be enabled. File is going to be transmitted from the beginning whenever measurement is started. Transmission stops when all of the messages in the csv file are transmitted.

In message retransmission some messages can be dropped if they were recorded with a higher CAN port baud rate then the baud rate of retransmission.

File transmit option in CAN message/channel setup

Multiplexing in general is a method by which multiple analog message signals or digital data streams are combined into one signal over a shared medium. On CAN several signals can share a single CAN message. To identify a channel in a CAN message an additional identifier is put in the CAN data field called a multiplexer. This identifier can be implemented anywhere in the data field.

Message data field with multiplexer (channel ID) and channel data

Multiplexed message definition

In Dewesoft X multiplexed channels are fully transported in both Read only and Transmit modes. In Read only mode multiplexed messages can be defined directly. In CAN channel definitions there are three different signal type options: Regular signal, Multiplexer signal and Multiplexed signal. Regular signal option is meant for channels that don't share a common CAN message. Other options are both meant for multiplexed channel definitions.

Multiplexer signal is a channel that carries an identification number for a multiplexed channel.

Multiplexer channel definition


Multiplexed signal is a signal that is transmitted in the data field at the specified multiplexer signal.Therefore an additional value multiplexer value has to be specified.

Multiplexed channel definition

Other multiplexed channels can be defined over the data fields of other multiplexed channels.

Multiplexed messages defined one over another in message data field


Multiplexed message transmission

Transmission messages cannot be directly defined as multiplexed in Dewesoft X. But there is a workaround, multiple transmission messages with the same arbitration ID can be defined. The multiplexer is defined in each data field as a constant. There are no difficulties with the same arbitration ID because they are message are transmitted based on scheduling that was defined in message setup.

Multiplexer definition in multiplexed transmission message

  1. General information

Currently only the following Vector hardware is supported in Dewesoft and can be used for CAN FD:


- VN1610

- VN1611

- VN1630

- VN1640

- VN7600

- VN7610


Minimum DEWESoft version: X3 SP4


Latest Vector drivers need to be installed and computer rebooted, before Vector HW can be used with Dewesoft. 

https://vector.com/vi_downloadcenter_en.html



  1. Hardware setup


In hardware settings of Dewesoft, Vector hardware needs to be added:

 

Figure 3 - Adding Vector HW


If the driver is installed and correct version of Dewesoft used, the device will appear in the device list and it will display CAN FD next to it. 

Figure 4 - Device list


Operation mode can be changed in the hardware settings of Dewesoft from Read only to Read/write/acknowledge (often required also for reading only).

Figure 5 - Operation mode



  1. Channel setup


Usage of CAN FD is exactly the same as CAN. To enable CAN FD, the checkbox next to it needs to be ticked. 

Figure 6 - Enable CAN FD


There are two main differences with CAN FD compared to CAN:

Message length is increased from 8 byte → 64 byte and data rate is increased up to 8 Mbit/s. 

Figure 7 - CAN vs. CAN FD


In the message settings dialogue, DLC can be set up to 64 instead of 8 with CAN. This means that the total length of the message can be up to 512bits. 

Figure 8 - Message settings


This website uses cookies to ensure you get the best experience on our website. Learn more