BLE(Bluetooth Low Energy)

ddimi·2025년 7월 3일
post-thumbnail

BLE(Bluetooth Low Energy)

동작 원리

주기적인 광고(Advertising)연결(Connection) 두 가지 모드로 동작
광고모드에서는 디바이스가 주변에 자신의 존재를 알리며, 연결 모드에서는 실제 데이터 교환을 수행함. 이를 통해 저전력 상태에서도 효율적이 통신이 가능하게 됨.

주요 특징

저전력 소비

배터리로 작동하는 디바이스에 적합하도록 설계되어 광고 모드에서는 낮은 전력으로 동작하며, 연결 시에도 최적의 전력 소비를 유지함

GATT (Generic Attribute Profile) 기반 구조

BLE 장치간에 Service, Characteristic 을 이용해서 데이터를 주고 받는 방법을 정의한 것

Characteristic

하나의 특성(characteristic)은 하나의 값과 n개의 디스크립터를 포함

Descriptor

특성의 값을 기술

Service

데이터를 논리적인 단위로 나누는 역할을 하며 특성(characteristic)이라 불리는 데이터 단위를 하나 이상 포함하는 특성들의 집합. 서비스는 UUID라 불리우는 16bit(for officially adopted BLE Services) 혹은 128bit(for custom services) 구분자를 가지고 있음.

다양한 적용 분야

스마트홈, 스마트헬스케어, 스마트시티 등에서 센서 네트워킹, 위치 기반 서비스, 실내 위치 추적 등 다양한 응용이 가능함

GATT Characteristics 정의

UUID (16-bit)Full UUID변수명Access설명
0xFFF10000fff1-0000-1000-8000-00805f9b34fbdeviceIdWrite디바이스 고유 ID (예: 시리얼넘버)
0xFFF20000fff2-0000-1000-8000-00805f9b34fbserverAddrWrite연결할 서버 주소 (예: iot.example.com)
0xFFF30000fff3-0000-1000-8000-00805f9b34fbserverPortWrite연결할 서버 포트 (예: 8883)
0xFFF40000fff4-0000-1000-8000-00805f9b34fbapSsidWrite연결할 Wi-Fi SSID
0xFFF50000fff5-0000-1000-8000-00805f9b34fbapPasswordWriteWi-Fi 비밀번호
0xFFF60000fff6-0000-1000-8000-00805f9b34fbcertificateWrite디바이스에 업로드할 인증서 (PEM 형식)
0xFFF70000fff7-0000-1000-8000-00805f9b34fbprivateKeyWrite인증서에 대응하는 개인 키
0xFFF80000fff8-0000-1000-8000-00805f9b34fbcaCertWriteCA 인증서 (서버 인증서 검증용)
0xFFFA0000fffa-0000-1000-8000-00805f9b34fb-Read디바이스 정보 확인용 (모델명, 상태 등)

GAP (게시와 연결)

BLE 장치 간의 역할(Role)동작 모드(Advertise/Scan/Connect)를 정의하여, 디바이스가 서로 어떻게 접근하고 연결되는지의 규칙을 제공

역할설명
Peripheral (주변장치)광고(Advertise)를 통해 자신의 존재를 알림. 일반적으로 센서, 웨어러블 등
Central (중앙장치)주변의 광고를 스캔하고(Scan), 특정 Peripheral에 연결을 시도함. 보통 스마트폰이 해당
Broadcaster데이터를 광고(Adv)만 하고 연결은 하지 않음
Observer광고만 수신(Scan)하고 연결은 하지 않음

Broadcaster (브로드캐스터)

광고(데이터 전송만)

  • 정기적으로 데이터를 배포하는 전송 전용 애플리케이션을 위한 최적화 함
  • 주기적으로 게시 패킷을 데이터와 함께 전송함
  • 링크 계층 애드버타이저 역할을 사용함
  • transmitter 역할만 수행하며, 데이터를 전송만 함 (수신 기능 없음)

Observer (옵저버)

광고 수신

  • 게시 패킷에 포함된 데이터를 수신
  • 링크 계층 Scanner 역할을 사용
  • 수신 기능만 수행하는 수동형 BLE 역할이며, 연결은 시도하지 않음

Central (중앙장치)

광고 수신 → 연결 시작

  • Central은 항상 연결을 시작(Initiator) 하는 BLE 역할
  • 여러 Peripheral과 동시에 연결 가능 (동시 다중 연결)
  • 링크 계층에서 Master 역할에 해당
  • 연결 후 GATT 통신을 통해 데이터를 교환

Peripheral (주변장치)

광고 송신 → 연결 수락

  • 한 번에 하나의 Central과 연결 가능 (일반적인 BLE 제한)
  • 링크계층의 슬레이브에 해당
  • 연결이 수립되면 GATT 서버 역할을 주로 수행

0개의 댓글