Профили блютуз – articledetailpage

Содержание

Профили Bluetooth — это… Что такое Профили Bluetooth?

Гарнитура для мобильного телефона, использующая для передачи голоса Bluetooth

Bluetooth (/bluːtuːθ/, переводится синий зуб, в честь Харальда I Синезубого[1][2]; разговорные названия: блутус, блутуз, синезуб) — производственная спецификация беспроводных персональных сетей (Wireless personal area network, WPAN).

Bluetooth обеспечивает обмен информацией между такими устройствами как карманные и обычные персональные компьютеры, мобильные телефоны, ноутбуки, принтеры, цифровые фотоаппараты, мышки, клавиатуры, джойстики, наушники, гарнитуры на надёжной, недорогой, повсеместно доступной радиочастоте для ближней связи.

Bluetooth позволяет этим устройствам сообщаться, когда они находятся в радиусе до 10-100 метров друг от друга (дальность очень сильно зависит от преград и помех), даже в разных помещениях.

История создания и развития

Спецификация Bluetooth была разработана группой Bluetooth Special Interest Group (Bluetooth SIG)[1][3], которая была основана в 1998 году. В неё вошли компании IBM, Toshiba и Microsoft, Motorola, вступили в неё как ассоциированные члены. Впоследствии Bluetooth SIG и IEEE достигли соглашения, на основе которого спецификация Bluetooth стало частью стандарта IEEE 802.15.1 (дата опубликования — 14 июня 2002 года)

КлассМаксимальная мощность, мВтМаксимальная мощность, дБмРадиус действия (приблизительно), м
110020100
2
2,5
410
3101

Принцип действия Bluetooth

Радиосвязь Bluetooth осуществляется в ISM-диапазоне (англ. Industry, Science and Medicine), который используется в различных бытовых приборах и беспроводных сетях (свободный от лицензирования диапазон 2,4-2,48 ГГц). Спектр сигнала формируется по методу FHSS (Frequency Hopping Spread Spectrum — псевдослучайная перестройка рабочей частоты). Метод FHSS прост в реализации, обеспечивает устойчивость к широкополосным помехам, а оборудование стоит недорого.

Согласно алгоритму FHSS, в Bluetooth несущая частота сигнала скачкообразно меняется 1600 раз в секунду (всего выделяется 79 рабочих частот, а в Японии, Франции и Испании полоса у́же — 23 частотных канала). Последовательность переключения между частотами для каждого соединения является псевдослучайной и известна только передатчику и приёмнику, которые каждые 625 мкс (один временной слот) синхронно перестраиваются с одной несущей частоты на другую. Таким образом, если рядом работают несколько пар приёмник-передатчик, то они не мешают друг другу. Этот алгоритм является также составной частью системы защиты конфиденциальности передаваемой информации: переход происходит по псевдослучайному алгоритму и определяется отдельно для каждого соединения. При передаче цифровых данных и аудиосигнала (64 Кбит/с в обоих направлениях) используются различные схемы кодирования: аудио-сигнал не повторяется (как правило), а цифровые данные в случае утери пакета информации будут переданы повторно. Без помехоустойчивого кодирования это обеспечивает передачу данных со скоростями 723,2 Кбит/с с обратным каналом 57,6 Кбит/с, или 433,9 Кбит/c в обоих направлениях.

Спецификации

Устройства версий 1.0 (1998) и 1.0B имели плохую совместимость между продуктами различных производителей. В 1.0 и 1.0B была обязательной передача адреса устройства (BD_ADDR) на этапе установления связи, что делало невозможной реализацию анонимности соединения на протокольном уровне и было основным недостатком данной спецификации.

В Bluetooth 1.1 было исправлено множество ошибок, найденных в 1.0B, добавлена поддержка для нешифрованных каналов, индикация уровня мощности принимаемого сигнала (RSSI).

В версии 1.2 была добавлена технология адаптивной перестройки рабочей частоты (AFH), что улучшило сопротивляемость к электромагнитной интерференции (помехам) путём использования разнесённых частот в последовательности перестройки. Также увеличилась скорость передачи и добавилась технология eSCO, которая улучшала качество передачи голоса путём повторения повреждённых пакетов. В HCI добавилась поддержка трёх-проводного интерфейса UART.

Bluetooth версии 2.0 (2004) полностью совместим с версиями 1.x. Основным нововведением стала поддержка EDR (Enhanced Data Rate), что позволило повысить скорость передачи до 2,1 Мбит/с.

В Bluetooth версии 2.1 (2007) добавлена технология расширенного запроса характеристик устройства (для дополнительной фильтрации списка при спаривании), энергосберегающая технология Sniff Subrating, которая позволяет увеличить продолжительность работы устройства от одного заряда аккумулятора в 3-10 раз. Кроме того обновленная спецификация существенно упрощает и ускоряет установление связи между двумя устройствами, позволяет производить обновление ключа шифрования без разрыва соединения, а также делает указанные соединения более защищёнными, благодаря использованию технологии Near Field Communication.

Профили Bluetooth

Нижеуказанные профили определены и одобрены группой разработки Bluetooth SIG:

Advanced Audio Distribution Profile (A2DP)

A2DP разработан для передачи двухканального стерео аудиопотока, например музыки, к беспроводной гарнитуре или любому другому устройству. Профиль полностью поддерживает низкокомпресированный кодек Sub_Band_Codec (SBC) и опционально поддерживает MPEG-1,2 аудио, MPEG-2,4 AAC и ATRAC, способен поддерживать кодеки определённые производителем.

Audio / Video Remote Control Profile (AVRCP)

Этот профиль разработан для управления стандартными функциями телевизоров, Hi-Fi оборудования и проч. То есть позволяет создавать устройства с функциями дистанционного управления. Может использоваться в связке с профилями A2DP или VDPT.

Basic Imaging Profile (BIP)

Профиль разработан для пересылки изображений между устройствами и включает возможность изменения размера изображения и конвертирование в поддерживаемый формат принимающего устройства.

Basic Printing Profile (BPP)

Профиль позволяет пересылать текст, e-mails, vCard и другие элементы на принтер. Профиль не требует от принтера специфических драйверов, что выгодно отличает его от HCRP.

Common ISDN Access Profile (CIP)

Профиль для доступа устройств к ISDN.

Cordless Telephony Profile (CTP)

Профиль беспроводной телефонии.

Device ID Profile (DID)

Профиль позволяет идентифицировать класс устройства, производителя, версию продукта.

Dial-up Networking Profile (DUN)

Протокол предоставляет стандартный доступ к интернету или другому телефонному сервису через Bluetooth. Базируется на SPP, включает в себя PPP и AT команды определённые в спецификации ETSI 07.07.

Fax Profile (FAX)

Профиль предоставляет интерфейс между мобильным или стационарным телефоном и ПК на котором установлено программное обеспечение для факсов. Поддерживает ITU T.31 и/или ITU T.32 набор AT команд. Голосовой звонок или передача данных профилем не поддерживается.

File Transfer Profile (FTP_profile)

Профиль обеспечивает доступ к файловой системе устройства. Включает стандартный набор команд FTP, позволяющий получать список директорий, изменения директорий, получать, передавать и удалять файлы. В качестве транспорта используется OBEX, базируется на GOEP.

General Audio / Video Distribution Profile (GAVDP)

Профиль является базой для A2DP и VDP.

Generic Access Profile (GAP)

Профиль является базой для всех остальных профилей.

Generic Object Exchange Profile (GOEP)

Профиль является базой для других профилей передачи данных, базируется на OBEX.

Hard Copy Cable Replacement Profile (HCRP)

Профиль предоставляет простую альтернативу кабельного соединения между устройством и принтером. Минус профиля в том, что для принтера необходимы специфичные драйвера, что делает профиль неуниверсальным.

Hands-Free Profile (HFP)

Профиль используется для соединения беспроводной гарнитуры и телефона, передаёт монозвук в одном канале.

Human Interface Device Profile (HID)

Обеспечивает поддержку устройств с HID (Human Interface Device), таких как мышки, джойстики, клавиатуры и проч. Использует медленный канал, работает на пониженной мощности.

Headset Profile (HSP)

Профиль используется для соединения беспроводной гарнитуры и телефона. Поддерживает минимальный набор AT команд спецификации GSM 07.07 для обеспечения возможности совершать звонки, отвечать на звонки, завершать звонок, настраивать громкость.

Intercom Profile (ICP)

Обеспечивает голосовые звонки между Bluetooth-совместимыми устройствами.

LAN Access Profile (LAP)

LAN Access profile обеспечивает возможность доступа Bluetooth-устройствам к вычислительным сетям LAN, WAN или Internet посредством другого Bluetooth-устройства, которое имеет физическое подключение к этим сетям. Bluetooth-устройство использует PPP поверх

Object Push Profile (OPP)

Базовый профиль для пересылки «объектов», таких как изображения, виртуальные визитные карточки и др. Передачу данных инициирует отправляющее устройство (клиент), а не приёмное (сервер).

Personal Area Networking Profile (PAN)

Профиль позволяет использовать протокол Bluetooth Network Encapsulation в качестве транспорта через Bluetooth-соединение.

Phone Book Access Profile (PBAP)

Профиль позволяет обмениваться записями телефонных книг между устройствами.

Serial Port Profile (SPP)

Профиль базируется на спецификации ETSI TS07.10 и использует протокол

Service Discovery Application Profile (SDAP)

Профиль используется для предоставления информации о профилях, которые использует устройство-сервер.

SIM Access Profile (SAP, SIM)

Профиль позволяет получить доступ к SIM-карте телефона, что позволяет использовать одну SIM-карту для нескольких устройств.

Synchronisation Profile (SYNCH)

Профиль позволяет синхронизировать личные данные (PIM). Профиль заимствован из спецификации инфракрасной связи и адаптирован группой Bluetooth SIG.

Video Distribution Profile (VDP)

Профиль позволяет передавать потоковое видео. Поддерживает MPEG-4 Visual Simple Profile,

Wireless Application Protocol Bearer (WAPB)

Протокол для организации P-to-P (Point-to-Point) соединения через Bluetooth.

Безопасность

В июне 2006 года Авиша Вул (Avishai Wool) и Янив Шакед (Yaniv Shaked) опубликовали статью, содержащую подробное описание атаки на bluetooth-устройства. Материал содержал описание как активной, так и пассивной атаки, позволяющей заполучить PIN код устройства и в дальнейшем осуществить соединение с данным устройством. Пассивная атака позволяет соответствующе экипированному злоумышленнику «подслушать» (sniffing) процесс инициализации соединения и в дальнейшем использовать полученные в результате прослушки и анализа данные для установления соединения (spoofing). Естественно, для проведения данной атаки злоумышленнику нужно находится в непосредственной близости и непосредственно в момент установления связи. Это не всегда возможно. Поэтому родилась идея активной атаки. Была обнаружена возможность отправки особого сообщения в определённый момент, позволяющего начать процесс инициализации с устройством злоумышленника. Обе процедуры взлома достаточно сложны и включают несколько этапов, основной из которых — сбор пакетов данных и их анализ. Сами атаки основаны на уязвимостях в механизме аутентификации и создания ключа-шифра между двумя устройствами. И поэтому перед изложением механизма атак рассмотрим механизм инициализации bluetooth-соединения.

Инициализация bluetooth-соединения

Инициализацией, касательно bluetooth, принято называть процесс установки связи. Её можно разделить на три этапа:

  • Генерация ключа Kinit
  • Генерация ключа связи (он носит название link key и обозначается, как Kab)
  • Аутентификация

Первые два пункта входят в так называемую процедуру паринга.

Паринг (PAIRING) — или сопряжение. Процесс связи двух (или более) устройств с целью создания единой секретной величины Kinit, которую они будут в дальнейшем использовать при общении. В некоторых переводах официальных документов по bluetooth можно также встретить термин «подгонка пары».

