BLE

BLE

Bluetooth 통신은 전에는 Master, Slave를 관계를 형성해 통신하는 Bluetooth Classic 방식을 사용해왔다. 하지만 이 방식은 배터리 소모량이 많아 불편함과 제약이 많았다. 2010년에 Bluetooth 표준으로 Bluetooth 4.0이 나왔는데, Classic 방식보다 훨씬 적은 전력으로 비슷한 수준의 통신을 할 수 있게되었다. 이를 BLE(Bluetooth Low Energy)라 부른다.

Classic vs BLE 페어링


Classic 페어링 과정

classic은 방식은 Master가 주변 Slave에게 요청을 날리고 슬레이브가 그에 응답한 뒤 페어링을 시도한다.


BLE Advertise 과정

반면, BLE는 Peripheral(Slave)가 주변에 일정 간격으로 advertise를 하고 Central(Master)이 스캔에 성공함으로서 페어링을 하게 된다. 두 디바이스가 연결되면 advertise Mode는 종료되고 Connection Mode로 1대1 통신을 하게 된다.

Advertise(Broadcast)와 Connection 방식

: 주로 자신의 존재를 알리거나 작은 양의 User 데이터를 보낼 때 사용.

디바이스가 두 종류로 분류되는데,

  • Advertiser(Peripheral): 일정한 주기로 신호를 방송하듯 주변에 뿌리는 디바이스이다.
  • Observer(Central): Advertiser에게 신호를 받기 위해 주기적으로 Scanning을 하는 디바이스이다.

Connection Mode

: 양방향 통신하거나, Advertise만으로는 많은 양의 데이터를 주고 받을 때 사용. 1대1 통신이다.

Central and Peripheral 디바이스가 두 종류로 구분

  • Central(Master): 다른 디바이스의 Advertise 신호를 주기적으로 스캔하다가, 연결을 요청한다.
  • Peripheral(Slave): 연결하기 위한 Advertise 신호를 주기적으로 보내다가, Central 디바이스가 연결 요청을 보내면, 이를 수락해 연결한다.

BLE 구조


Classic 구조

BLE 구조

Master와 Slave로 나눠져 있는 Classic 방식의 블루투스 칩 Stack을 보면 BLE보다 훨씬 복잡해보이고 많은 프로토콜을 사용하고 있다는 것을 볼 수 있다.

GAP( Generic Access Profile ):

서로 다른 제조사가 만든 BLE 디바이스들끼리 서로 호환되도록 통신 규격을제공한다. 데이터를 어떻게 보내고, 인지하고, 연결할지에 대해 규격을 정해놓은 Profile이다. 디바이스들은 GAP에서 제공되는 advertiser와 observer를 선택해 BLE 네트워크를 이용할 수 있다.

GATT(Generic Attribute Profile):

BLE 디바이스들끼리 데이터를 교환할 때, 데이터를 발견하고, 읽고, 쓰는 것을 규격화하고 데이터의 구조를 정의해 놓은 Profile이다. Data의 Format과 전달에 대해서만 처리한다.

Bluetooth Classic 방식에서는 SPP(Serial Port Profile)이라는 Profile을 사용한다.

Bluetooth SIG라는 개발 그룹에서 GATT를 표준으로 Profile을 만들었다.

GATT는 프로파일, 서비스, 특성으로 구성되어있다.

  • 프로파일: 서비스의 묶음으로, Bluetooth SIG나 Peripheral 디자이너에 의해 만들어지는 기본 데이터 표준 집합.
  • 서비스: 데이터를 논리적 단위로 나눠 놓은 그룹이다. 특성(characteristic)이라 불리는 더 작은 데이터 단위를 하나 이상 포함하고 있다. 각 서비스는 UUID라 불리는 구분자가 있다.
  • 특성: GATT에서 가장 작은 데이터 단위. 단 하나의 데이터만 포함한다. 특성도 UUID를 가지고 있다.

이 세가지 모두 Bluetooth SIG에서 표준으로 미리 정의해둔 것이 있다.

[GATT 규격 Bluetooth Technology Website](https://www.bluetooth.com/ko-kr/specifications/gatt)



* 참조

http://blog-kr.zoyi.co/bluetooth-low-energy-ble/ http://www.hardcopyworld.com/ngine/aduino/index.php/archives/1132

김땡땡's blog

김땡땡's blog

김땡땡