BLE 개발: GATT란 무엇이며 어떻게 작동하나요?

차례

GATT의 개념

BLE 관련 개발을 수행하려면 특정 기본 지식이 있어야 하며, 물론 매우 간단해야 합니다.

가트 장치 역할:

가장 먼저 이해해야 할 점은 이 두 역할 간의 차이는 하드웨어 수준에 있으며 쌍으로 나타나는 상대적인 개념이라는 것입니다.

"중앙 장치": 상대적으로 강력하며 휴대폰, 태블릿 등과 같은 주변 장치를 검색하고 연결하는 데 사용됩니다.

"주변 장치": 기능이 비교적 간단하고 전력 소비가 적으며 손목 밴드, 스마트 체온계 등과 같은 중앙 장치가 연결되어 데이터를 제공합니다.

사실 가장 근본적인 수준에서는 연결을 구축하는 과정에서 서로 다른 역할을 구분해야 합니다. 블루투스 장치가 자신의 존재를 다른 사람에게 알리려면 지속적으로 외부 세계에 브로드캐스트해야 하고, 상대방은 브로드캐스트 패킷을 스캔하고 응답해야 연결이 설정될 수 있다는 것을 알고 있습니다. 이 과정에서 방송을 담당하는 사람은 Peripheral이고, Central은 스캐닝을 담당합니다.

둘 사이의 연결 프로세스에 대한 참고 사항:

중앙 장치는 동시에 여러 주변 장치에 연결할 수 있습니다. 주변 장치가 연결되면 즉시 브로드캐스팅을 중지하고 연결이 끊어진 후에도 브로드캐스팅을 계속합니다. 언제든지 하나의 장치만 연결을 시도하여 연결을 대기할 수 있습니다.

가트 프로토콜

BLE 기술은 GATT를 기반으로 통신합니다. GATT는 속성 전송 프로토콜입니다. 속성 전송을 위한 응용 계층 프로토콜이라고 볼 수 있다.

그 구조는 매우 간단합니다.   

XML로 이해할 수 있습니다.

각 GATT는 다양한 기능을 수행하는 서비스로 구성됩니다.

각 서비스는 서로 다른 특성으로 구성됩니다.

각 특성은 하나의 값과 하나 이상의 설명자로 구성됩니다.

Service와 Characteristic은 태그와 동일하며(Service는 해당 카테고리, Characteristic은 이름과 동일) Value는 실제로 데이터를 포함하며 Descriptor는 이 값에 대한 설명 및 설명입니다. 물론 우리는 그것을 다른 각도에서 설명하고 설명할 수 있습니다. 설명이므로 여러 설명자가 있을 수 있습니다.

예: 일반적인 Xiaomi Mi Band는 BLE 장치이며 (가정) 장치 정보를 제공하는 서비스, 걸음 수를 제공하는 서비스, 심박수를 감지하는 서비스의 세 가지 서비스를 포함합니다.

서비스에 포함된 장치 정보의 특성에는 제조업체 정보, 하드웨어 정보, 버전 정보 등이 포함됩니다. 심박수 서비스에는 심박수 특성 등이 포함되며 심박수 특성의 값은 실제로 심박수 데이터를 포함하며 설명자는 값입니다. 값의 단위, 설명, 권한 등과 같은 설명입니다.

가트C/S

GATT에 대한 사전 이해를 통해 우리는 GATT가 일반적인 C/S 모드임을 알 수 있습니다. C/S이기 때문에 서버와 클라이언트를 구분하는 것이 필요합니다.

"GATT 서버" 대 "GATT 클라이언트". 이 두 가지 역할이 존재하는 단계는 연결이 확립된 이후이며, 대화의 상태에 따라 구분된다. 데이터를 보유하는 당사자를 GATT 서버라고 하고, 데이터에 접근하는 당사자를 GATT 클라이언트라고 하면 이해하기 쉽습니다.

이는 앞서 언급한 기기 역할과는 다른 차원의 개념으로, 구분이 필요하다. 간단한 예를 사용하여 설명하겠습니다.

설명하기 위해 휴대폰과 시계를 예로 들어 보겠습니다. 휴대폰과 휴대폰 간의 연결이 설정되기 전에 휴대폰의 블루투스 검색 기능을 사용하여 시계의 블루투스 장치를 검색합니다. 이 과정에서 시계가 BLE를 브로드캐스트하여 다른 장치가 자신의 존재를 알 수 있다는 것은 분명합니다. , 이 과정에서 주변 장치의 역할이며 휴대폰은 스캐닝 작업을 담당하며 자연스럽게 센터 역할을 합니다. 두 사람이 GATT 연결을 설정한 후 휴대폰이 시계의 걸음 수와 같은 센서 데이터를 읽어야 할 때 두 사람의 대화형 데이터가 시계에 저장되므로 이때 시계는 GATT의 역할입니다. 서버이고 휴대폰은 당연히 GATT 클라이언트입니다. 시계가 휴대폰에서 SMS 통화 및 기타 정보를 읽으려고 할 때 데이터의 수호자는 휴대폰이 되므로 이때 휴대폰은 서버이고 시계는 클라이언트입니다.

서비스/특징

우리는 위에서 그것들에 대해 이미 지각적으로 이해했으며, 몇 가지 실용적인 정보도 얻었습니다.

  1. 특성은 데이터의 가장 작은 논리적 단위입니다.
  2. 값과 설명자에 저장된 데이터의 분석은 서버 엔지니어가 결정하며 사양은 없습니다.
  3. 서비스/특성에는 고유한 UUID ID가 있고, UUID에는 16비트와 128비트가 모두 있습니다. 우리가 이해해야 할 것은 16비트 UUID가 Bluetooth 조직의 인증을 받았으며 구매해야 한다는 것입니다. 물론 몇 가지 공통된 사항이 있습니다. 예를 들어 심박수 서비스의 UUID는 16X0D로, 코드에서는 180X0-00001800-0000-1000-8000f00805b9fb로 표현되며, 그 외 비트는 고정되어 있습니다. 34비트 UUID는 사용자 정의할 수 있습니다.
  4. GATT 연결은 배타적입니다.

위쪽으로 스크롤