본문 바로가기

2013
마이크로소프트웨어

글: 라영호 | ratharn@naver.com / 2013년 7월호


<SMART & CONTENTS>

스마트폰 하드웨어 연결 기술 동향

스마트폰은 IT에서 소프트웨어뿐만 아니라 하드웨어의 기술 흐름까지 바꿔놓았다. 또한 지하철에서 즐기는 소설 네트워킹 및 스마트워크, 게임, 메신저 등 사람의 일상적인 생활마저도 변화시켰다. 물론 이런 기술과 삶의 변화가 긍정적인지 또는 부정적인지는 추후 판단할 문제다. 그러나 확실한 것은 누구나 쉽게 스마트폰을 통해 메일을 읽은 후 회신을 보내고, 업무를 수행하며, 친구들과 지속적으로 소통할 수 있게 됐다는 점이다.



최근 스마트폰은 디바이스 성능뿐만 아니라 다양한 하드웨어와의 연결에 초점을 맞춰 발전하고 있다. 실제로 우리 주변에서 스마트폰과 연결된 장난감, 온도계, 저울, 현미경 등에서 이런 현상을 쉽게 찾아 볼 수 있다. 이 글은 이런 장치들이 어떤 방식으로 스마트폰과 연결되고, 장치들과 아이폰 또는 안드로이드폰을 연결하는 프로그램은 어떻게 작성하는지를 알아보는 데 그 목적이 있다.

이를 위해 스마트폰과 연결된 장치의 기술적인 접근과 방법들을 살펴보고 아이폰과 연결된 장치의 하드웨어 및 관련 프로그래밍 방법을 알아본다. 이때 연결 방식은 블루투스와 와이파이를 이용하는 것을 위주로 설명하겠다. 물론 안드로이드폰과 연결된 장치의 하드웨어 및 관련 프로그래밍 방법도 살펴본다. 특히 BLE(Bluetooth Low Energy) 및 BT 연결 방법을 알아본다. 그리고 스마트폰을 이용한 IoT(Internet Of Things) 구현 및 사용에 대해 설명한다.


스마트폰과 연결된 장치 사례 
스마트폰과 연결되는 장치들에는 무선 조종 장난감, 운동량 측정 장치, 원격 조정 장치 등 다양하다. 이들을 통칭 앱세서리(Appcessory)라고 부르는데, 앱을 통해 조정하는 장치 혹은 부가 장치라는 의미를 가지고 있다. 이들 대부분은 스마트폰에 내장된 블루투스나 와이파이 등의 통신방법을 사용해 연결하지만, 마이크 또는 스마트폰과 PC와의 동기화 과정에서 사용하는 커넥터를 통한 연결방법도 사용한다. 지금부터 스마트폰과 연결된 대표적인 장치들에 대해 알아보겠다.

● 로버
와우위의 로버(Rover)는 스마트폰으로 원격 제어해 로봇에서 촬영된 영상을 보고 제어할 수 있는 장난감이다. 와이파이를 사용해 실시간으로 영상과 음성을 전달할 수 있다.



<그림 1> 와우위의 로버


● 스페로 로봇
공 모양의 스페로 로봇(Sphero Robot)은 블루투스를 사용해 움직이는 장난감이다. 특히SDK를 배포하고 있어 스패로 로봇을 활용한 다양한 앱을 개발할 수 있다. 그런 점에서 앱에 연결하는 장치와 앱 개발 툴이 제공되는 스패로 로봇은 진정한 의미의 스마트폰용 연결 장치라고 할 수 있다. 그럼에도 불구하고 아직까진 개인용 로봇 형태라는 한계 때문에 할 수 있는 게 그렇게 많지 않다는 게 아쉽다.


<그림 2> 스페로 로봇


● 락키트론
락키트론(Lockitron)은 문에 부착하는 인터넷 자물쇠다. 블루투스, 충격감지 센서, 와이파이 등을 내장하고 있어 스마트폰 앱을 이용해 문을 여닫거나 또는 스마트폰을 문 앞에 가져다 대면 자동으로 열리게 할 수도 있다. 그리고 방문자가 노크하면 락키트론이 이를 인지해 그 사실을 스마트폰으로 알려주는 기능까지 제공한다.