Перед началом процедуры сопряжения на обеих сторонах необходимо ввести PIN-код. Обычная ситуация: два человека хотят связать свои телефоны и заранее договариваются о PIN-коде.

Для простоты будем рассматривать ситуацию с двумя устройствами. Принципиально это не повлияет на механизмы установления связи и последующие атаки. Далее соединяющиеся устройства будут обозначаться A и B, более того, одно из устройств при сопряжении становится главным (Master), а второе — ведомым (Slave). Будем считать устройство A главным, а B — ведомым. Создание ключа Kinit начинается сразу после того, как были введены PIN-коды.

Kinit формируется по алгоритму E22, который оперирует следующими величинами:

  • BD_ADDR — уникальный адрес BT-устройства. Длина 48 бит (аналог MAC-адреса сетевой карты PC)
  • PIN-код и его длина
  • IN_RAND. Случайная 128-битная величина

На выходе E22 алгоритма получаем 128-битное слово, именуемое Kinit. Число IN_RAND отсылается устройством A в чистом виде. В случае, если PIN неизменяем для этого устройства, то при формировании Kinit используется BD_ADDR, полученное от другого устройства. В случае если у обоих устройств изменяемые PIN-коды, будет использован BD_ADDR(B) — адрес slave-устройства. Первый шаг сопряжения пройден. За ним следует создание Kab. После его формирования Kinit исключается из использования.

Для создания ключа связи Kab устройства обмениваются 128-битными словами LK_RAND(A) и LK_RAND(B), генерируемыми случайным образом. Далее следует побитовый XOR с ключом инициализации Kinit. И снова обмен полученным значением. Затем следует вычисление ключа по алгоритму E21.

Для этого необходимы величины:

  • BD_ADDR
  • 128-битный LK_RAND (каждое устройство хранит своё и полученное от другого устройства значение значение)

На данном этапе pairing заканчивается и начинается последний этап инициализации bluetooth — Mutual authentication или взаимная аутентификация. Основана она на схеме «запрос-ответ». Одно из устройств становится верификатором, генерирует случайную величину AU_RAND(A) и засылает его соседнему устройству (в plain text), называемому предъявителем (claimant — в оригинальной документации). Как только предъявитель получает это «слово», начинается вычисление величины SRES по алгоритму E1, и она отправляется верификатору. Соседнее устройство производит аналогичные вычисления и проверяет ответ предъявителя. Если SRES совпали, то, значит, все хорошо, и теперь устройства меняются ролями, таким образом процесс повторяется заново.

E1-алгоритм оперирует такими величинами:

  • Случайно созданное AU_RAND
  • link key Kab
  • Свой собственный BD_ADDR

Уязвимости и атаки

Базовая pairing атака (атака на сопряжение)

Проанализируем данные, обмен которыми идёт на протяжении процесса сопряжения:

ОтКДанныеДлина (бит)Прочая информация
1ABIN_RAND128plaintext
2ABLK_RAND(A)128XORed with Kinit
3BALK_RAND(B)128XORed with Kinit
4ABAU_RAND(A)128plaintext
5BASRES32plaintext
6BAAU_RAND(B)128plaintext
7ABSRES32plaintext

Представим ситуацию: злоумышленнику удалось прослушать эфир и во время процедуры сопряжения, он перехватил и сохранил все сообщения. Далее найти PIN можно используя перебор.

Прежде всего необходимо составить сам алгоритм перебора. Мы располагаем перехваченными величинами IN_RAND (он нешифрованный) и BD_ADDR (напомним, что адреса устройств видны в эфире) и запускаем алгоритм E22. Ему передаем вышеперечисленные данные и наш предполагаемый PIN. В результате мы получим предполагаемое значение Kinit. Выглядит оно примерно так:

Kinit = E22[IN_RAND, BD_ADDR(B), PIN’] где PIN’ — предполагаемый нами PIN-код

Далее, сообщения 2 и 3 подвергаются XOR с только что полученным Kinit. Следовательно, следующим шагом мы получим LK_RAND(A) и LK_RAND(B) в чистом виде. Теперь мы можем высчитать предполагаемое значение Kab, для чего проделываем следующую операцию:

LK_K(A) = E21[BD_ADDR(A), LK_RAND(A)] где LK_K(A|B) — это промежуточные величины

LK_K(B) = E21[BD_ADDR(B), LK_RAND(B)]

Kab = LK_K(A) XOR LK_K(B)

Проверим PIN. Возьмем полученный Kab и перехваченный AU_RAND(A) и вычислим SRES(A).

После сравниваем полученный результат с SRES(A)’, хранящийся в сообщении номер 5:

SRES(A) = E1[AU_RAND(A), Kab, BD_ADDR(B)]

Если SRES(A) == SRES(A)’ — PIN успешно угадан. В противном случае повторяем последовательность действий заново с новой величиной PIN’.

Первым, кто заметил эту уязвимость, был англичанин Олли Вайтхауз (Ollie Whitehouse) в апреле 2004 года. Он первым предложил перехватить сообщения во время сопряжения и попытаться вычислить PIN методом перебора, используя полученную информацию. Тем не менее, метод имеет один существенный недостаток: атаку возможно провести только в случае, если удалось подслушать все аутентификационные данные. Другими словами, если злоумышленник находился вне эфира во время начала сопряжения или же упустил какую-то величину, то он не имеет возможности продолжить атаку.

Re-pairing атака (атака на пересопряжение)

Вулу и Шакеду удалось найти решение трудностей, связанных с атакой Вайтхауза. Был разработан второй тип атаки. Если процесс сопряжения уже начат и данные упущены, мы не сможем закончить атаку. Но был найден выход. Нужно заставить устройства заново инициировать процесс сопряжения (отсюда и название). Данная атака позволяет в любой момент начать вышеописанную pairing атаку.

Рассмотрим следующую ситуацию. Допустим, что устройства уже успели связаться, сохранили ключ Kab и приступили к Mutual authentication. От нас требуется заставить устройства заново начать pairing. Всего было предложено три метода атаки на пересопряжение, причём все из них зависимы от качества реализации bluetooth-ядра конкретного устройства. Ниже приведены методы в порядке убывания эффективности:

  • За pairing следует фаза аутентификации. Master-устройство отсылает AU_RAND и ждет в ответ SRES. В стандарте декларирована возможность потери ключа связи. В таком случае slave посылает «LMP_not_accepted», сообщая master об утере ключа. Поэтому основная цель злоумышленника — отследить момент отправки AU_RAND master-устройством и в ответ внедрить пакет содержащий LMP_not_accepted. Реакцией master будет реинициализация процесса pairing. Причём это приведёт к аннулированию ключа связи на обоих устройствах.
  • Если успеть отправить IN_RAND slave-устройству непосредственно перед отправкой master-устройством величины AU_RAND, то slave будет уверен, что на стороне master утерян ключ связи. Это опять же приведёт к процессу реинициализации сопряжения, но уже инициатором будет slave.
  • Злоумышленник ожидает отправки master-устройством AU_RAND и отправляет в ответ случайно сгенерированный SRES. Попытка аутентификации провалена. Далее следует череда повторных попыток аутентификации(количество зависит от особенностей реализации устройств). При условии, что злоумышленник продолжает вводить master-устройство в заблуждение, вскоре (по счётчику неудачных попыток) устройствами будет принято решение о реинициализации сопряжения.

(Как видно, все эти атаки требуют отправки нужных сообщений в нужный момент времени. Стандартные устройства, доступные в продаже, почти со 100 % вероятностью не подойдут для этих целей.)

Использовав любой из этих методов, злоумышленник может приступить к базовой атаке на сопряжение. Таким образом, имея в арсенале эти две атаки, злоумышленник может беспрепятственно похитить PIN-код. Далее имея PIN-код он сможет установить соединение с любым из этих устройств. И стоит учесть, что в большинстве устройств безопасность на уровне служб, доступных через bluetooth, не обеспечивается на должном уровне. Большинство разработчиков делает ставку именно на безопасность установления сопряжения. Поэтому последствия действий злоумышленника могут быть различными: от кражи записной книжки телефона до установления исходящего вызова с телефона жертвы и использования его как прослушивающего устройства.

Эти методы описывают, как принудить устройства «забыть» link key, что само по себе ведёт к повторному pairing’у, а значит, злоумышленник может подслушать весь процесс с самого начала, перехватить все важные сообщения и подобрать PIN.

Оценка времени подбора PIN-кода

В протоколе Bluetooth активно используются алгоритмы E22, E21, E1, основанные на шифре Брюс Шнайер (Bruce Schneier). Подбор PIN’a на практике прекрасно работает. Ниже приведены результаты полученные на Pentium IV HT на 3 ГГц:

Длина (знаков)Время (сек)
40,063
50,75
67,609

Конкретные реализации вышеописанных атак могут работать с различной скоростью. Способов оптимизации множество: особые настройки компилятора, различные реализации циклов, условий и арифметических операций. Авиша Вул (Avishai Wool) и Янив Шакед (Yaniv Shaked) совершили прорыв, найдя способ сократить время перебора PIN-кода в разы. Эта оптимизация выходит за рамки данной статьи, но, стоит отметить, что речь идёт об оптимизации базовых алгоритмов стека bluetooth. В свете современных технологий (в частности nVidia CUDA) результаты могли быть ещё лучше.

Увеличение длины PIN-кода не является панацеей и лишь незначительно увеличивает время перебора. Только сопряжение устройств в безопасном месте может частично защитить от описанных атак. Пример — bluetooth гарнитура или автомобильный handsfree. Инициализация связи (при включении) с данными устройствами может происходить многократно в течение дня, и не всегда у пользователя есть возможность находиться при этом в защищённом месте. Впрочем, атаки подобного вида не будут слишком популярны, по крайней мере, пока не будет реализовано доступных аппаратных средств и универсальных программных пакетов.

Внедрение NFC является эффективным решением против данного вида атак, но в целом, ситуация не изменится к лучшему до появления на рынке достаточного количества решений на Bluetooth 2.1 (с поддержкой NFC), а в силу их обратной совместимости с предыдущими версиями протокола, вышеизложенные атаки будут актуальны ещё достаточно продолжительное время.

Применение

Hardware

Радиус работы устройств BT2 не превышает 15 метров, для BT1 до 100 м (класс А). Эти числа декларируются стандартом для прямой видимости, в реальности не стоит ожидать работу на расстоянии более 10-20 метров. Такого дальнодействия недостаточно для эффективного применения атак на практике. Поэтому, ещё до детальной проработки алгоритмов атаки, на Defcon-2004 публике была представлена антенна-винтовка BlueSniper, разработанная Джонном Херингтоном (John Herington). Устройство подключается к портативному устройству — ноутбуку/КПК и имеет достаточную направленность и мощность (эффективная работа до 1,5 км).

Примечания

  1. 1 2 About the Bluetooth SIG (англ.). Bluetooth SIG. Проверено 20 марта 2008.
  2. Jim Kardach. How Bluetooth got its name (англ.). United Business Media (3 мая 2008). Проверено 20 марта 2008.
  3. Вишневский и др. Широкополосные беспроводные сети передачи данных. — М.: Техносфера, 2005. — 592 с.

См. также

Ссылки

Wikimedia Foundation. 2010.

dic.academic.ru

Как выбрать Bluetooth-устройство для прослушивания музыки

Любой звук начинается с источника. Сегодня существует масса беспроводных протоколов для передачи звука. Некоторые из них значительно интереснее Bluetooth, но пока не получили должного распространения. Сегодня Bluetooth оборудованы почти все смартфоны, ноутбуки и планшеты, а оснастить устройство его поддержкой при наличии USB-выхода — дело пяти минут.

Поэтому сегодня ограничимся именно звуковоспроизводящими устройствами с использованием «голубого зуба» (гайд вполне подойдёт и для выбора Bluetooth-колонки). Технология эта имеет довольно долгую историю и массу подводных камней, о существовании которых не всегда знают пользователи.

