This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

*/
레이블이 BT인 게시물을 표시합니다. 모든 게시물 표시
레이블이 BT인 게시물을 표시합니다. 모든 게시물 표시

BLE Attribute Protocol

속성(Attribute)

 Attribute(ATT, 속성) 프로토콜은 BLE 프로토콜 스택 중의 하나다. BLE 서버 데이터베이스에서 데이터를 표현하는 방법과 해당 데이터를 읽거나 쓸 수 있는 방법을 정의한다.

속성은 4개의 구성으로 정의한다.

  • attribute type : UUID - 128 bit 숫자(혹은 16 이나 32bit를 사용하기도 함)
  • attribute handle : 특정 속성을 참조하기 위한 0이 아닌 숫자
  • attribute permissions : read and/or write 정의
  • attribute value
상기 속성은 ATT에서 정의한 방법을 사용하여 읽거나 쓸 수 있다. 예를 들어 클라이언트가 서버로 요청을 보내면 서버는 클라이언트로 응답을 보내고, 서버에서 클라이언트로 보내는 알림(notification)은 클라이언트에서 응답하지 않는다.


속성 메소드(Attribute method)

 ATT 프로토콜은 속성을 읽거나 쓸 수 있는 방법도 정의한다. 지원되는 방법은 6가지이며 결과적으로 6개의 PDU(프로토콜 데이터 단위)를 정의한다. 6가지 방법과 해당 PDU 유형은 다음과 같다.

  • Commands: 클라이언트에서 서버로 전달. response 호출하지 않음
  • Requests: 클라이언트에서 서버로 전달. response 호출
  • Responses: 서버가 request 를 받았을때 클라이언트로 전달
  • Notifications: 서버에서 클라이언트로 전달. 클라이언트의 요청과 무관하게 전송.
  • Indications: 서버에서 클라이언트로 전달하고 클라이언트는 response 호출. 클라이언트의 요청과 무관하게 전송.
  • Confirmations: 클라이언트에서 indication에 대한 response로 서버로 acknowledgment를 전달 .

BLE State

 BLE는 아래 5개의 State를 가진다.

  • Standby
  • Advertising
  • Scanning
  • Initiating
  • Connected


BT core 4.1 이후 Synchronization state 가 추가되었다.



BLE

BLE란 ?

  • Bluetooth Low Energy. 
  • 저전력 무선 통신을 위해 특별히 설계된 Classic Bluetooth의 최신 버전
  • Bluetooth 4.0 specification의 주요 기능
  • Classic Bluetooth는 근거리 무선통신으로 유선통신을 대체하도록 데이터 속도를 염두에 두고 설계되었으며 응용 프로그램에는 대용량 파일 전송, 무선 오디오 등이 포함
  • BLE는 높은 데이터 속도 대신 저전력 소비에 최적화되어 IoT 및 배터리 작동 어플리케이션을 대상으로 설계
  • 항상 연결되는 Classic Bluetooth와 달리 BLE는 일반적으로 대기(유휴) 모드에 있으며 필요한 경우에만 깨어나도록 설계

BLE Layer 구조

  • Controller
  • Host
  • Application


Controller Layer

    • PHY – The Physical Layer
    • LL – The Link Layer
    • HCI – Controller side Host-Controller Interface

Host Layer

    • HCI – Host side Host-Controller Interface
    • L2CAP – Logical Link Control and Application Protocol
    • SM – Security Manager
    • ATT – Attribute Protocol
    • GAP – Generic Access Profile
    • GATT – Generic Attribute Profile

Application Layer

    • User interface
    • Data processing
    • Logical 

용어정리

  • GATT : Generic Attribute Profile. Service와 Characteristics를 사용하여 BLE 장치 간 데이터 전송을 위한 사양을 정의.
  • Characteristic : 특성(Charateristic)은 속성(Attribute)라 부르는 정보의 그룹이며 속성은 디바이스간 전송되는 정보의 그룹이다. 속성으로는 아래와 같은 value, declaration, ..
  • Value : Data value of the characteristic
  • Declaration : Properties of the characteristic (location, type like read, write, notify, indicate etc.)
  • Description : ASCII String describing the characteristic.
  • Service : A collection of characteristics is called a Service. Each Service has a unique 16-bit or 128-bit ID called UUID.
  • UUID : Universally Unique Identifier is a 128-bit ID given to each service and characteristic in a profile. Use the website UUIDGenerator to generate unique IDs. Each service and characteristic has a unique 16-bit or 128-bit ID called UUID.



Bluetooth Device Address

블루투스 장치 주소 (Bluetooth Device Address) 

  • 블루투스 디바이스는 적어도 1개 이상의 디바이스 주소를 갖게 됨
  • 48 비트 주소 (피코넷 내 장치 구분) : IEEE MAC 주소 준용
    • 각 장치는 1개 이상의 주소를 갖을 수 있음