<그림 3> 락키트론


● 위모
컴퓨터 액세서리 전문 기업 벨킨이 출시한 위모(WeMo)는 가전기기 전원을 스마트폰 앱을 이용해 쉽게 제어할 수 있게 해준다. 위모 스위치를 전기 콘센트에 설치한 후 가전기기의 전원을 꽂으면 앱을 통해 가전기기의 전원을 켜고 끌 수 있다. 특히 위모 모션은 인터넷과 연결돼 있어 집 밖에서 스마트폰 앱으로 집 안 가전기기의 전원 상태를 확인 가능하다.


<그림 4> 위모


● 트와인
작은 센서를 이용해 다양한 방법으로 자유롭게 사물 인터넷을 구성할 수 있는 제품도 있다. 직사각형 모양으로 생긴 트와인(Twine)에는 온도 센서와 가속도 센서 등 5개의 센서가 내장돼 있다. 물론 외장 센서를 추가로 장착할 수 있다. 트와인에는 와이파이 모뎀이 탑재돼 있어 센서에서 감지한 데이터를 PC나 스마트폰 등에서 확인 가능하다. 특히 다양한 방식으로 구성할 수 있는 스크립트 프로그램을 제공한다. 이 프로그램을 이용하면 센서에서 특정값이 입력되면 SMS, 이메일, 트위터 등의 미리 지정해둔 컴퓨팅 작업이 이뤄지게 설계할 수 있다. 예를 들어 현관문에 트와인을 장착하고 문이 열리면 그 내용을 SMS로 발송하라는 식으로 작업을 설정할 수 있다. 트와인을 특별히 언급한 것은 와이파이를 이용한 스마트폰 통신이 트와인과 동일한 구조로 구성되기 때문이다.


<그림 5> 트와인


<그림 6>에서 보듯 트와인의 구조는 마이크로프로세서, 센서, 와이파이 모듈이 핵심 구성요소이고, 그 외 전원을 공급하는 부분으로 구성돼 있다. 특히 와이파이 모듈에는 TCP/IP 스택이 내장돼 있어 웹서비스를 쉽게 마이크로프로세서에서 구현할 수 있다. 이렇게 간단한 와이파이 구조를 통해 스마트폰과의 연동장치를 구성할 수 있다.


<그림 6> 트와인 내부 구조


스마트폰 통신기술
지금까지 등장한 스마트폰과 연결 장치 간 통신방법은 매우 다양하다. 그리고 스마트폰에는 통신을 위한 대부분의 장치들이 내장돼 있다. 따라서 어떤 장치를 사용해 스마트폰과 연결할지가 핵심이다. 실제로 블루투스 통신기술은 비교적 저렴하게 연결 장치에 내장할 수 있지만, 와이파이 통신기술은 연결 장치에 내장하기에 가격이 매우 비싸다. 지금부터 스마트폰과 연결 장치 간 통신방법을 좀더 자세히 알아보자.

● 블루투스
앞서 설명한 대로 가장 저렴한 방식이다. 일반적인 스마트폰이라면 어떤 것이든 와이파이 및 블루투스 장치를 모두 내장하고 있으므로 다양한 스마트폰에서 사용할 수 있다. 그래서 이번 연재에도 블루투스를 사용한 통신방법을 주로 다룬다. 과거에 아이폰에서의 블루투스 통신은 애플에서 MFI(Made For IPhone/IPad) 인증을 받아야 장치를 만들 수 있었다. 하지만 블루투스 4.0 버전부터는 MFI 인증 없이도 아이폰과 연동되는 장치를 개발할 수 있다.

● 와이파이
스마트폰에서는 문제가 없지만 와이파이 모듈을 탑재한 연결 장치를 만들기 위해서는 하드웨어 사양이 좋거나 TCP/IP와 같은 프로토콜이 내장된 와이파이 칩을 사용해야 한다. 이로 인해 제품 단가가 상승한다. 결국 고급 사양의 제품이거나 고기능을 요하는 제품에서 주로 사용되는 방식이다. 앞에서 설명한 트와인과 같은 장치들이 이 방법을 사용하고 있다.