Наличие Bluetooth-передатчика не говорит о том, что устройство можно использовать в качестве источника звука для беспроводной аудиоаппаратуры. Не всякий Bluetooth позволит слушать качественную музыку без искажений. Не всякий подойдёт и для прослушивания файлов с высоким битрейтом и в lossless-форматах.

На что обратить внимание, чтобы слушать музыку без проводов — будь то просто MP3 или высококачественный рип с виниловой пластинки, мы расскажем в этой статье.

Начнём с самого важного: этот параметр напрямую говорит о том, можно ли слушать при помощи устройства музыку.

Версия Bluetooth

В современных устройствах чаще всего можно встретить поддержку Bluetooth 3.0 или 4.0, в некоторых топовых смартфонах и прочих гаджетах — 4.1. При этом вполне может оказаться, что приобретаемая гарнитура поддерживает подключение только по протоколу версии 2.1. Адаптеры обратно совместимы, но при подключении работает наиболее медленный протокол из двух.

Отличие между версиями протокола для обычного пользователя минимальны за счёт обратной совместимости. Основное, что бросается в глаза, — с каждой новой версией снижается энергопотребление устройств, а начиная с 3.0 добавлен второй модуль для высокоскоростной передачи данных на скорости 24 Мбит/с.

Версия 2.1 + EDR передаёт данные со скоростью не более 2,1 Мбит/с. Этого достаточно для воспроизведения аудиопотока низкого битрейта. Для воспроизведения аудиовидеопотока рекомендуется использовать версию Bluetooth не ниже 3.0.

Необходимо учесть, что для полноценного использования девайса в качестве плеера, крайне желательно наличие Bluetooth версии 4.0 и выше, а лучше — со сниженным энергопотреблением.

Опознать такой адаптер можно благодаря следующим категориям.

Профили Bluetooth

Профили — набор определённых функций, поддерживаемых устройствами. Из всех используемых в Bluetooth для прослушивания музыки интересны следующие:

  1. Headset Profile (HSP) необходим для связи гарнитуры и смартфона и беспроводной передачи монозвука с битрейтом 64 кбит/с.
  2. Hands-Free Profile (HFP) также обеспечивает только передачу моно, однако с более высоким качеством.
  3. Advanced Audio Distribution Profile (A2DP) необходим для передачи двухканального аудиопотока.
  4. Audio/Video Remote Control Profile (AVRCP) обеспечивает управление функциями воспроизводящих устройств (без него невозможно даже изменение громкости музыки).

Для полноценного прослушивания музыки необходим именно A2DP. Он не только обеспечивает передачу аудиопотока, но и управляет сжатием данных перед передачей.

Однако, даже если и передающее, и воспроизводящее устройство (например, смартфон и беспроводные наушники) оснащены Bluetooth 3.0 или 4.0 и поддерживают работу с необходимым протоколом, нужно обратить внимание на кодек, который используется.

Кодеки Bluetooth

Самое главное для воспроизведения музыки по протоколу A2DP — кодек, которым сжимается передаваемый на гарнитуру аудиопоток. Всего на данный момент существует три кодека:

  1. Subband Coding (SBC) — кодек, используемый A2DP по умолчанию и созданный разработчиками профиля. К сожалению, SBC жмёт значительно грубее, чем MP3. И стало быть, для прослушивания музыки не подходит.
  2. Advanced Audio Coding (AAC) — более продвинутый кодек, использующий другие алгоритмы сжатия. Звучит значительно лучше SBC.
  3. AptX — вот он, правильный выбор! Хотя бы из-за возможности передавать файлы в MP3 и AAC без дополнительных манипуляций и перекодирования. А значит, и без ухудшения звука. Однако стоит оговориться. Для воспроизведения разных битрейтов существует несколько версий aptX. Каждая из них предназначена для своего звукового потока.
ВерсияЧисло поддерживаемых каналовМаксимальная частота дискретизации, кГцКвантование, битМаксимальный битрейтСтепень сжатия
AptX244,116320 кбит/с2:1
Enhanced AptX2, 4, 5.1, 5.1+24816, 20, 24до 1,28 Мбит / с4:1
AptX Liveн/д4816, 20, 24н/д8:1
AptX Losslessн/д9616, 20, 24н/дн/д
AptX Low Latency н/д4816, 20, 24н/дн/д

»
Главные особенности последних двух версий кодека — максимально сниженная задержка воспроизведения звука и сниженная нагрузка на процессор при кодировании. Версия Low Latency позволяет достигать задержки в 32 мс между источником аудиопотока и воспроизводящим устройством. Это позволит уменьшить искажения, вносимые аппаратурой при прослушивании музыки.

Таким образом, при определённых предпочтениях можно выбрать определённый кодек. Если воспроизведение lossless-потока не предполагается, а высокая задержка звука не критична — стоит ограничиться стандартным aptX и не переплачивать за поддержку устройством последующих версий.

Стоит помнить, что необходимый профиль и кодек должен поддерживаться как смартфоном (или другим источником аудиопотока), так и самой гарнитурой (или Bluetooth-колонкой). В противном случае алгоритм A2DP автоматически начнёт работу с использованием SBC.

C Bluetooth любые два устройства всегда работают, используя самую низкую версию, самый простой кодек и протокол. Так что, если одно из них не обладает поддержкой необходимой технологии, в полной мере насладиться качеством звучания не удастся.

Для прослушивания музыки в течение долгого времени требуется поддержка Bluetooth не ниже версии 3.0, кодека aptX и профиля A2DP. Для прослушивания музыки с высоким битрейтом необходима поддержка кодека aptX Lossless — ни один другой не подойдёт, поскольку музыка будет сжиматься при передаче на воспроизводящее устройство.

lifehacker.ru

Профили Bluetooth

Главная → Каталог телефонов → Глоссарий → Профили Bluetooth

GAVDP

GAVDP — General Audio/Video Distribution Profile (общий профиль распространения аудио и видео) — профиль является основой для профилей A2DP и VDP, используемых в системах распределения видео и аудио потоков, использующих беспроводную технологию Bluetooth. В типичном случае — это устройство типа «плеер», выступающее в качестве источника, и головные телефоны, которые используется в качестве приемника.

SPP

SPP Serial Port Profile (профиль последовательного порта) — профиль, который позволяет устройствам Bluetooth эмулировать последовательный порт ПК при помощи протокола RFCOMM. Профиль SPP определяет, каким образом два доступных устройства Bluetooth будут осуществлять обмен данными посредством эмуляции интерфейса RS-232 или интерфейса USB.

OPP

OPP — Open Push Profile (профиль помещения объектов в стек) — Bluetooth-профиль управляет обменом электронными визитками в формате vCard (расширение файлов *.vcf). Эти визитки содержат ту же информацию, что и традиционные, но при этом они могут быть автоматически занесены в личную информационную систему (PIM) или в базу данных.

FTP

FTP — File Transfer Profile (профиль передачи файлов) — профиль определяет каким образом файлы на устройстве сервера могут быть просмотрены устройством-клиентом. Если местонахождение файла определено клиентом, то файл может быть перемещен от сервера к клиенту или помещен клиентом на сервер, используя профиль GOEP.

GAP

GAP — Generic Access Profile (профиль общего доступа) — является основным профилем Bluetooth, который отвечает за поддержание связи между устройствами, выявление других доступных профилей, а также за безопасность соединений. Этот профиль должен быть включен во все устройства Bluetooth, однако сам по себе  он недостаточен ни для одного полезного приложения. В него входят функции, необходимые для работы всех основных протоколов Bluetooth.

SDAP

SDAP — Service Discovery Application Profile (профиль приложения обнаружения услуг) — профиль описывает каким образом приложение должно использовать протокол обнаружения услуг (Service Discovery Protocol — SDP). Профиль SDAP необходим для того, чтобы любое приложение имело возможность узнать, какие услуги (сервисы) Bluetooth является доступными на любом доступном устройстве Bluetooth, с которым оно соединено.

GOEP

GOEP — Generic Object Exchange Profile (общий профиль обмена объектами) — профиль определяет каким образом устройство Bluetooth использует протокол OBEX. Профиль GOEP используется для непосредственного (без использования IP) обмена объектами между двумя устройствами. Объект может иметь любой тип, например, изображение, документ, визитная карточка и т.д. Профиль определяет устройствам одну из двух ролей: сервер, который определяет место, куда объект был помещен и клиент, который инициализирует механизм передачи. Профиль GOEP обеспечивает общий шаблон для других профилей, использующих протокол OBEX.

DUN

DUN — Dial-up Networking Profile (профиль дозвона по сети) — обеспечивает стандартный доступ к Интернету и другому сервису модемной связи по беспроводной технологии Bluetooth. Самый общий пример: доступ к Интернету с ноутбука посредством мобильного телефона.

HSP

HSP — Headset Profile (профиль гарнитуры) — профиль определяет способ, посредством которого Bluetooth обеспечивает беспроводное соединение устройства с гарнитурой, оснащенной динамиками и, возможно, микрофоном. Профиль HSP рассчитан не только на поддержку связи с мобильными телефонами, но и с персональным компьютером, MP3-плеером и другими устройствами.

SYNC

SYNC — Synchronization Profile (профиль синхронизации) — профиль используется вместе с GOEP, чтобы обеспечить синхронизацию календаря и адресной информации (элементы управления персональной информации — PIM) между доступными Bluetooth устройствами. Основное применение этого профиля — обмен данными между мобильным устройством и компьютером.

CTP

CTP — Cordless Telephony Profile (профиль беспроводной телефонной связи) — профиль определяет, каким образом беспроводный телефон может быть использован в технологии Bluetooth. Эта профиль может использоваться или для беспроводного телефона, или для мобильного телефона, который функционирует как беспроводный телефон вблизи от базовой станции, осуществляющей CTP. Ожидается, что мобильные телефоны смогут использовать Bluetooth шлюз CTP, связанный с наземной линией в пределах дома и в том случае, когда мобильный телефон находится вне зоны действия сети.

AVRCP

 AVRCP — Audio/Video Remote Control Profile (профиль дистанционного управления аудио и видео аппаратурой) — профиль обеспечивает стандартный интерфейс для управления высококачественной аудио и видео аппаратурой. Использование этого профиля позволяет единственному пульту дистанционного управления осуществлять управление всей аудио и видео аппаратурой, которая находится в данной окрестности. Профиль AVRCP дает возможность управлять характеристиками мультимедиа потоков, например, регулировку громкости, пуск, приостановку и остановку плейера, а также выполнять другие подобные операции дистанционного управления.

HFP

HFP — Hands-Free Profile (профиль громкой связи) — профиль описывает каким образом устройство-шлюз может использоваться для размещения и получения вызовов устройства hands-free. Типичный пример — использование мобильного телефона в качестве устройства-шлюза. Например, в автомобиле стерео используется для приема звукового сигнала от телефона, а микрофон, установленный в автомобиле, в качестве источника звука, принимаемого телефоном в течение сеанса связи. Профиль HFP позволяет также использовать ресурсы мультимедиа персонального компьютера в качестве аппаратуры громкой связи мобильного телефона. Добавляется в основную конфигурацию профилей под управление профиля SPP.

BIP

BIP — Basic Imaging Profile (основной профиль изображения) — профиль обеспечивает механизм дистанционного управления устройствами записи, передачи и отображения изображений. Типичный пример применения этого протокола — использование мобильного телефона для управления затвором цифровой фотокамеры. Добавляется в основную конфигурацию профилей под управление профиля GOEP.

A2DP

A2DP — Advanced Audio Distribution Profile (расширенный профиль распространения аудио) — профиль расширенного распределения аудио. Этот протокол представляет собой технологию, позволяющую передавать в режиме реального времени высококачественный стереофонический звук с одного устройства на другое с помощью Bluetooth.

LAP

LAP — LAN Access Profile (профиль доступа к локальной сети) — профиль предназначен для создания IP-сетей и позволяет создавать небольшие беспроводные сети Intranet, объединяющие ПК или смарт-телефоны. Он также используется точками доступа для связи с кабельными сетями, будь то локальные сети или Internet.


