로봇 소프트웨어 구조설계로봇미들웨어개발로봇 미들웨어 사양 분석
출제기준 좌표2·1·1·2
2과목 · 로봇 소프트웨어 구조설계

로봇 구성 요소 간 통신 프로토콜

로봇미들웨어개발로봇 미들웨어 사양 분석
# 로봇소프트웨어구조설계
01

📌 개요

  • 로봇 = 센서·제어기·모터 드라이버·상위 컴퓨터가 서로 데이터를 주고받아야 움직이는 분산 시스템, 그 대화의 규칙이 통신 프로토콜(Communication Protocol)
  • 어떤 버스를 고르느냐가 배선·실시간성·확장성을 결정 → 미들웨어 사양 분석의 핵심 항목
  • 반복 출제: UART·SPI·I2C 비교, RS-232/RS-485 차이, CAN 중재 방식(ID가 작을수록 우선), EtherCAT 실시간 동기, TCP/UDP 비교
02

📖 핵심 개념

통신 프로토콜이란

  • 프로토콜 = 통신 당사자끼리 미리 정해 둔 약속의 집합 — 전기 신호의 수준, 데이터의 묶음 형식(프레임), 오류를 확인하는 방법, 주고받는 절차까지
  • 약속이 하나라도 다르면(예: UART의 통신 속도) 대화가 성립하지 않음

통신의 기본 분류 — 용어부터

  • 직렬(Serial) vs 병렬(Parallel): 한 가닥으로 비트를 차례로 vs 여러 가닥으로 동시에. 현대 통신은 대부분 직렬
  • 동기식(Synchronous) vs 비동기식(Asynchronous): 클록 신호를 공유하며 맞춰 보내는가(SPI, I2C), 클록 없이 약속된 속도(보레이트)와 시작·정지 비트로 맞추는가(UART)
  • 전이중(Full-duplex) vs 반이중(Half-duplex): 동시에 양방향 가능 vs 한 번에 한 방향
  • 1:1 vs 멀티드롭(버스): 두 장치 전용선 vs 하나의 버스에 여러 장치
  • 마스터-슬레이브 vs 멀티마스터: 한쪽이 주도권을 갖는가, 누구든 먼저 말할 수 있는가

OSI 7계층 — 통신을 이해하는 지도

  • OSI 7계층 = 통신 기능을 7개 층으로 나눈 표준 모델

  • 순서만 기억: 물리 → 데이터링크 → 네트워크 → 전송 → 세션 → 표현 → 응용

  • 필드버스(CAN 등)는 주로 물리 + 데이터링크 계층을 정의

  • TCP/UDP는 전송 계층, IP는 네트워크 계층

  • CANopen 같은 상위 프로파일이 응용 계층 역할을 얹는다

기판 위 근거리 3형제 — UART, SPI, I2C

MCU와 센서·모듈 사이의 짧은 거리 통신이다 (→ 로봇센서 인터페이스).

구분 UART SPI I2C
신호선 2 (TX, RX) 4 (MOSI, MISO, SCK, SS) 2 (SDA, SCL)
동기 방식 비동기 (보레이트 약속) 동기 (클록 공유) 동기 (클록 공유)
연결 형태 1:1 마스터-슬레이브, 슬레이브마다 SS(CS)선 필요 마스터-슬레이브, 주소로 구분해 2선에 여러 장치
속도 낮음~중간 고속 (수십 Mbps급) 중간 (표준 100k, 고속 수 Mbps)
특징 가장 간단, 디버그 로그 단골 전이중, 고속 센서(IMU 등) 배선 최소, 풀업 저항 필요

장치 간 버스 — RS-232, RS-485, CAN

구분 RS-232 RS-485 CAN
신호 싱글엔드 차동(Differential) 차동
연결 1:1 멀티드롭 (표준 최대 32노드) 멀티드롭 · 멀티마스터
거리 ~15 m ~1.2 km ~수백 m (속도에 반비례)
노이즈 내성 약함 강함 강함
CAN(Controller Area Network) — 로봇·차량의 표준 버스 (단골 출제)
  • 차동 2선(CAN_H/CAN_L) + 양단 종단저항, 노이즈에 강함
  • 멀티마스터: 어느 노드든 먼저 송신 시도 가능
  • 비파괴 비트 중재(Arbitration): 동시에 송신하면 ID가 작은(우선순위 높은) 메시지가 이기고, 진 쪽은 데이터 손상 없이 물러났다가 재시도 — 급한 메시지(비상정지)에 작은 ID를 배정한다
  • 클래식 CAN의 데이터는 프레임당 최대 8바이트, 속도 최대 1 Mbps (CAN FD는 64바이트로 확장)
  • CRC 기반의 강력한 오류 검출 + 자동 재전송
  • 모터 드라이버 통신의 사실상 표준이며, 응용 프로파일로 CANopen이 널리 쓰인다 (→ 로봇 액추에이터 펌웨어 설계)

