본문 바로가기

춤추는 프로그래머/Bluetooth, Socket

블루투스 프로토콜 스택(1)

블루투스 프로토콜 스택(1)

BT Lab 이한욱 (equinox@btlab.co.kr)

블루투스 프로토콜은 HCI(Host Controller Interface)를 기준으로 크게 상하위 프로토콜로 구분할 수 있다. 본고에서 는 5부로 나누어 블루투스 프로토콜에 대해 살펴보기로 하겠다.

블루투스 프로토콜 스택(Protocol Stack)
  블루투스의 프로토콜 스택은 [그림1]에서 보여지는 바와 같다. 프로토콜 스택이란 그림에서 보여지는 바 와 같이 하위 계층부터 상위 계층까지 쌓아올린 프로토콜의 집합을 말한다. 이 프로토콜 스택은 보통 HCI(Host Controller Interface)를 기준으로 호스트 컨트롤러(Host Controller) 프로토콜과 호스트(Host) 프로토콜로 나뉘게 된 다. [그림1]을 보면 HCI가 두 개의 계층에 위치하는데 바로 아래쪽 HCI가 호스트 컨트롤러에 포함되는 것이고, 위쪽의 HCI가 호스트에 포함되는 것이다. 여기서 호스트 컨트롤러에 포함되는 HCI를 `HCI Bottom', 호스트에 포함되는 HCI를 `HCI Top'이라고 말하기도 하며, 두 개의 HCI 사이는 물리 링크인 UART, USB, PCMCIA 등의 인터페이스로 연결된다.


[Fig1] 블루투스 프로토콜 스택

  블루투스의 프로토콜 스택은 [그림1]에서 보여지는 바와 같다. 프로토콜 스택이란 그림에서 보여지는 바 와 같이 하위 계층부터 상위 계층까지 쌓아올린 프로토콜의 집합을 말한다. 이 프로토콜 스택은 보통 HCI(Host Controller Interface)를 기준으로 호스트 컨트롤러(Host Controller) 프로토콜과 호스트(Host) 프로토콜로 나뉘게 된 다. [그림1]을 보면 HCI가 두 개의 계층에 위치하는데 바로 아래쪽 HCI가 호스트 컨트롤러에 포함되는 것이고, 위쪽의 HCI가 호스트에 포함되는 것이다. 여기서 호스트 컨트롤러에 포함되는 HCI를 `HCI Bottom', 호스트에 포함되는 HCI를 `HCI Top'이라고 말하기도 하며, 두 개의 HCI 사이는 물리 링크인 UART, USB, PCMCIA 등의 인터페이스로 연결된다.
  호스트 컨트롤러란 바로 블루투스 모듈에 해당한다. 그리고 호스트 컨트롤러 프로토콜은 보통 베이스밴드 (Baseband), 링크 매니저(LM), HCI Bottom 정도가 포함된다. 대부분 이 세 개의 프로토콜이 펌웨어(Firmware) 형태로 모듈 내부에 포함된다.
  호스트는 호스트 컨트롤러인 블루투스 모듈과 연결되어 블루투스 모듈을 제어하고 어플리케이션을 수행하 는 곳으로 그 종류는 시스템에 따라 달라질 수 있다. 보통 PC, PDA, 핸드폰 등이 모두 호스트가 될 수 있고, 임베디드 시스템의 경우 마이크로 프로세서가 호스트가 된다. 또 호스트에 포함되는 프로토콜은 HCI Top부터 그 상위 계층 프로 토콜(L2CAP, RFCOMM, SDP, TCS, OBEX) 모두에 해당된다. 그렇다고 항상 상위 계층 프로토콜이 모두 포함되는 것은 아니 고, 어플리케이션의 종류나 프로파일(Profile)에 따라 포함되는 프로토콜이 달라진다.
  그런데 항상 호스트와 호스트 컨트롤러 사이의 프로토콜 스택의 배분이 위와 같은 것은 아니다. 위에서 설 명한 바와 같이 HCI를 기준으로 프로토콜을 배분하는 것이 가장 일반적인 방법이기는 하나 호스트의 종류에 따라 [그림 2]와 같이 세종류로 나누어질 수 있다. <그림2>에서 `Standard Two Processor Architecture'가 위에서 설명했던 가장 일반적인 구조이다. 그러나 사실 HCI 상위 계층의 L2CAP, RFCOMM, SDP, TCS 등의 많은 프로토콜을 구현하고 어플 리케이션을 수행하는데는 호스트에 걸리는 작업 로드가 크고, 많은 리소스를 필요로 하게 된다. 따라서 핸드폰과 같이 블루투스 프로토콜 스택을 위해 할당된 리소스가 적은 호스트일 경우 <그림2>의 두 번째 구조인 `Embedded Two Processor Architecture' 형태로 프로토콜 스택을 배분한다. [그림3]의 세 번째 구조인 `Wholly Embedded Single Processor Architecture'는 별도의 호스트가 존재하지 않는 구조이다. 즉 호스트 컨트롤러인 블루투스 모듈만이 존재하 고, 이 모듈 내에 모든 프로토콜 스택이 구현되어 있다. 이런 구조에 가장 적합한 어플리케이션이 무선 헤드셋 (Headset) 혹은 HID(Human Interface Device)이다. 이 구조는 말 그대로 별도의 호스트가 필요없는 완전한 임베디드 구 조를 지니기는 하나 블루투스 모듈 내부의 자체 프로세서를 사용하므로 비교적 간단한 어플리케이션에 적합하다.


[Fig2] 시스템의 형태에 따른 프로토콜 스택의 배분 (발췌:BlueStack User Manual, Mezoe, 2001)

(2002.11.26)

본고에 대한 저작권은 서울대 BT Lab에 있습니다. 저자의 동의없이 임의로 게재, 배포하는 행위를 금합니다.