www.mobile-arsenal.com.ua

4. Профили Bluetooth.

Специальная рабочая группа Bluetooth SIG определила различные модели использования, каждая из которых сопровождается профилем. Профили определяют протоколы и функции, которые поддерживают определенные модели использования. Если устройства от различных производителей соответствуют одному профилю, определенному в спецификации Bluetooth, они смогут взаимодействовать. Четыре общих профиля применяются для различных моделей использования. Это профиль общего доступа, профиль последовательного порта, профиль приложения обнаружения услуг и профиль общего обмена объектами. Остальные профили применяются непосредственно для определенных моделей использования.

Профиль общего доступа (Generic Access Profile)

Это основной профиль Bluetooth, отвечающий за поддержание связи между устройствами, выявление других доступных профилей, а также за безопасность. Этот профиль должен быть включен во все устройства Bluetooth, однако сам по себе он недостаточен ни для одного полезного приложения. В него входят функции, необходимые для работы всех основных протоколов Bluetooth.

Профиль приложения обнаружения услуг (Service Discovery Application Profile)

Дает пользователю возможность непосредственно обращаться к SDP для того, чтобы определять, какие услуги Bluetooth доступны при работе с данным устройством. SDP входит в число основных протоколов, но без этого дополнительного профиля доступ к нему открыт только для приложений, но не для пользователей.

Профиль беспроводной телефонии (Cordless Telephony Profile)

Предназначен для устройств, называемых в терминологии SIG телефонами «три в одном», т. е. для мобильных телефонов с микросхемой Bluetooth, позволяющей использовать телефон в качестве беспроводной «трубки». Через точку доступа Bluetooth он подсоединяется к телефонной сети в доме, офисе и даже в общественных местах, таких, как залы ожидания в аэропортах, снижая трафик сотовой связи и обеспечивая тем самым определенную экономию.

Профиль внутренней связи (Intercom Profile)

Этот профиль, также базирующийся на протоколе TCS, обеспечивает двустороннюю голосовую связь между устройствами Bluetooth. Он проще предыдущего профиля, поскольку рассчитан на прямое взаимодействие(голосовая связь) двух устройств, расположенных в зоне взаимной досягаемости, а не на звонки, требующие маршрутизации по телефонной сети общего пользования или Internet.

Профиль последовательного порта (Serial Port Profile)

Он позволяет устройствам Bluetooth эмулировать последовательный порт персонального компьютера при помощи протокола RFCOMM. Он обеспечивает эмуляцию интерфейса RS-232 либо более нового интерфейса USB и используется многими профилями более высокого уровня.

В него входят 4 следующих профиля.

Профиль гарнитуры (Headset Profile)

Определяет способ, посредством которого Bluetooth обеспечивает беспроводное соединение устройства с гарнитурой, оснащенной динамиками и, возможно, микрофоном. Так как этот профиль рассчитан не только на поддержку связи с мобильными телефонами, но и с персональными компьютерами, MP3-плейерами и другими устройствами, он остается единственным до сих пор профилем, где используются команды AT, первоначально разработанные для управления модемами.

Профиль коммутируемого выхода на сеть (Dial-up Networking Profile)

Предназначен для компьютеров, связывающихся с сетью Internet через сотовый телефон. Этот профиль включает в себя профиль последовательного порта и протокол PPP, используемый стандартными модемами для передачи IP по телефонной линии.

Профиль факса (Fax Profile)

Этот профиль во многом похож на предыдущий. Он позволяет мобильному телефону эмулировать факс-модем при соединении через Bluetooth с ноутбуком, имеющим программное обеспечение поддержки факса. Подобно предыдущему протоколу, он использует PPP и профиль последовательного порта.

Профиль доступа к локальной сети (LAN Access Profile)

Предназначен для создания IP-сетей и позволяет создавать небольшие беспроводные сети Intranet, объединяющие персональные компьютеры или смарт-телефоны. Он также используется точками доступа для связи с кабельными сетями, будь то локальные сети или Internet. Хотя большинство точек доступа будет базироваться на Ethernet, все они действуют как IP-маршрутизаторы, так что теоретически они могут использовать и другие стандарты второго уровня, например Token Ring или SONET.

Профиль общего обмена объектами (Generic Object Exchange Profile)

Определяет, каким образом Bluetooth использует протокол OBEX, клиент-серверный протокол, заимствованный у IrDA. Он позволяет приложениям обмениваться данными непосредственно, без использования IP.

Профиль помещения объекта в стек (Object Push Profile)

Управляет обменом электронными визитками в формате vCard. Эти визитки содержат ту же информацию, что и традиционные, но при этом они могут быть автоматически занесены в личную информационную систему (Personal Information Manager — PIM) или в базу данных.

Профиль передачи файла (File Transfer Profile)

Позволяет устройству получать доступ к данным, хранящимся на другом устройстве, аналогично тому, как это делается в ftp. Помимо связывания двух устройств друг с другом приложения этого профиля могут выполнять сканирование или печать.

Профиль синхронизации (Synchronization Profile)

Обеспечивает синхронизацию данных, хранящихся на различных устройствах. Синхронизация может быть автоматизирована, так что компьютер будет автоматически синхронизировать данные с мобильным телефоном или устройством PDA, когда те находятся в пределах его зоны действия.

studfile.net

Список профилей Bluetooth • ru.knowledgr.com

Чтобы использовать технологию Bluetooth, устройство должно быть совместимо с подмножеством профилей Bluetooth, необходимых, чтобы использовать желаемые услуги. Профиль Bluetooth — спецификация относительно аспекта основанной на Bluetooth радиосвязи между устройствами. Это проживает сверху Спецификации Ядра Bluetooth и (произвольно) дополнительных протоколов. В то время как профиль может использовать определенные функции основной спецификации, определенные версии профилей редко связываются с определенными версиями основной спецификации. Например, есть Hands-Free Profile (HFP) 1,5 внедрения, используя и технические требования ядра Bluetooth 2.0 и Bluetooth 1.2.

Путем технология Bluetooth использования устройства зависит от своих возможностей профиля. Профили обеспечивают стандарты, за которыми изготовители следуют, чтобы позволить устройствам использовать Bluetooth намеченным способом. Для Bluetooth низкий энергетический стек согласно Bluetooth V4.0 применяется специальный набор профилей.

В максимуме каждая спецификация профиля содержит информацию о следующих темах:

  • Зависимости от других форматов
  • Предложенный пользовательский интерфейс форматирует
  • Определенные части стека протокола Bluetooth используются профилем. Чтобы выполнить его задачу, каждый профиль использует особые варианты и параметры в каждом слое стека. Это может включать схему необходимой служебной книжки, в подходящих случаях.

Эта статья суммирует текущие определения профилей, определенных и принятых СИГНАЛОМ Bluetooth и возможными применениями каждого профиля.

Продвинутый аудио профиль распределения (A2DP)

Этот профиль определяет, как мультимедийное аудио может течься от одного устройства до другого по связи Bluetooth (так, это также называют Аудио Bluetooth, Текущим). Например, музыка может течься с мобильного телефона, к беспроводным наушникам, слуховой аппарат / кохлеарный заголовок внедрения, автоаудио, или от ноутбука/рабочего стола до беспроводных наушников; также, голос может течься с устройства микрофона на рекордер на PC. Аудио/Видео Профиль Дистанционного управления (AVRCP) часто используется вместе с A2DP для дистанционного управления на устройствах, таких как наушники, системы автоаудио или автономные единицы спикера. Эти системы часто также осуществляют Наушники (HSP) или Оставляющий руки свободными (HFP) профили для телефонных звонков, которые могут использоваться отдельно.

Каждое обслуживание A2DP, возможно многих, разработано, чтобы однонаправлено передать аудиопоток максимум в 2 стерео канала, или к или от хозяина Bluetooth. Этот профиль полагается на AVDTP и GAVDP. Это включает обязательную поддержку низкой сложности кодер-декодер SBC (чтобы не быть перепутанным с кодер-декодерами голосового сигнала Bluetooth, такими как CVSDM), и поддержки произвольно/MPEG-2 Часть 3 (MP2 и MP3), Часть MPEG-2 7/MPEG-4 Часть 3 (AAC и ОН-AAC), и ATRAC, и расширяемо, чтобы поддержать определенные изготовителями кодер-декодеры, такой как склонные-X.

Некоторые стеки Bluetooth проводят в жизнь схему цифрового управления правами (DRM) SCMS-T. В этих случаях невозможно соединить определенные наушники A2DP для высококачественного аудио.

Профиль признака (ВНИМАНИЕ)

ВНИМАНИЕ — проводной прикладной протокол для Bluetooth Низкая энергетическая спецификация. Это тесно связано с Универсальным Профилем Признака (ГАТТ).

Аудио/Видео Профиль Дистанционного управления (AVRCP)

Этот профиль разработан, чтобы обеспечить стандартный интерфейс, чтобы управлять телевизорами, Высококачественное оборудование, и т.д. позволить единственному дистанционному управлению (или другое устройство) управлять всем оборудованием A/V, к которому у пользователя есть доступ. Это может использоваться совместно с A2DP или VDP. Это обычно используется в автомобильных навигационных системах, чтобы управлять текущим аудио Bluetooth.

У

этого также есть возможность для зависимых от продавца расширений.

У

AVRCP есть несколько версий со значительно увеличивающейся функциональностью:

  • 1.0 — Основные команды дистанционного управления (игра/пауза/остановка, и т.д.)
  • 1.3 — все из 1,0 плюс метаданные и государственная поддержка медиаплеера
  • Статус музыкального источника (игра, остановленная, и т.д.)
  • Информация о метаданных о самом следе (художник, отследите имя, и т.д.).
  • 1.4 — все из 1,0 и 1.3 плюс СМИ, просматривающие возможности к многократным медиаплеерам
  • Просмотр и манипуляция многократных игроков
  • Просмотр метаданных СМИ за медиаплеер, включая «Теперь Играющий» список
  • Основные возможности поиска
  • Поддержка Абсолютного объема
  • 1.5 — все из 1,0, 1.3 и 1.4 плюс исправления спецификации и разъяснения к абсолютной регулировке громкости, просмотр и другие особенности

Basic Imaging Profile (BIP)

Этот профиль разработан для отправки изображений между устройствами и включает способность изменить размеры, и преобразовать изображения, чтобы сделать их подходящими для устройства получения. Это может быть разломано на мелкие кусочки:

Толчок изображения: Позволяет отправку изображений от устройства контроль за работой пользователей.

Напряжение изображения: Позволяет просмотр и поиск изображений от удаленного устройства.

Передовая Печать Изображения: изображения печати с продвинутыми вариантами, используя формат DPOF, развитый Canon, Кодаком, Fujifilm и Matsushita

Автоматический Архив: Позволяет автоматическую резервную копию всех новых изображений от целевого устройства. Например, ноутбук мог загрузить все новые картины от камеры каждый раз, когда это в пределах диапазона.

Отдаленная Камера: Позволяет инициатору удаленно использовать цифровой фотоаппарат. Например, пользователь мог поместить камеру в треногу для фотографии группы, использовать их телефонную телефонную трубку, чтобы проверить, что все находятся в структуре, и активируйте ставень пользователем в фотографии.

Удаленный Показ: Позволяет инициатору толкать изображения быть показанными на другом устройстве. Например, пользователь мог дать представление, послав слайды в видео проектор.

Basic Printing Profile (BPP)

Это позволяет устройствам посылать текст, электронные письма, vCards, или другие пункты к принтерам, основанным на рабочих местах печати. Это отличается от HCRP, в котором этому не нужны никакие определенные для принтера водители. Это делает его более подходящим для встроенных устройств, таких как мобильные телефоны и цифровые фотоаппараты, которые не могут легко быть обновлены с водителями, зависящими от продавцов принтера.

Общий профиль доступа ISDN (CIP)

