카테고리 없음

[Android] BLE에 관해...

Bluetooth Low Energy

  • Bluetooth 4.0에 적용된 데이터 통신망을 위해 탄생된 새로운 short range radio 기술
  • Bluetooth 4.0 이전을 Bluetooth Classic, 4.0 이후를 Bluetooth Smart라고 함
  • Bluetooth Classic이 주로 음성통신을 위해 사용, BLE는 데이터 통신에 사용
  • ZigBee의 저전력 특징을 Bluetooth에 맞게 적용한 기술
  • Bluetooth 4.0 = Bluetooth Classic + BLE
  • BLE는 Android API Level 18(4.3)부터 지원, 안정적인 구현은 4.4 이상 버전에서 권장
기술사양  Bluetooth Classic BLE
주파수대역 2.4GHz 2.4GHz
데이터
전송속도
1~3 Mbps 1 Mbps
토폴로지 Star Star
음성지원 지원 지원하지 않음
파워소모 < 30mA < 15mA
데이터
전송시간
100ms 6ms
주 사용처 휴대폰, 헤드셋, 스피커, PC 등 휴대폰, 시계, 헬스케어, 센서 등

 

Device Mode

Bluetooth Smart Ready(Dual Mode)

=> Bluetooth Classic과 BLE 장비 모두 연결이 가능한 디바이스 ( 스마트폰 )

 

Bluetooth Smart(Single Mode)

=> 오직 저전력으로만 통신하는 디바이스 ( 웨어러블 디바이스, 주요 센서 등 )

 

BLE 주요개념

  • ATT (Attribute Protocol)
    - 서버와 클라이언트 사이의 데이터 교환에 대한 규칙을 정의
    - 애플리케이션에서 데이터 교환은 ATT 기반으로 이루어짐
    - 프로토콜 동작 명령어는 Request, Response, Command, Notification, Indication, Confirmation 등 있음
  • GAP (Generic Access Profile)
    - 서로 다른 제조사가 만든 BLE 디바이스끼리 호환되도록 통신 규격을 제공
    - Advertising, Connection 제어(장치의 역할에 대한 정의) 기능을 수행
    - 디바이스들은 GAP에서 제공되는 Advertiser와 Observer를 활용해 BLE 네트워크 이용
  • GATT (Generic Attribute Profiles)
    - BLE 디바이스들간 데이터를 교환할 때 데이터의 구조를 정의해 놓은 Profile
    - 데이터를 발견하고, 읽고, 쓰는 것을 규격화
    - Bluetooth SIG(Special Interest Group) 에서 GATT를 표준으로 Profile을 만듬
    :: https://www.bluetooth.com/ko-kr/specifications/specs/

 

BLE 통신방식

모든 디바이스는 파워를 키면 Broadcast를 한다.

스마트폰이 하는 역할은 Scanner.

데이터 패킷을 스캔해서 블루투스를 키게되면 스캔한 데이터패킷 정보가 들어가는 것이다.

① 브로드캐스팅 방식 ( Advertise Mode )

    1:n 통신, 보안에 취약

② 커넥션 방식 ( Connection Mode )

    1:1 통신, 보안에 강함, 브로드캐스팅 방식에 비해 더 큰 데이터를 전송이 가능

ex) 센서 -> GATT Server

ex) 스마트폰 ->> GATT Client

 

BLE Profile 구조

  • Profile
    - 서비스들의 묶음으로 Bluetooth SIG나 BLE 디바이스 제조사에 의해 만들어지는 기본 데이터 표준 집합
  • Service
    - 데이터를 논리적 단위로 나눠 놓은 그룹, 특성이라는 더 작은 데이터 단위를 하나 이상 포함하고 있음 :: 온도, 가속센서, 조도 등
    - 각 서비스는 UUID라는 고유한 식별자를 갖고 있음 (Universally Unique Identifier)
  • Characteristic
    - 가장 작은 데이터 단위로 단 하나의 데이터만 포함
    - 하나의 값과 n개의 Descriptor로 구성
  • Descriptor
    - 특정 Characteristic에 속하며, Characteristic의 특성을 설명하는 메타 데이터를 갖고 있음