LPMS3 CAN Bus data parsing

LPMS CAN sensors can be configurde to output sensor data in either CANOpen or sequential CAN transmission mode to hte CAN Bus. The following sections explains the details of the output data.

CANOpen and Sequential CAN Protocols

In CANOpen and sequential CAN transmission modes, two or more output words of measurement data can be assigned to a CAN channel. In sequential CAN mode the channel addressing can be individually controlled. In CANOpen mode, 4 TPDO (Transmission Data Process Object) messages and a heartbeat message are transmitted.

NOTE: In CANOpen mode a heartbeat message is transmitted with a frequency between 0.1 Hz and 2 Hz.

In CANOpen mode, the message base address is calculated in the following way:
CAN ID1 = Base CAN ID = Start ID + IMU ID
CAN ID2 = CAN ID1 + 100h
CAN ID3 = CAN ID2 + 100h
CAN ID4 = CAN ID3 + 100h
CAN ID5 = 700h + IMU ID

Note: In CANOpen mode, Start ID is fixed at 180h

In sequential CAN mode, the message base address is calculated in the following way:
CAN ID1 = Base CAN ID = Start ID + IMU ID
CAN ID2 = CAN ID1 + 1h
CAN ID3 = CAN ID2 + 1h
CAN ID4 = CAN ID3 + 1h

NOTE: In sequential CAN mode, Start ID is set to 514h (1300d) by default. This value can be changed via LpmsControl2 interface

CAN Data Output Format

Each CAN message can be assigned multiple channels representing the sensor data. The number of assignable sensor data will depend on the data output precision, i.e. 32bit data or 16bit data output. By utilizing 4 CAN message with 16bit sensor data precision, the sensor can output a maximum of 16 different sensor data for a given instance.

CAN channel mapping (16bit data output)

CANOpen ID

Sequential CAN

Output data

 

 

 

181h

515h

channel 1

channel 2

channel 3

channel 4

281h

516h

channel 5

channel 6

channel 7

channel 8

381h

517h

channel 9

channel 10

channel 11

channel 12

481h

518h

channel 13

channel 14

channel 15

channel 16

701h

-

  • (heartbeat)

 

 

 

CAN channel mapping (32bit data output)

CANOpen ID

Sequential CAN

Output data

 

181h

515h

channel 1

channel 2

281h

516h

channel 3

channel 4

381h

517h

channel 5

channel 6

481h

518h

channel 7

channel 8

701h

-

  • (heartbeat)

 

CAN Mapping

Each channel can be assigned different sensor data by changing the CAN mapping via LpmsControl2. The table below summarizes the available sensor output data.

Mapping index

Data

Unit

16bit data scaling factor

0

Not assigned

 

 

1

Raw Accelerometer X

g

1000

2

Raw Accelerometer Y

g

1000

3

Raw Accelerometer Z

g

1000

4

Calibrated Accelerometer X

g

1000

5

Calibrated Accelerometer Y

g

1000

6

Calibrated Accelerometer Z

g

1000

7

Raw GyroI X

Not available

8

Raw GyroI Y

Not available

9

Raw GyroI Z

Not available

10

Raw GyroII X

dps or rad/s

10 (dps), 100 (rad/s)

11

Raw GyroII Y

dps or rad/s

10 (dps), 100 (rad/s)

12

Raw GyroII Z

dps or rad/s

10 (dps), 100 (rad/s)

13

Bias calibrated GyroI X

Not available

14

Bias calibrated GyroI Y

Not available

15

Bias calibrated GyroI Z

Not available

16

Bias calibrated GyroII X

dps or rad/s

10 (dps), 100 (rad/s)

17

Bias calibrated GyroII Y

dps or rad/s

10 (dps), 100 (rad/s)

18

Bias calibrated GyroII Z

dps or rad/s

10 (dps), 100 (rad/s)

19

Alignment calibrated GyroI X

Not available

20

Alignment calibrated GyroI Y

Not available

21

Alignment calibrated GyroI Z

Not available

22

Alignment calibrated GyroII X

dps or rad/s

10 (dps), 100 (rad/s)

23

Alignment calibrated GyroII Y

dps or rad/s

10 (dps), 100 (rad/s)

24

Alignment calibrated GyroII Z

dps or rad/s

10 (dps), 100 (rad/s)

25

Raw magnetometer X

uT

100

26

Raw magnetometer Y

uT

100

27

Raw magnetometer Z

uT

100

28

Calibrated magnetometer X

uT

100

29

Calibrated magnetometer Y

uT

100

30

Calibrated magnetometer Z

uT

100

31

Angular Velocity X

dps or rad/s

10 (dps), 100 (rad/s)

32

Angular Velocity Y

dps or rad/s

10 (dps), 100 (rad/s)

33

Angular Velocity Z

dps or rad/s

10 (dps), 100 (rad/s)

34

Quaternion W

 

10000

35

Quaternion X

 

10000

36

Quaternion Y

 

10000

37

Quaternion Z

 

10000

38

Euler X

deg or rad

100 (deg), 10000 (rad)

39

Euler X

deg or rad

100 (deg), 10000 (rad)

40

Euler Z

deg or rad

100 (deg), 10000 (rad)

41

Linear Acceleration X

g

1000

42

Linear Acceleration Y

g

1000

43

Linear Acceleration Z

g

1000

44

Pressure

kPa

100

45

Temperature

°C

100

 

Example

Assuming default sensor settings, the CAN bus settings and corresponding data output are shown below:

Here we can decode the data for CAN-ID 181h as follow:

181h

Byte [0:1]

Byte [2:3]

Byte [4:5]

Byte [6:7]

181h

Byte [0:1]

Byte [2:3]

Byte [4:5]

Byte [6:7]

Byte

22 FF

39 00

C9 03

FA FF

Integer value

-222

57

969

-6

Corresponding data

Acc Calibrated X

Acc Calibrated Y

Acc Calibrated Z

GyroII Align. Calibrated X

Scaled data

-0.222g

-0.057g

0.969g

-0.6dps

Like wise, the raw data can be decoded for 281h, 381h, 481h as follow:

281h

Byte [0:1]

Byte [2:3]

Byte [4:5]

Byte [6:7]

281h

Byte [0:1]

Byte [2:3]

Byte [4:5]

Byte [6:7]

Byte

FF FF

00 00

75 07

75 09

Integer value

-1

1

1909

2421

Corresponding data

GyroII Align. Calibrated Y

GyroII Align. Calibrated Z

Mag Calibrated X

Mag Calibrated Y

Scaled data

-0.1dps

0.1dps

19.09uT

24.21uT

381h

Byte [0:1]

Byte [2:3]

Byte [4:5]

Byte [6:7]

381h

Byte [0:1]

Byte [2:3]

Byte [4:5]

Byte [6:7]

Byte

DD 02

4F 01

0D 05

73 FB

Integer value

733

335

1293

-1165

Corresponding data

Mag Calibrated Z

Euler X

Euler Y

Euler Z

Scaled data

7.33uT

3.35deg

12.93deg

-11.65deg

481h

Byte [0:1]

Byte [2:3]

Byte [4:5]

Byte [6:7]

481h

Byte [0:1]

Byte [2:3]

Byte [4:5]

Byte [6:7]

Byte

96 26

93 01

42 04

EF FB

Integer value

9878

403

1090

-1041

Corresponding data

Quat W

Quat X

Quat Y

Quat Z

Scaled data

0.9878

0.0403

0.109

-0.1041

 

 

 

Â