Configuring CAN through Xbus


The MTi 600-series, Xsens Avior series and Xsens Sirius series support a CAN output. The Xsens Avior series and Xsens Sirius series also support CAN input. The CAN communication must be configured through the UART or RS232 interface using Xbus messages. The method of configuring is described below. For more information on Xbus and its message structure, please review the MT Low Level Communication Protocol Documentation.

 

Termination Resistor

 

General CAN configuration messages

 

ReqCanConfig                      

            MID              230 (0xE6)

            DATA            n/a

            Direction      To MT

            Valid in         Config State

 

610

620

630

670

680

Avior IMU Avior VRU Avior AHRS Sirius IMU Sirius VRU Sirius AHRS

 

Request the current CAN configuration – see SetCanConfig for information about the data field of the received ReqCanConfigAck acknowledgement message.

 

 

SetCanConfig

            MID              230 (0xE6)

            DATA            CAN enable flag (1bit) , Baud rate code (1byte)

            Direction      To MT

            Valid in         Config State

 

610

620

630

670

680

Avior IMU Avior VRU Avior AHRS Sirius IMU Sirius VRU Sirius AHRS

 

Set the general configuration settings of the CAN-Bus

 

 

Example usage:

 

BAUDRATE

The BAUDRATE is a 1-byte code that specifies at which rate the CAN bus will send data. The CAN peripheral is internally automatically configured to best match a Sample-Point of 70% to 75%.

 

 

CAN config settings

 

Bit(s)

Setting

Size (bit)

Description

Products

31:21

reserved

11

 

 
20 CAN input enabled 1   Sirius, Avior
19:12 Data Bitrate/Baud Code (CAN-FD mode only, see table below) 8   Sirius, Avior
11

120 Ohm termination resistor enabled

0: disabled

1: enabled

1

Activates the 120 Ohm termination resistor between CAN_H and CAN_L if set.

Supported by Xsens Sirius devices with FW v1.2.0 and higher only.

Sirius
10 reserved (for enabling CANopen) 1    
9

CAN-FD enabled (protocol only, also bit 8 required)

0: disabled

1: enabled

1   Sirius, Avior

8

CAN enabled

0: disabled

1: enabled

1

Enable CAN interface if set

Sirius, Avior, 600-series

7:0

Nominal Bitrate/Baud Code (see table below)

8

Bitrate/ Baud Code (see table below)

Sirius, Avior, 600-series

 

 

Available CAN baud codes

CAN Baud code (bps)

BAUD CODE

Note Bit Timing Configuration (Sirius/Avior)*
Prescaler TSEG1 TSEG2 Sync Jump Width
8M 15 (0x0F)  CAN-FD only (Applies to Sirius/Avior only) 1 7 2 4
5M 14 (0x0E) CAN-FD only (Applies to Sirius/Avior only) 1 11 4 4
2M 13 (0x0D) CAN-FD only (Applies to Sirius/Avior only) 1 31 8 4

1M

12 (0x0C)

  4 16 4 4

800k

11 (0x0B)

  10 7 2 2

500k

10 (0x0A)

  16 7 2 2

250k (default)

0 (0x00)

  4 63 16 16

125k

1 (0x01)

  64 7 2 2

100k

2 (0x02)

  80 7 2 2

83k3

3 (0x03)

  12 63 16 16

62k5

4 (0x04)

  128 7 2 2

50k

5 (0x05)

  160 7 2 2

33k3

6 (0x06)

  30 63 16 16

20k

7 (0x07)

  400 7 2 2

10k

8 (0x08)

  800 7 2 2

5k

9 (0x09)

  1600 7 2 2

* Bit timing configuration parameters may be subject to change in future firmware releases. 

 

ReqCanOutputConfig

            MID              232 (0xE8)

            DATA            n/a

            Direction      To MT

            Valid in         Config State

 

610

620

630

670

680

Avior IMU Avior VRU Avior AHRS Sirius IMU Sirius VRU Sirius AHRS

 

Request the general configuration settings of the CANBus.

 

 

SetCanOutputConfig

            MID              232 (0xE8)

            DATA            Xsens CAN data id (7 bits) , ID length flag (1bit), ID mask (29 bits), Output frequency (11 bits)

            Direction      To MT

            Valid in         Config State

 

610

620

630

670

680

Avior IMU Avior VRU Avior AHRS Sirius IMU Sirius VRU Sirius AHRS

 

Set the output configuration of the CAN-Bus.

 

The data is a repeating sequence of Xsens CAN data id, ID length flag (11- or 29-bit length, indicated by the value 0 or 1), ID mask, Output frequency. See the figure below for the message structure, and the table below for the Xsens CAN Data Identifiers.

The maximum number of different output messages that can be configured is 16.

 

If this message is sent without using the Xsens Device API, make sure to serialize to BigEndian prior to sending the message. Also, adhere to the block size.

SetCanOutputConfig structure

 

 

CAN Output Configuration

 

Block

Bit(s)

Description

1

14:8

Xsens internal Can Data Identifier

1 7:1 reserved
1 0

ID length

0: 11-bit identifier

1: 29-bit identifier

2 31:29 reserved
2 28:0 Can Message ID for given Data set
3 15:11 reserved

3

10:0

Output Frequency

 

 

 

Xsens CAN Identifiers

 

ID

XsCanDataIdentifier

0x000

XCDI_Invalid

0x001

XCDI_Error

0x002

XCDI_Warning

0x005

XCDI_SampleTime

0x006

XCDI_GroupCounter

0x007

XCDI_UtcTime

0x011

XCDI_StatusWord

0x021

XCDI_Quaternion

0x022

XCDI_EulerAngles

0x023

XCDI_RotationMatrix

0x031

XCDI_DeltaV

0x032

XCDI_RateOfTurn

0x033

XCDI_DeltaQ

0x034 XCDI_Acceleration
0x035 XCDI_FreeAcceleration
0x041 XCDI_MagneticField
0x051 XCDI_Temperature
0x052 XCDI_BaroPressure
0x061 XCDI_RateOfTurnHR
0x062 XCDI_AccelerationHR
0x071 XCDI_LatLon
0x072 XCDI_AltitudeEllipsoid
0x073 XCDI_PositionEcef_X
0x074 XCDI_PositionEcef_Y
0x075 XCDI_PositionEcef_Z
0x076 XCDI_VelocityXYZ
0x079 XCDI_GnssReceiverStatus
0x07A XCDI_GnssReceiverDop
0x0AA XCCI_DeviceIdReq* 
0x0AB XCCI_DeviceId*
0x0AC XCCI_GotoConfig*
0x0AD XCCI_GotoMeasurement*
0x0AE XCCI_Reset*
0x0AF XCCI_IccCommand*
0x0B0 XCCI_IccCommandAck*

 

 

*Only available for Xsens Avior and Xsens Sirius with firmware 1.4.0 and above.

 

Create your own Knowledge Base