Это предоставляет неограниченный доступ услугам, данным и сигнализируя об этом предложения ISDN.

Cordless Telephony Profile (CTP)

Это разработано для беспроводных телефонов, чтобы работать, используя Bluetooth. Надеются, что мобильные телефоны могли использовать Bluetooth ворота CTP, связанные с наземной линией связи когда в доме и сети мобильного телефона когда из диапазона. Это главное в СИГНАЛЕ Bluetooth, «3 в 1 звонят» случаю использования.

Device ID Profile (DIP)

Этот профиль позволяет устройству быть определенным выше и вне ограничений Класса Устройства, уже доступного в Bluetooth. Это позволяет идентификацию изготовителя, ID продукта, версии продукта и версии идентификационной встречаемой спецификации Устройства. Это полезно в разрешении PC определить соединяющееся устройство и загрузить соответствующих водителей. Это позволяет подобные заявления тем, спецификация Штепселя-и-игры позволяет.

Коммутируемый (СЕРОВАТО-КОРИЧНЕВЫЙ) профиль организации сети

Этот профиль обеспечивает стандарт, чтобы получить доступ к Интернету и другим службам автоматической телефонной связи по Bluetooth. Наиболее распространенный сценарий получает доступ к Интернету от ноутбука, набирая по мобильному телефону с помощью беспроводных технологий. Это основано на Serial Port Profile (SPP) и предусматривает относительно легкое преобразование существующих продуктов через многие особенности, которые это имеет вместе с существующими зашитыми последовательными протоколами для той же самой задачи. Они включают набор AT-команд, определенный в European Telecommunications Standards Institute (ETSI) 07.07, и Point-to-Point Protocol (PPP).

СЕРОВАТО-КОРИЧНЕВЫЙ различает, инициатор (НАПОМНИТЕ Терминалу о возврате долга) связи и поставщика (СЕРОВАТО-КОРИЧНЕВЫЕ Ворота) связи. Ворота обеспечивают интерфейс модема и устанавливают связь с воротами PPP. Терминал осуществляет использование модема и протокола PPP, чтобы установить сетевую связь. В стандартных телефонах ворота функциональность PPP обычно осуществляется точкой доступа Телекоммуникационного поставщика. Во «всегда по» смартфонам, ворота PPP часто обеспечиваются телефоном, и терминал разделяет связь.

Профиль факса (ФАКС)

Этот профиль предназначен, чтобы обеспечить четко определенный интерфейс между мобильным телефоном или стационарным телефоном и PC с установленным программным обеспечением Fax. Поддержка должна быть предусмотрена ITU T.31 и / или ITU T.32 наборы AT-команд, как определено ITU-T. Данные и голосовые вызовы не покрыты этим профилем.

File Transfer Profile (FTP)

Обеспечивает способность просмотреть, управлять и передать объекты (файлы и папки) в объектно-ориентированной памяти (файловая система) другой системы. Использование GOEP как основание.

Универсальный Аудио/Видео Профиль Распределения (GAVDP)

GAVDP обеспечивает основание для A2DP и VDP, основание систем, разработанных для распределения видео и аудиопотоков, используя технологию Bluetooth.

GAVDP определяет две роли, того из Инициатора и Получателя:

  • Инициатор (INT) – Это — устройство, которое начинает сигнальную процедуру.
  • Получатель (ACP) – Это — устройство, которое должно ответить на поступающий запрос от INT

Основная полоса частот, LMP, L2CAP и SDP — протоколы Bluetooth, определенные в технических требованиях Ядра Bluetooth. AVDTP состоит из сигнального предприятия для переговоров текущих параметров и транспортного предприятия, которое обращается с вытеканием.

Generic Access Profile (GAP)

Обеспечивает основание для всех других профилей. ПРОМЕЖУТОК определяет, как две единицы Bluetooth обнаруживают и устанавливают связь друг с другом.

Универсальный профиль признака (ГАТТ)

Обеспечивает открытие профиля и услуги описания для Bluetooth Низкий энергетический протокол. Это определяет, как признаки ВНИМАНИЯ группируются в наборы, чтобы создать услуги.

Generic Object Exchange Profile (GOEP)

Обеспечивает основание для других профилей данных. Основанный на OBEX и иногда упоминаемый как таковой.

Кабельный профиль замены печатного экземпляра (HCRP)

Это обеспечивает простую беспроводную альтернативу кабельному соединению между устройством и принтером. К сожалению, это не устанавливает норму относительно фактических коммуникаций к принтеру, таким образом, водители требуются определенные для модели принтера или диапазона. Это делает этот профиль менее полезным для встроенных устройств, таких как цифровые фотоаппараты и palmtops, поскольку обновление водителей может быть проблематичным.

Health Device Profile (HDP)

Медицинский профиль термометра (HTP) и Heart Rate Profile (HRP) подпадают под эту категорию также.

Профиль, разработанный, чтобы облегчить передачу и прием данных о Медицинском устройстве. ПЧЕЛА этого слоя взаимодействует с более низким уровнем Многоканальный Протокол Адаптации (слой MCAP), но также и выполняет поведение SDP, чтобы соединиться с отдаленными устройствами HDP. Также использует Device ID Profile (DIP).

Hands-Free Profile (HFP)

В настоящее время в версии 1.6, это обычно используется, чтобы позволить автомобилю оставляющие руки свободными комплекты, чтобы общаться с мобильными телефонами в автомобиле. Это обычно использует Синхронную Связь Ориентированная связь (SCO), чтобы нести монофонический аудио канал с непрерывно переменной наклонной модуляцией дельты или модуляцией кодекса пульса, и с логарифмическим закон или μ-law квантизация. Версия 1.6 добавляет дополнительную поддержку широкой речи группы с mSBC кодер-декодером, монофонической конфигурацией на 16 кГц кодер-декодера SBC, переданного под мандат профилем A2DP.

В 2002 Ауди, с Audi A8, была первым производителем автомашин, который установит технологию Bluetooth в автомобиле, позволяя пассажиру использовать беспроводной находящийся внутри автомобиля телефон. В следующем году ДаймлерКрайслер и Acura начали технологическую интеграцию Bluetooth с аудиосистемой, поскольку стандартная функция в Acura третьего поколения TL в системе назвала Связь HandsFree (HFL). Позже, BMW добавила его как выбор на его 1 Сериале, 3 Рядах, 5 Рядах, 7 Рядах и транспортных средствах X5. С тех пор другие изготовители следовали примеру, со многими транспортными средствами, включая Toyota Prius (с 2004), 2007 Toyota Camry, 2007 Infiniti G35 и Lexus LS 430 (с 2004). Несколько моделей Nissan (Versa, X-след) включают встроенный Bluetooth для Технологического выбора. Вольво начала вводить поддержку в некоторых транспортных средствах в 2007, и с 2 009 всех оснащенных Bluetooth транспортных средств поддерживают HFP.

Много изготовителей как Пионер или JVC строят автомобильные радиоприемники с модулем Bluetooth. У этого модуля обычно есть поддержка HFP.

Автомобильные комплекты Bluetooth позволяют пользователям с оборудованными Bluetooth сотовыми телефонами использовать некоторые особенности телефона, такие как совершение звонков, в то время как сам телефон можно оставить в карманной или ручной сумке пользователя. Компании как Средства управления Джонсоном, Peiker едкий, RAYTEL, Parrot SA, Novero, S1NN и Motorola производят Bluetooth оставляющие руки свободными автомобильные комплекты для известных фирменных автопроизводителей.

Большинство гарнитур Bluetooth осуществляет и Оставляющий руки свободными Профиль Профиля и Наушников, из-за дополнительных функций в HFP для использования с мобильным телефоном, таких как последний повторный набор числа, ожидание вызова и голосовой вызов номера.

Сторона мобильного телефона связи HFP — Аудио Ворота или Сервер HFP. Автомобильная сторона связи HFP — Кэр Кит или Клиент HFP.

Профиль устройства интерфейса пользователя (СКРЫЛСЯ)

Оказывает поддержку для устройств, таких как мыши, джойстики, клавишные инструменты, а также иногда оказание поддержки для простых кнопок и индикаторов на других типах устройств. Это разработано, чтобы обеспечить низкую связь времени ожидания с низкими требованиями власти. Контроллеры PlayStation 3 и Wii remotes также используют СКРЫТЫЙ Bluetooth.

СКРЫТЫЙ Bluetooth является легкой оберткой протокола устройства интерфейса пользователя, определенного для USB. Использование СКРЫТОГО протокола упрощает внедрение хозяина (исключая: поддержка операционными системами), позволяя повторное использование части существующей поддержки USB СКРЫЛСЯ, чтобы также поддержать СКРЫТЫЙ Bluetooth.

Клавиатура и клавиатуры должны быть безопасными. Поскольку другая безопасность HIDs дополнительная.

Профиль наушников (HSP)

Это — обычно используемый профиль, оказывая поддержку для популярных гарнитур Bluetooth, которые будут использоваться с мобильными телефонами. Это полагается на SCO для аудио, закодированного в CVSD на 64 кбита/с или PCM и подмножестве В командах от GSM 07.07 для минимальных средств управления включая способность звонить, ответить на требование, повесить трубку и приспособить объем.

Профиль интеркома (ICP)

Это часто упоминается как профиль портативной радиостанции. Это — другой TCS (Телефонный протокол Контроля Спецификация) базируемый профиль, полагаясь на SCO, чтобы нести аудио. Предложено позволить голосовые вызовы между двумя Bluetooth способные телефонные трубки по Bluetooth.

LAN Access Profile (LAP)

Профиль Доступа LAN позволяет bluetooth-устройству получить доступ к LAN, БЛЕДНОЙ или Интернет через другое устройство, у которого есть физическая связь с сетью. Это использует PPP по RFCOMM, чтобы установить связи. КОЛЕНИ также позволяют устройству присоединяться к специальной сети Bluetooth.

Профиль Доступа LAN был заменен профилем КАСТРЮЛИ в спецификации Bluetooth.

Message Access Profile (MAP)

Спецификация Message Access Profile (MAP) позволяет обмен сообщениями между устройствами. Главным образом используемый для автомобильного оставляющего руки свободными использования. Профиль КАРТЫ может также использоваться для другого использования, которое требует обмена сообщениями между двумя устройствами. Автомобильный Оставляющий руки свободными случай использования — то, где бортовое предельное устройство (как правило, электронное устройство как Автомобильный комплект, установленный в автомобиле), может говорить через передающую способность с другим коммуникационным устройством (как правило, мобильный телефон). Например, КАРТА Bluetooth используется HP, Посылают и получают текст (SMS) сообщения от смартфона Пальмы/HP до таблетки HP TouchPad. КАРТА Bluetooth используется Фордом в избранном СИНХРОНИЗИРУЮЩЕМ Поколении, 1 снабженном 2 011 и 2 012 транспортных средств и также BMW со многими их системами iDrive. Модели Lexus LX и GS 2013 и также поддерживают КАРТУ, как делает Honda CRV 2012, Acura 2013 и 2013 ILX. Apple ввела КАРТУ Bluetooth в iOS 6 для iPhone и iPad. Поддержка Android была введена в версии 4.4 (KitKat).

Обмен объекта (OBEX)

Object Push Profile (OPP)

Основной профиль для отправки «объектов», таких как картины, виртуальные визитные карточки или детали назначения. Это называют толчком, потому что передачи всегда провоцируются отправителем (клиент), не управляющий (сервер).

ОПП использует ПЧЕЛУ профиля OBEX и операций OBEX, которые используются в ОППЕ, соединяют, разъединяют, помещают, добираются и прерываются. При помощи их API слой ОППА будет проживать по OBEX и следовательно следовать за техническими требованиями стека Bluetooth.

Личная область, передающая профиль (КАСТРЮЛЯ)

Этот профиль предназначен, чтобы позволить использование Протокола Герметизации Сети Bluetooth на Слое 3 протокола для транспорта по связи Bluetooth.

