bluetooth pairing что значит
Связь Bluetooth – как она работает и как использовать технологию связи
Электронные устройства, несмотря на то, что производятся тысячами различных производителей должны использовать одну технологию/стандарт, чтобы соединяться друг с другом. Именно по этой причине по всему миру используют сети 4G LTE (с недавнего времени также 5G), а современные устройства подключаются к сети с помощью беспроводного стандарта Wi-Fi.
Bluetooth, в свою очередь, это стандарт беспроводной связи малой дальности. Это решение используется на портативных компьютерах, планшетах, смартфонах, автомобилях, колонках, саундбарах, домашних кинотеатрах, умных часах, фитнес-браслетах, устройствах smart home, в беспроводных клавиатурах и других устройствах. Возможности использования Bluetooth практически безграничны.
Технология Bluetooth, как правило, проста в настройке и использовании, но, к сожалению, иногда случаются различного рода проблемы.
В следующей статье мы объясним, что такое Bluetooth, для чего можно использовать эту технологию и как использовать. Приведены также возможные способы решения наиболее частых проблем, возникающих при использовании Bluetooth.
Что такое связь Bluetooth
В самом начале следует объяснить, что такое Bluetooth. Это стандарт беспроводной связи между устройствами малого радиуса действия, который для передачи данных использует радиосвязь. С помощью Bluetooth мы можем передавать файлы, документы, видео и музыку. Из-за особенности подключения Bluetooth – низкая пропускная способность и значительной энергоэффективности Bluetooth используется, в основном, для связи между аксессуарами и передачи звука.
Bluetooth является открытым стандартом, который был описан в спецификации IEEE 802.15.1. Она включает в себя три основных класса мощности с пределами дальности действия 1 метр, 10 метров и 100 метров.
Разработка стандарта Bluetooth была инициирована компанией Ericsson, которая вместе с IBM, Intel, Nokia и Toshiba создали в 1994 году группу SIG (Special Interest Group), целью которой была разработка универсального стандарта беспроводной связи малого радиуса действия. Идея избавиться от проводов быстро эволюционировала к сети LAN и превратилась в известную нам сегодня сеть WLAN (Wi-Fi).
Первая версия стандарта Bluetooth 1.0 была представлена в 1999 году. Описание решения занимало до 1500 страниц.
В настоящее время стандарт – это Bluetooth 5.0 (+ новый Bluetooth 5.1), а также популярный старый стандарт Bluetooth 4.2.
В самых простых случаях Bluetooth соединяет два устройства, например, смартфон с гарнитурой в легковом автомобиле. Подключение создается с помощью PAN (Personal Area Network), в котором есть одно соединение типа «точка-точка». Любое устройство, имеющее Bluetooth, имеет уникальный AMA (Active Member Address), т.е. идентификатор, который позволяет легко узнавать устройство. Производители могут также называть свои устройства понятными именами, что облегчает поиск выбранного оборудования в списке Bluetooth-устройств поблизости. Пользователь часто может изменить это название на другое.
Bluetooth также позволяет подключать большее количество устройств (до 8) в одной сети. В этом случае используется подключение типа «точка-много точек», когда одно устройство выполняет роль сервера, а остальные роль узлов.
Кроме того, устройства Bluetooth имеют функции standby (режим ожидания), благодаря которой пользователю не нужно каждый раз подключать между собой устройства. Например, мышь, связанная с устройством, будет автоматически подключаться после перезагрузки. Комплект громкой связи в информационно-развлекательной системе автомобиля при каждом запуске двигателя будет пытаться подключиться к последнему сопряженному смартфону.
Теоретическая спецификация Bluetooth предусматривает возможность использования до 256 устройств в режиме ожидания. Это возможно благодаря адресации PMA (Passive Member Adres), которая имеет разрядность 8 бит (2 8 = 256 устройств).
Классы и диапазоны Bluetooth
В сети можно найти информацию о трёх классах Bluetooth. Их основной задачей является определение максимальной дальности передачи и мощности беспроводного соединения.
Самые популярные версии Bluetooth
В настоящее время на рынке тяжело найти устройства с Bluetooth 1-2.1. Доступные на рынке устройства используют одну из следующих версий Bluetooth:
Если производитель решит ограничить передачу скоростью 125 КБ/сек, то возможно увеличение дальности до 200 метров (на открытых пространствах). Они также могут повысить скорость за счет энергоэффективности или сделать медленнее, но повысить энергоэффективность передачи данных.
Профили Bluetooth
Технология Bluetooth поддерживает различные профили. Они отвечают за то, как и могут ли вообще устройства общаться друг с другом с помощью Bluetooth.
Существует множество различных профилей, которые предназначены для конкретных применений. Ниже приведены самые популярные из них:
Как передаются данные с помощью Bluetooth?
Bluetooth использует полосу частот ISM (Industrial, Scientific and Medical Band) в диапазоне от 2,402 до 2,480 Ггц. В этом интервале доступно до 79 каналов. Каждый из них имеет ширину полосы частот равную 1 Мгц. Диапазон частот 2,4 Ггц, очень близкий к 2,402 Ггц используется связь Wi-Fi, совместимую со стандартом IEEE 802.11.
Bluetooth поддерживает функции изменения частоты «на лету» (FHSS), благодаря которой в течение секунды каналы могут быть изменены 1600 раз. Эти изменения, а также передача небольших пакетов данных приводят к тому, что Bluetooth-соединения остаются стабильны.
Bluetooth и WLAN (Wi-Fi) – какие различия?
Bluetooth и WLAN исходят из одной идеи и работают аналогично, но используются для совершенно других действий.
Bluetooth использует два различных метода передачи данных: SCO – Synchronous Connection Oriented и ACL – Asynchronous Connectionless Link. SCO используется для передачи голоса в режиме реального времени с максимальной скоростью 64 Кбит/с. Остальные данные передаются с помощью ACL и требует, чтобы передающее устройство имело встроенную память для хранения данных.
Сеть WLAN (Wi-Fi) в состоянии передавать данные только в асинхронном режиме. Кроме того, Wi-Fi работает на других частотах и при имеет гораздо более высокую пропускную способность.
Где искать настройки Bluetooth на устройстве
Место, в котором находятся настройки для Bluetooth, зависит только и исключительно от производителя конкретного устройства. К счастью, в настоящее время смартфоны и компьютеры используют несколько операционных систем, в которых параметры находятся в одном месте.
В Android необходимо запустить приложения Настройки и найти раздел Подключения → Bluetooth. Кроме того, можно воспользоваться поисковой системой внутри Настроек или перейти к настройкам Bluetooth, после длительного нажатия значка Bluetooth в строке уведомлений.
В системе iOS запустите приложение Настройки и выберите раздел Bluetooth, который находится практически на самом верху.
В системе Windows 10 запустите приложение Параметры → Устройства → Bluetooth. Кроме того, вы можете перейти к настройкам Bluetooth с помощью быстрых действий в центре уведомлений операционной системы Windows 10.
В системе macOS необходимо запустить приложение Системные настройки → Bluetooth.
Как определить версию Bluetooth на устройстве
В течение 20 лет на рынок вышло несколько версий Bluetooth, которые несмотря на то, что совместимы друг с другом, имеют различные возможности и технические параметры. В мобильных устройствах из-за их небольшого размера модуль Bluetooth интегрирован с процессором в рамках одной системы SoC (System on a Chip).
В случае компьютеров с Windows, необходимо запустить Диспетчер устройств (его можно найти через системный поиск) и перейдите в меню Bluetooth. При выборе модуля следует перейти в раздел «Дополнительно». Там вы увидите строку LMP с числом.
Ниже информация о том, какое число соответствует какому стандарту Bluetooth:
На компьютерах Mac, перейдите в Finder → Об этом Mac → Отчет о системе → Bluetooth. Параметр Bluetooth Core Spec показывает, какую версию Bluetooth имеет компьютер.
Информации о типе используемой версии Bluetooth можно найти в технической спецификации данного устройства. Кроме того, все оборудование с Bluetooth имеет специальный сертификат.
Как соединить устройства с помощью Bluetooth
Само подключение устройств с помощью Bluetooth с виду простое, но на практике оказывается, что пользователи имеют с ним немалые проблемы.
Чтобы соединить между собой два устройства, они должны иметь активный модуль Bluetooth. Параметры Bluetooth, как правило, находятся в настройках подключения. В случае смартфонов с Android можно запустить Bluetooth с помощью быстрых настроек на панели уведомлений. Пользователи устройств с iOS/iPadOS могут воспользоваться «Центром Управления».
Оборудование, к которому мы хотим подключить другое устройство, например, комплект громкой связи, должны находиться в режиме сопряжения. К сожалению, часто получается, что каждый производитель «скрывает» функцию активации режима сопряжения в своём месте меню. Иногда оборудование можно подключить сразу после включения Bluetooth, другое через какое-то время, а третье только после включения соответствующей опции. В этом случае лучше всего проверить инструкцию по эксплуатации данного оборудования.
При попытке подключения оба устройства отображают четырехзначный код PIN-код (обычно 0000 или 1234), который позволяет дополнительно убедиться, что мы связываем выбранные устройства. Только после подтверждения PIN-кодом начинается процесс сопряжения.
Подключение через Bluetooth с использованием NFC
Значительная часть новых смартфонов и планшетов имеет встроенный модуль NFC – Near Field Communication. Это решение используется для оплаты с помощью Google Pay, Apple Pay и других платежных систем.
Мало кто знает, что NFC может также использоваться для быстрого сопряжения двух устройств. В случае, если у вас есть смартфон с NFC и другое устройство с поддержкой NFC, например, звуковая панель или наушники, поднесите устройства друг к другу и начнётся автоматическое сопряжение. В этом случае вам не нужно вводить код PIN-код или дополнительно подтверждать соединение.
Почему смартфон не обнаруживает всех устройств?
Как мы уже писали ранее, не все устройства обнаруживаются даже в случае, когда модуль Bluetooth активен. Очень большое влияние на работу этой технологии имеет операционная система, примененная в данном оборудовании.
В настоящее время проблема с определением доступных устройств является самым большим «проклятием» технологии Bluetooth. Часть таких производителей, как Samsung изменяет драйверы Bluetooth, как и меню настроек, чтобы доступ к ним был более понятным по отношению к обычному Android.
К сожалению, на противоположной стороне есть компании, которые препятствуют доступу к меню Bluetooth. Здесь речь идёт, в основном, о производителях автомобилей и комплектов громкой связи. Если в случае смартфонов и компьютеров можно научиться пользоваться Bluetooth в нескольких системах (Android, iOS, Windows и macOS), то каждый производитель автомобилей использует совершенно иную систему, в которой функции Bluetooth иногда глубоко скрыты.
Устройство было обнаружено, но не может подключиться
Иногда может случиться так, что устройство будет правильно обнаружено, но не может подключиться. К сожалению, нет универсального решения этой проблемы, но, к счастью, она касается, в основном, старых устройств.
Возможно, что смартфон или другое устройство уже подключено к другому оборудованию с помощью Bluetooth (например, smartwatch), и при попытке соединения с домашним кинотеатром Bluetooth отклонит вызов. Это происходит потому, что не все устройства поддерживают множественные подключения по Bluetooth.
Более ранние версии операционной системы Android (4.4 Kitkat включительно) имеют проблемы, если в списке подключенных устройств есть много записей. В этом случае лучше всего удалить устройства, которыми вы не пользуетесь.
В случае переноса данных со старого смартфона Android на новый, могут быть перенесены также сопряженные устройства. Решение это редко когда работает так, как должно. После покупки нового телефона, советуем очистить список сопряженных устройств Bluetooth и приступить к повторной установке.
Иногда проблема с подключением возникает из-за значительного расстояния между устройствами. Убедитесь, что оборудование находится рядом.
Соединение Bluetooth разрывается через некоторое время
К сожалению, разрыв связи – это всё ещё актуальная проблема, даже в последних смартфонах. Проблемы с подключением Bluetooth являются большой проблемой владельцев всевозможных фитнес-браслетов и умных часов, которые должны быть постоянно соединены с телефоном в течение всего дня. В этом случае решением проблемы может быть удаление из списка сопряженных устройств неиспользуемого оборудования, но у нас есть другие, более эффективные решения.
Новые смартфоны под управлением Android имеют сложные алгоритмы, используемые для экономии заряда батареи. Производители телефонов и Google ввели агрессивное управление процессами. Это приводит к тому, что когда телефон переходит в спящий режим – так называемый Deep Sleep, «засыпает» также процесс, отвечающий за соединение Bluetooth. В результате smartwatch сообщает нам об отсутствии соединения с телефоном.
Решением этой проблемы является отключение энергосбережения для приложений управления фитнес-браслетом или smartwatch. Это можно сделать в настройках в разделе «Приложения». Точное положение параметра зависит от используемого интерфейса. Для часов Samsung Gear/Galaxy необходимо отключить экономичный режим в приложениях Samsung Gear, Gear Plugin (опционально – если отображается в списке), а также Samsung Health.
За проблемы с подключением могут быть ответственны также запуск режимов энергосбережения в самом smartwatch или фитнес-браслете.
Сопряжение носимых устройств с помощью Bluetooth
В случае носимых устройств, таких как smartwatch и фитнес-браслеты, нужно не только подключить устройство с помощью Bluetooth. Чтобы использовать возможности этого типа устройств следует установить на мобильном устройстве клиентское приложение. В случае часов с Android это Wear OS, smartwatch и браслеты Samsung используют Samsung Gear, а устройства Xiaomi – Mi Fit.
Сопряжение осуществляется с помощью приложения и отличается в зависимости от используемого устройства. Всё это тщательно описано в руководстве по эксплуатации устройства, а также клиентского приложения.
Возможно ли обновление через Bluetooth
Да, обновление с помощью Bluetotoh возможно. Чаще всего, так вы можете обновить устройства, которые не имеют Wi-Fi. Речь идёт о носимых устройствах, smartwatchach, а также комплектах громкой связи, ресиверах и смарт-колонках. В их случае микропрограмма загружается на мобильное устройство и передаётся с помощью Bluetooth на память подключенного оборудования.
Воспроизведение звука на двух устройствах Bluetooth
Bluetooth в течение длительного периода времени не позволял поддерживать соединение с двумя устройствами одновременно, а тем более одновременную передачу данных между всеми подключенными устройствами.
Ситуация изменилась с появлением стандарта Bluetooth 4.0. Он ввел дуальный режим (Dual Mode), который позволяет передавать звук на два устройства одновременно. Все три устройства должны поддерживать Bluetooth версии 4.0, а передающее устройство должно быть дополнительно совместимые с функцией Dual Mode.
В этом случае одно из устройств, подключенных использует Bluetooth Classic, в то время как второе Bluetooth Low Energy.
Функция Dual Audio дебютировала в Samsung Galaxy S8 и Galaxy S8+. С момента своего запуска в начале 2017 года в магазинах появились другие модели телефонов с возможностью одновременной передачи звука на два устройства Bluetooth.
Проблема с Bluetooth в Windows
В случае использования ПК иногда появляется проблема с активацией модуля Bluetooth. В настройках системы Windows 10 существует возможность включения и выключения Bluetooth, но она чисто программная.
В начале мы рекомендуем вам проверить модуль Bluetooth в Диспетчере устройств Windows. В случае, если его нет в списке, перезагрузите компьютер – возможно, что были обновлены драйверы. Когда после перезагрузки модуль Bluetooth по-прежнему невидимым, возможно, он был отключен с уровня BIOS/UEFI или физического переключателя на корпусе (в основном, старые модели ноутбуков). Если эти решения не помогут, возможно, что ваш компьютер не имеет модуля Bluetooth или он был поврежден.
Обновление драйвера Bluetooth в Windows
Драйверы в системе Windows 10 обновляется автоматически в службе Windows Update, но можно вручную принудительно проверить обновления и установить последнюю версию драйвера. Это полезное решение, когда по каким-то причинам после обновления модуль перестанет работать.
Чтобы обновить драйверы для модуля Bluetooth нужно перейти в Диспетчер устройств → Bluetooth и выберите устройство Bluetooth (например, Intel Wireless Bluetooth). Следующим шагом будет переход на вкладку Драйвер и выберите Обновить драйвер. В следующем шаге вы можете выбрать обновление в режиме онлайн или указать папку с драйверами.
В случае, если после обновления драйверов модуль Bluetooth по-прежнему будет доставлять проблемы, вы можете удалить устройство с помощью Диспетчера устройств и установить заново. Выполнение этого действия приведет к повторной установке драйверов.
Bluetooth-адаптер USB или PCI не распознается системой
Большинство фирменных и марочных адаптеров Bluetooth используют интерфейс USB или PCI, драйверы для которых Windows находит сама. Несмотря на это, на рынке по-прежнему встречаются адаптеры Bluetooth, к которым Windows сама не может найти драйверов.
В этом случае следует зайти в Диспетчер устройств и выбрать пункт локального обновления драйвера. Неизвестный модуль Bluetooth определяется как Неизвестное устройство. Драйверы, как правило, поставляются в комплекте с устройством. Кроме того, вы можете найти их на сайте службы поддержки производителя в интернете.
Как исправить проблемы с сопряжением по Bluetooth
Соединение по Bluetooth — хороший способ перекинуть файлы с одного устройства на другое или подключить беспроводные гаджеты друг к другу. Но иногда возникают проблемы с сопряжением. Рассказываем, что делать, если подключение по Bluetooth не работает.
В целом, Bluetooth имеет обратную совместимость: устройства, поддерживающие стандарт Bluetooth 5.0, по-прежнему могут сопрягаться с устройствами, использующими, скажем, древний Bluetooth 2.1, вышедший еще в 2007 году.
Исключение составляют гаджеты, которые используют версию с низким энергопотреблением под названием Bluetooth Low Energy, которая работает по другому протоколу, нежели старые или «классические» устройства Bluetooth. Устройства с BLE не обладают обратной совместимостью и не распознают старые устройства, поддерживающие классический Bluetooth. Обычно BLE-девайсы — это метки, фитнес-браслеты и пр.
Если устройство поддерживает Bluetooth 4.0, 4.2 или 5.0, оно должно распознавать в том числе и Bluetooth LE
Что можно сделать, если соединение по Bluetooth не работает?
1. Убедиться, что Bluetooth активен, а устройства сопряжены и находятся на близком расстоянии друг от друга. Иногда для сопряжения требуется ввести код в смартфоне или ПК.
2. Включить режим видимости. Часто это касается фитнес-браслетов и информационно-развлекательной системы автомобиля — пользователи забывают активировать режим видимости.
3. Выключить и снова включить оба устройства либо соединение Bluetooth — как ни странно, но это до сих пор один из самых работающих методов.
4. Удалить старые подключения. Иногда гаджеты поддерживают только одно подключение — особенно часто это касается беспроводных колонок. Так что вы можете пытаться подключить динамик к планшету, в то время как он успешно сопрягается с устройством, с которым соединился в последний раз, например, со смартфоном. Выключите на время этот девайс или удалите у него подключение.
5. Зарядить оба устройства, которые пытаетесь связать. Некоторые гаджеты поддерживают интеллектуальное управление питанием, которое может отключать Bluetooth, если уровень заряда батареи слишком низкий.
6. Удалить устройство со смартфона и найти заново. В настройках iOS вы можете удалить устройство, нажав на его имя, а затем «Забыть это устройство». На Android коснитесь имени устройства и затем «Разорвите пару». Если речь идет о системе автомобиля, может потребоваться выключить зажигание, открыть и закрыть дверь авто и подождать пару минут, прежде чем пытаться снова выполнить сопряжение.
7. Отойти от источников помех. Очень редко, но могут мешать сигналы от других устройств, например, Wi-Fi-роутера, порта USB 3.0. Помехой может стать даже усиленный чехол для смартфона.
8. Обновить драйверы и прошивку оборудования.
9. Очистить кэш Bluetooth. Иногда приложения могут мешать работе Bluetooth и очистка кэша может решить проблему. В Android-устройствах этот раздел находится в настройках системы: «Система» — «Дополнительно» — «Сбросить параметры» — «Сбросить настройки Wi-Fi, мобильного телефона и Bluetooth». На iOS понадобится разорвать пару со всеми устройствами (перейдите в «Настройки» — Bluetooth, выберите значок информации и «Забыть это устройство» для каждого девайса), затем перезагрузить гаджет.
Беспроводной звук. Часть 1. Препарируем Bluetooth
Иногда, бывает, натыкаешься на какой-то баг впервые, списываешь все на обстоятельства и забываешь о нем. Затем он повторяется снова и снова, вынуждая тебя приступить к поиску проблем и, по возможности, их устранению. И вот когда ты обнаруживаешь себя в глубокой ночи за анализом дампом/дебагом/чтением_мануалов, то становится понятно, дело на полпути бросать уже нельзя и дело принципа — довести его до конца.
Такая история со мной приключилась в момент обзора с коллегой r3s потребительской беспроводной Bluetooth-акустики Klipsch KMC 3. Я столкнулся с ситуацией, когда «беспроводной» аудиопоток начинал безбожно прерываться, стоило лишь мне расположить источник звука у себя за спиной. Пищи для размышлений мне подкинула другая Bluetooth-аудиосистема, которая в тех же условиях вела себя куда лучше. Такая простая проблема выродилась в нырок с головой во внутренности протокола Bluetooth и детали передачи аудио с его помощью.
Под катом первой части цикла статей мы в легкой и непринужденной форме познакомимся с основными протоколами стека Bluetooth, покопаемся в дампе соединения источника и приемника звука, разберемся в причинах конфликта Bluetooth и Wi-Fi и обнаружим корень моей проблемы — прерывающегося звука.
Оставим за кадром (или перенесем в комментарии) полемику на тему “зачем нам беспроводная передача аудио, если можно обойтись православными проводными решениями, сэкономив кучу денег и выиграв в качестве”. Условимся, что беспроводной стриминг аудио с любых устройств, как портативных, так и не очень, нам интересен, ведь с ним мы можем:
Таким образом, на момент чтения этой статьи забываем о холиваре wired vs wireless и окунаемся в мир беспроводных технологий, в которых, как оказалось, есть много интересных деталей, стоит только копнуть глубже.
King Bluetooth Виновница торжества — технология Bluetooth, получившая жизнь благодаря инициативе Ericsson в далеком 1994 году, затем стандартизованная IEEE (802.15-1) и по настоящее время развиваемая целой группой по интересам Bluetooth Special Interest Group (SIG). На текущий момент альянс Bluetooth SIG насчитывает порядка 18 000 компаний, среди которых, естественно, есть и те, кто занимается производством аудио компонентов, способных принимать без проводов стерео сигнал.
Недавно я обзавелся одним из таких устройств. Cистема Klipsch KMC 3, обзор которой есть на Хабре, удовлетворяла всем, кроме одного: при определенных условиях начинала воспроизводить звук, ужасно прерываясь. Юзкейс был следующим: в качестве источника аудиосигнала выступал Macbook Air 2012, и стоило расположить его за собственным телом в 4 метрах от системы (читай “сесть спиной к колонке с ноутбуком на коленях), как звук начинал прерываться. Второй участник Bluetooth-состязания (обзор которого вас ждет в конце поста) — Edifier Spinnaker E30, тоже страдал замиранием сигнала, но при этом в куда меньшей степени. Возник вопрос, в чем могла крыться причина столь разного поведения двух систем в одинаковых условиях?
Налицо проблема с распространением сигнала, но стоило в тех же условиях воспользоваться мобильным телефоном для воспроизведения аудио, как проблема становилась куда менее заметной. Так было решено разобраться в причинах и следствиях, что и привело меня к самым истокам — чтению Bluetooth Core Specification, анализу дампов сетевого соединения и модификации важных для аудиокодеков значений. Для начала, впрочем, требовалось исключить возможность интерференции между Bluetooth и Wi-Fi.
Одна кухня и несколько поваров
Не секрет, что и Bluetooth, и Wi-Fi (и еще множество систем) работают в одном диапазоне частот — ISM диапазоне — в границах 2.400 GHz — 2.4835 GHz. Использование одного частотного диапазона для передачи информации разных систем неминуемо приведет к интерференции сигналов, а значит — к потере данных. Именно на интерференцию сигналов Wi-Fi и Bluetooth я изначально и грешил.
Модуляция
Для эффективной передачи сигнала (цифрового, аналогового) посредством радио необходимо пройти процедуру модуляции. Позволим себе опустить тонкости различных процессов модуляции сигналов и сконцентрируемся на фактах, которые помогут представить картину спектра в среднестатистическом доме юзера наших дней.
Стандарт 802.11n (а я верю, что у 90% пользователей Хабра дома развернут именно он, хотя все нижеизложенное справедливо и для 11g) предусматривает использование OFDM модуляции сигнала с организацией 13 каналов шириной 20 МГц.
При этом стандартом 802.11b/g/n предусмотрено использование одного канала на протяжении всего времени работы, если его состояние считается удовлетворительным (читай “нет чередования каналов”).
Bluetooth же использует иной подход: в спектре ISM организуется 79 каналов шириной в 1 МГц, а затем по технологии расширения спектра Frequency-hopping Spread Spectrum (FHSS) радиоприемник и радиопередатчик синхронно меняют частоту несущей по определенному шаблону с частотой 1600 раз в секунду. Сделано это как раз для уменьшения вероятности наложения сигналов в крохотном ISM диапазоне.
Случайным образом разбросанные красные точки — это и есть сигнал Bluetooth, постоянно меняющий частоту. Зеленые области — это три активных канала Wi-Fi.
Борьба с интерференцией
Однако техника скоростной смены несущей не избавляет от интерференции, а всего лишь снижает вероятность ее возникновения. Шансы у Bluetooth-сигнала попасть в 20 МГц диапазон канала Wi-Fi по-прежнему ненулевые:
На рисунке выше видно, как алгоритм AFH скорректировал карту доступных для “перескакивания” каналов, исключив те, что попали в уже занятый вайфаем 6-й канал.
Но мне не повезло, дело было не в интерференции сигнала, т.к. я перенес WLAN в “безопасный” для Bluetooth диапазон 5 ГГц (это, кстати, самый действенный метод для исключения возможных проблем), а прерывания аудио так никуда и не исчезли. Пришлось копать глубже.
Разбор дампа Bluetooth
Раз проблема была не в интерференции с Wi-Fi, то потребовалось более глубокое погружение в матчасть. Напомню, что интересным с точки зрения анализа был тот факт, что в одинаковых условиях две Bluetooth аудиосистемы (Klipsch KMC 3 и Edifier Spinnaker) вели себя по-разному. Klipsch захлебывался раньше, и для достижения эффекта нужно было просто заслонить телом прямой путь к колонке на расстоянии нескольких метров. Edifier же мог хрюкнуть пару раз, но после продолжал уверенно воспроизводить звук, изредка прерываясь.
Симптомы косвенно намекали на автоподстройку неких параметров со стороны Эдифаеров и отсутствие оной у Клипша при деградации качества радиосигнала. Чтобы проверить эту теорию, было решено снять дамп соединения двух устройств с целью поиска источника проблем.
Для чистоты эксперимента я выключил модуль Bluetooth, удалил из списка сопряженных устройств Klipsch, включил “синий зуб”, и, нажав кнопку записи дампа, прошел процедуру от поиска устройства и соединения с ним до передачи аудио.
Стек блютуса лишь косвенно напоминает привычный TCP/IP, поэтому лицезрение дампа без предварительного прочтения спецификации не увенчалось успехом.
К чести группы Bluetooth SIG отмечу, что документация на корневую спецификацию и всевозможные профили находится в свободном доступе на портале для разработчиков, при этом написана простым и понятным языком.
Архитектура Bluetooth
Так моей настольной книгой на энное количество времени стала Bluetooth Core Specification. 13 мегабайтная пдф-ка о шести томах только сперва кажется необъятной, но для понимания базовых операций и принципов взаимодействия подсистем достаточно будет и нескольких глав.
Core System
В процессе поиска источника проблем я шел сверху вниз: встречая в дампе высокоуровневые протоколы, пытался понять логику их работы и назначение передаваемых параметров.
Безусловно, православный путь — снизу вверх: от азов установления физических и логических управляющих каналов Bluetooth к базирующимся на их основе высокоуровневым протоколам. Этим путем я вас и попробую провести.
Ядро блютуса — Bluetooth Core System Specification — описывает четыре базовых нижних уровня архитектуры и соответствующие протоколы, причем три нижних уровня, как правило, выделяют в отдельную подсистему — Bluetooth Controller, а все, что находится выше — относится к Bluetooth Host.
Структурная схема архитектуры Bluetooth Core System показывает расположение основных блоков архитектуры на уровнях модели, обозначает user-plane и control-plane трафик между блоками и, самое главное, дает представление об иерархичности стека.
На схеме не сделан акцент на очень важной части архитектуры — Host to Controller интерфейсе (HCI), обеспечивающем взаимодействие софтовой подсистемы Host с железной подсистемой Controller. Всё взаимодействие верхних уровней Bluetooth системы с ее аппаратной частью происходит через HCI-команды, инициируемые драйвером. Эти команды в дампе будут нам встречаться постоянно.
Пройдемся по основным блокам архитектуры, чтобы понять их основное назначение:
RF
Блок Radio (он же PHY), как и подобает резиденту физического уровня, занимается преобразованием битовой последовательности в радио сигналы. Вопросы модуляции, спектральных характеристик и физики процессов обеспечения битовой скорости — все это решается на нижнем уровне модели.
Baseband Layer = Link Controller + Baseband Manager + Device Manager
Уровень Baseband представлен в виде трех блоков, совместная задача которых состоит в управлении физическими каналами (Phy channels), поверх которых устанавливаются физические соединения (Phy links). Bluetooth-адресация, синхронизации генераторов устройств, управление кодами доступа к физическим каналам, поиск устройств и установление физического канала между ними — все это задачи Baseband-уровня.
Link Manager
После того, как два нижних уровня обеспечили нас физическим соединением между master-slave устройствами, дело становится за организацией логических каналов, которые впоследствии и станут базой для передачи трафика приложений. Link Manager в ответе за установление, изменение и освобождение логических соединений между устройствами, а так же за обновление параметров физических соединений. Для этих целей Link Manager использует Link Management протокол (LMP).
L2CAP Layer = Channel Manager + L2CAP Resource Manager
Переваливаемся в высокоуровневый блок Bluetooth Host, оккупированный L2CAP уровнем. Logical Link Control and Adaptation Protocol (L2CAP) — протокол, работающий поверх созданных логических соединений, обеспечивающий инкапсуляцию, сегментацию и восстановление пакетных данных от всех вышележащих приложений.
Транспортная архитектура
В процессе знакомства с блоками архитектуры у вас уже могла выстроиться картина общей транспортной архитектуры Bluetooth, которая представляет собой трехуровневую модель:
На картинке выше представлен путь юникастного асинхронного трафика по транспортной архитектуре. Именно этот тип трафика характерен для передачи “пакетного” аудио.
SCO vs ACL
Если внимательно посмотреть на предыдущий рисунок, то на уровнях Logical Links и Logical Transports чаще всего встречаются аббревиатуры ACL и (e)SCO. Это два глобальных типа логических соединений между Bluetooth-устройствами, которые служат для передачи разного рода трафика вышестоящих приложений.
По ACL (Asynchronous Connection-Oriented Links) соединениям передается асинхронный, пакетный трафик с возможностью повторной отправки в случае потерь при доставке, сегментации и управления потоком.
SCO-соединения, в свою очередь, по сути организованы по принципу коммутации каналов с постоянной пропускной способностью 64кбит/с и синхронной передачей данных в тайм-слотах. SCO-каналы, например, используются профилем Headset для потоковой передачи голоса абонента от телефона к гарнитуре.
Согласно архитектуре Host Controller Interface, каждая его команда (HCI command) должна сопровождаться ответным событием (HCI Event). Ответ всегда возвращает статус команды (Success или код ошибки), а так же, опционально, запрошенные командой значения.
Ниже приведены три HCI команды на этапе самоинициализации модуля и события-ответы на них.
Поиск и обнаружение устройств
После того, как Bluetooth собрал информацию “о себе”, я запустил поиск устройств. Когда вы зажимаете кнопку до состояния мигающего индикатора, устройство переводится в режим прослушивания канала обнаружения (Inquiry Channel). Когда девайс услышит код доступа “ответьте все” на этом канале, он отправит информацию о своем присутствии.
Как и любой процесс обращения верхних уровней к железной части Bluetooth, все начинается с команды от HCI:
Здесь интерес представляет поле LAP. На самом деле это ни что иное, как аналог мультикаст адреса (general access code), увидев который на канале обнаружения, Bluetooth-устройства обязательно оповестят о своем присутствии ответным сообщением.
В итоге все девайсы, получившие general access code на своем физическом канале для обнаружения, отвечают сообщениями Inquiry Response, в которых:
указан MAC адрес устройства, его главный и второстепенные классы (Major Class и Minor Class), а также поддерживаемые сервисы.
Я выделил два параметра: первый — Sink — свидетельствует о том, что устройство может выступать в роли приемника аудиосигнала, а второй — Advanced Audio Distribution — что аппарат поддерживает тот самый A2DP-профиль.
Подключение
После процедуры поиска картина мира для Bluetooth-устройства становится ясна, самое время переходить к фазе подключения, или, как этот процесс называют в спецификации — Paging.
Для подключения оборудования также выделен отдельный физический канал. Важно отметить, что физические каналы Bluetooth работают в режиме двусторонней передачи (дуплекс). Использование одного физического канала для двунаправленной передачи осуществляется по принципу временного разделения каналов (TDM). При таком подходе передатчик и приемник должны иметь синхронизированные тактовые генераторы, чтобы передавать и принимать информацию в нужные моменты времени.
Так как каждое Bluetooth-устройство оснащено своим собственным генератором, то ни о какой изначальной синхронизации между ними, естественно, речи не идет. Синхронизации добивается Link Controller в процессе установления соединения.
Происходит это следующим образом: в процессе поиска master-устройство получает от ответчиков среди прочих параметров еще и их значение тактового генератора. Затем, на этапе установления соединения master-устройство передает предполагаемое значение смещения тактового генератора для slave-устройства (параметр Clock Offset в скриншоте выше), тем самым ускоряя процесс синхронизации двух генераторов.
Самым важным полем команды Create Connection на подключение является идентификатор удаленного устройства — его Bluetooth-адрес (BD_ADDR). Вслед за командой контроллеру на установление соединения в бой вступает LMP протокол, который полностью управляет процессом организации логических соединений, поверх которых впоследствии будет гулять наш трафик:
Если помните, в начале статьи я рассказывал о методе Adaptive Frequency Hopping, позволяющем избежать интерференции на уже занятых частотах? Так вот, карта используемых частот как раз и передается в LMP сообщении Set AFH. В процессе работы я замечал новые появления данных пакетов с другой картой частот, что свидетельствует о постепенном мониторинге эфира на предмет страдающих от интерференции каналов.
Итогом процесса установления соединения станет присвоение связи двух Bluetooth устройств идентификатора Connection Handle.
Сопряжение (Pairing)
Окей, мы установили физическое соединение с устройством, синхронизировали генераторы устройств и готовы к передачи служебной и пользовательской информации в тайм-слотах, чего не хватает? Спаривания. Наши устройства пока не доверяют друг другу, а значит никакой пользовательский трафик недопустим к передаче.
Т.к. оба устройства поддерживают версию спецификации Bluetooth 3.0, то им доступен метод аутентификации Secure Simple Pairing (и его подметод Just Works), позволяющий аутентифицировать и авторизовать устройства без ввода каких-либо пин-кодов.
L2CAP in action
В главе, посвященной транспортной архитектуре, изображена схема иерархии каналов и соединений, на вершине которой находится L2CAP-протокол. Именно его очередь и наступает сразу после процессов аутентификации устройств.
Структурная схема архитектурных блоков L2CAP-уровня повествует о его возможностях по сегментации, повторной отправке, управлению потоками и ресурсами:
При этом важно уяснить, что асинхронные данные от любых приложений будут скормлены L2CAP-протоколу, который подготовит данные к отправке нижним уровням стека.
Для того, чтобы от процедуры спаривания устройств перейти к непосредственно информационному обмену, хорошо бы знать, а какие профили поддерживает сопряженное устройство, умеет ли оно воспроизводить аудио или орагнизовывать обмен файлами? На эти вопросы отвечает протокол Service Discovery (SDP). Так как это протокол верхнего уровня, ему не обойтись без услуг L2CAP-протокола, который специально для этого создаст канал. Давайте посмотрим, как это происходит.
В моем примере после успешного спаривания устройств появился первый L2CAP-пакет, содержащий следующие поля:
Команда Connection Request, как подсказывает КО, инициирует создание соединения с L2CAP уровнем slave-устройства, при этом в структуре пакета есть интересные для нас поля.
L2CAP протокол использует концепцию каналов, конечные точки такого канала в паре master-slave идентифицируются при помощи 2-байтного CID (Channel Identification). CID 0x0001 — зарезервированный идентификатор канала для терминирования трафика сигнализации L2CAP протокола, что логично, ведь именно к сообщениям сигнализации относится команда Connection Request (Channel ID: 0x0001 в нижней части скриншота).
Следующее важное поле — это PSM (Protocol/Service Multiplexer). Значение PSM говорит о том, для какого протокола или сервиса мы организовываем L2CAP канал и, как видите, речь идет о канале для Service Discovery Protocol.
Service Discovery
L2CAP хорошо потрудился и организовал канал для передачи данных протокола верхнего уровня SDP, который, как мы выяснили, поможет узнать, какие сервисы поддерживаются на удаленном устройстве.
Происходит это в форме следующего диалога:
— умеешь ли ты “_какой-нибудь сервис_”?
— да, умею, и вот его характеристики (в противном случае ответ “нет, не умею, спрашивай далее”).
На запросы всех сервисов, кроме Audio Sink и AV Remote Controller я получил негативный ответ, а значит колонка, что логично, умеет только воспроизводить аудио и давать управляющие сигналы мастер устройству (например при нажатии на кнопку pause на колонке, на паузу устанавливается проигрывание у источника).
После того, как SDP узнал о собеседнике все, что мог, самое время переходить к непосредственной передаче аудио, за которую отвечает…
Audio/Video Distribution Transport Protocol
За организацию и управление аудио/видео потоками отвечает именно этот парень. И в моем случае разобраться в логике его работы можно было, даже не погружаясь в 160-страничную спецификацию.
Диаграмма работы AVDTP довольно понятна. Чтобы запустить поток, требуется открыть два канала: один управляющий (signalling) и один, непосредственно, для передаваемых аудио/видео данных.
Как мы уже знаем, никуда не деться от L2CAP, именно по его каналам сверху будет идти трафик AVDTP-протокола.
L2CAP канал в этом случае открывается с новым значением PSM, соответствующим протоколу AVDTP.
Один L2CAP канал открылся для сообщений сигнализации, второй для данных AVDTP, а третий для Audio/Video Control Transport Protocol (для передачи сигналов от колонки к источнику звука) инициировала колонка.
Команда Discover позволяет узнать у удаленного устройства, а, собственно, что конкретно оно может предложить в рамках аудио/видео передачи. В ответ должно прийти описание возможностей в виде списка Service Endpoints (точек предоставления сервиса).
На первый взгляд непонятно, почему у колонки две точки в роли “приемник аудио”. На этот вопрос отвечает следующая пара сообщений:
Так как Klipsch KMC3 умеет понимать два кодека — обязательный для A2DP-устройства SBC кодек и опциональный, проприетарный AptX кодек — то мы и видим две точки предоставления AVDTP-сервиса, они отличаются только типом поддерживаемого кодека, не более того.
AptX vs SBC
После получения сведений о возможностях сервисных точек AVDTP протокол сообщением Set Config выбирает работу с кодеком AptX.
Так было с Klipsch, но Edifier Spinnaker не поддерживает кодек AptX, поэтому его список сервисных точек состоял ровно из одной штуки с обязательным кодеком SBC (Low Complexity Subband Coding). В итоге дампы, снятые при установлении к двум системам, отличались лишь в выбранном кодеке передаваемого аудио!
Окей, но ведь AptX такой навороченный, платный, закрытый и пиарящийся на CeBITах, почему он, собака, начинает “замирать” в определенных условиях, и можно ли как-то заставить работать колонку Klipsch с SBC-кодеком, чтобы убедиться, что проблема именно в этом?
Для проверки я подключился к Edifier, повторил опыт с расположением ноутбука за своим телом во время записи дампа, и вот, что я увидел. Ниже представлен фрагмент AVDTP-протокола, содержащий в себе закодированный кодеком SBC фрагмент передаваемого аудио.
Т.к. SBC — кодек открытый, то в дампе можно увидеть относящуюся к нему информацию, связанную с передаваемыми аудиоданными. В спецификации A2DP подробно описана работа SBC-кодека, откуда можно выяснить, что одним из ключевых параметров, влияющих в итоге на качество кодирования, является значение bitpool.
Из дампа видно, что значение bitpool для данной порции трафика равно 48, но стоило мне закрыть телом путь от ноутбука до колонки, как значение bitpool стало снижаться, сопровождаясь прерываниями и щелчками.
После того, как значение bitpool устаканилось на уровне 30, щелчки пропали, проигрывание аудио стало вновь непрерывным. Все указывало на то, что кодек выполнил автоподстройку, заметив деградацию качества сигнала.
Но неужели я своим бренным телом вносил такое существенное затухание? Что ж, время взглянуть на график индикации уровня мощности принимаемого сигнала:
Хорошее тело, качественно вносит затухание, о которое и спотыкаются кодеки. Вот только SBC-кодек подстроился под эти условия, снизив качество кодирования, а тем самым и необходимую пропускную способность, а AptX, по-видимому, нет.
Чтобы окончательно убедиться в том, что виноват AptX, я отключил его поддержку в Mac OS X и снова стал домогаться до Klipsch. Теперь был согласован кодек SBC между макбуком и колонкой, т.к. AptX’а ноутбук был принудительно лишен. Стоит ли говорить, что с SBC-кодеком Klipsch перестал так сильно заикаться в условиях падения уровня мощности сигнала?
Долго ли коротко, но проблема диагностирована, и ввиду закрытости AptX у меня не было никаких шансов повлиять на работу кодека (как это можно сделать с SBC, задав вилку значений bitpool в OS X). Поэтому осталось лишь не маячить телесами на пути видимого сигнала или использовать трюк с отключением кодека AptX в макоси.
В любом случае можно довольствоваться тем, что благодаря этой проблеме я что-то узнал про работу Bluetooth. Надеюсь, что после прочтения этой статьи, и вы сможете сказать то же самое.
PS1 Кстати, AptX не зря денег просит, передача аудио с его помощью через Bluetooth действительно лучше, чем с стандартным SBC. Это удалось почувствовать, отключив AptX на ноутбуке и прослушав те же треки на той же акустике. Субъективно — разница между SBC и AptX — примерно как между 192 kbps MP3 и 320 kbps — заметна, если вслушиваться.
Поддерживется AptX пока лишь узким кругом устройств, среди которых можно выделить железки под OS X и топовые смартфоны Samsung Galaxy, HTC One. Соответственно, iPhone и iPad в моем окружении именно по причине отсутствия AptX вели себя лучше, чем макбук, т.к. с ними согласовывалось использование SBC-кодека, а макбук лез с AptX.
PS2 На очереди препарация AirPlay.
PS3 И напоследок обзор Edifier Spinnaker, с которых вся эта эпопея длиною в месяц и началась.
Как я и писал во вступлении, этот пост изначально не должен был содержать ни одного скриншота, ни строчки о протоколах, но что-то пошло не так…
Компания, известная нам до этого момента исключительно в качестве заслуживающего внимания производителя проводных акустических систем, с выходом Spinnaker стала делить нишу беспроводных решений с такими продуктами как Klipsch KMC 3, Creative ZiiSound, Bose SoundLink, Jawbone Jambox, Samsung DA-E670 и многими другими.
При этом, несмотря на наличие именитых брендов в списке конкурентов, предрассудков относительно азиатских корней Edifier никто из нас не испытывал. Все-таки знак равенства между «сделано в Китае» и «г#%но» уже давно был перечёркнут хорошими продуктами в проводной сфере. Тем более, что с первого взгляда становится понятно, что с качеством сборки здесь все довольно хорошо.
Бивни, клыки, рога — какие только ассоциации ни возникали у гостей, но морские-то волки знают, что спинакер — это, на самом деле, один из парусов яхты. Сорокасантиметровые динамики, обтянутые черной шелковой тканью, однозначно выглядят агрессивно, и в современный интерьер пара Spinnaker’ов должны вписаться как нельзя лучше.
Отдадим дань моде, пара слов о комплектации. После вскрытия многочисленных пакетов и коробок на столе оказался приличный ворох проводов, ведь в комплекте идут: соединительный шнур для связи между динамиками, оптический звуковой кабель, миниджек 3,5 мм, RCA кабель и пульт дистанционного управления со стандартным шнурком microUSB-USB к нему.
Честно говоря, подобное обилие проводов для, казалось бы, “беспроводных” колонок поначалу обескураживает, но на деле достаточно всего двух кабелей — питания и соединительного шнура 6-pin между динамиками. Остальные же кабели вам достаются в довесок и лишними в хозяйстве уж точно не будут.
Наличие mini-jack и оптического кабелей уже говорит о том, что колонки можно подключить к источнику воспроизведения старым-добрым проводным способом, для чего на коннекторной части правой колонки выделен порт Aux IN/Opt IN.
Но что бы ни было с эргономикой и поведением пульта, самое главное в колонках все же звук. С этой точки зрения Spinnaker можно обозреть, как владельца трех излучателей в каждом динамике, включенных по схеме tri-amp. Но так пишут в пресс-релизе (весьма наполненном техническими деталями, кстати), мы же будем описывать субъективное восприятие качества воспроизведения, потому что описывать высокие аудиофильские материи в системе, выполненной из пластика, да еще и в “арт”-формате — дело сомнительное.
Общее впечатление от прослушивания композиций различных музыкальных направлений можно оценить по десятибальной шкале на 7 баллов. Пожалуй, не зря 3 пары излучателей в колонках снабжены собственными каналами от усилителя. С другой стороны, “кристальным”, как пишут в пресс-релизе, это звучание мы бы клеймить не стали.
Пусть Spinnaker E30 и не может похвастаться рекордным запасом громкости, но на уровне громкости вплоть до 90% звучание не срывалось в хрип, а треки воспроизводились без слышимых искажений.
Отсутствие глубокого баса, как, например, у KMC 3 и Zeppelin Air, спишем на отсутствие крупногабаритного диффузора, которому просто не хватило места, принесенного в жертву богу дизайна. Самый крупногабаритный динамик, отвечающий за низкие частоты, направлен вниз и расположен у основания колонок. Таким образом, “сабов” аж два, но их небольшой размер не заставит ваш пол вибрировать.
Впрочем, если у вас завалялся старый саб от любой другой системы, то попробуйте подключить его к спинакерам, такой симбиоз должен удовлетворить и вас, и ваших соседей.
В сухом остатке — агрессивный и запоминающийся дизайн, необычный пульт и достойное звучание с возможностью разнесения стереобазы. Думаю, что в хозяйстве все это однозначно пригодится. Кроме того, разъем для подключения внешнего сабвуфера позволит сгладить недостаток баса для тех, кому встроенных вуферов будет остро не хватать.
Есть пара вопросов по эргономике пульта и устройства ложемента для кабелей в алюминиевой базе динамиков, но достаточно один раз подобрать наиболее комфортное их расположение, чтобы раз и навсегда забыть о мороке с проводами.
Говоря о ближайших конкурентах, можно отметить комплект Creative ZiiSound D3x + DSx, который выигрывает в низах за счет наличия полновесного саба, но в части верхних и середины чувствуется просадка. Top-shelf Bluetooth-акустика, разумеется, стоит дороже, и порой сильно дороже, так стоит ли переплачивать за бренд, когда можно получить достойное качество звука и запоминающийся внешний вид уже сейчас?
PS4 И, конечно, ничто не мешает похоливарить на тему “в печь беспроводные пластиковые поделки, 1) покупаем Airport Express, 2) полочную акустику 3) Profit.”