1. 블루투스란?
블루투스는 2.4GHz 무선 링크를 통해 데이터를 주고 받는 근거리 무선통신 기술로 보안 프로토콜이며 단거리, 저전력, 저비용으로 다양한 장치들을 무선으로 연결하게 해준다.
최근에는 다양한 장치들이 무선으로 연결되어 편의를 제공해주고 있으며, 이 무선기술에는 블루투스가 대부분을 차지한다.
이어폰, 헤드셋, 마우스, 키보드, 스피커 등 다양한 장치들이 블루투스로 연결된다.
2. 블루투스의 작동원리
블루투스는 Unlicensed ISM Frequency Band - 2.4GHz 주파수 대역에서 작동하고, 이 주파수 대역은 WiFi 등에서도 작동하는 RF 대역이다. 따라서 블루투스는 다른 프로토콜과 분리되어 작동하도록 별도의 표준이 만들어져 있으며 표준에 대한 상세내용은 다음과 같다.
https://www.bluetooth.com/specifications/specs/core-specification-5-3/
마스터, 슬레이브, 피코넷
피코넷(Piconets)으로 불리는 블루투스 네트워크는 마스터(master) / 슬레이브(slave) 모델을 사용하는데, 이 모델은 하나의 마스터 장치가 최대 7개의 슬레이브 장치와 연결할 수 있다. 피코넷에 연결되는 슬레이브 장치는 오직 하나의 마스터 장치에만 연결할 수 있다.
블루투스 주소와 이름
모든 블루투스 장치에는 BD_ADDR이라 불리는 48-bit(6byte)의 고유한 주소를 가지며 이 주소는 항상 12자리 16진수로 표기된다. 이 주소의 앞 절반(24bits)은 OUI(Organization Unique Identifier)이며 제조사를 나타낸다. 뒤 절반은 장치의 고유 주소를 나타낸다.
블루투스 장치들은 사용자의 이해를 도모하기 위해 고유한 이름을 제공할 수 있다. 고유 주소만 보여주게 되면 사용자가 어떠한 장치인지 쉽게 파악하기 어려우므로 고유 주소 대신 제공하는 것이다. 장치의 이름은 248byte까지 사용가능하며 같은 이름을 취할 수 있다.
블루투스의 연결과정
블루투스는 세 단계에 걸쳐 연결되며 다음과 같다.
Inquiry | 연결할 기기와 연결 하고자 하는 기기가 한번도 연결된 적이 없다면 서로를 찾기 위한 과정을 거쳐야 한다. 하나의 장치(Phone, PC 등)가 연결하려는 장치에 inquiry request를 보내면 연결하고자 하는 다른 하나의 장치는 해당 request에 대해 주소, 이름 및 기타 정보에 대해 response를 주어야 한다. |
Paging (Connecting) |
paging은 두 장치가 연결되기 위한 과정이며 연결이 완성되기 위해서는 각 디바이스가 서로의 주소를 알고 있어야 한다. |
Connection | paging이 끝나면 connection 상태가 되며 연결이 되어 있는 동안 각 장치는 자신에 대한 모드를 바꿀 수 있다. - Active Mode : 일반적인 연결상태, 장치는 데이터를 송수신한다. - Sniff Mode : 절전모드, sleep(비활성) 상태를 유지하다가 정해진 간격(e.g. 매 100ms)마다 송수신이 있는지 확인한다. - Hold Mode : 일시적 절전모드, 장치는 정해진 시간동안 sleep 상태를 유지하다가 다시 Active Mode로 돌아온다. 마스터 장치가 슬레이브 장치에게 Hold Mode로 들어가도록 지시할 수 있다. - Park Mode : 정지모드, 더욱 깊은 절전모드로 마스터 장치에서 신호가 있을 때까지 정지모드로 들어간다. |
Bonding과 Pairing
두 장치가 연결된 후 데이터를 교환하면 Bonding 상태로 만들 수 있다. Bonding된 장치들은 서로 가까운 거리를 유지할 때 자동으로 연결된다. 예를 들어 휴대폰과 차량의 블루투스 스피커가 한번 데이터를 교환하면 Bonding되어 차량에 탑승하기만 해도 블루투스가 자동으로 연결된다. 이러한 과정이 진행되는데 별도의 UI 조작이 필요하지 않다.
이러한 Bonding은 Pairing이라는 과정에 의해 만들어진다. 페어링 과정에서 두 장치는 서로간의 주소, 이름, profile을 교환하고 저장해둔다. 또한 common secret key를 교환하여 향후에 Bonding될 때 사용한다.
페어링을 할 때에는 사용자가 원하는 장치만 연결할 수 있도록 별도의 인증과정을 요구하며 인증과정을 요구하기 위해 별도의 UI 조작을 요할 수 있으나 이를 거치지 않고 바로 연결하도록 할 수 있다. 헤드셋처럼 UI의 조작이 어려운 경우 6자리의 PIN 번호를 입력하는 등의 과정을 거칠 수 있다.
Power Class
블루투스 모듈의 신호 전송 강도, 신호 도달 범위는 다음과 같이 3단계 파워 클래스(Power Class)로 구분된다.
Class Number | Max Output Power(dBm) | Max Output Power(mW) | Max Range |
Class 1 | 20dBm | 100mW | 100m |
Class 2 | 4dBm | 2.5mW | 10m |
Class 3 | 0dBm | 1mW | 10cm |
3. 블루투스 프로파일(Bluetooth Profile)
블루투스 프로파일은 블루투스 장치가 어떤 종류의 데이터를 보내는지 명확하게 정의하기 위한 블루투스의 기본 표준위에 더해진 프로토콜이며, 블루투스 specifications는 블루투스가 어떻게 동작할지를 설명하고 profile은 어떻게 사용될지를 정의하는 것이다.
다시 말해서 블루투스 프로파일은 장치가 연결되었을 때 어떻게 동작해야할 지 설명하는 것이다. 핸즈프리 헤드셋의 경우 HEADSET PROFILE(HSP)을 사용하고, Nintendo Wii Controller의 경우 HUMAN INTERFACE DEVICE(HID) 프로파일을 사용한다. 이러한 장치들과 연결되는 장치는 호환성을 갖기 위해 해당 기기의 프로파일을 지원해야 한다.
SPP : Serial Port Profile
블루투스를 사용하여 Serial Common Interface(RS-232 또는 UART)를 무선으로 사용하려면 SPP를 적용할 수 있다. 이는 블루투스의 기본 프로파일이며 두 기기가 서로 많은 양의 데이터를 공유할 때 적합하다. 블루투스가 본래 RS-232 통신을 대체할 목적으로 만들어졌기 때문이다. SPP를 사용하면 RX, TX 라인이 마치 유선으로 연결된 것처럼 데이터를 주고 받을 수 있다.
HID : Human Interface Device
HID 프로파일은 대개 사용자에 의해 입력이 이뤄지는 키보드, 마우스, 조이스틱 등에 주로 사용된다.
이는 USB 사용자 입력 장치를 위한 것으로 SPP가 RS-232를 대체하는 것처럼 HID 프로파일 또한 USB 케이블을 대체할 목적으로 구상된 것이다.
HFP / HSP : Hands Free Profile / Headset Profile
HFP는 주로 차량의 핸즈프리 옵션에 사용되는 것이다. HFP, HSP는 양방향으로 오디오를 전송한다. HFP는 HSP와 결합하여 Phone Interation(전화 수신, 끊기, 통화 등)을 지원하기 위한 내용이 포함되어 있다.
A2DP : Advanced Audio Distribution Profile
블루투스 장치간 오디오를 전송하기 위한 프로파일로 HFP/HSP는 양방향 전송이었다면 A2DP는 단방향 전송이다. HFP/HSP에 비해 높은 음질을 자랑한다. 그러나 제한된 코덱만 지원한다는 단점이 있다.
AVRCP : A/V Remote Controll Profile
블루투스 장치를 무선으로 제어하기 위한 프로파일이다. 오디오 플레이어를 무선으로 제어할 수 있도록 A2DP와 함께 지원되는 경우가 있다.
4. 블루투스 버전
블루투스 기술은 1994년부터 계속적으로 발전하고 있으며 가장 최신버전은 Bluetooth 5.3이다.
Bluetooth 1.x
가장 초기에 나온 버전이며 프로토콜, 스펙 표준화를 위한 버전이다. 안정화 되어있는 버전은 1.2이며 지금의 블루투스보다 매우 제한적인 기능만 제공하며 최대 전송속도가 700kbps급이므로 대용량 데이터 전송에는 부적절하다.
Bluetooth 2.x + EDR(Enhanced Data Rate)
1.x버전에 비해 비약적으로 데이터 전송 속도를 끌어올렸으며 최대 전송속도는 3Mbps이다. 안정화 버전은 2.1버전이며 많은 데이터 전송을 필요로 하지 않는 마이크로 컨트롤러급에서 현재도 사용중이다.
Bluetooth 3.x + HS(High Speed)
2.x 버전의 전송속도 3Mbps 비해 8배 빨라진 24Mbps라는 전송속도가 특징이다. 그러나 이 속도는 WiFi를 연결해야 나오는 속도이며, 블루투스는 모듈과 모듈의 연결 및 연결관리에만 사용된다.
Bluetooth 4.x
4.x버전은 세개의 카테고리로 구분된다(Classic, High Speed, Low Energy).
Classic Bluetooth와 High Speed Bluetooth는 각각 Bluetooth 2.1 + EDR과 3.0 + HS에 대응한다. 따라서 4.x는 Low Energy와 대응한다. Bluetooth Low Energy, BLE는 기존 블루투스의 표준을 완전히 바꾼 저전력으로 동작하는 블루투스이다. BLE는 신호도달거리가 기존 블루투스의 100m에서 1/2로 줄어든 50m이고, 전송속도 또한 기존 0.7 ~ 2.1 Mbps에서 0.27Mbps로 줄어들었다.
BLE는 배터리에 의존하면서 빠른 전송속도와 연결의 지속성을 필요로 하지 않는 주변 장치(센서장치 등)에 적합하도록 설계되었으며, 스마트 워치 등 장치에 광범위하게 사용된다.
Bluetooth 5.x
5.x버전은 기존 1.0Mbps, 10m(class2)이던 최대속도와 최대거리를 선택할 수 있으며 최대 전송 거리를 희생하는 대신 전송 속도를 두 배까지(2.0Mbps) 높일 수 있으며, 전송 속도를 희생하는 대신 전송 거리를 최대 4배로 늘릴 수 있다.
패킷의 최대 길이를 늘렸기 때문에 페어링 과정 없이 통신하는 비연결 데이터 브로드캐스트 용량은 8배 증가하였다. 때문에 IoT 장치를 더 많이 연결할 수 있으며 더 많은 양의 데이터를 전송할 수 있다.
5. Wireless 통신 기술 비교
블루투스는 단순 무선 프로토콜은 아니며 무선 통신기술에 무조건적으로 좋은 기술이라고만 말할 수는 없다.
다른 무선통신 기술과 어떤 차이점이 있는지 다음과 같이 나타낼 수 있다.
Bluetooth Classic | Bluetooth 4.0 Low Energy(BLE) |
ZigBee | WiFi | |
IEEE Standard | 802.15.1 | 802.15.1 | 802.15.4 | 802.11(a, b, g, n) |
Frequency(GHz) | 2.4 | 2.4 | 0.868 0.915 2.4 |
2.4 5.0 |
Maximum row bit rate(Mbps) |
1 ~ 3 | 1 | 0.250 | 11(b), 54(g), 600(n) |
Typical data throughput (Mbps) |
0.7 ~ 2.1 | 0.27 | 0.2 | 7(b), 25(g), 150(n) |
Maximum(Outdoor) Range(Metets) |
10(classic 2) 100(classic 1) |
50 | 10 ~ 100 | 100 ~ 250 |
Relative Power Consumption |
MEDIUM | VERY LOW | VERY LOW | HIGH |
Example Battery Life | Days | Months ~ Years | Months ~ Years | Hours |
Network Size | 7 | UNDEFINED | 64,000+ | 255 |
'Study > Android' 카테고리의 다른 글
[Android] Android 12에서 강화된 블루투스 퍼미션 (0) | 2022.05.20 |
---|---|
Android : Google Maps, 구글 지도 사용하기 (0) | 2022.02.16 |
Android : Camera (0) | 2022.02.16 |
Android : SQLite (0) | 2022.02.16 |
Android : 장면 전환 시 데이터 주고 받기 (0) | 2022.02.16 |