跳到主要内容

同步管理器 (SM) 与 FMMU

新手知识

SM 和 FMMU 是 EtherCAT 从站芯片内部的硬件模块,主站会根据 ESI 文件自动配置,你通常不需要手动设置。了解它们的作用有助于排查问题,但不影响日常开发。简单理解:SM = 数据缓冲区管理,FMMU = 地址映射。

同步管理器 (SyncManager)

SM 保证数据一致性,防止读写冲突:

SM类型方向用途
SM0Mailbox主站→从站Mailbox 输出
SM1Mailbox从站→主站Mailbox 输入
SM2Buffered/PDO主站→从站过程数据输出
SM3Buffered/PDO从站→主站过程数据输入

SM 的工作模式

同步管理器支持两种缓冲模式:

模式说明适用场景
Buffered (三缓冲)写入不阻塞读取,始终提供最新数据PDO 过程数据(SM2/SM3)
Mailbox (握手)写入后锁定,读取后释放邮箱通信(SM0/SM1)

SM 与 PDO 通道的关系

  • SM2 管理输出通道(主站→从站),接收 RxPDO 数据
  • SM3 管理输入通道(从站→主站),发送 TxPDO 数据
  • SM 自动处理数据一致性,应用层读写不会与总线通信冲突

FMMU (现场总线内存管理单元)

FMMU 的作用

FMMU (Fieldbus Memory Management Unit) 实现逻辑地址到物理地址的映射,使主站可以用统一的逻辑地址空间访问所有从站的数据,无需关心每个从站的物理内存地址。

为什么需要 FMMU?

在没有 FMMU 的情况下,主站需要逐个从站发送读写命令(使用物理地址),效率低下。FMMU 将多个从站的数据映射到一个连续的逻辑地址空间,主站只需一次读写操作即可访问所有从站数据。

FMMU 映射参数

每个 FMMU 通道包含以下配置:

参数说明
逻辑起始地址在逻辑地址空间中的起始位置
数据长度映射的数据大小(字节)
逻辑起始位位级别的起始偏移(0-7)
逻辑结束位位级别的结束偏移(0-7)
物理起始地址ESC 内部的物理内存地址
方向读(输入)或写(输出)

FMMU 与 SM 的协作

FMMU 和 SM 配合工作,完成从逻辑地址到从站应用层的完整数据通路:

主站发送帧 (逻辑地址 LRW)

FMMU: 逻辑地址 → 物理地址(ESC 内部)

SM: 物理地址 → 缓冲区管理(保证数据一致性)

从站应用层读写数据
自动配置

在大多数情况下,SM 和 FMMU 由主站根据 ESI 文件自动配置,用户无需手动设置。Darra EtherCAT Master 在状态切换到 PREOP → SAFEOP 时会自动完成所有 SM 和 FMMU 的配置。

SDK 参考
  • PDO 数据访问方式详见 通信类型
  • SM/FMMU 配置由主站自动完成,参考:SDK 文档其他语言
  • 使用 DARRA EtherCAT Master Tools 可视化查看 SM 和 FMMU 配置