BLE 이해하기

codedrawer·2021년 3월 16일
3

BLE

목록 보기
1/3
post-custom-banner

BLE란 ?

Bluetooth Low Energy로 기존의 Bluetooth(Bluetooth Classic)보다 저전력으로 동작하는 디바이스로 그냥 배터리 소모가 아주 아주 적다는 의미이다. Bluetooth 4.0 스펙으로 채택이 되어 기존의 배터리 소모를 더 줄여 스마트 밴드, 워치, 비콘(Beacon) 등 장치에 적용되고 있다.

배터리 소모량은 대략 Coin Cell 배터리로 1년 정도 작동한다고 한다. 이렇게 오랜 배터리 소모량이 가능한 만큼 단점은 기존의 Bluetooth Classic에 비해 고속 통신이나 A2DP(Advanced Audio Distribution Profile)의 스테레오 헤드폰은 지원이 되지 않는다.

항목Bluetooth Low EnergyBluetooth Classic
Frequency Band2.4GHz ISM Band (2.402 – 2.480 GHz Utilized)2.4GHz ISM Band (2.402 – 2.480 GHz Utilized)셀 내용
Channels40 channels with 2 MHz spacing (3 advertising channels/37 data channels)79 channels with 1 MHz spacing
Channel UsageFrequency-Hopping Spread Spectrum (FHSS)Frequency-Hopping Spread Spectrum (FHSS)
ModulationGFSKGFSK, π/4 DQPSK, 8DPSK
Power Consumption~0.01x to 0.5x of reference(depending on use case)1 (reference value)
Data RateLE 2M PHY: 2 Mb/s

LE 1M PHY: 1 Mb/s

LE Coded PHY (S=2): 500 Kb/s

LE Coded PHY (S=8): 125 Kb/s

EDR PHY (8DPSK): 3 Mb/s

EDR PHY (π/4 DQPSK): 2 Mb/s

BR PHY (GFSK): 1 Mb/s

Max Tx PowerClass 1: 100 mW (+20 dBm)

Class 1.5: 10 mW (+10 dbm)

Class 2: 2.5 mW (+4 dBm)

Class 3: 1 mW (0 dBm)

Class 1: 100 mW (+20 dBm)

Class 2: 2.5 mW (+4 dBm)

Class 3: 1 mW (0 dBm)

Network TopologiesPoint-to-Point (including piconet)

Broadcast

Mesh

Point-to-Point (including piconet)

출처 : Bluetooth 라디오 버전 블루투스 ® 기술 웹 사이트

Power Consumption, Data Rate 부분을 보면 어떻게 저전력으로 동작할 수 있는지 보여준다.

동작 방식에 의한 구분

전원인가 후 주변의 모든 장치에 일방적으로 신호를 보내는 장치로 통신과는 무관한 비콘같은 장치. 2.4GHz 주파수 대역에서 Advertising Channel (37, 38, 39 채널)에서만 동작

Connection Mode

Advertising 패킷 전달 후 장치간의 연결의 과정이 필요한 동작 방식. 연결이 되면 Advertiser와 Observer는 서로 1:1 동작으로 Frequency Hopping 방식으로 동작한다.

링크텍스트

링크텍스트

BLE 장치의 역할

Central (Master)

Advertising 장치를 Scan 후 연결동작을 시작하는 장치로 연결 시 연결 간격과 Hopping 규칙을 정하는 장치

Peripheral (Slave)

Advertising 하는 장치로 Central 과 연결 후 Central 장치의 설정에 따라 동작한다.

링크텍스트

BLE 프로토콜 스택

BLE 프로토콜 스택 중 BLE 칩을 이용하는 BLE 어플리케이션을 개발하는 개발자가 반드시 이해하고 알아야 하는 용어를 알아보면

링크텍스트

위 그림은 Nordic사의 프로토콜 스택에 대한 그림이다.

Softdevice

Nordic사에서 제공하는 BLE API로 접근 가능한 바이너리 라이브러리로 이해하면 된다.

nRF51 Radio

Nordic사에서 제공하는 BLE 칩 시리즈 이름으로 요즘은 nRF52 시리즈로 업버전 되었다.

GAP (Generic Access Profile)

영어로 된 설명과 다른 자료를 읽어봐도 잘 이해가 되지 않는 용어이다. 그냥 앞에서 언급한 BLE 장치의 역할을 정의하는 부분으로 이해를 하자. 사실 SDK에서 제공하는 API는 한 줄로 끝난다. Advertiser(Peripheral)로 동작할 것인지 Observer(Central)로 동작할 것인지 규정하는 부분이다.

GATT (Generic Attribute Profile)

연결 과정에서 어떤 데이터를 서로 교환 할 것인지 각 데이터는 Read Only 인지 Write Only 인지 Notification Only 인지 이런 것들을 설명하는 부분이다. 이 부분도 SDK에서 제공하는 예제를 보면 더 이상 궁금하지 않게 된다.
GATT 부분은 처음에는 Profile로 시작해서 Service라는 용어가 나오고 Characteristic이란 용어로 끝난다.

Profile

간단하게 설명하자면 서로 교환하는 데이터 전체를 Profile이란 이름으로 표현한다. 이미 만들어진 BLE 응용 규격 이름(예, Heart Rate Profile) 이거나 사용자 정의 Profile로 표현한다. Profile 교환 시 문자열로 교환하는 것이 아니라 UUID라는 숫자로 교환한다.

Service

Profile을 하나 또는 두 개 이상으로 구분한다. 아래 그림을 보면 Profile 하나에 두 개의 Service가 있다. Service#1이 Heart Rate Service라고 가정하면 (위 Profile의 UUID 번호와는 다른 숫자. Service도 숫자로 구분) 나머지 Service_#2를 Battery Service로 규정할 수 있다.(사실 BLE Peripheral에는 반드시 Battery Service가 포함된다).

Characteristic

Service 항목 안에서 서로 교환해야 할 마지막 조각이라는 의미이다. 이것도 UUID라는 숫자로 표현되며 데이터가 몇 Byte인지 Read Only, Write Only 등등의 내용이 포함되어 있다.

GATT 이 부분은 BLE 어플리케이션을 개발하는 양쪽에서 서로 어떤 의미를 가지는지 알지 못하면 Radio Data 만 가지고는 이해하기 힘든 부분이다.
이미 정의된 Profile은 어떤 Service 어떤 Characteristic을 가지는지 알려져 있고 API로 제공되기 때문에 소스 코드로 이해하는 것이 더 빠르다.
이러한 과정이 너무 복잡하기 때문에 대부분은 BLE over UART Profile을 사용하는 것이 더 편리하다. 서로 양쪽간에 UART 패킷 정의하고 코딩하면 그만이다.

profile
Embedded SW
post-custom-banner

0개의 댓글