SDO (Service Data Object)와 PDO (Process Data Object)
SDO (Service Data Object)
SDO(Service Data Object)는 CANOpen 프로토콜에서 노드 간에 설정 데이터나 진단 정보를 송수신할 때 사용되는 통신 객체입니다. SDO를 이용하면 마스터 장치는 슬레이브 장치의 Object Dictionary(OD)에 저장된 데이터를 읽거나 쓸 수 있습니다. 이는 장치의 설정값을 변경하거나 특정 상태를 조회하는 데 유용합니다.
SDO 통신 방식
SDO 통신은 클라이언트-서버 모델을 따르며, 클라이언트(일반적으로 마스터 장치)는 서버(슬레이브 장치)에게 특정 데이터를 요청하거나 변경하는 방식으로 동작합니다. SDO 전송은 다음 두 가지 방식으로 이루어집니다.
- Expedited Transfer: 데이터 크기가 4바이트 이하일 때 사용되며, 빠르고 간단한 전송이 가능합니다.
- Segmented Transfer: 데이터 크기가 4바이트를 초과할 경우, 데이터를 여러 개의 메시지로 분할하여 전송합니다.
SDO 메시지 구조
SDO 메시지는 COB-ID와 8바이트 데이터 필드로 구성되며, 주요 필드는 다음과 같습니다.
- Command Byte: SDO 전송 명령 및 상태 정보를 포함합니다.
- Index & Sub-index: Object Dictionary에서 특정 데이터를 지정하는 인덱스 값입니다.
- Data: 전송되는 실제 데이터입니다.
SDO 통신 과정
- SDO Initiate Request: 클라이언트가 서버에게 특정 데이터 요청을 보냅니다.
- SDO Response: 서버가 해당 요청을 처리하고 응답을 보냅니다.
- Segmented Transfer (필요한 경우): 데이터가 4바이트를 초과하면 여러 개의 메시지로 나누어 전송합니다.
- SDO Acknowledge: 모든 데이터가 전송되면 클라이언트는 완료 확인 메시지를 보냅니다.
SDO는 주로 설정 데이터와 비주기적 정보를 주고받는 데 사용되며, 상대적으로 낮은 속도로 동작합니다.
PDO (Process Data Object)
PDO(Process Data Object)는 CANOpen 네트워크에서 실시간 데이터를 빠르게 교환하기 위한 통신 객체입니다. 이는 주기적으로 또는 이벤트 기반으로 전송되며, 센서 데이터, 제어 명령 등과 같은 고속 데이터 전송에 적합합니다.
PDO 통신 방식
PDO는 SDO와 달리 요청/응답 방식이 아니라 브로드캐스트 방식으로 데이터를 전송합니다. 하나의 PDO 메시지는 여러 노드가 동시에 수신할 수 있으며, CAN 버스의 효율성을 극대화합니다.
PDO는 전송 방식에 따라 다음과 같이 구분됩니다.
- TPDO (Transmit PDO): 노드가 데이터를 전송할 때 사용합니다.
- RPDO (Receive PDO): 노드가 데이터를 수신할 때 사용합니다.
PDO 메시지 구조
PDO 메시지는 COB-ID와 최대 8바이트의 데이터 필드로 구성되며, 일반적으로 데이터 페이로드만 포함하여 SDO보다 간결합니다.
- COB-ID: PDO의 식별자로, 메시지의 우선순위를 결정합니다.
- Data: 최대 8바이트의 프로세스 데이터가 포함됩니다.
PDO 매핑
PDO는 특정 Object Dictionary 항목과 연동되며, 이를 PDO 매핑이라고 합니다. PDO 매핑을 통해 여러 개의 OD 엔트리를 하나의 PDO 메시지에 포함할 수 있습니다.
PDO 매핑은 정적 매핑(Static Mapping)과 동적 매핑(Dynamic Mapping) 방식으로 설정할 수 있습니다.
- 정적 매핑: 제조사에 의해 사전 설정되며 변경할 수 없습니다.
- 동적 매핑: 네트워크 설정 중 변경이 가능하며, SDO를 통해 설정할 수 있습니다.
PDO 전송 유형
PDO는 전송 유형에 따라 다양한 동작 방식을 가질 수 있습니다.
- 동기식 PDO (Synchronous PDO): 주기적으로 데이터가 전송되며, 특정 이벤트나 타이밍 신호에 의해 동기화됩니다.
- 비동기식 PDO (Asynchronous PDO): 특정 이벤트 발생 시 즉시 전송됩니다. 예를 들어, 센서 값이 일정 임계값을 초과할 경우 자동 전송됩니다.
PDO와 SDO의 비교
특징 | SDO | PDO |
---|---|---|
통신 방식 | 요청/응답(Client-Server) | 브로드캐스트(Publish-Subscribe) |
데이터 크기 | 제한 없음 (Segmented 가능) | 최대 8바이트 |
전송 속도 | 상대적으로 느림 | 빠름 (실시간 처리 가능) |
사용 목적 | 설정값 변경, 진단 데이터 전송 | 센서 데이터, 제어 신호 전송 |
메시지 크기 | 비교적 큼 | 작음 |
결론
SDO는 장치의 설정 및 비주기적인 데이터 전송에 사용되며, 클라이언트-서버 모델을 따릅니다. 반면, PDO는 실시간 데이터를 신속하게 전달하기 위한 메커니즘으로, 브로드캐스트 방식으로 동작하여 빠른 데이터 처리가 가능합니다.
CANOpen 시스템에서 SDO와 PDO는 각각의 역할을 수행하며, 최적의 데이터 통신을 위해 함께 활용됩니다. 시스템 설계 시, SDO를 이용해 초기 설정을 수행하고, PDO를 통해 실시간 데이터를 주고받는 방식으로 최적화할 수 있습니다.
'CAN > CAN Open' 카테고리의 다른 글
CANOpen Heartbeat & Node Guarding (0) | 2025.07.21 |
---|---|
CANOpen PDO Mapping과 동작 방식 (0) | 2025.07.20 |
CANOpen 데이터 타입 및 인덱스 구조 (0) | 2025.07.18 |
CANOpen Object Dictionary 개념 및 역할 (0) | 2025.07.17 |
CANOpen 프로토콜 상세 분석 (0) | 2025.07.17 |