AFI Electronics
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • FirstPage
  • ADC
  • TDC
  • Logical
  • Interfaces
  • Systems
  • Documentation
  • Contacts
  • PrivatePage
  • RecentChanges
PCI Digitizer, VME TDC, PCI VME Master, Data Acquisition System

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

  • MStream_2_3

M-Stream 2.3

* 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 code

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).

Fragment offset code is number of 64-byte blocks. Fragmentation is performed at 64-byte block boundary (compare to 8 bytes in IP fragmentation).

Fragmentation supports maximum of 64*2^16 = 4 MByte data payloads.

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

Flags:

  • LF - last part of current fragment (<Fragment length>+<Fragment offset code> = <Full length of this fragment>)

  • EVC - last part of current event (One sets with LF flag for last channel in current event)
  • ACK - acknowledge flag: is set in MStream receiver program to inform device of reciecing package which contains fragment with corresponding FragmentId and FragmentOffset

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 code

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 code

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 (1)

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 ver. 2.0. All following word will be proceeded as Fragment 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