M-Stream 2.2

* MStream_ChangeLog

M-Stream data has packet structure. Large packets may be split to fragments with same Packet ID to fit in encapsulating frame.

M-Stream 2.0 defines M-Stream Header, Event Header and User Payload data objects. In fragmentation process, M-Stream Header is persistent and should be present in all fragments. Event Header should be present in first fragment only.

M-Stream Header

word #

byte offset

bits

description

0

0

31:24

Device ID

23:18

Flags

17:16

Subtype

15:0

Fragment length

1

4

31:16

Packet ID

15:0

Fragment offset (bytes)

Flags bits

bit

value

5

LF(last fragment)

4

EVC (Event Complete)

3

FIN (not used yet)

2

SYN (not used yet)

1

RST (not used yet)

0

ACK

Fragment length is defined as number of bytes starting at offset 8. For M-Stream frame of size N 32-bit words, fragment length value is 4*(N-2).

Fragmentation supports maximum of 2^16 = 64 kByte data payloads.

Packet ID is 16-bit number (0-65535).

Flags:

Subtype 0: Trigger and User Data

M-Stream Header

word #

byte offset

bits

description

0

0

31:24

Device ID

23:18

Flags

17:16

Subtype (0)

15:0

Fragment length, 4*(N-2)

1

4

31:16

Packet ID

15:0

Fragment offset (bytes)

Subtype 0 Header

2

8

31:0

Device serial number

3

12

31:24

Subtype and custom bits

23:0

Event number

M-Stream Subtype 0 Payload

4

16

31:0

Event timestamp, TAI seconds

5

20

31:2

Event timestamp, TAI nanoseconds

1:0

Event timestamp, TAI flags

6

24

31:0

User defined payload

...

N-1

4*(N-1)

31:0

TAI flags: 2 - timecode is valid, otherwise invalid.

Subtype 1: User Data, Channel-Based Readout

M-Stream Header

word #

byte offset

bits

description

0

0

31:24

Device ID

23:18

Flags

17:16

Subtype (1)

15:0

Fragment length, 4*(N-2)

1

4

31:16

Packet ID

15:0

Fragment offset (bytes)

Subtype 1 Header

2

8

31:0

Device serial number

3

12

31:24

Channel number

23:0

Event number

M-Stream Subtype 1 Payload

4

16

31:0

User defined payload

...

N-1

4*(N-1)

31:0

Subtype 2: User Data, Time Slice Based Readout

M-Stream Header

word #

byte offset

bits

description

0

0

31:24

Device ID

23:18

Flags

17:16

Subtype (2)

15:0

Fragment length, 4*(N-2)

1

4

31:16

Packet ID

15:0

Fragment offset (bytes)

Subtype 2 Header

2

8

31:0

Device serial number

3

12

31:0

reserved

M-Stream Subtype 2 Payload

4

24

31:0

User defined payload

...

N-1

4*(N-1)

31:0

Acknowledge

Acknowledge package is similar to standard M-Stream package. First 32-bit word should have acknowledge bit up 22nd bit, as described in Flag field in M-Stream 2.0. All following word will be proceeded as Packet Id and Fragment Offset pairs. One package can contain one acknowledge pair (by default) or several (request M-Stream configuration register in M-Link CSR).


MLink MStream RawData

MStream_2_2 (last edited 2024-01-19 09:31:06 by sav)