Профиль доступа телефонной книги (PBAP, PBA)

Phone Book Access (PBA) или Phone Book Access Profile (PBAP) — профиль, который позволяет обмен Объектами Телефонной книги между устройствами. Это, вероятно, будет использоваться между автомобильным комплектом и мобильным телефоном к:

  • позвольте автомобильному комплекту показывать имя вызывающего абонента;
  • позвольте автомобильному комплекту загружать телефонную книгу, таким образом, пользователь может начать требование из показа автомобилей.

Профиль состоит из двух ролей:

  • ПОЖАЛУЙСТА — Оборудование Сервера Телефонной книги для стороны, предоставляющей данные о телефонной книге, как мобильный телефон
  • PCE — Оборудование Клиента телефонной книги, для устройства, получающего эти данные, как личный навигационный прибор (PND)

Профиль близости (PXP)

Профиль Близости (PXP) позволяет близость, контролирующую между двумя устройствами.

Serial Port Profile (SPP)

Этот профиль основан на ETSI 07.10 и протоколе RFCOMM. Это подражает последовательному кабелю, чтобы обеспечить простую замену для существующего RS 232, включая знакомые управляющие сигналы. Это — основание для СЕРОВАТО-КОРИЧНЕВОГО, ФАКС, HSP и максимальная способность полезного груза AVRCP.SPP составляют 128 байтов.

Service Discovery Application Profile (SDAP)

SDAP описывает, как применение должно использовать SDP, чтобы обнаружить услуги на удаленное устройство. SDAP требует, чтобы любое применение было в состоянии узнать, какие услуги доступны на позволенном устройстве любого Bluetooth, с которым это соединяется.

СИМ Аксесс Профайл (SAP, СИМ, rSAP)

Этот профиль позволяет устройствам, таким как автомобильные телефоны со встроенными приемопередатчиками GSM соединяться с Сим-картой в позволенном телефоне Bluetooth, таким образом сам автомобильный телефон не требует отдельной Сим-карты. Этот профиль иногда упоминается как rSAP (отдаленный SIM Профиль Доступа), хотя то имя не появляется в спецификации профиля, изданной информацией о СИГНАЛЕ Bluetooth о телефонах, которыми поддержка SAP может быть найдена ниже:

В настоящее время следующие автомобили дизайном могут работать с SIM-Access-Profile:

Много изготовителей GSM базировали поддержку предложения мобильных телефонов SAP/rSAP. Это поддержано Android, Maemo, и MeeGo не звонит OSs Ни iOS Apple, ни Windows Phone Microsoft не поддерживают rSAP; оба использования PBAP для интеграции автомобиля сотового телефона Bluetooth.

Профиль синхронизации (СИНХРОНИЗАЦИЯ)

Этот профиль позволяет синхронизацию пунктов персонального информационного менеджера (PIM). Поскольку этот профиль произошел как часть инфракрасных технических требований, но был принят СИГНАЛОМ Bluetooth, чтобы явиться частью главной спецификации Bluetooth, это также обычно упоминается как Синхронизация IrMC.

Языковой профиль повышения синхронизации (SyncML)

Для Bluetooth Синхронизация — одна из самых важных областей. У технических требований Bluetooth до, и включая 1,1, есть Профиль Синхронизации, который основан на IrMC. Позже, у многих компаний в СИГНАЛЕ Bluetooth уже были составляющие собственность решения для синхронизации, и они не хотели осуществлять IrMC — базируемая синхронизация также, следовательно SyncML появился. SyncML — открытая промышленная инициатива для протокола синхронизации общих данных. Протокол SyncML был развит некоторыми ведущими компаниями в их секторах, Лотосе, Motorola, Ericsson, Matsushita Communication Industrial Co., Nokia, IBM, Palm Inc., Psion и программном обеспечении Starfish; вместе с более чем 600 компаниями Сторонника SyncML. SyncML — протокол синхронизации, который может использоваться устройствами, чтобы сообщить изменения, которые имели место в данных, которые хранятся в пределах них. Однако SyncML способен к поставке больше, чем просто основная синхронизация; это расширяемо, обеспечивая сильные команды, чтобы позволить искать и выполнение.

Video Distribution Profile (VDP)

Этот профиль позволяет транспорт видео потока. Это могло использоваться для вытекания зарегистрированного видео с медиацентра PC на портативный плеер или живого видео от цифровой видеокамеры до ТВ. Поддержка основания H.263 обязательна. Визуальный Простой Профиль MPEG-4 и H.263 представляют 3, и 8 произвольно поддержаны и покрыты спецификацией 1

Wireless Application Protocol Bearer (WAPB)

Это — профиль для переноса Wireless Application Protocol (WAP) по Двухточечному Протоколу по Bluetooth.

Будущие профили

Эти профили все еще не завершены, но в настоящее время предлагаются в пределах СИГНАЛА Bluetooth:

  • Неограниченная цифровая информация (UDI)
  • Профиль открытия продленного обслуживания (ESDP)
  • Видео профиль конференц-связи (VCP): Этот профиль должен быть совместим с 3G-324M и видеоконференцией поддержки по 3G быстродействующая связь.

Совместимость продуктов с профилями может быть проверена на веб-сайте Программы Квалификации Bluetooth.

См. также

  • Протоколы Bluetooth

Внешние ссылки


ru.knowledgr.com

характеристики беспроводного звука / Stereo.ru

Сегодня без поддержки Bluetooth невозможно представить себе ни смартфон, ни планшет, ни любое другое уважающее себя мобильное устройство. Однако сама технология появилась на свет куда раньше смартфонов и планшетов — еще в 1994-м, а ее изначальной целью была замена проводов в начинке телекоммуникационных станций.

Первоначально у «синего зуба» имелась масса проблем со скоростью и надежностью связи, энергоемкостью и совместимостью между различными устройствами, но со временем технология подросла, с каждой новой версией становясь заметно проворней, экономичней и способней.

На фото Харальд I Синезубый принимает крещение. Согласно легенде (неподтвержденной) король объединил датские поселения в единую страну. Этот факт и стал идеей для Bluetooth — связать все устройства одним протоколом

Некоторые улучшения — например, упрощение процедуры «спаривания» в версии 2.1 и серьезное уменьшение нагрузки на аккумуляторы в текущей версии 4.0 — сделали повседневную жизнь меломанов заметно комфортней. Еще больше комфорта внесло появление технологии NFC — в связке с ней Bluetooth вообще не требует никаких церемоний при взаимном распознавании приемника и передатчика, достаточно просто прикоснуться гаджетами друг к другу. Но в целом на качестве передачи звука прогресс отразился мало: в самом свежем издании Bluetooth этот процесс устроен так же, как и в его позапрошлой версии десятилетней давности. А собственно как?

35 синих зубов

Как и подавляющее большинство других беспроводных интерфейсов, Bluetooth основан на использовании радиоволн. Для передачи информации «синий зуб» использует радиочастоты в районе 2,4 ГГц — здесь же по соседству «пасутся» Wi-Fi-роутеры, беспроводные компьютерные клавиатуры и мыши, некоторые DECT телефоны и масса прочего оборудования.

Чем отличается Bluetooth от многих других беспроводных технологий? С одной стороны — относительно невысокой дальнобойностью: радиус ее действия не превышает десятка метров, а толстые стены могут дополнительно снизить этот показатель.

Что любопытно, логотип Bluetooth состоит из двух скандинавских рун: «хаглаз» и «беркана» (аналоги латинских букв H и B)

С другой стороны — многофункциональностью. «Синий зуб» можно использовать в самых разнообразных целях: от переброски фоток на ноутбук до отправки документов на печать, от управления внешними устройствами до потоковой трансляции аудио. Неудивительно, что у Bluetooth так много различных т.н. «профилей», каждый из которых обеспечивает выполнение той или иной конкретной задачи, определяя технические параметры взаимодействия между Bluetooth-передатчиком и приемником. Общее количество профилей измеряется десятками (согласно статье на Wikipedia базовых 35 штук), за передачу звука отвечают только три. Чем они отличаются друг от друга?

Bluetooth-профили HSP, HFP и A2DP

Первый из аудиопрофилей Bluetooth носит имя HSP — Headset Profile. Как можно понять из названия, он создан для работы с мобильными гарнитурами и заточен под базовую передачу голоса со всеми вытекающими отсюда последствиями: аудио допускается только в моно формате и с битрейтом не выше 64 кБ/c. По сравнению с этим звуком даже пережатые MP3 кажутся божественным наслаждением для ушей.

Второй — HFP, Handsfree Profile — представляет собой чуть более продвинутую версию того же профиля. Его адресат — все те же монофонические гарнитуры, так что стерео по-прежнему не поддерживается, но качество звука несколько выше. Впрочем, для прослушивания музыки этот профиль по-прежнему не подходит.

Как только появился A2DP, многие Hi-Fi-производители обратили на него внимание. Но раньше всех были небольшие компании, сделавшие адаптеры, как приведенный на фото GOgroove BlueGate, — небольшая коробочка с ЦАПом и усилителем для наушников внутри.

Для этой цели предусмотрен специальный профиль A2DP — Advanced Audio Distribution Profile. Именно он отвечает за соединение мобильных устройств с беспроводными колонками и наушниками. Профиль A2DP позволяет источнику звука найти общий язык с беспроводной акустикой, а главное — управляет сжатием аудио для отправки по «синезубому» каналу. Избежать этой процедуры нельзя из-за невысокой пропускной способности Bluetooth, но уровень компрессии, используемые для сжатия алгоритмы и, в конечном итоге, потери в качестве звука могут заметно варьироваться. Вот тут-то, как говорится, и возникают нюансы.

Кодек SBC жмет грубее MP3

Как известно, сжимать звук можно по-разному. С потерями в качестве или без них, с низким или высоким битрейтом, с различными настройками, с применением разных кодеков. Вместо какого-нибудь из повсеместно распространенных кодеков для сжатия аудиопотока в профиле A2DP по умолчанию применяется собственный алгоритм компрессии Subband Coding — или, попросту, SBC.

Сравнение, проведенное Брентом Баттервутом (автор About.com), показывает разницу в том, какие шумы возникают при подаче тона 5, 10, 12.5 и 20 кГц. Синяя линия — aptX, зеленая — SBC (источник)

Обработка звука по методам SBC имеет немало общего с хорошо всем знакомым MP3-сжатием, но приоритеты выстроены несколько по-иному: главная задача — не столько минимизировать звуковые потери, сколько упростить вычисления. Все должно быть быстро, просто и легко выполнимо даже для самого хлипкого мобильного процессора.

В результате SBC обходится со звуком без лишних церемоний — например, частоты выше 14 кГц при конвертации попросту отрезаются, в результате чего частотный диапазон заметно сужается. Не удивительно, что даже при равном битрейте с MP3 (а SBC допускает битрейт до 320 кБ/c) аудио в SBC-кодировке звучит заметно хуже.

На этом графике показаны спектры при трансляции сигнала 1 кГц через aptX (синий) и SBC (зеленый), а также 4 кГц — aptX (пурпурный) и SBC (красный) (источник)

В результате при использовании дефолтного кодировщика передача по Bluetooth ухудшает звучание не только несжатого аудио, но и обычных mp3-файлов — ведь в процессе беспроводной транспортировки они сперва декодируются, а затем вновь сжимаются, на этот раз куда грубей. К счастью, SBC — основной, но не обязательно единственный инструмент для компрессии аудиопотока, который имеется в арсенале A2DP. Есть и другие, более интересные предложения.

Advanced Audio Coding: продвинутое, но не идеальное

Базовый кодек SBC с его скромными музыкальными способностями — не лучшее средство привлечь внимание меломанов к Bluetooth-технологии. Вот почему разработчики многих «синезубых» устройств, особенно в топовом сегменте, комплектуют профиль A2DP опциональными, более продвинутыми средствами сжатия звука. Самое популярное из этих средств — алгоритм AAC.