● 헤드폰잭
스퀘어는 스마트폰상에서 간편하게 신용카드 결제 기능을 제공하는 혁신적인 서비스로 호평받았다. 그 스퀘어가 사용한 방식이 헤드셋을 장착할 수 있는 헤드폰잭을 사용한 것이다. 이 방식의 장점은 저렴한 부품으로 스마트폰과 연동되는 장치를 만들 수 있다는 것이다. 이러한 장점 때문에 스퀘어에서도 10달러 대의 저렴한 카드리더를 판매해 서비스를 제공할 수 있다.


<그림 7> 스퀘어의 카드리더

근거리 무선통신
근거리 무선통신(Near Field Communication, NFC)은 13.56MHz의 대역을 가진 매우 근거리의 무선통신을 위한 기술이다. 현재 지원되는 데이터 통신 속도는 초당 424kbit다. 교통, 티켓, 지불 등 여러 서비스에서 사용할 수 있으며 스마트폰에서는 <그림 8>과 같은 NFC 태그를 사용해 간단한 통신을 하거나 정보를 전달하는 용도로 쓰인다.



<그림 8> NFC 태그


블루투스 통신기술
블루투스는 다른 어떤 통신 방식보다 통신 기능이 내장되지 않은 디바이스들 간의 무선 네트워크를 쉽고 값싸게 구현할 수 있게 돕는다. 그래서 블루투스는 휴대폰, 스마트 디바이스, 노트북, 태블릿PC, PC, 심지어 TV나 냉장고와 같은 백색가전에서의 네트워크 시대를 열어줄 기술로 받았었다. 하지만 실질적인 성장은 최근의 스마트폰에서 많이 이뤄졌다.

블루투스는 1994년 이동통신 그룹인 에릭슨(Ericsson)이 휴대폰과 주변기기 사이에서의 낮은 소비전력과 가격을 보장하는 무선통신 인터페이스를 연구하면서 시작됐다. 그랬던 것이 1996년 2월에는 에릭슨, 노키아, IBM, 도시바, 인텔이 블루투스 SIG (Special Interest Group, www.bluetooth.com)를 결성했다. 현재는 마이크로소프트, 루센트(Lucent), 쓰리콤, 모토로라가 참여해 총 9개 기업이 활약 중이며, 관련기업만 해도 2,000여 곳에 이른다.

블루투스는 칩 당 가격이 5달러 이하이며 100mW라는 적은 전력으로 10m 또는 100m 내에서 2.4Ghz의 ISM(Industrial, Scientific, and Medical) 밴드 주파수 대역을 사용한다. 이 때 10m에서는 0dBm, 100m에서는 +20dBm 출력이 가능한 전력증폭기를 사용한다. 블루투스 네트워크에서는 1대 1 통신과 1 대 n 통신이 모두 가능하다.

블루투스와 무선 랜 그리고 HomeRF의 비교
스마트폰 통신에 사용되는 대표적인 기술에는 블루투스를 비롯해 IEEE 802.11, 즉 무선 랜과 홈 RF 그리고 IrDA 등이 있지만, 가장 주목받는 것은 블루투스다. 왜냐하면 블루투스는 비교적 통신방식이 간단하고, 세계적인 칩과 스마트폰 제조사들 대부분이 블루투스를 채용하고 있으며, 저렴한 가격으로 공급되고 있기 때문이다. 또한 블루투스에서 사용하는 주파수 대역은 ISM 밴드로 거의 모든 국가에서 공통으로 사용하고 있어 별도의 인증과정 없이도 쓸 수 있다.


<표 1> 스마트폰에서의 근거리 통신방식 비교


