Как телефон находит Bluetooth-наушники, и почему соединившись однажды, последующие подключения происходят автоматически?
Сегодня постараюсь рассказать, как "примерно" работает Bluetooth.
Существуют спецификации (например, Bluetooth Core v5.2 на 3256 страниц), где написано как "точно" работает Bluetooth.
Bluetooth Classical vs Bluetooth Low Energy
Bluetooth Classical был всегда (версия 1.0B) появился в 1999 году. Начиная с версии 4.0 группа разработчиков представила новую технологию – "Bluetooth Low Energy" для обмена информацией с устройствами с малоёмкими аккумуляторами (смарт-часы и фитнес-браслеты, датчики умного дома и т.п.). Теперь Bluetooth Classical неразрывно сосуществует с Bluetooth Low Energy, поскольку технологии выполняют разные цели:
- Bluetooth Classical используют для длительной передачи информации между устройствами – файлов, музыки;
- Bluetooth Low Energy полезен для кратковременной передачи малых порций информации, например, температуры и влажности в комнате.
Начиная с Bluetooth 5.2 технология Bluetooth Low Energy научилась транслировать музыку на беспроводные наушники, но я эту функцию ещё не тестировал.
Итак, в старых устройствах (до 2010 года) нет Bluetooth Low Energy, а в разных сенсорах умного дома запросто может не быть Bluetooth Classical.
Со старого ноутбука (без Bluetooth Low Energy) невозможно увидеть Bluetooth датчики умного дома.
Принцип работы Bluetooth
Принципы действия и Bluetooth Classical, и Bluetooth Low Energy основан на беспроводной передаче данных электромагнитными волнами на частоте 2.4 ГГц, в диапазоне от 2401 до 2481 МГц.
Диапазон в 80 МГц делится на равные части – каналы. Bluetooth передаёт набор нулей и единиц (данные) порциями, упаковывая данные в пакеты. Пакеты бывают разных типов – для передачи файлов, музыки и т.п.
Чтобы не мешать Wi-Fi (который тоже действует в 2.4 ГГц) и другим Bluetooth-устройствам, Bluetooth использует особый принцип работы – приёмник и передатчик постоянно меняют частоту (или канал), на которой передаёт пакеты данных (см. метод FHSS, если интересно).
Основные этапы работы Bluetooth
Работа с Bluetooth делится на следующие этапы:
- Одно (назовём его главным) устройство проводит поиск второго.
- После успешного нахождения главное устройство инициирует подключение к найденному (удалённому).
- При необходимости проводятся процедуры связывания (bonding) или сопряжения (pairing).
- Происходит обмен данными: либо удалённое устройство отдаёт данные главному (например, датчик умного дома передаёт данные на смартфон), либо наоборот (например, смартфон транслирует музыку на беспроводные наушники).
1. Поиск удалённых устройств
Удалённое (искомое) устройство обычно находится в режиме широковещания: периодически передаёт в окружающее пространство некоторые пакеты с идентифицирующими данными.
Если у Вас есть дети, то Вы легко представите ребёнка, который не умолкая, говорит раз в секунду: "хочу конфетку!". Примерно так же и действуют удалённые устройства – они периодически посылают в окружающее пространство своё имя, адрес и другую информацию.
Главному устройству остаётся "услышать" (принять) эти пакеты и как-то на них отреагировать, чтобы удалённое устройство знало, что его услышали.
После обмена пакетами между устройствами этап поиска завершается.
2. Подключение к удалённому устройству
Подключение происходит, когда главное устройство направляет пакет, содержащий запрос на подключение, в сторону удалённого. В ответ удалённое говорит, что оно не против подключиться.
Подключённые друг к другу устройства находятся в одной пикосети.
Пикосеть – сеть, в которой есть одно главное и до 7 подчинённых (удалённых) устройств.
3. Связывание и сопряжение
Прежде, чем устройства смогут обмениваться данными, необходимо выполнить процедуры связывания и сопряжения.
Сопряжение (pairing) – установление защищённой связи между главным и удалённым устройствами с созданием секретных ключей для шифрования трафика. После отключения устройств они забывают друг о друге и следующее подключение происходит с новым сопряжением – созданием новых секретных ключей.
Связывание (bonding) – процесс соединения, при котором сначала создаются секретные ключи (проводится этап сопряжения), а затем устройства обмениваются и сохраняют эти ключи для последующих повторных соединений без сопряжения.
4. Обмен данными
Только после того, как пара устройств успешно прошла все предыдущие этапы, начинается обмен данными. Данные направляются в специальных пакетах. В Bluetooth Classical, например, имеется 29 типов пакетов на все случаи жизни для передачи голоса (синхронные), данных (асинхронные) и широкого вещания.
Заключение
В статье я постарался кратко изложить принципы работы Bluetooth, чтобы читатель лучше понимал основы.
Примерно так и работает Bluetooth. Это если не вдаваться в форматы пакетов, шифрование и прочие вещи, например, синхронизацию часов устройств для работы в одной псевдослучайной последовательности частот и т.п. Желающие копнуть поглубже сумеют найти тонну полезной информации на Habr-е 😊
Кстати, про Bluetooth я говорю и во 2 части обзорной статьи
Хештеги: #как работает bluetooth #умный дом #internet of things #bluetooth #bluetooth low energy