В отличие от кодека SBC, знакомого разве что любителям поглубже покопаться в технических спецификациях Bluetooth, аббревиатура AAC неплохо известна широким народным массам. Еще бы! Ведь именно этот формат используется, например, в iTunes. Изначальной задачей разработчиков алгоритма было превзойти MP3 по качеству звучания при одних и тех же битрейтах — не случайно его имя расшифровывается как Advanced Audio Coding, «продвинутое кодирование звука».

За счет более сложных алгоритмов AAC действительно сохраняет больше музыкальной информации, чем mp3, и уж тем более SBC. Не удивительно, что его включение в набор кодеков, поддерживаемых профилем A2DP, заметно улучшает звучание Bluetooth-колонок и наушников.

Главное — убедиться в том, что кодек AAC поддерживается обоими «синезубыми» девайсами: и тем, что служит передатчиком аудиосигнала, и тем, что работает на его приеме. Если из пары таких устройств кодировку AAC способно понять лишь одно — профиль A2DP автоматически откатывает назад на базовый кодек. С вполне очевидными последствиями для звучания.

Кодек AptX: лучший вариант для меломана

Еще более продвинутое сжатие звука обеспечивает кодек aptX, который активно продвигает на рынке беспроводного Bluetooth-аудио компания CSR. Создатели пропагандируют его как средство для беспроводной передачи музыки «в CD-качестве».

Кодек aptX имеет свой логотип, потому что разработан и запатентован компанией CSR

На самом деле это не совсем так, хотя алгоритмы, лежащие в основе aptX, по принципу своей работы действительно напоминают лосслесс-кодировщики, уплотняющие аудиопоток без потери звуковой информации. Среди достоинств aptX — способность к Bluetooth-трансляции MP3 и AAC без дополнительной обработки, а значит, и без ухудшения звука.

Специальная версия aptX Low Latency, заточенная под запросы геймеров и киноманов, обеспечивает еще и минимальную задержку в доставке сигнала — а значит, просмотр кино без отставания реплик от мимики персонажей.

Кодек aptX обеспечивает передачу аудио с битрейтом до 352 кБ/с, не обрезает верхний регистр и раздвигает частотный диапазон до вполне солидных 10 Гц — 22 кГц, но высокая сложность применяемых алгоритмов требует от мобильных процессоров утроенной вычислительной мощности по сравнению с базовым SBC. Именно поэтому поддержка aptX встречается среди «синезубых» приборов довольно редко, чаще всего — в премиальном сегменте смартфонов.

Впрочем, ради того, чтобы стать обладателем смартфона с aptX, не обязательно выкладывать так уж много наличности: в каталогах Samsung, Sony, HTS и Asus представлено немало моделей с поддержкой продвинутого кодека, в том числе вполне доступных по цене.

Как и в случае с AAC, при беспроводном соединении источника звука с колонками или наушниками следует убедиться, что кодек aptX поддерживается обоими устройствами. Лишь в этом случае можно не сомневаться, что ты действительно выжимаешь из «синего зуба» максимум его музыкального потенциала.

stereo.ru

Bluetooth LE не так уж и страшен, или Как улучшить пользовательский опыт без особых усилий

Недавно мы в команде придумали и реализовали функцию передачи денег по воздуху с помощью технологии Bluetooth LE. Я хочу рассказать вам, как мы это сделали и что Apple предоставляет нам из инструментов. Многие разработчики думают что Bluetooth — это сложно, ведь это достаточно низкоуровневый протокол, и по нему не так много специалистов. Но всё не так страшно, и на самом деле использовать эту функцию очень просто! А те функции, которые можно реализовать с помощью Bluetooth LE, безусловно, интересны и впоследствии позволят выделить ваше приложение среди конкурентов.



Давайте сначала разберёмся, что это вообще за технология и в чём её отличие от классического Bluetooth.

Что такое Bluetooth LE?


Почему разработчики Bluetooth назвали эту технологию именно Low Energy? Ведь с каждой новой версией Bluetooth энергопотребление и без того многократно снижалось. Ответ кроется в этой батарейке.


Её диаметр всего 2 см, а ёмкость около 220 мА*ч. Когда инженеры разрабатывали Bluetooth LE, они стремились к тому, чтобы устройство с такой батарейкой работало несколько лет. И у них это получилось! Bluetooth LE-устройства c таким элементом питания могут работать от года. Кто из вас еще по-старинке выключает Bluetooth на телефоне для экономии энергии, как это делали в 2000-м? Зря вы это делаете — экономия будет меньше 10 секунд работы телефона в день. А функциональность вы отключаете очень большую, такую как Handoff, AirDrop и другие.

Чего же инженеры добились, разработав Bluetooth LE? Они усовершенствовали классический протокол? Сделали его более энергоэфективным? Просто оптимизировали все процессы? Нет. Они полностью переделали архитектуру стека Bluetooth и добились того, что теперь, чтобы быть видимым для всех других устройств, необходимо меньше времени находиться в эфире и занимать канал. В свою очередь это позволило хорошо сэкономить на энергопотреблении. А с новой архитектурой теперь можно стандартизировать любое новое устройство, благодаря чему разработчики со всего мира могут коммуницировать с устройством, а значит, и с легкостью писать новые приложения для управления им. Кроме того, в архитектуру заложен принцип self-discovery: при подключении к устройству не нужно вводить никакие пин-коды, и если ваше приложение умеет общаться с этим устройством, подключение занимает считанные миллисекунды.

  • Меньше времени в эфире.
  • Меньше расход энергии.
  • Новая архитектура.
  • Уменьшено время подключения.

За счёт чего удалось инженерам сделать такой колоссальный скачок в энергоэффективности?

Частота осталась та же: 2,4 ГГц, не сертифицируемая и свободная для использования во многих странах. А вот задержка подключения стала меньше: 15-30 мс вместо 100 мс у классического Bluetooth. Расстояние работы осталось таким же — 100 м. Интервал передачи не сильно, но изменился — вместо 0,625 мс стало 3 мс.

Но не могло же из-за этого энергопотребление уменьшиться в десятки раз. Конечно же, что-то должно было пострадать. И это скорость: вместо 24 Мбит/с стало 0,27 Мбит/с. Вы, наверное, скажете, что это смешная скорость для 2018 года.

Где используется Bluetooth LE?


Технология эта немолодая, впервые она появилась в iPhone 4s. И уже успела завоевать много сфер. Bluetooth LE используется во всех устройствах умного дома и в носимой электронике. Сейчас уже есть даже чипы размером с кофейное зерно.

А как эта технология применяется в программном обеспечении?

Поскольку Apple была первой, кто встроил в своё устройство Bluetooth и начал её использовать, то к настоящему времени они достаточно хорошо продвинулись и встроили технологию в свою экосистему. И сейчас вы можете встретить эту технологию в таких сервисах, как AirDrop, Devices quick start, Share passwords, Handoff. И даже уведомления в часах сделаны через Bluetooth LE. Вдобавок, Apple выложила в открытый доступ документацию, как сделать так, чтобы на ваши собственные устройства приходили уведомления из всех приложений. Какие бывают роли устройств в рамках Bluetooth LE?

Broаdcaster. Отправляет сообщения всем, кто находится рядом, к этому устройству нельзя подключиться. По такому принципу работают iBeacons и навигация в помещениях.

Observer. Слушает, что происходит вокруг, и получает данные только от общедоступных сообщений. Соединения не создаёт.

А вот с Central и Peripheral интереснее. Почему их не назвали просто Server-Client? Логично же, судя по названию. А вот и нет.

Потому что Peripheral, на самом деле, выступает как сервер. Это периферийное устройство, которое потребляет меньше энергии и к которому подключается более мощный Central. Peripheral может извещать, что он находится рядом и какие у него есть службы. К нему может подключиться только одно устройство, и у Peripheral есть какие-то данные. А Central может сканировать эфир в поиске устройств, отправлять запросы на подключение, подключаться к любому количеству устройств, может читать, записывать и подписывать на данные у Peripheral.

Что же нам, как разработчикам, доступно в экосистеме Apple?

Что нам доступно?


iOS/Mac OS:

  • Peripheral и Central.
  • Фоновый режим.
  • Восстановление состояния.
  • Интервал подключения 15 мс.

watchOS/tvOS:
  • watchOS 4+/tvOS 9+.
  • Только Сentral.
  • Максимум два подключения.
  • Apple watch series 2+/ AppleTv 4+.
  • Отключение при переходе в фоновый режим.
  • Интервал подключения 30 мс.

Самое важно различие — интервал подключения. На что он влияет? Чтобы ответить на этот вопрос, сначала нужно разобраться, как работает протокол Bluetooth LE и почему такая небольшая разница в абсолютных значениях очень важна.

Как работает протокол


Как происходит процесс поиска и подключения?

Peripheral сообщает о своем присутствии с частотой advertisement-интервала, его пакет очень маленький и содержит всего несколько идентификаторов сервисов, которые предоставляет устройство, а также имя устройства. Интервал может быть достаточно большим и способен варьироваться в зависимости от текущего статуса устройства, режима энергосбережения и других настроек. Apple советует разработчикам внешних устройств привязывать длину интервала к акселерометру: увеличивать интервал, если устройством не пользуются, а когда оно активно — уменьшать, чтобы быстро находить устройство. Advertisement-интервал никак не коррелирует c интервалом подключения и определяется самим устройством в зависимости от энергопотребления и своих настроек. Нам он в экосистеме Apple недоступен и неизвестен, им полностью управляет система.

После того, как мы нашли устройство, отправляем запрос на подключение, и вот тут на сцену выходит интервал подключения — время, через которое второе устройство может ответить на запрос. Но это при подключении, а что же происходит при чтении/записи?

Интервал подключения также фигурирует и при чтении данных — его уменьшение в 2 раза увеличивает скорость передачи данных. Но нужно понимать, что если оба устройства не поддерживают одинаковый интервал, то будет выбран максимальный из них.

Давайте рассмотрим, из чего состоит пакет с информацией, который передает Peripheral.

MTU (maximum transmission unit) такого пакета определяется в процессе подключения и варьируется от устройства к устройству и в зависимости от операционной системы. В протоколе версии 4.0 MTU был около 30, и размер полезных данных не превышал 20 байтов. В версии 4.2 всё поменялось, теперь можно передавать около 520 байтов. Но, к сожалению, эту версию протокола поддерживают только устройства младше IPhone 5s. Размер накладных расходов, независимо от размера MTU, составляет 7 байтов: сюда входят ATT и L2CAP заголовков. С записью, в целом, похожая ситуация.

Есть только два режима: с ответом и без. Режим без ответа значительно ускоряет передачу данных, поскольку нет интервала ожидания перед следующей записью. Но этот режим доступен не всегда, не на всех устройствах и не на всех системах. Доступ к этому режиму записи может ограничить сама система, потому что он считается менее энергоэкономичным. В iOS eсть метод, в котором можно проверить перед записью, доступен ли такой режим.

Теперь давайте рассмотрим, из чего состоит протокол.

Протокол состоит из 5 уровней. Слой приложения — эта ваша логика, описанная поверх CoreBluetooth. GATT (Generic Attributes Layer) служит для обмена сервисами и характеристиками, которые есть на устройствах. ATT (Attributes Layer) используется для управления вашими характеристиками и передачей ваших данных. L2CAP — низкоуровневый протокол обмена данными. Controller — это уже сам BT-чип.

Вы, наверное, спросите, что такое GATT и как мы можем с ним работать?

GATT состоит из характеристики и сервисов. Характеристика — это объект, в котором хранятся ваши данные, словно переменная. А сервис — это группа, в которой находятся ваши характеристики, словно пространство имён. У сервиса есть название — UUID, вы сами его выбираете. Сервис может содержать в себе дочерний сервис.

