본문 바로가기
Wireless

블루투스의 구조: 프로토콜 스택 이해하기

by Embedded.AI 2024. 7. 28.
반응형

블루투스의 구조: 복잡해 보이지만 알고 보면 단순한 이야기

우리가 매일 사용하는 블루투스 기술의 내부 구조에 대해 이야기해볼까 합니다. 처음 보면 복잡해 보이지만, 하나씩 살펴보면 그리 어렵지 않답니다.

블루투스의 구조: 복잡해 보이지만 알고 보면 단순한 이야기

블루투스의 구조, 어떻게 생겼을까?

블루투스의 구조, 어떻게 생겼을까?

위 그림을 보면 블루투스가 크게 두 부분으로 나뉘어 있는 걸 볼 수 있어요.

  1. 위쪽의 '상위 계층 스택'
  2. 아래쪽의 '하위 계층 스택'

이 두 부분이 함께 동작되면서 우리가 아는 블루투스 기능을 만들어내는 거죠.

상위 계층 스택: 소프트웨어의 영역

상위 계층은 'Bluetooth Host CPU'라고 써있는 부분이에요. 여기는 호스트엣허 주로 소프트웨어가 담당하는 영역이라고 보면 됩니다.

1. HCI (Host Controller Interface)

HCI는 말 그대로 '호스트와 블루투스 하위시스템 사이의 통역사' 같은 존재예요. 상위 계층과 하위 계층 스택 사이에서 서로 알아들을 수 있게 통역을 해주는 거죠.

2. L2CAP (Logical Link Control and Adaptation Protocol)

L2CAP는 좀 길어서 읽기 힘들죠? 쉽게 말해 '데이터 정리정돈 담당'이에요. 위에서 내려온 데이터를 아래로 보내기 좋게 포장하고, 아래에서 올라온 데이터를 위에서 쓰기 좋게 풀어주는 역할을 합니다.

기능 설명 비유
데이터 패킷 관리 큰 데이터를 작은 조각으로 나누고(세그멘테이션), 작은 조각을 다시 모음(재조립)  
프로토콜 멀티플렉싱 여러 종류의 데이터를 하나의 블루투스 링크로 전송  
서비스 품질(QoS) 관리 데이터 전송 속도와 안정성을 요구사항에 맞게 조절  
오류 제어 및 재전송 데이터 전송 오류를 감지하고 필요시 재전송  
흐름 제어 수신 측이 처리할 수 있는 속도에 맞춰 데이터 전송 조절  
채널 관리 여러 개의 논리적 채널을 생성하고 관리  
MTU 협상 한 번에 전송할 수 있는 최대 데이터 크기 결정  

3. SDP (Service Discovery Protocol)

SDP는 '서비스 제공자'이라고 생각하면 돼요. 블루투스 기기들이 어떤 서비스를 제공하는지 찾아주고 알려주는 역할을 합니다. SDP가 지원하는 주요 서비스 유형은 오디오 서비스, 파일 전송 서비스, 네트워킹 서비스, 전화 서비스, 프린팅 서비스, 시리얼 포트 서비스 등등이 있습니다. 블루투스 프로파일로 보면 다음과 같이 정리해볼수 있어요.

프로파일 약어 설명
Advanced Audio Distribution Profile A2DP 고품질 오디오 스트리밍을 위한 프로파일. 블루투스 헤드폰, 스피커 등에서 사용.
Audio/Video Remote Control Profile AVRCP 오디오/비디오 기기의 원격 제어를 위한 프로파일. 음악 재생, 일시정지, 다음 곡 이동 등의 기능 제공.
File Transfer Profile FTP 파일 및 폴더의 전송, 탐색, 조작을 위한 프로파일. 스마트폰과 컴퓨터 간 파일 교환 등에 사용.
Hands-Free Profile HFP 차량용 핸즈프리 키트나 블루투스 헤드셋을 이용한 통화를 위한 프로파일.
Headset Profile HSP 블루투스 헤드셋의 기본적인 기능(통화)을 위한 프로파일. HFP보다 기능이 제한적.
Object Push Profile OPP 간단한 파일 전송을 위한 프로파일. 명함, 일정 등의 교환에 주로 사용.
Personal Area Networking Profile PAN 블루투스를 이용한 네트워크 연결을 위한 프로파일. 인터넷 연결 공유 등에 사용.
Serial Port Profile SPP 시리얼 포트 에뮬레이션을 위한 프로파일. 레거시 장비와의 호환성을 위해 사용.
Human Interface Device Profile HID 키보드, 마우스 등의 입력 장치 연결을 위한 프로파일.
Phone Book Access Profile PBAP 전화번호부 접근을 위한 프로파일. 차량용 시스템에서 많이 사용.

각 프로파일은 특정 용도나 기능을 위해 설계되었으며, SDP를 통해 기기 간에 이러한 프로파일의 가용성을 확인하고 연결을 설정합니다.

4. Access Protocols

여기에는 RFCOMM, BNEP 같은 것들이 있어요. 이들은 각각 특별한 목적을 가진 '전문 배달부'라고 보면 됩니다. RFCOMM은 오래된 시리얼 포트 방식을 흉내 내고, BNEP은 인터넷 데이터를 블루투스로 보내는 일을 담당합니다.

하위 계층 스택: 하드웨어의 영역

하위 계층은 'Bluetooth Module'이라고 표시된 부분이에요. 여기는 실제 무선 통신을 담당하는 하드웨어와 가까운 부분입니다.

1. Radio Interface

이건 진짜 무선 신호를 주고받는 부분이에요. 2.4GHz 주파수를 사용해서 데이터를 공기 중으로 쏘아보내고 받아들이는 역할을 합니다.

2. Baseband Controller

베이스밴드 컨트롤러는 '데이터 교통정리 담당'이에요. 데이터 패킷의 형식을 정하고, 언제 어떤 순서로 데이터를 보낼지 결정합니다.

3. Link Manager

링크 매니저는 '연결 관리자'예요. 다른 블루투스 기기와의 연결을 맺고 끊는 일을 담당합니다. 보안이나 전력 관리 같은 중요한 일도 처리해요.

4. Host Controller

이건 위에서 본 HCI의 짝꿍이에요. HCI를 통해 내려온 명령을 실제로 실행하고, 아래에서 일어난 일을 위로 보고하는 역할을 합니다.

Voice CODEC

오른쪽에 있는 'Voice CODEC'은 음성 데이터를 다루는 특별한 부분이에요. 우리가 블루투스 이어폰으로 음악을 듣거나 통화를 할 때, 이 부분이 열심히 일하고 있는 거죠.

블루투스 프로토콜 스택은 상위 계층(소프트웨어)과 하위 계층(하드웨어)으로 구성되어 있으며, 각 계층은 특정 기능을 담당하여 효율적인 무선 통신을 가능하게 합니다. 상위 계층에는 HCI, L2CAP, SDP 등이 포함되어 데이터 관리와 서비스 검색을 담당하고, 하위 계층에는 Radio Interface, Baseband Controller, Link Manager 등이 포함되어 실제 무선 신호 전송과 연결 관리를 담당합니다. 이러한 구조를 바탕으로 다양한 블루투스 프로파일(A2DP, HFP, FTP 등)이 정의되어 있어, 우리가 일상에서 다양한 블루투스 기기를 쉽게 연결하고 사용할 수 있게 해줍니다.

반응형