3.3. BLE 프로토콜 스택

BLE 스택은 크게 Host와 Controller 영역으로 구성되어 있고 각 영역은 여러 레이어로 이루어져 있다. BLE 기기는 각 레이어에서 특정 state 혹은 역할을 가지고 동작한다. BLE 프로젝트를 시작하기 전 BLE 스택의 각 요소가 어떤 역할을 수행하는지 먼저 설명한다.

Controller

Physical Layer (PHY)

Physical Layer는 무선 전파 신호를 송수신하기 위한 하드웨어로 구성되어 있다. BLE 기기는 2.4GHz 스펙트럼에서 작동하며, 각각 2MHz로 분리된 40개의 영역으로 나뉘어져 있다. 각각의 영역을 채널이라고 부른다. 채널 중 37, 38, 39번의 경우 디바이스를 광고(Advertising) 하거나 찾는데(Scanning) 사용되고, 나머지 채널의 경우 데이터를 송수신하는데 사용된다.

Link Layer는 Physical Layer와 상호작용하는 레이어이고, 일반적으로 하드웨어와 소프트웨어의 조합으로 구현된다. 하드웨어는 소프트웨어 중앙처리장치의 과부하를 막기 위해 일반적으로 계산 비용이 많이 들고 쉽게 자동화되는 기능을 처리한다. 소프트웨어는 BLE 디바이스의 연결 상태인 Link State를 관리한다. Link State는 Standby, Initiating, Scanning, Advertising, Connection 다섯가지의 상태로 이루어져 있다.

Host-Controller Interface (HCI)

Host-Controller Interface 레이어는 Host와 Controller가 분리되어 있는 경우 두 모듈 사이의 상호작용을 담당하는 레이어이다. Host에서 Controller로 명령을 전달하고, Controller에서 Host로 이벤트를 전송하는 역할을 수행한다.

Host

Logical Link Control and Adaptation Protocol 레이어는 상위 레이어와 하위 레이어(Controller) 사이의 상호작용을 담당하는 레이어이다. Link Layer에서 만들어진 BLE 패킷에 실제 애플리케이션에 사용되는 데이터를 포함시키거나 추출하는 역할을 수행한다.

Security Manager (SM)

Security Manager 레이어는 자주 연결하는 device 간의 보안 코드를 관리하고 배포하는 역할을 수행한다.

Generic Access Profile (GAP)

Generic Access Profile 레이어는 Connecting 및 Advertising 동작을 관리하는 최상위 레이어로 각 device의 Link Layer State를 결정하고, 서로 다른 BLE device 사이의 상호작용을 관리하는 모듈이다. BLE device는 GAP에 대해 Broadcaster, Observer, Peripheral, Central 중 하나의 역할로 동작한다.

Attribute Protocol (ATT)

Attribute Protocol 레이어는 두 BLE 장치간에 주고받는 데이터 교환에 대한 규칙으로, 무선으로 연결된 BLE device 사이의 데이터 교환은 ATT에 의해 이뤄진다. 이때, 데이터를 가지고 있는 device를 GATT Server라고 하고, 데이터를 요청하는 device를 GATT Client라고 한다.

Generic Attribute Profile (GATT)

Application 레이어에서 데이터 교환은 ATT를 기반으로 이루어지고, 각각의 데이터구조는 Generic Attribute Profile에 의해 정의되는 데이터 구조를 사용한다. GATT에 의해 정의되는 데이터 구조는 profile, service와 characteristic으로 표현된다.

Last updated