블루투스 프로토콜 내부 소프트웨어 구성
블루투스 내부 소프트웨어는 크게 세 가지로 구분된다. 첫 번째로 블루투스 하드웨어와 밀접한 관계를 가지고 있으며 펌웨어(Firmware) 형태로 제공되는 연결 관리자(Link Manager)와 호스트 컨트롤러 인터페이스(Host Controller Interface, HCI)다. 이 둘은 베이스밴드(Baseband) 소프트웨어라고 불리며, 보통 칩 제조업체에서 제공한다. 구성은 <그림 9>와 같다.


<그림 9> 블루투스 소프트웨어 구조


- 베이스밴드 소프트웨어 : 블루투스 모듈 관리 소프트웨어
- 연결 관리자 : 블루투스 연결 관리 소프트웨어 부분
- 연결 관리 프로토콜(Link Manager Protocol) : 연결 관리 프로토콜 처리 부분
- HCI 호스트 컨트롤러 부분
- UART 인터페이스 소프트웨어 : 시리얼 통신을 위한 통신 처리 소프트웨어
- USB 인터페이스 소프트웨어 : USB 통신을 위한 통신 처리 소프트웨어

두 번째로 호스트에 존재하는 프로토콜 스택은 PC나 스마트폰과 같은 운영체제가 있는 곳에 설치되는 소프트웨어로 그 구성은 아래와 같다.

- HCI 호스트 인터페이스
- L2CAP(Logical Link Control and Adaptation Protocol)
- SDP(Service Discovery Protocol)
- RFCOMM(RS-232 포트 시뮬레이션)
- TCS(Telephony Control Protocol)
- OBEX(Object Exchange Protocol)

마지막으로 블루투스의 사용 및 응용분야에 따른 내용을 규정한 프로파일로 그 구성은 다음과 같다. 이 프로파일들은 실제로 블루투스를 통해 전화로 접속하거나 시리얼 통신 등과 같은 작업을 진행할 때 사용하는 프로파일이다.

- GAP(Generic Access Profile) : 일반 접근 프로파일
- SDAP(Service Discovery Application Profile) : 서비스 관리 프로파일
- CTP(Cordless Telephony Profile) : 무선 전화기 프로파일
- IP(Intercom Profile) : 인터콤 프로파일
- SPP(Serial Port Profile) : 시리얼 포트 프로파일
- DUN(Dial-up Networking Profile) : 전화 접속 네트워크 프로파일
- FAX Profile : 팩스 전송 프로파일
- Headset Profile : 헤드셋 프로파일
- LAN Access Profile : 랜 프로파일

연결 관리 프로토콜
연결 관리 프로토콜은 블루투스 하드웨어의 핵심이라고 할 수 있는 베이스밴드 하드웨어를 직접 제어하는 펌웨어 레벨의 소프트웨어다. 연결 관리 프로토콜에는 피코넷 관리(Piconet managerment), 링크 관리(Link Configuration), 암호화 기능(Security Functions) 등으로 구성되며, 각각의 세부기능은 다음과 같다.

- SCO(Synchronous Connection Orient)의 연결 : 전력모드 관리
- 링크 관리 : 전송 퀄리티 제어(QoS), 전력제어
- 암호화 기능 : 인증(Authentication), 암호화(Encryption)

호스트 컨트롤러 인터페이스
호스트 컨트롤러 인터페이스(HCI)는 블루투스 프로토콜 스택에서 가장 기본이 되는 것으로 HCI의 이해 정도에 따라 블루투스에 대한 전반적인 이해를 할 수 있느냐 없느냐를 가늠할 수 있다. 실제로 HCI에 대한 내용은 블루투스 스펙의 대부분을 차지하고 있다. 즉, 스택에서도 중요한 부분을 차지하고 있다고 해도 과언이 아니다.
HCI는 하드웨어 인터페이스의 종류에 따라 UART와 USB로 나눠진다. 또한 각각의 하드웨어 인터페이스 종류에 따라 HCI의 송수신 부분이 약간씩 달라지도록 구성해야 한다. HCI는 호스트와 호스트 컨트롤러 사이에 명령어와 그 수행 결과를 전달하고 또한 데이터를 전달할 목적으로 사용된다. 다시 말해 HCI는 크게 명령어(Command), 이벤트(Event) 그리고 데이터(Data) 송수신으로 크게 나뉜다(<그림 10> 참조).


