FMMU

FMMU란

FMMUFieldbus Memory Management Unit는 EtherCAT 슬레이브 장치에서 프로세스 데이터의 효율적인 교환과 메모리 매핑을 담당하는 핵심 하드웨어 모듈입니다. EtherCAT의 고속 통신 성능을 실현하기 위해서는 각 슬레이브의 메모리와 EtherCAT 프레임 사이의 효율적인 데이터 매핑이 필수적이며, FMMU는 이러한 역할을 수행합니다.

FMMU의 역할

논리적 메모리 주소 매핑

FMMU는 EtherCAT 프레임의 논리적 주소와 슬레이브의 물리적 메모리 주소를 매핑합니다. 이를 통해 마스터는 전체 네트워크를 하나의 대형 메모리 공간으로 간주하고, 각 슬레이브의 특정 메모리 영역에 직접 접근할 수 있습니다.

  • EtherCAT 프레임 내의 오프셋: 마스터는 EtherCAT 프레임 내의 특정 오프셋을 통해 슬레이브의 데이터에 접근합니다.
  • 슬레이브 내부 메모리 주소: FMMU는 이 오프셋을 슬레이브 내부의 정확한 메모리 주소로 변환합니다.

비트 단위의 세밀한 매핑

FMMU는 바이트 단위뿐만 아니라 비트 단위의 매핑도 지원합니다. 이는 다양한 크기의 프로세스 데이터를 효율적으로 전송하고, 메모리 공간을 최적화하는 데 도움이 됩니다.

  • 비트 오프셋: 특정 데이터가 바이트 경계를 넘나들 때, 비트 오프셋을 사용하여 정확한 위치에 매핑할 수 있습니다.
  • 데이터 패킹: 여러 작은 데이터 필드를 하나의 바이트나 워드에 패킹하여 전송 효율을 높입니다.

다중 FMMU의 활용

슬레이브 장치는 여러 개의 FMMU를 갖출 수 있으며, 각 FMMU는 서로 다른 메모리 영역이나 데이터 유형을 매핑하는 데 사용됩니다.

  • 프로세스 데이터와 메일박스 데이터의 분리: 프로세스 데이터와 메일박스 데이터에 각각 다른 FMMU를 사용하여 독립적인 매핑과 관리를 수행합니다.
  • 입력과 출력의 분리: 입력 데이터와 출력 데이터를 별도의 FMMU로 매핑하여 데이터 흐름을 명확히 구분합니다.

FMMU의 동작 방식

주소 변환 및 접근 제어

FMMU는 EtherCAT 프레임의 논리적 주소를 슬레이브 내부의 물리적 주소로 변환하며, 동시에 접근 권한을 제어합니다.

  • 읽기/쓰기 권한 설정: 각 FMMU는 매핑된 메모리 영역에 대한 읽기 및 쓰기 권한을 정의합니다. 이를 통해 불필요한 메모리 접근이나 데이터 손상을 방지합니다.
  • 활성화 및 비활성화: FMMU는 필요에 따라 활성화 또는 비활성화될 수 있으며, 이는 슬레이브의 동작 모드나 설정에 따라 변경됩니다.

데이터 일관성 유지

FMMU는 SyncManager와 협력하여 데이터의 일관성을 보장합니다. SyncManager는 메모리 영역의 접근을 관리하고, FMMU는 해당 영역의 정확한 매핑을 담당합니다.

  • 원자적 데이터 교환: FMMU는 데이터 교환이 중단 없이 완료되도록 지원하여, 부분적인 데이터 업데이트로 인한 오류를 방지합니다.
  • 동기화된 데이터 전송: 분산 클럭Distributed Clocks과 함께 작동하여 슬레이브 간의 데이터 전송이 정확한 타이밍에 이루어지도록 합니다.

프로토콜 오버헤드 감소

FMMU를 활용하면 EtherCAT 프레임 내에서 슬레이브별로 별도의 헤더나 주소 지정 없이도 직접적으로 메모리 매핑이 가능하므로, 프로토콜 오버헤드를 최소화할 수 있습니다.

  • 단일 프레임 내 다중 슬레이브 접근: 마스터는 하나의 EtherCAT 프레임을 통해 여러 슬레이브의 데이터에 동시에 접근할 수 있습니다.
  • 고속 데이터 처리: 불필요한 데이터 복사나 추가적인 통신 없이 직접 메모리 접근이 가능하므로, 통신 지연을 최소화합니다.

FMMU 설정 및 구성

매핑 엔트리의 정의

각 FMMU는 매핑 엔트리를 통해 매핑할 메모리 영역과 관련된 정보를 설정합니다.

  • 논리 시작 주소Logical Start Address: EtherCAT 프레임 내에서 매핑이 시작되는 주소입니다.
  • 길이Length: 매핑할 데이터의 길이를 바이트 또는 비트 단위로 지정합니다.
  • 물리적 시작 주소Physical Start Address: 슬레이브 내부 메모리에서 매핑이 시작되는 주소입니다.
  • 비트 오프셋Bit Offset: 바이트 내에서의 시작 비트를 지정하여 비트 단위 매핑을 지원합니다.

접근 속성의 설정

  • 읽기 권한Read Enable: 매핑된 영역에 대한 읽기 접근을 허용합니다.
  • 쓰기 권한Write Enable: 매핑된 영역에 대한 쓰기 접근을 허용합니다.
  • 메모리 타입 지정: 매핑 대상이 입력 메모리인지 출력 메모리인지 지정합니다.

FMMU와 SyncManager의 협력

FMMU와 SyncManager는 EtherCAT 슬레이브에서 데이터 교환의 핵심적인 역할을 수행하며, 서로 협력하여 통신의 효율성과 안정성을 높입니다.

데이터 흐름 관리

  • FMMU: EtherCAT 프레임과 슬레이브 메모리 간의 주소 매핑을 담당하여, 데이터가 정확한 위치에 전달되도록 합니다.
  • SyncManager: 데이터의 접근 권한과 타이밍을 관리하여, 마스터와 슬레이브 간의 동시 접근으로 인한 충돌을 방지합니다.

데이터 일관성 및 무결성 보장

  • 원자적 전송 지원: FMMU는 데이터의 부분적인 업데이트를 방지하고, 전체 데이터 세트가 일관되게 교환 되도록 지원합니다.
  • 상태 관리: SyncManager는 데이터 전송의 상태를 모니터링하고, 오류 발생 시 적절한 조치를 취합니다.

구현 시 고려 사항

정확한 매핑 설정

  • 주소 충돌 방지: 각 FMMU의 매핑 영역이 겹치지 않도록 주의하여 설정해야 합니다.
  • 데이터 정렬: 효율적인 데이터 전송을 위해 메모리 주소와 데이터 크기를 적절히 정렬합니다.

시스템 확장성

  • FMMU 수 제한: 슬레이브 장치에 따라 지원하는 FMMU의 수가 제한될 수 있으므로, 시스템 설계 시 이를 고려해야 합니다.
  • 유연한 매핑 구조: 향후 시스템 확장이나 변경에 대비하여 매핑 설정을 유연하게 구성합니다.

성능 최적화

  • 프로세스 데이터와 메일박스 데이터의 분리: 주기적인 프로세스 데이터와 비주기적인 메일박스 데이터를 분리하여 통신 효율을 높입니다.
  • 비트 단위 매핑의 신중한 사용: 비트 단위 매핑은 메모리 공간을 절약하지만, 처리 오버헤드가 발생할 수 있으므로 필요에 따라 사용합니다.