새소식

개념 및 용어

[BLE] ATT & GATT

  • -

 

이전 포스팅에서 Bluetooth LE 장치들이 광고 및 연결 단계에서 서로 통신하는 방법을 정의하는 GAP 계층의 역할에 대해 정리했다.

 

광고(Advertising) 중의 통신은 장치 검색이나 데이터 브로드캐스팅에만 사용되며 GAP 계층 자체에서 처리된다.

그러나 연결이 설정된 후에는 양방향 데이터 교환이 필요한데, 이를 위해 특정 데이터 구조와 프로토콜이 필요하다.

 

이번 포스팅에서는 이와 관련된 프로토콜을 정리할 것이다.

 

Attribute 프로토콜 (ATT) 계층

ATT 계층은 connection 단계에서 Bluetooth LE 장치 간에 데이터가 전송되고 수신되는 방법을 정의한다.

이는 클라이언트-서버 아키텍처를 기반으로 한다

 

중앙 장치와 주변장치 모두 클라이언트 또는 서버가 될 수 있다. 즉, 애플리케이션 사용 사례와 전송되는 데이터의 성격에 따라 달라진다.

 

대부분의 경우,

주변 장치는 => 데이터를 수집하고 보유하는 장치이기 때문에 서버 역할을 수행한다.

중앙 장치는 => 해당 데이터를 서버로부터 수신하는 장치이기 때문에 일반적으로 클라이언트 역할을 수행한다.

 

 

이러한 역할은 GATT 계층에서도 사용되므로, 종종 GATT 서버와 GATT 클라이언트라고 한다.

  • GATT 서버: 데이터를 저장하고 GATT 클라이언트가 데이터에 접근할 수 있는 방법을 제공
  • GATT 클라이언트: 특정 GATT 작업을 통해 GATT 서버의 데이터에 접근하는 장치

ATT 계층은 속성(attribute)이라는 데이터 구조를 정의하며, GATT 서버는 이를 사용하여 데이터를 저장한다.

서버는 동시에 여러 속성을 보유할 수 있다.

 

 

Generic Attribute Profile (GATT) 계층

GATT 계층은 ATT 계층 바로 위에 있으며, 속성을 프로파일(Profiles), 서비스(Services), 특성(Characteristics)으로 계층적으로 분류하여 데이터 전송을 관리한다.

 

 

Profiles, services and characteristics

GATT 계층의 주요 구성 요소는 다음과 같다. 심박수를 측정하는 센서 장치를 예시로 정리하면 아래와 같다.

 

 

특성 (Characteristic)

  • 특성 값 속성(characteristic value attribute)
    • 실제 데이터를 저장하는 속성
    • ex) 심박수 값
  • 특성 선언 속성(characteristic declaration attribute)
    • 특성 값 속성에 저장된 데이터에 대한 메타데이터를 보유

=> 위 두 가지 속성이 심박수 측정과 관련된 특성(Characteristics)을 형성한다.

 

 

서비스 (Services)

: 여러 특성을 포함하는 단위

ex) 심박수 서비스는 심박수 측정 특성과 신체 센서 위치 특성을 포함

 

 

프로파일(Profiles)

: 동일한 사용 사례를 다루는 하나 이상의 서비스로 구성됨

 

ex) 심박수 프로파일에는 심박수 서비스장치 정보 서비스가 포함됨.

장치 정보 서비스는 제조업체 이름 특성 및 펌웨어 개정 특성을 포함

 

 

클라이언트가 서버와 상호작용을 시작하기 전에, 클라이언트는 서버에 저장된 속성의 성격을 알지 못한다.

=> 따라서 클라이언트는 먼저 Service Discovery을 수행하여 서버로부터 속성에 대해 조회한다.

 

'개념 및 용어' 카테고리의 다른 글

[BLE] Services and characteristics  (1) 2024.07.14
[BLE]GATT operations  (0) 2024.07.13
[BLE] GAP  (0) 2024.07.11
[BLE] Bluetooth LE  (0) 2024.07.10
npm 과 yarn 라이브러리  (0) 2023.03.18
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.