개발정보/Embedded_nRF52

03_Bluetooth protocal stack

코리안던 2020. 12. 22.

BLE연결, GAP, GATT

BLE센서장치가 연결되는 과정은 

BLE 장치를 스캔하고 페어링하면서 PIN코드 입력 후 연결이 완료된다.

스캔부터 연결 완료까지 과정을 다루는 스펙이 GAP와 하위 레이어들이다.

 

스캔~연결 완료까지

GAP : Generic Access Profile

LL : Link Layer

PHY : LE Physical Layer

 

연결이 된 이후 통신과정

*GATT : Generic Attribute Profile

ATT : Attribute Protocal

 

 

*GATT : 스펙에 정해진 구조대로 데이터를 읽고 쓰도록 만든것(내가 알지 못하는 장치와 페어링을 맺고 데이터 통신을 할 준비가 되는 경우 어떻게 할 것인가?). GATT표준에 정해진대로 특정 데이터를 읽고 쓸 수 있다.

 

GATT client : 휴대폰, 태블릿 PC(일반적으로 Master장치), GATT Server 장치로 특정데이터를 request보내고 response를 받는다. 즉 데이터가 무선으로 전달되기 위해서는 GATT client가 먼저 요청을 보내야 한다. BLE연결이 성공적으로 이루어지고 Service Discovery동작을 한다. GATT Server에 요청해서 제공할 수 있는 service와 데이터가 무엇인지 목록을 받는다.

 

GATT server : GATT client가 보내는 request가 있으면, 해당동작을 한 후 response를 보내준다. 보통은 저전력으로 동작하는 센서장치, Slave장치, GATT server역할을 맡는 경우가 많다. BLE 데이터 요청과 컨트롤을 담당하는 GATT client가 더 많은 에너지를 소비하기 떄문이다.

 

Ex) 핸드폰이 센서장치에 BLE연결이 되었다면, 센서장치가 GATT Service가 되고, 핸드폰이 GATT client가 된다. 연결이 완료되면 Service Discovery를 실행해서 센서장치가 제공하는 서비스와 데이터가 무엇인지 목록을 가져온다.

 

 

댓글