블루투스 장치 주소 유형

  • 직렬 비트 처리 동작에 시드(Seed) 역할을 하고,  접속 코드(Access Code) 유도에도 활용됨
    • 접속 코드 유형

        . DAC (Device Access Code)

        . CAC (Channel Access Code)

        . IAC (Inquiry Access Code)

  • Public Device Address 유형
    • 고정 주소 (공장 출하시 하드웨어적으로 기록) 
    • LAP(Lower Address Part)

        . 장치 조회 주소 : 0x 9E8B00 ~ 9E8B3F (64개 주소)

        . 범용 조회 주소 : 0x 9E8B33 (1개 주소)

        . 특수 목적 주소 : 기타 63개 주소

    • UAP(Upper Address Part)
    • NAP(Non-significant Address Part)


  • Random Device Address 유형
    • 동적 주소 (재 지정될 수 있음, 피코넷 내에서 만 유일하면 됨)

        . 피코넷 내에서 보안을 위해 빈번히 변할  수도 있음

     

Bluetooth 통신

Bluetooth 모듈 구분은 Classic Bluetooth와 BLE(Bluetooth Low Energy) 두 가지 유형으로 한다.

BLE (Bluetooth Low Energy)

  • 기존 블루투스 무선 기술에 비해 저전력, 저비용, 단순성, 저속도, 소형 지향
  • Bluetooth 4.0 (2010) 규격에 포함 발표

BLE 주요 특징

  • 연결 중 긴 수면 시간(sleep time)
  • 작은 크기의 데이터 전송 단위
  • 매우 낮은 Duty Cycle
  • 단순한 Topology :  주로 스타형 토폴로지만 지원

BLE 기술적 특징

  • 주파수대역 : 기존 블루투스와 동일 (2.4 GHz) 
  • 사용 채널  : 2 MHz 폭씩 40개 채널
    • 2 MHz 간격 : 2402 + k * 2 MHz (k = 0,1,...,39)
  • 다중 접속  : FDMA, TDMA 방식 모두 사용
  • 전력 소모  : 15 mA 이내
  • 전송 속도  : 1 Mbps 
  • 최대 전송 전력 : 10 mW
  • 통신 방향  : 양방향 모두 지원 가능하지만, 대개 단방향성 만 지원
    • 기기 간에 비 대칭적인 구조로 동작
  • 통신 역할  : 기존 블루투스와 달리, 연결 동안 마스터/슬레이브 역할 교환이 없게 됨
  • 프로토콜 스택 : 기존 블루투스 보다 단순한 구조 채택

프로필(Profile)

SPP, GATT, A2DP, AVRCP, HFP, ... 등 다수의 프로필 존재

블루투스를 사용하기 위해서는 장치(디바이스)는 특정 블루투스 프로파일(Bluetooth Profile)을 해석할 수 있어야 하며, 프로파일은 가능한 응용 프로그램을 정의하고 블루투스 장치가 다른 블루투스 장치와 통신하는데 사용하는 일반적인 특성을 규정한다.


SPP Profile : Serial Port Profile 1.2 spec

SPP는 Serial Port Profile의 약자로 직렬 포트 프로필이라 하며, Classic Bluetooth의 Profile이다. SPP는 두 피어 장치 간에 RFCOMM을 사용하여 에뮬레이트 된 직렬 케이블 연결을 설정하는 데 필요한 Bluetooth 장치에 대한 요구 사항을 정의한다. 요구 사항은 응용 프로그램에 제공되는 서비스와 Bluetooth 장치 간의 상호 운용에 필요한 기능과 절차를 정의하여 표현한다.

GATT Profile : Incorporated GATT Specification Supplement

GATT는 General ATTribute 의 약자로 일반 속성 프로필이라 하며, BLE 프로필이다. 두 개의 BLE 장치가 서비스 및 특성 이라는 개념을 사용하여 데이터를 앞뒤로 전송하는 방식을 정의하며,  이는 테이블의 각 항목에 대해 16 비트 ID를 사용하여 서비스, 특성 및 관련 데이터를 간단한 조회 테이블에 저장하는 데 사용되는 ATT (속성 프로토콜)라는 일반 데이터 프로토콜을 사용한다. GATT 통신의 두 당사자는 클라이언트/서버 관계(주변 장치는 GATT 서버, Central은 GATT 클라이언트)이다. GATT 및 연결에서 염두에 두어야 할 가장 중요한 것은 연결이 배타적이라는 것으로, BLE 주변 장치는 한 번에 하나의 중앙 장치 (휴대폰 등)에만 연결할 수 있다.

Connected Network Topology

아래 그림은 BLE 장치가 연결되는 환경을 나타내고 있다. 주변 장치는 단지 하나의 중앙 장치(모바일 폰과 같은)에 연결될 수 있으나 중앙장치는 동시에 다수의 주변장치와 연결 할 수 있다.


GATT Transactions

GATT에서 이해해야 할 중요한 개념은 서버/클라이언트 관계다.

주변장치는 ATT 룩업 데이터, 서비스, 특성 정의(Characteristic definitions)를 가지고 있는 GATT 서버로  볼 수 있으며, 폰 혹은 타블릿은 서버에 요구를 전달하는 GATT 클라이언트로 볼 수 있다.

모든 트랜잭션은 보조 장치인 GATT 서버로부터 응답을 받는 주 장치인 GATT클라이언트에 의해 시작된다. 

다음 그림은 주 장치가 모든 트랜잭션을 시작하는 주변 장치 (GATT 서버)와 중앙 장치 (GATT 클라이언트) 간의 데이터 교환 프로세스를 보여준다.





참고 

  • https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt