임베디드 면접 용어 사전
필드버스

BLE

저전력 근거리 무선 규격. GAP로 연결을 맺고 GATT로 속성 데이터를 주고받는다.

저전력을 최우선으로 설계한 근거리 무선 통신(Bluetooth Low Energy). Bluetooth 4.0에서 도입됐으며 클래식 블루투스와 호환되지 않는 별개 규격이다.

클래식과의 차이

Bluetooth ClassicBLE
목적연속 스트리밍(오디오)간헐적 소량 데이터
전력높음매우 낮음(코인 전지로 수년)
연결 시간~100ms~3ms
데이터율1~3 Mbps125kbps~2Mbps
채널79개40개

저전력의 비결 — 대부분의 시간을 자는 것

연결 간격(7.5ms ~ 4s) 마다 잠깐 깨어나 통신하고 다시 잔다

깨어 있는 시간 : 수 밀리초

  • 자는 시간 — : 나머지 전부 평균 소비 전류 : 수 μA

"통신을 빨리 끝내고 자는 것" 이 설계 철학의 전부다. 그래서 연결 수립도 3ms로 짧다.

역할

광고자(Advertiser) → 관찰자(Observer) : 방송만 주변장치(Peripheral) ↔ 중앙장치(Central) : 연결 후 양방향

일반적으로 센서·웨어러블 = Peripheral (광고를 보낸다)

  • 스마트폰 — = Central (스캔하고 연결한다)

GATT — 데이터 구조

Profile
└── Service (예: 심박수 서비스, UUID 0x180D)
    ├── Characteristic (심박수 측정값, 0x2A37)
    │   ├── Value       — 실제 데이터
    │   ├── Properties  — Read / Write / Notify / Indicate
    │   └── Descriptor  — CCCD 등 부가 정보
    └── Characteristic (센서 위치, 0x2A38)

모든 데이터가 이 계층 구조에 담긴다. 표준 서비스(심박, 배터리, 온도)는 UUID가 정해져 있어 제조사가 달라도 앱이 동작한다.

커스텀 데이터는 128비트 UUID를 직접 만들어 쓴다.

데이터 전송 방식 네 가지

방향응답특징
ReadCentral ← Peripheral있음요청 시
WriteCentral → Peripheral있음확인됨
Write w/o Response없음빠르다
Notify없음서버가 밀어 준다
Indicate있음확인이 필요한 알림

Notify가 저전력의 핵심이다. 폴링하면 계속 깨어 있어야 하지만, Notify는 데이터가 생겼을 때만 보낸다.

CCCD(Client Characteristic Configuration Descriptor)에 Central이 1을 써야 Notify가 시작된다. 이것을 빠뜨려 "데이터가 안 온다"고 하는 경우가 매우 흔하다.

연결 파라미터 — 전력과 지연의 트레이드오프

Connection Interval : 7.5ms ~ 4s — 통신 주기

  • Slave Latency — : 0 ~ 499 — 건너뛸 수 있는 횟수 Supervision Timeout : 100ms ~ 32s — 끊김 판정 시간

간격이 짧으면 → 반응 빠름, 전력 소모 큼

  • 간격이 길면 — → 절전, 반응 느림

  • Slave Latency = 데이터가 없으면 몇 번 건너뛰어도 된다

  • 반응성을 유지하면서 평균 전력을 낮추는 절충

iOS는 연결 파라미터에 제약이 엄격하다(최소 간격 15ms 등). 안드로이드에서 되던 설정이 iOS에서 거부되는 일이 있다.

MTU와 처리량

기본 MTU = 23바이트 (실제 데이터 20바이트)

  • 확장 시 — = 최대 517바이트

  • MTU를 늘리지 않으면 큰 데이터 전송이 매우 느리다

  • 연결 후 MTU 교환을 반드시 시도한다

"BLE가 너무 느리다" 는 대부분 MTU와 연결 간격 설정 문제다.

주파수 호핑

2.4GHz 대역을 40채널로 분할

  • 37개 데이터 채널
  • 3개 광고 채널 (37, 38, 39) — Wi-Fi 채널과 겹치지 않는 위치에 배치

적응형 주파수 호핑(AFH)으로 간섭이 심한 채널을 피한다

광고 채널 3개의 주파수가 Wi-Fi 1/6/11 채널 사이 틈에 놓이도록 설계된 것이 특징이다. 공존을 고려한 설계다.

보안

  • 페어링 → 본딩(키 저장) → 암호화

  • Just Works — : 인증 없음. MITM에 취약

  • Passkey Entry — : 6자리 숫자

  • Numeric Comparison : 양쪽 화면에 숫자 비교 (LE Secure Connections)

  • Out of Band — : NFC 등 다른 채널로

Just Works가 기본으로 쓰이는 경우가 많은데 중간자 공격에 취약하다. 의료·결제 기기라면 LE Secure Connections를 써야 한다.

실무에서 겪는 문제

  • 연결이 자주 끊긴다 — → Supervision Timeout, 간섭, 안테나 배치
  • 데이터가 안 온다 — → CCCD 미설정
  • 너무 느리다 — → MTU, 연결 간격, Write w/o Response 사용 검토
  • 전력이 예상보다 크다 — → 광고 간격, 연결 간격, TX 파워, 슬립 진입 실패

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 필드버스·산업 통신 — CAN(아비트레이션·종단저항)·LIN·RS-485·Modbus·BLE