<그림 10> HCI의 구조


HCI에서 명령어는 다음과 같이 크게 여섯 가지로 나뉜다. 하지만 전체 명령어는 총 90개 이며, 명령어 패킷 형식과 각각의 명령어별 상세한 내용은 스펙을 참고하길 바란다.

- Link Control Commands
- Link Control Commands(OGF = 0×01)
- Link Policy Commands(0×02)
- Host Controller & Baseband Command(0×03)
- Information Parameters(0×04)
- Status Parameters(0×05)?

● L2CAP
L2CAP(Logical Link Control and Adaptation Protocol)은 인터넷 프로토콜에서의 TCP 레이어가 가진 기능과 비슷하다. 이 프로토콜은 HCI 계층 위에 존재해 논리적인 연결을 담당한다. L2CAP은 HCI의 ACL 데이터 구조를 이용해 데이터를 서로 주고받으며 L2CAP과 L2CAP 사이에의 데이터 교환을 가능케 한다. 또 상위 레이어로 데이터를 주고받을 수도 있다. L2CAP의 주요 기능은 다음과 같다.

- 프로토콜 멀티플렉싱
- SAR(Segmentation and Reassembly)
- QoS
- 그룹 관리

● SDP
SDP(Service Discovery Protocol)는 블루투스 디바이스가 제공하는 서비스를 찾고 응답하기 위한 프로토콜이다. SDP는 서버와 클라이언트로 나뉜다. SDP 클라이언트에서 서버 쪽으로의 패킷 전송은 L2CAP 패킷의 데이터 부분에 있는 SDP에서 사용되는 패킷을 넣어 전달하고, 해당 패킷은 L2CAP의 위쪽 계층에 있는 SDP로 전달된다. SDP 서버는 전달된 데이터를 분석한 후 적당한 응답을 되돌려준다.

블루투스 버전에 따른 분류
블루투스의 다양한 버전별 내용을 살펴보자.

● Bluetooth v2.0 + EDR
기존 최고 전송속도였던 721kbit/s를 3Mbit/s로 끌어 올렸다. 실제 전송 가능한 속도는 2.1Mbit/s다.

● Bluetooth v2.1 + EDR
이전 버전과 가장 눈에 띄게 달라진 점은 손쉬운 페어링(Paring)이 가능하도록 SSP(Secure Simple Pairing) 기능을 추가한 것이다. 그 외에 연결 시 필터링이 쉽도록 EIR(Extended inquiry response)을 강화하고, 저전력 모드에서도 소비 전류를 줄일 수 있는 기능을 추가했다. 대부분의 안드로이드폰이나 초기 아이폰에서 사용된 블루투스 통신모드다.

● Bluetooth v3.0 + HS
여기서부터 비교적 최근에 나온 갤럭시 S2나 동급 스마트폰에서 제대로 지원하기 시작했다. Bluetooth 3.0 + HS는 이론적으로 24Mbit/s이라는 엄청난 속도를 제공한다.

● 블루투스 4.0
소비전력을 줄인 저에너지 기술에 고속 무선통신을 지원하는 것이 특징으로 평균 전력과 대기전력을 줄여 동전만한 크기의 배터리로 수 년 동안 작동할 수 있다. 기존 3Mbps 전송속도를 24Mbps로 확장해 실시간 비디오 전송이나 대용량 데이터 전송을 보다 쉽고 빠르게 구현할 수 있다.

블루투스 핵심 규격인 4.0 버전에서 가장 주요한 기능이 될 것으로 평가되는 저에너지 블루투스 기술의 특징은 다음과 같다.

- 극히 적은 피크전력, 평균전력 및 대기전력
- 동전 모양의 배터리로 수년간 작동할 수 있음
- 다수 업체 간 상호호환성
- 길어진 송수신 거리

또 다른 블루투스 4.0 핵심 규격은 싱글 모드와 듀얼 모드 두 형태로 구현할 수 있다는 점이다.