실시간 이더넷 — EtherCAT

  • 일반 이더넷은 빠르지만 스위치 지연·충돌 때문에 "정확히 언제 도착하는가"를 보장하지 못함

  • 다축 로봇의 모션 동기에는 산업용 실시간 이더넷을 씀

  • EtherCAT: 마스터가 보낸 하나의 프레임이 슬레이브들을 차례로 통과하면서 각자 자기 데이터를 읽고 써넣는(processing on the fly) 구조 — 왕복 없이 한 바퀴로 전체 축과 통신해 매우 효율적

  • 분산 클록(Distributed Clock): 슬레이브들의 시계를 µs 이하로 정렬해 여러 축이 같은 순간에 동작 — 다관절 로봇 보간 주행의 필수 조건

  • 그 외 이름만: EtherNet/IP, PROFINET 등

상위 네트워크 — TCP vs UDP

상위 제어기·서버·원격 UI 사이는 이더넷/무선 위의 TCP/IP를 쓴다.

구분 TCP UDP
연결 연결지향 (핸드셰이크) 비연결
신뢰성 재전송·순서 보장 없음 (유실 가능)
지연·오버헤드 상대적으로 큼 작음
용도 명령·파일·설정 (빠짐없이) 영상 스트리밍·주기 상태 (최신값 우선)
  • 영상처럼 "늦은 재전송보다 다음 최신 프레임이 나은" 데이터는 UDP가 적합
  • ROS 2의 기반인 DDS도 UDP 위에 신뢰성 QoS를 선택적으로 얹는 방식 (→ 로봇 미들웨어 구조 설계)

오류 검출 — 깨진 데이터를 걸러내는 장치

  • 패리티 비트(Parity): 1의 개수를 홀/짝으로 맞춤 — 1비트 오류만 검출, 가장 단순
  • 체크섬(Checksum): 데이터 합을 함께 전송
  • CRC(Cyclic Redundancy Check): 다항식 나눗셈 기반 — 연속(버스트) 오류까지 잡는 강력한 방식. CAN·이더넷이 사용
  • 그 위에 타임아웃·재전송, 시퀀스 번호로 유실·중복·순서를 관리한다 (프레임 설계는 통신 프로토콜 설계)
03

📊 다이어그램 · 수식

로봇 내부·외부 통신 계층