У характеристики тоже есть свой UUID — фактически, имя. Значение (Value) характеристики — это NSData, сюда вы можете записывать и хранить данные. Дескрипторы — это описание вашей характеристики, вы можете описать, какие данные вы ожидаете в этой характеристике, или что они означают. В протоколе Bluetooth есть много дескрипторов, но в Apple-системах пока доступно только два: человеческое описание и формат данных. Также есть уровни доступа (Permissions) для вашей характеристики:

Попробуем сами


У нас появилась идея сделать возможность передачи денег по воздуху, ничего не требуя от получателя. Представьте, вот ломаете голову над очень интересной задачей, пишете идеальный код, и тут коллега предлагает сходить за кофе. А вы так увлечены задачей, что не можете отлучиться, и просите его купить вам чашечку вкусного капучино. Он приносит вам кофе, и нужно вернуть ему деньги. Можно перевести по номеру телефона, работает отлично. Но вот неловкая ситуация — вы не знаете его номера. Ну вот так, три года работаете, а номерами не обменялись 🙂

Поэтому мы решили сделать возможность передачи денег тем, кто находится рядом, без ввода каких-либо пользовательских данных. Как в AirDrop. Просто выбрать пользователя и отправить нужную ему сумму. Давайте посмотрим, что нам для этого нужно.

Отображение PUSH


Нам нужно, чтобы отправитель:

  1. Мог найти все устройства, которые находятся рядом и поддерживают наш сервис.
  2. Мог прочитать реквизиты.
  3. И мог отослать сообщение получателю о том, что успешно отправил ему деньги.

Получатель, в свою очередь, должен уметь сообщать окружающим отправителям, что у него есть сервис с нужными данными, и уметь получать сообщения от отправителя. Как происходит процесс перевода денег по реквизитам у нас в банке, думаю, описывать не стоит. А теперь попробуем это реализовать.

Для начала нужно придумать названия нашего сервиса и характеристик. Как я говорил, это UUID. Просто генерируем их и сохраняем на Peripheral и Central, чтобы на обоих устройствах были одинаковые.

Вы вольны использовать любые UUID, кроме тех, которые оканчиваются вот так: XXXXXXXX-0000-1000-8000-00805F9B34FB, — они зарезервированы под разные компании. Вы сами можете купить себе такой номер и никто его использовать не будет. Это будет стоить $2500.

Далее нам нужно будет создать менеджеры: один для передачи денежных средств, другой для получения. Нужно просто указать делегатов. Передавать у нас будет Central, получать Peripheral. Мы создаем оба, потому что и отправителем, и получателем может быть одно лицо в разное время.

Теперь нам нужно сделать возможность обнаружения получателя и записать в нашу характеристику реквизиты получателя.

Для начала создадим сервис. Пропишем UUID и укажем, что он primary — то есть сервис является главным для этого устройства. Хороший пример: пульсомер, для которого главным сервисом будет текущее состояние пульса, а состояние батареи — это второстепенная информация.

Далее создаем две характеристики: одну для чтения реквизитов получателя, вторую для записи, чтобы получатель мог узнать об отправке денег. Регистрируем их в нашем сервисе, потом добавляем в менеджер, запускаем обнаружение и указываем UUID сервиса, чтобы все устройства, которые находятся рядом, могли узнать о нашем сервисе до подключения к нему. Эти данные помещаются в пакет, который отправляет Central в ходе вещания.

Получатель готов, приступим к отправителю. Запустим поиск и подключение.

При включении менеджера мы запускаем поиск устройств с нашим сервисом. При нахождении мы их получаем в методе делегата и сразу подключаемся. Важно: нужно сохранять strong-ссылку на все Peripheral, с которыми вы работаете, иначе они «утекут».

После успешного подключения настраиваем делегат, который будет работать с данным устройством, и получаем от устройства нужный нам сервис.

Мы успешно подключились к получателю, теперь нужно прочитать его реквизиты.

Мы после подключения уже запросили все сервисы с устройства. И после их получения будет вызван метод делегата, в котором будут перечислены все сервисы, доступные на данном устройстве. Находим нужный и запрашиваем его характеристики. Результат можно будет найти по UUID в методе делегата, в котором хранятся данные для перевода. Пробуем их прочитать, и получим искомое опять в методе делегата. Все сервисы, характеристики и их значения кешируются системой, так что запрашивать их впоследствии каждый раз необязательно.

Всё, мы отправили деньги за кофе, самое время показать получателю красивое уведомление, чтобы он ждал рубли на своем счёте. Для этого нужно реализовать процесс отправки сообщения.

У отправителя достаем нужную нам характеристику, в данном случае мы её взяли из сохраненного значения. Но до этого вам её нужно получить с устройства, как мы делали до этого. А дальше просто записываете данные в нужную характеристику.

После этого на другом устройстве получаем в методе делегата запрос на запись. Тут вы можете прочитать данные, которые вам отправляют, ответить на какую-либо ошибкой, например, нет доступа, или данной характеристики не существует. Всё будет работать, но только если оба устройства включены и приложения активны. А нам нужно, чтобы работало и в фоне!

Apple позволяет использовать Bluetooth в фоне. Для этого нужно в info.plist указать ключ, в каком режиме мы хотим использовать, в Peripheral или Central.

Далее в менеджере нужно указать ключ восстановления и создать метод делегата. Теперь нам доступен и фоновый режим. Если приложение заснёт или будет выгружено из памяти, то при нахождении нужного Peripheral или при подключении Central оно проснётся, а менеджер восстановится с вашим ключом.

Всё отлично, уже готовы релизиться. Но тут к нам прибегают дизайнеры и говорят: «Хотим вставить фотографии пользователей, чтобы им было легче находить друг друга». Что же делать? У нас в характеристику можно записать всего какие-то 500 байтов, а на каких-то устройствах вообще 20 🙁

Спустимся глубже


Чтобы решить эту проблему, нам пришлось спуститься глубже.

Сейчас мы общались устройствами на уровне GATT/ATT. Но в iOS 11 у нас есть доступ к протоколу L2CAP. Однако в этом случае придётся самостоятельно позаботиться о передаче данных. Пакеты отправляются с MTU 2 Кб, не нужно ни во что перекодировать, применяется обычный NSStream. Скорость передачи данных до 394 Килобит/с., по заверению Apple.

Допустим, вы передаёте какие-либо данные вашего сервиса от Peripheral к Central в виде обычных характеристик. И понадобилось открыть канал. Вы открываете его на Peripheral, в ответ получаете PSM — это номер канала, к которому можно подключиться, и нужно с помощью тех же характеристик передать его Central. Номер динамический, система сама выбирает, какой PSM открыть в данный момент. После передачи можно уже на Сentral подключиться к Peripheral и обмениваться данными в удобном для вас формате. Давайте рассмотрим, как это сделать.

Для начала на Peripheral открываем порт с шифрованием. Можно делать и без шифрования, тогда это немного ускорит передачу.

Далее мы в методе делегата получаем PSM и отправляем на другое устройство.

После подключения другого устройства у нас вызовется метод, в котором из канала мы можем достать нужные нам для передачи NSStream.

С Central еще проще, мы просто подключаемся к каналу с нужным номером…

… и после этого получаем нужные нам стримы. В них вы можете передавать абсолютно любые данные любого размера, и строить поверх L2CAP свой протокол. Так мы и реализовали у себя передачу фотографий получателя.

Но есть подводные камни, куда же без них.

Подводные камни


Давайте рассмотрим подводные камни при работе в фоновом режиме. Поскольку вам доступны роли Peripheral и Central, вы можете подумать. что в фоне можете определять, какие устройства рядом находятся в фоновом режиме, а какие в активном. В теории так и должно было быть, но Apple ввела ограничение: телефоны, которые находятся в фоновом режиме, будь то Central или Peripheral, не доступны для других телефонов, которые тоже находятся в фоновом режиме. Также телефоны, которые находятся в фоновом режиме, не видны с неiOS-устройств. Давайте рассмотрим почему так происходит.

Когда ваше устройство активно, оно посылает обычный broadcast-пакет, в котором может быть имя устройства и список сервисов. которые предоставляет это устройство. И overflow данные — всё что не поместилось.

Когда же устройство переходит в фоновый режим, оно не передает название, а список поддерживаемых сервисов переносит в overflow-данные. Если приложение активно, то при сканировании с iOS-устройства оно читает эти данные, а при переходе в фон — игнорирует. Поэтому при переходе в фон вы не сможете видеть приложения, которые также находятся в фоне. Остальные операционные системы Apple всегда игнорируют overflow-данные, поэтому если вы будете искать устройства, поддерживающие ваш сервис, то получите пустой массив. А если подключиться к каждому устройству, которое находится рядом, и запросить поддерживаемые сервисы, то в списке, возможно, будет ваш сервис, и вы сможете с ним работать.

Дальше мы уже готовились передавать в тестирование, правили мелкие недочёты, занимались оптимизацией. И вдруг в какой-то момент мы стали получать в консоли эту ошибку:

CoreBluetooth[WARNING] Unknown error: 124

Самое плохое было в том, что никакой метод делегата не вызывался, мы даже не могли никак обыграть эту ошибку для пользователя. Просто сообщение в лог — и тишина, всё замирало. Никаких особых изменений не вносилось, поэтому мы начали откатываться по коммитам. И обнаружили, что однажды оптимизировали код и переделали способ записи данных. Проблема крылась в том, что не все клиенты были обновлены, поэтому возникала такая ошибка.
.write != .writeWithoutResponse

Мы, счастливые, что всё исправили, побежали скорее передавать в тестирование, а они нам почти сразу возвращают: «Ваши модные фоточки не работают. Они все недогруженные приходят». Мы начали пробовать, и правда, иногда, на разных устройствах, в разное время приходят битые фотографии. Начали искать причину.

И тут снова увидели прежнюю ошибку. Сразу подумали, что дело в разных версиях. Но после полного удаления старой версии со всех тестовых устройств ошибка всё равно воспроизводилась. Мы взгрустнули…

CoreBluetooth[WARNING] Unknown error: 722
CoreBluetooth[WARNING] Unknown error: 249
CoreBluetooth[WARNING] Unknown error: 312

Начали искать инструмент для отладки. Первое, что нам попалось, это Apple Bluetooth Explorer. Мощная программа, много всего умеет, но вот для отладки протокола Bluetooth LE одна маленькая вкладка с поиском устройств и получением характеристик. А нам-то нужно было анализировать L2CAP.

Потом нашли LightBlue Explorer. Оказалась вполне приличная программа, правда, с дизайном из iOS 7. Может делать то же самое, что и Bluetooth Explorer, а еще умеет подписываться на характеристики. И работает стабильнее. Всё хорошо, но опять без L2CAP.

И тут нам вспомнился всем известный сниффер WireShark.

Оказалось, он знаком с Bluetooth LE: может читать L2CAP, но только под Windows. Хотя это не страшно, что мы, не найдем винду, что ли. Самый большой минус — программа работает только с определенным устройством. То есть нужно было найти где-то устройство в официальном магазине. А вы сами понимаете, в большой компании вряд ли одобрят покупку непонятного устройства на барахолке. Мы даже начали просматривать зарубежные онлайн-магазины.

Но тут обнаружили в Additional Xcode Tools программу PacketLogger. Она позволяет смотреть траффик, которой идет на OS X-устройстве. А почему бы не переписать наш MoneyDrop под OS X? Он у нас уже был отдельной библиотеки. Мы просто заменили UIImage на NSImage, всё завелось само через 10 минут.

Наконец-то мы могли читать пакеты, которыми обмениваются устройства. Сразу стало понятно, что в момент передачи данных по L2CAP записывалась одна из характеристик. А из-за того, что канал был полностью занят передачей фотографии, iOS игнорировала запись, а отправитель после игнора обрывал канал. После исправления проблем с передачей фотографии не было.

На этом всё, спасибо за прочтение 🙂

Полезные ссылки


WWDC/CoreBluetooth:


Bluetooth
YouTube
  • Arrow Electronics → Bluetooth Low Energy Series

habr.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *