Sync Managers and Process Data Exchange

The EtherCAT Slave Controller uses Sync Managers to establish a consistent exchange of acyclic and cyclic data. A Sync Manager guards a RAM area in the ESC. It can be configured in Mailbox Mode and in 3-buffer-mode.

The Mailbox Mode is for acyclic data exchange between Master and Slave. One side can read or write the RAM area and has to wait until the other side has written or read this area. Thus two Mailboxes are required for data exchange. Usually Sync Manager 0 and 1 are used for this.

The 3-buffer mode is used for cyclic data exchange. One buffer can be written by one side while another buffer is read by the other side. The 3rd buffer is used as a spare buffer is one side is faster than the other one. Again two Mailboxes are required to allow process data transfer in both directions. Usually Sync Managers 2 and 3 are used for this.

Sync Manager

Name

Direction

Master view

Slave view

ESC Registers

PDO

Sync Manager

Name

Direction

Master view

Slave view

ESC Registers

PDO

0

Mailbox Write

M → S

Output

Consumer

0x800 - 0x807

 

1

Mailbox Read

S → M

Input

Producer

0x807 - 0x80F

 

2

Process Data Write

M → S

Output

Consumer

0x810 - 0x817

RxPDO

3

Process Data Read

S → M

Input

Producer

0x818 - 0x81F

TxPDO

Cyclic data exchange between Master and Slave

The ESC has Fieldbus Memory Management Units (FMMU) that allow mapping logical addresses into physical memory and vice versa. The FMMU allows bit wise mapping, i.e. it is not bound to byte borders. Also it can by configured to only map a certain number of bits of the last byte. This way the the EtherCAT Master can map the cyclic data of all Slaves into one continuous logical address space.
Usually two FMMUs are used to map the Outputs and Inputs of a Slave.
Additionally a third FMMU can be used to map the Status bit of the Mailbox read by the Master into a logical address space. This way the Master can collect the Mailbox Status of all Slaves to check if new content is available.

An example configuration is shown in the following table.

FMMU

Log. Start Address

Phys. Start Address

Size

access

Description

FMMU

Log. Start Address

Phys. Start Address

Size

access

Description

0

0x01000000.0

0x1000.0

12 Byte

wr

write process data to RAM in ESC via SM2

1

0x09000000.1

0x080d.0

1 Byte

rd

read SM1 Status (is there data in the Read Mailbox)

2

0x01000000.0

0x1100.0

12 Byte

rd

read process data from RAM in ESC via SM3

As you can see in the table above two FMMUs map the same logical address to two different physical addresses and use different access directions. The physical addresses are guarded by the Output Sync Manager and the Input Sync Manager.
The Master can send an EtherCAT Datagram with a "Logical Read/Write" command to the Slave. This datagram has the start address and the cyclic data, i.e. the frame contains the logical memory.
If this frame is received by a slave the FMMU will read the assigned logical memory area and map it to the RAM area of the Output Sync Manager. Then it will read the the memory area guarded by the Input Sync Manager and map it to the assigned logical memory, i.e. it will write it into the frame.
Since the last Slave in an EtherCAT segment returns the frame received from the Master, the Master can use one single EtherCAT Datagram to write all Outputs of the Slaves and read all Inputs of the Slaves.

On the Data Link Layer process data is handled as an octet stream. On the the Application Layer this octet stream is parsed to/from objects of the Object Dictionary. There are PDO Mapping Objects that define what objects create a PDO. The PDO Assignment Objects define which PDO belongs to what Sync Manager. Thus the combination of PDO Mapping Objects and PDO Assignment Objects define the layout of the process data and the size of the Input and Output Sync Managers. For more details please read the corresponding section in the EtherCAT User Manual.