Bluetooth Low Energy

Bluetooth Low Engergy

by gomsun2@gmail.com | 2014-11-06

저작권 정보

Overview

Bluetooth Low Energy프로그램에 필요한 개념을 설명하고자 합니다.
더불어, Bluetooth Low Energy application development using a Delphi XE7의 이해를 돕고자 작성하였습니다.

프로그래머입장에서 Bluetooth 기술은 아래 두가지로 구분됩니다.

  • Bluetooth Classic과
  • Bluetooth Low Engergy(BLE, Bluetooth Smart)

Bluetooth Classic은 SPP(Serial Port Profile)과 같은 RFCOMM 기반 프로파일을 사용한 통신, Server/Client로 역할이 구분되는 전통적인 Bluetooth 기술을 의미합니다. 본 문서에서는 다루지 않습니다.

Bluetooth SMART는 Bluetooth 4.0중에서 Bluetooth Low Energy 장치를 구분짓는 명칭으로 Bluetooth SIG에서 만들었습니다. 결론적으로, BLE(Bluetooth Low Energy), Bluetooth SMART는 모두 동일 의미입니다.

Bluetooth Low Energy

  • Nokia의 wirbree프로젝트에서 시작되었으며, Bluetooth SIG가 인수하였습니다.1
  • 소량의 데이터 전송,
  • 소량의 소비 전력을 위해 디자인 되었습니다.
  • Bluetooth Classic과는 구분되는 완전히 다른 아키텍쳐입니다.

소비전력

Type 8 Byte Packet(uJ)
Classic 21.1
BLE 3.8

WWDC 2012 Core Bluetooth 1012의 자료에서 보면 BLE가 5.5배가량 저렴한 소비전력을 나타내고 있습니다.

전송속도

Type Data Rate(kbps)
Classic 1200
BLE 50

WWDC 2012 Core Bluetooth 1012에는 이론적인 속도와 식측 속도 두개를 구분지어 설명하고 있으나, 위의 표는 식측 속도를 표시하고 있습니다.

전통적은 Bluetooth통신 속도보다 24배가량의 늦습니다.
실제 프로젝트에서도 30배 가량의 속도 차이를 경험하기도 하였습니다.

Platform Support

Platform Classic BLE-Client BLE-Server
Windows O
XP,Vista,7 only support Bluetooth2.1
8+
Mac OS X O 10.7+
macMini, MackbookAir mid 2011+, Macbook Pro mid 2012+
10.9+
iOS O (need MFI) 5+
iPhone4s, iPad3(Retina) iPod tuoch 5thGen
6+
Android(JellyBean) O 4.3+
Nummerous Bug Fix 4.4+

통신 개요

Bluetooth SIG는 통신간 요구되는 역할과 용도를 각각의 프로파일(Profile)로 정의해 놓았으며3, 프로그래머는 정의된 프로파일을 이해와, 비즈니스 로직을 버무리는 것에 있는것 같습니다.

Classic과 BLE를 구분, 역할에 따른 프로파일(Profile)을 표로 정리하면 아래와 같습니다.

Classic BLE
Discovery SDP GAP
Pair O X
Data Transfer RFCOMM Base Profile GATT

특징적인 점은 Classic에서 장치 신뢰확보를 위한 ~~Pair~~가 BLE에서는 사라졌습니다.

GAP

Bluetooth 장치가 서로의 존재를 확인하고 연결에 사용되는 프로파일로 아래의 역할을 수행합니다.

  • 장치 자신을 소개(Advertising)하고
  • 연결(Connect/Disconnect) 제어

BLE장치는 추상화된 역할에 따라 Peripheral(주변)과 Ceteral(중심)로 구분되며, 아래와 같은 특징에 따라 추상화됩니다.

Peripheral Device(주변 장치)

  • 목적에 부합하는 Row Data의 1차적 수집
  • Advetising 수행
    • Adversiting은 Centeral Device에게 자신의 존재를 지속적으로 노출하고 Central Device(중심 장치)의 연결을 대기하는 상태를 의미합니다.

Centeral Device(중심 장치)

  • Peripheral Device의 Advertising을 정보를 수신 후 연결을 수행합니다.
  • 이후, Peripheral Device가 수집한 정보를 전달 받는 주체 입니다.

Peripheral_Centeral 4

Ceteral/Peripher 구분

Ceteral/Peripher를 상시/임시전원으로 구분짓지기도 합니다만, 올바른 접근은 아니라고 생각합니다. 노트북이라 할지라도 Advertising과 Row Data를 수집할 수도 있기 때문입니다.

결론적으로 Peripheral/Centeral은 나열된 역할의 수행여부에 따라 결정되는것 같습니다.

  • Advertising의 수행
  • Row Data의 수집

GATT

GATT(General Attribute Profile)는 Peripheral 장치가 Ceteral 프로그램에게 제공하는 API로, 특징적인 구조로 정의되어 있습니다.

Peripheral_Architecture

  • 한개의 GATT은 유니크한 UUID값으로 구분된다.
  • 한개의 GATT은 n개의 Service의 집합이다.
    • 하나의 Service는 장치가 제공하는 논리적인 구분이다.
    • 하나의 Service는 유니크한 UUID값으로 구분된다.
    • 하나의 Service는 n개의 Characteristic의 집합이다.
      • 하나의 Characteristic은 하나의 값을 갖는다.
      • 하나의 Characteristic은 UUID값으로 구분된다.
      • 하나의 Characteristic의 Property로 제어할 수 있다.
      • 하나의 Characteristic은 n개의 Descriptor를 가지고 있다.
        • n개의 Descriptor는 부모 Characteristic을 설명한다.

프로그래머는 Peripheral Device가 제공하는 Service와 Characteristic을 조작함으로써 BLE장치와 통신할 수 있습니다.

Topology

Peripheral Device와 Centeral Device간 연결되면 Peripharal 장치의 GAP은 더이상 사용할 수 없습니다. 결국, 다른 Centeral 장치에서 Peripheral 장치를 검색, 연결할 수 없음을 의미합니다.

topology 4

참고 및 출처

Advertisements