블루투스 LE를 사용한 ‘Half-duplex’ 음성 통신 (1)블루투스 LE의 개요
블루투스 LE를 사용한 ‘Half-duplex’ 음성 통신 (2)BlueVoice 애플리케이션
블루투스 LE를 사용한 ‘Half-duplex’ 음성 통신 (3)실제 하드웨어 구현
블루투스 LE는 IoT 시대 구현의 중요한 기술로 인식되고 있다. 배터리 구동 IoT 기기의 무선 통신에서 이 기술이 이상적인 이유는 극저전력 소모라는 특징 때문이다. 비록 블루투스 저-에너지 표준이 현재로서는 특정 애플리케이션들에서만 사용되지만, 혁신적인 솔루션의 등장으로 멀티미디어 스트리밍 같은 다른 애플리케이션으로도 이 기술이 확산될 수 있을 것이다.
이에 블루투스 저-에너지 장치의 음성 스트리밍 애플리케이션인 BlueVoice를 소개한다. 먼저 음성 스트리밍 서비스를 지원하는데 필요한 확장 서비스 세트에 대해 알아본 뒤 실제 하드웨어로 구현된 애플리케이션의 성능을 살펴본다.
지난 수 십 년 동안 인터넷 사용이 폭발적으로 늘어나면서 일상생활 곳곳에서 사용되고 있다. 앞으로는 더욱 확장되면서 수십억, 수십조의 고유 식별이 가능한 무선 ‘사물’이 연결되어 인간 및 주위 환경과 소통하며 고난도의 작업을 할 수 있을 것이다.
이러한 ‘사물’은 센서일 수도 있고, 엑추에이터나 가전, 장난감일 수도 있다. 즉, 식별이 가능한 모든 가상의, 혹은 물리적인 개체가 대상이라는 뜻이다. 이러한 새로운 물결의 인터넷 혁명을 사물 인터넷(IoT)이라고 한다.
IoT에서는 모든 기기들을 표준 프로토콜 솔루션(예: the Internet Protocol)을 이용한 무선 인터페이스를 통해 전체 네트워크로 연결한다. ‘사물’을 연결하기 위한 무선 기술은 여러 가지가 있지만, 현장에서 배터리를 사용해 작동될 때는 저전력 통신 솔루션이 중요하다.
바로 이런 점에서 블루투스 저-에너지(Bluetooth Low Energy) 기술은 IoT에 사용하기에 효과적인 솔루션으로 인식되고 있으며 인터넷 관련 분야에서의 도입이 점차 확대되고 있다.
현재 IoT 분야에서 블루투스 LE 솔루션은 주로 생체 모니터링 용도로 사용되고 있다. 하지만 지난 몇 년 사이에 다른 여러 기술을 사용하는 새로운 첨단 애플리케이션들에 적용하려는 움직임을 보이고 있다.
예를 들어 참고문헌3)에 나타난 IEEE802.15.4 기반 네트워크의 음성 통신이 대표적이다4). 아직 멀티미디어 데이터 전송을 위해 블루투스 LE를 쓰는 것은 아직 태동 단계에 있으며 이용 가능한 솔루션은 애초에 이 기술이 지향했던 애플리케이션들로 한정적이다(예, 헬스케어, 피트니스).
이 글에서는 이러한 한계를 기술하고 블루투스 LE 장치를 통해 음성 스트리밍 서비스 지원이 가능한 BlueVoice 애플리케이션을 소개하고자 한다. 먼저 블루투스LE 기술의 개요를 살펴보고 이 새로운 애플리케이션을 지원하는데 필요한 확장 서비스 세트에 대해서 자세히 살펴본 후, STMicroelectronics의 STM32 Nucelo L476 보드를 사용한 실제 애플리케이션 설계를 통해 성능을 살펴본다.
지금부터 전체적인 통신 스택과 프로파일 개념에 대한 설명을 통해 블루투스 LE의 작동 원리를 설명하고, BlueVoice 애플리케이션의 블루투스LE 프로파일, 설계, 구현, 성능에 대해 설명한 후, 결론을 도출한다.
블루투스 LE의 개요
블루투스 LE는 2010년에 Bluetooth Version 4.0 Core Specification에 포함됐다. 블루투스 LE는 기존 블루투스와 유사한 설계를 유지함에도 불구하고 주로 극저전력용으로 개발됐다. 헬스케어, 피트니스, 스마트 홈은 블루투스 LE 기술을 사용해 배터리 사용 제품들을 연결할 수 있는 몇 안 되는 애플리케이션들이다.
그림 1에서 보는 것과 같이 전체적인 블루투스 LE 프로토콜 스택은 크게 Controller와 Host의 두 부분으로 나뉜다. 애플리케이션은 이 스택의 호스트 부분에 속하는 프로토콜들이 제공하는 서비스를 사용한다.
호스트 부분은 Logical Link Control and Adaptation Protocol(L2CAP), Attribute Protocol(ATT), Generic Attribute Profile(GATT), Security Manager Protocol(SM), Generic Access Profile(GAP)의 5개 층으로 이루어졌다.
또한 컨트롤러 부분은 Physical Layer(PHY)와 Link Layer(LL)의 2개 층으로 이루어졌다. 아우러 Host-Controller Interface(HCI)는 컨트롤러와 호스트 사이에 통신을 구현한다.
그림 1: 블루투스 LE 프로토콜 스택
Physical Layer는 무선 채널을 통해서 데이터를 주고받기 위해 비트 변조를 관리하는 일을 한다. 최대 데이터 속도는 1Mb/s이고, 통상적인 통신 거리는 수십 미터 대이다. 또한 Link Layer는 2개의 장치 사이에서 양방향 통신을 위해 기능을 지정하는 일을 한다. 블루투스 LE 노드에는 마스터와 슬레이브 등 두 가지 역할을 부여할 수 있다.
마스터 노드(예, 랩탑, 스마트폰)는 다른 장치를 스캔하고, 슬레이브 노드는 필요할 때마다 데이터를 전송한다(예, 신체 센서 기기). 슬레이브는 보통은 슬립 모드로 있다가 주기적으로 웨이크업을 해서 마스터에게 식별된다.
Link Layer 위쪽에서 Logical Link Control과 Adaptation Protocol 층은 두 가지 주된 기능을 제공한다. 이 프로토콜의 주된 역할은 멀티플렉싱 기능을 제공하고 상위 층들의 프로토콜 데이터를 표준 블루투스LE 패킷 형식으로 압축하는 것이다. Security Manager Protocol 및 Generic Access Profile은 각각 보안 및 관리 서비스를 제공한다.
특히 이들 프로토콜 스택 층은 피어(peer)들 간의 안전한 통신을 위해서 보안키가 생성되고 교환되는 방식을 지정하고(SM) 더 낮은 레벨에서 디바이스 간의 인터랙션 방식도 지정한다(GAP).
새로운 애플리케이션을 개발할 때 중요한 두 가지 구성요소가 Attribute Protocol과 Generic Attribute Profile이다. ATT 프로토콜은 상태가 없는(stateless) 클라이언트/서버 프로토콜이다. 다시 말해서 로우 레벨에서는 마스터이거나 슬레이브이거나 디바이스의 역할을 고려하지 않고 각각의 디바이스가 서버나 클라이언트, 혹은 둘 다가 될 수 있다는 것이다.
클라이언트는 서버로 데이터를 요청하고 서버는 클라이언트로 데이터를 전송한다. 이 데이터는 서버에 ‘어트리뷰트(attribute)’로 저장되는데 각각의 어트리뷰트는 GATT에 의해서 관리되는 데이터를 담고 있으며 Universal Unique Identifier(UUID)가 식별해낸다.
ATT 프로토콜은 전용 L2CAP 채널로 서버 어트리뷰트와 클라이언트 사이의 통신을 구축한다. GATT는 ATT의 위에 데이터 추상화 모델을 추가하고 디바이스 간의 ‘특성(characteristics)’을 교환하기 위해서 ATT 프로토콜에 저장되어 있는 데이터를 알아내는 역할을 담당한다.
각각의 블루투스 LE 장치는 일련의 가능한 어트리뷰트(저장 서비스)와 특성(저장 서비스에 연관된 어트리뷰트)으로 구성되는데, 블루투스 LE 프로토콜 스택 상에 새로운 애플리케이션이 구성되면 어트리뷰트와 특성 모두를 지정해야 한다. 이러한 특정 애플리케이션의 전체적인 특성, 어트리뷰트, 로우 레벨 규격 모두를 통틀어서 ‘프로파일(profile)’이라고 한다. 이때 표준 프로파일을 쓰면 다양한 업체의 제품들 간의 상호 운용이 가능하다.
마우리지오 젠틸리, 로베르토 산니노 _ STMicroelectronics
마테오 페트라카 _ Scuola Superiore Sant’Anna di Pisa and National Inter-University Consortium for Telecommunications
Copyright ⓒ 첨단 & Hellot.net