CAN/CAN Open

CANOpen PDO Mapping과 동작 방식

임베디드 친구 2025. 7. 20. 20:58
728x90
반응형

PDO Mapping과 동작 방식

CANOpen 프로토콜에서 Process Data Object(PDO)는 실시간 데이터 교환을 위해 사용되는 주요 통신 객체입니다. PDO를 활용하면 슬레이브 장치 간의 데이터 전송을 효율적으로 수행할 수 있으며, 이를 통해 짧은 전송 지연과 높은 데이터 처리 속도를 제공합니다. 본 장에서는 PDO Mapping의 개념과 동작 방식을 상세히 분석합니다.

PDO 개요

PDO는 CANOpen 네트워크에서 빠른 데이터 교환을 위해 설계된 메시지이며, 일반적으로 센서 데이터, 상태 정보, 제어 명령과 같은 실시간 정보를 전송하는 데 사용됩니다. PDO는 두 가지 유형으로 구분됩니다.

  • Transmit PDO(TPDO): 노드가 주기적으로 혹은 특정 이벤트 발생 시 데이터를 전송하는 객체
  • Receive PDO(RPDO): 노드가 다른 노드로부터 데이터를 수신하여 내부적으로 처리하는 객체

각 PDO는 최대 8바이트의 데이터를 포함할 수 있으며, 필요에 따라 여러 개의 신호를 하나의 PDO로 매핑할 수 있습니다.

PDO Mapping 개념

PDO Mapping은 Object Dictionary의 여러 항목을 하나의 PDO 메시지로 구성하는 방법을 의미합니다. CANOpen에서는 하나의 PDO에 여러 개의 변수(예: 센서 값, 상태 플래그 등)를 포함할 수 있으며, 이러한 변수를 Object Dictionary의 특정 엔트리와 연결하는 과정을 "Mapping"이라고 합니다.

PDO Mapping은 다음 두 가지 방식으로 이루어집니다.

  1. Static Mapping (정적 매핑)

    • 미리 정의된 방식으로 PDO에 매핑이 설정됨
    • Object Dictionary에서 변경할 수 없음
    • 고정된 데이터 전송 구조를 유지함
  2. Dynamic Mapping (동적 매핑)

    • 런타임 동안 PDO의 데이터 매핑을 변경 가능
    • Object Dictionary 내에서 매핑을 수정할 수 있음
    • 유연한 데이터 전송 구조를 제공함

PDO Mapping 절차

PDO Mapping은 Object Dictionary 내의 특정 엔트리를 설정하여 이루어지며, 다음과 같은 단계로 진행됩니다.

  1. PDO Mapping Parameter 확인

    • Object Dictionary의 0x1A00~0x1AFF (Transmit PDO Mapping)
    • Object Dictionary의 0x1600~0x16FF (Receive PDO Mapping)
    • 해당 항목에서 매핑 가능한 데이터 항목을 확인함
  2. Mapping Entry 설정

    • 각 데이터 항목은 32비트 값으로 저장됨
    • 16비트는 Object Dictionary Index, 8비트는 Sub-index, 나머지 8비트는 데이터 길이를 나타냄
    • 예를 들어, 0x2000:01에 16비트 데이터를 매핑하려면 0x20000110 값이 설정됨
  3. PDO 활성화 및 전송 방식 설정

    • Transmission Type 설정: 주기적 전송(사이클릭), 이벤트 기반 전송 등
    • Inhibit Time / Event Timer 설정: 전송 간격 제한 또는 타이머 기반 전송 설정
    • CAN Identifier 설정: PDO가 사용할 CAN 메시지 ID 할당
  4. PDO 매핑 완료 및 저장

    • 매핑 완료 후 해당 설정을 비휘발성 메모리에 저장하여 장치가 재부팅될 때 유지됨

PDO의 동작 방식

PDO는 다음과 같은 방식으로 동작합니다.

  1. TPDO 전송 과정

    • 마스터 또는 슬레이브 노드는 사전 정의된 조건에 따라 TPDO를 전송함
    • 예를 들어, 센서 값이 특정 범위를 초과하면 TPDO 전송이 발생할 수 있음
    • TPDO 전송 후 모든 구독된 노드에서 데이터를 즉시 수신하여 처리함
  2. RPDO 수신 과정

    • 네트워크의 다른 노드에서 RPDO가 수신되면, 매핑된 Object Dictionary 항목이 자동으로 업데이트됨
    • 예를 들어, 모터 제어 노드가 새로운 속도 명령을 수신하면, RPDO를 통해 직접 속도 값이 업데이트됨
  3. 동기화(SYNC) 기반 PDO 전송

    • 특정한 CAN 메시지(SYNC 메시지)가 전송되면 해당 메시지를 수신한 노드들이 동기화된 TPDO를 전송함
    • 네트워크에서 주기적인 동기화를 통해 데이터의 일관성을 유지함

결론

PDO Mapping을 이해하고 올바르게 설정하면 CANOpen 네트워크에서 실시간 데이터를 효율적으로 교환할 수 있습니다. 특히 동적 매핑을 활용하면 유연한 데이터 관리가 가능하며, 다양한 응용 분야에서 활용할 수 있습니다.

728x90
반응형