DIAGRAM
flowchart TD
    SRV["서버 · 원격 UI"] -- "이더넷/무선 (TCP·UDP)" --> PC["상위 제어기
(Linux + 미들웨어)"] PC -- "필드버스 (CAN · EtherCAT)" --> MC1["모터 드라이버 1"] PC -- "필드버스" --> MC2["모터 드라이버 n"] PC -- "USB · 이더넷" --> LID["LiDAR · 카메라"] subgraph MB["하위 제어 보드 내부"] M["MCU"] -- "SPI · I2C · UART" --> S["IMU · 소형 센서"] end PC -- "UART/CAN" --> M

CAN 비트 중재의 원리

동시에 송신을 시작하면 ID를 한 비트씩 비교하며, 우성(dominant, 0) 비트를 보낸 쪽이 버스를 차지한다:

\text{ID}_A = 0\text{b}0101\cdots,\quad \text{ID}_B = 0\text{b}0110\cdots \;\Rightarrow\; \text{3번째 비트에서 } A(0) \text{ 승리}

ID 숫자가 작을수록 우선순위가 높다. 패배한 노드는 전송을 중단하고 버스가 비면 재시도하므로 데이터가 깨지지 않는다(비파괴 중재).

04

🎯 핵심 요약 · 암기 포인트

익힘 0 / 10카드를 눌러 뒤집고, 앞면에서 아는지 표시하세요.
Q · 1
동기식과 비동기식 직렬 통신의 차이는?
A
동기식은 클록 신호를 공유(SPI·I2C), 비동기식은 클록 없이 약속된 보레이트와 시작·정지 비트로 동기를 맞춤(UART)
Q · 2
UART 통신의 특징은?
A
클록 없이 약속된 보레이트로 통신하는 비동기 직렬 1:1 통신 — 시작·정지 비트 사용
Q · 3
SPI와 I2C의 신호선과 특징 비교는?
A
SPI는 4선(MOSI·MISO·SCK·SS) 고속 전이중, I2C는 2선(SDA·SCL) 주소 기반으로 여러 슬레이브 연결
Q · 4
RS-485가 RS-232보다 유리한 점은?
A
차동 신호로 노이즈에 강하고, 멀티드롭(1:N)과 장거리(약 1.2 km) 통신이 가능
Q · 5
CAN 버스의 중재 방식은?
A
비파괴 비트 중재 — 동시 송신 시 ID가 작은(우선순위 높은) 메시지가 이기고, 진 쪽은 손상 없이 재시도
Q · 6
클래식 CAN 프레임의 최대 데이터 길이는?
A
8바이트 (CAN FD는 최대 64바이트)
Q · 7
EtherCAT의 두 가지 핵심 기술은?
A
프레임 통과 중 처리(processing on the fly)와 분산 클록(µs급 다축 동기)
Q · 8
TCP와 UDP의 차이는?
A
TCP는 연결지향·재전송·순서 보장(신뢰성), UDP는 비연결·저지연(스트리밍·주기 상태에 적합)
Q · 9
OSI 7계층을 순서대로 나열하면?
A
물리 - 데이터링크 - 네트워크 - 전송 - 세션 - 표현 - 응용
Q · 10
CRC의 용도는?
A
프레임의 비트 오류(버스트 오류 포함)를 검출하는 강력한 오류 검출 부호 — CAN·이더넷에서 사용
05

✏️ 예상문제

1. CAN 버스에 대한 설명으로 옳지 않은 것은?

① 차동 2선 방식이라 노이즈에 강하다 ② 어느 노드든 먼저 송신을 시도할 수 있는 멀티마스터 방식이다 ③ 식별자(ID) 값이 클수록 메시지의 우선순위가 높다 ④ 동시 송신이 충돌해도 데이터가 손상되지 않는 비파괴 중재를 사용한다

정답 및 해설

정답: ③ CAN의 중재는 우성 비트(0)가 이기는 구조라서 ID 값이 작을수록 우선순위가 높다. 그래서 비상정지처럼 급한 메시지에 작은 ID를 배정한다. ①②④는 모두 CAN의 핵심 특징이다.

2. 차동 신호를 사용하여 노이즈에 강하고, 하나의 버스에 여러 장치를 멀티드롭으로 연결해 약 1.2 km까지 통신할 수 있는 직렬 통신 규격은?

① RS-232 ② RS-485 ③ SPI ④ I2C

정답 및 해설

정답: ② RS-485의 특징 그대로다. RS-232는 싱글엔드 1:1로 십수 m가 한계이고, SPI·I2C는 기판 위 근거리 통신이다.

3. 원격 모니터링용 카메라 영상 스트리밍에 TCP 대신 UDP를 사용하는 주된 이유는?

① 재전송 지연 없이 낮은 지연으로 최신 프레임을 계속 보낼 수 있어서 ② 데이터가 절대 유실되지 않아서 ③ 연결 설정(핸드셰이크)이 반드시 필요해서 ④ 패킷의 도착 순서가 항상 보장되어서

정답 및 해설

정답: ① 영상은 한 프레임이 늦게 재전송되어 오는 것보다 그냥 버리고 다음 최신 프레임을 받는 편이 낫다. UDP는 재전송·순서 보장이 없는 대신 지연이 작아 이런 실시간 스트림에 적합하다. ②③④는 TCP의 특징이다.

4. EtherCAT이 다관절 로봇의 여러 축을 마이크로초 수준으로 동시에 움직일 수 있게 하는 핵심 기술은?

① 패리티 비트 ② 보레이트 자동 협상 ③ 풀업 저항 ④ 분산 클록(Distributed Clock)

정답 및 해설

정답: ④ EtherCAT은 슬레이브들의 시계를 분산 클록으로 정밀하게 정렬해 모든 축이 같은 순간에 지령을 적용하게 한다. 여기에 프레임이 슬레이브를 통과하며 데이터를 읽고 쓰는(processing on the fly) 구조로 높은 효율을 얻는다.

5. 두 가닥의 선(SDA, SCL)만으로 여러 슬레이브 장치를 주소로 구분하여 연결하는 동기식 직렬 통신은?

① UART ② SPI ③ I2C ④ RS-232

정답 및 해설

정답: ③ I2C는 데이터(SDA)·클록(SCL) 2선 버스에 장치 주소로 슬레이브를 구분하므로 배선이 최소화된다. SPI는 빠르지만 슬레이브마다 선택(SS)선이 따로 필요하고, UART는 비동기 1:1 통신이다.

06

🔗 관련 노트

로봇소프트웨어개발기사 필기 · 학습 교재출제기준 2025.1.1 – 2027.12.31