- 싱글모드 칩들은 통합성이 고도로 높고 크기가 매우 작은 디바이스들에 적합하다.
- 이 칩들은 극히 적은 대기모드 전력과 간단한 디바이스 감지 그리고 최소의 비용으로 고도의 절전 기능과 보안성이 높은 암호화된 연결을 통해 믿을만한 1:1 연결이나 1:N 연결 데이터 전송 기능

스마트폰에서의 블루투스
스마트폰에서 사용하는 주요 블루투스의 기능 및 프로파일은 다음과 같다.

● HFP(Hands-Free Profile)
일반적으로 핸즈프리를 지원하는 기기에서 사용되는 프로파일이다. 오직 음성만을 지원하며, 주로 자동차에 사용되는 블루투스 기기에 사용된다. 현재 최신 버전은 1.5이며, iOS4에서 지원한다.

● PBAP(Phone Book Access Profile)
전화번호부에 접근하기 위한 프로파일이다. 아이폰에서 홈 버튼을 계속 누르고 있으면 시작되는 음성 명령 애플리케이션 등이 PBAP를 지원하는 프로그램이다

● A2DP(Advanced Audio Distribution Profile)
헤드셋이나 스피커로 음악을 전송할 때 사용하는 프로파일이다. 아이폰3G와 iOS3 버전부터 이 방식이 지원되기 시작했다. 아이폰으로 음악을 들을 경우 직접 화면을 보고 조절할 수 있다.

● AVRCP(Audio/Video Remote Control Profile)
오디오뿐만 아니라 비디오까지 컨트롤할 수 있다. 아이폰3G, iOS4.1 버전부터 지원됐다.

● PAN(Personal Area Network Profile)
피코넷(piconet)이라고 불리기도 하는 이 프로파일은 최대 8개의 장치와 마스터-슬레이브로 연결될 수 있는 연결방식으로, IEEE 802.15에 정의돼 있다. 일반적인 지원영역은 10m 정도이며, 기기끼리 연결해 최대 100m까지 사용할 수 있다. 데이터 교환을 위해서는 반드시 필요하며, 초기 아이폰을 제외하고는 모두 지원한다.

● HID(Human Interface Device Profile)
각종 키보드, 마우스, 게이밍 디바이스, 태블릿 등을 지원하는 프로파일이다. 아이폰3GS 이상, iOS4 이상부터 지원되기 시작했다. 이 프로파일을 이용하면 블루투스 키보드를 아이폰이나 아이패드와 연결할 수 있다

● 아이폰 블루투스 프로그래밍
아이폰에서는 CoreBluetooth 프레임워크를 활용해 블루투스 통신을 할 수 있는 기능을 제공하고 있다. 앞으로 진행될 프로그래밍에도 이 프레임워크가 사용될 것이다.



정리하며
지금까지 스마트폰과 연결 장치 간 프로그래밍을 위한 기초 정보를 살펴봤다. 다소 기술이고 용어를 설명하는 것에 중점을 뒀는데, 그 이유는 프로그래밍하기 위한 기초 지식이 필요했기 때문이다. 다음 시간부터는 실질적인 예제를 살펴보면서 어떻게 프로그래밍하고 구현하는지를 살펴보겠다.



/필/자/소/개/

라영호ratharn@naver.com

윈도우폰 관련 스마트폰 앱 개발과 윈도우 임베디드CE 관련 장치를 개발했었고 이제는 앱과 MEMS 센서 및 임베디드 시스템을 개발하는 전문업체를 운영하고 있다. 개인 블로그(www.embeddedce.com)를 통해 임베디드 시스템 개발에 대한 다양한 생각과 방법론을 함께 생각해 보고자 노력 중이고, 오픈 하드웨어와 오픈소스를 이용한 새로운 프로젝트를 기획 중이다.



※ 본 내용은 (주)마소인터렉티브(http://www.imaso.co.kr/)의 저작권 동의에 의해 공유되고 있습니다.
    Copyright ⓒ Maso Interactive Corp. 무단전재 및 재배포 금지

맨 위로
맨 위로