Передача данных посредством Bluetooth осуществляется на частоте 2.4 ГГц. Говоря еще точнее, диапазон работы находится в рамках 2402-2480 ГГц. При этом в большинстве стран мира для передачи данных выделены 79 каналов. Ширина одного такого канала составляет 1 МГц. Данный диапазон используется для гражданских целей.
Принцип работы
Принцип работы Bluetooth заключается в передаче данных посредством быстрой смены частот, которая происходит приблизительно 1600раз в секунду. Данная схема работы обеспечивает отличную защищенность от помех и предоставляет возможность принимающим сигнал устройствам не мешать друг другу, в следствие смешивания частот. Кроме того, это обеспечивает практически полную безопасность пользователям внутренней сети, т.к. подключиться к принимающим устройствам не представляется возможным. К тому же, маленький радиус действия Bluetooth, не располагает к несанкционированному подключению, с возможностью остаться незамеченным.
Скачкообразное изменение частоты
Смена канала при передаче данных посредством Bluetooth происходит каждые 625 мкс. Эти 625 мкс одновременно являются интервалом времени, за который осуществляется передача данных, которая измеряется в пакетах. При этом, один пакет может быть передан не за один такой интервал, а за несколько. После завершения передачи пакета данных, происходит заранее определенная для каждого устройства смена канала (частоты). Также, может применяться и адаптивное скачкообразное изменение частоты. Оно необходимо для того, чтобы ограничить передачу данных с устройств определенным количеством каналов. При этом, открывшийся частотный диапазон можно использовать для передачи данных другими устройствами. Таким образом уменьшается риск возникновения частотных помех для устройств пикосети.
Кроме того, необходимость ограничить диапазон частот для передачи данных может быть вызван, запретом использования определенных частотных каналов в ряде стран. К примеру, в некоторых европейских странах, в частности в Испании и Франции, разрешается использовать только 22 частоты, вместо обычных 79.
Основные стандарты Bluetooth
Серьезные нововведения были введены в стандарт 2.0. При этом, в нем наблюдалось значительное увеличение скорости передачи данных, что было связанно с поддержкой EDR. Передача данных в стандарте 2.0 была увеличена до
2.0-2.4 Мб/с. А кроме того, 2.0 спецификация серьезно увеличило безопасность и защищенность от возникновения помех.
Стандарт 3.0 поразил пользователей невиданной до того скоростью передачи данных, которая увеличилась до 24 Мб/с. Связанно это было в первую очередь с тем, что спецификация 3.0 поддерживала Wi-Fi. Однако, производители предпочитают устанавливать на свои устройства два стандарта, т.к. спецификация 3.0 расходует слишком много энергии.
Более специфической является стандарт 4.0, который совместил в себе небольшую скорость передачи данных, хорошую безопасность и невероятно малое расходование энергии, основанное на непостоянной работе передатчика. Устройства, использующие данный стандарт, как правило, применяются для спортивных, медицинских и иных целей, являются миниатюрными и не рассчитаны на большое количество передаваемых данных.
Преимущества Bluetooth 4.0:
Совмещает в себе предшествующие протоколы. Поддерживает основные функции предыдущих протоколов.
Увеличение скорости.
Значительное уменьшение энергопотребления устройства, использующего стандарт 4.0, достигнутое за счет измененного алгоритма работы (передатчик включается только в тот момент, когда происходит передача данных).
Как правило, стандарт 4.0 больше подходит для миниатюрных электронных датчиков. К примеру, для наручных измерителях давления, температуры, для тренажеров, различных миниатюрных устройств с небольшой энергоемкостью.
Видео обзор технологии Bluetooth:
winetwork.ru
Какие беспроводные наушники выбрат: ИК, Bluetooth, WI-FI, радио
Беспроводные наушники с хорошим звуком имеют значительную стоимость и не способны обеспечить качество звучания как в проводных моделях. Но для обычных пользователей, разговаривающих по телефону и просматривающих фильмы на компьютере и обычном телевизоре беспроводные гарнитуры идеальный вариант.
Отличия проводных наушников от беспроводных
Прежде чем выбрать гарнитуру определитесь, для чего вы хотите ее использовать.
Проводные модели привязывают вас на короткое расстояние к аудио воспроизводящему устройству, но дают наилучший звук. Если музыка ваша профессия, или вы геймер ценящий объёмный качественный звук без задержек или у вас домашний кинотеатр с солидным усилителем, вам нужны только проводные модели.
Если вы не обладаете идеальным слухом, слушаете музыку с телефона, обычного плейера, смотрите фильмы с компьютера без микшерного усилителя, и не способны определить какой частотный диапазон проседает — нет смысла тратиться на дорогие проводные устройства, разницу между беспроводными и проводными наушниками среднего качества вы не заметите.
Беспроводные технологии дают преимущества в виде мобильности в радиусе действия устройств.
Достоинства проводных и беспроводных наушников
Проводные
Беспроводные
Сложно потерять
Провода не путаются и не мешают движениям
Не нужно подзаряжать или менять источники питания
Обеспечивают свободу движений
Обладают высоким качеством звука
Имеют высокую степень защиты от внешних факторов (не все модели)
Модели среднего ценового сегмента дешевле аналогичных беспроводных
Есть модели с картой памяти, что позволяет слушать музыку без подключения к воспроизводящим устройствам
Недостатки
Ограничение движений
Звук хуже, чем в проводных моделях
Провода ломаются, перегибаются и путаются
Легко потерять
Часто обламывается место соединения штекера и провода
Высокая стоимость
Повышенное энергопотребление
Работают от аккумуляторов или батареек, требуется регулярная подзарядка
Ограничение во времени работы
Беспроводные технологии
Все беспроводные модели, за исключением использующих для передачи сигнала ИК-волны, являются радионаушниками. Разница между ними заключается только в частоте используемых волн. Практически все радионаушники передают сигналы, используя кодеки для сжатия данных, что ухудшает качество звучания, но есть модели передающие сигналы без сжатия, только их стоимость в среднем в 8-10 раз выше.
ИК-наушники
Принцип работы схож с работой пульта ДУ. У большинства современных телевизоров в конструкции предусмотрен приемник-передатчик инфракрасных волн, но для работы гарнитуры требуется подключать к воспроизводящему устройству специальный ИК модуль, идущий в комплекте. Модуль подключается к линейному выходу звука и подается питание от обычной розетки в 220В. Наушники сопряжены с модулем — при включении принимают высокочастотный сигнал и преобразовывают его в звук.
Для полноценной работы гарнитура должна попадать в зону покрытия ИК-волн, составляющая 90 градусов на расстоянии, не превышающем 10 метров от приемника.
Требуется обеспечить прямую видимость между приемником и передатчиком устройств — посторонние объекты препятствуют прохождению луча.
Такие модели подходят только для телевизоров или видеоплейеров работающих с оптическими дисками. Для смартфонов и прочих портативных устройств подобные гарнитуры не подходят. Инфракрасные наушники не пользуются популярностью, у них много недостатков и ограничений, однако в пользу ИК-соединения — отлично передают звук и недорого стоят.
Радионаушники
Принцип работы заключается в передаче аналоговых FM-радиоволн от передатчика к наушникам. Зона охвата радиоканальных моделей порядка 100 метров и препятствия в виде столов, стен и т.д. не мешают прохождению радиоволн.
В комплектацию входят гарнитура, питающаяся от аккумуляторов или батареек и приемно-передающая база, которую требуется подключать к воспроизводящему устройству посредством кабеля с соответствующим разъемом. Наиболее часто встречается 3,5 мм разъем или USB порт.
Один из существенных недостатков радиоволн FM диапазона их незащищенность, т.е. сигнал не шифруется, например, рабочая частота вашей гарнитуры совпадет с частотой радиотелефона соседа — вы можете слышать его разговоры, а он вашу музыку.
К минусам можно отнести и невысокое качество звука, хотя радиус действия и способность долго держать заряд аккумуляторов компенсируют этот недостаток. Радиоканальные удобны для просмотра фильмов и малопригодны для игр или высококачественной музыки.
Учитывайте, что модели работают на частотах 87-865 МГц, но бывают исключения, особенно когда гарнитура привезена из дальнего зарубежья.
Перед использованием радиоканальных устройств обратите внимание на рабочую частоту — указывается в инструкции к наушникам или на коробке. Важно, чтобы рабочая частота была разрешена в вашем регионе проживания.
Bluetooth наушники
Bluetooth технология беспроводной передачи данных производит обмен информацией между любыми устройствами, содержащими в конструкции микрочип Bluetooth, например: смартфон-наушники. Если в аудиоустройстве нет Bluetooth в комплекте с некоторыми гарнитурами прилагается миниатюрный адаптер сопряжения — вставляется в USB порт, преобразовывают сигналы по Bluetooth технологии и передают зашифрованный сигнал на принимающий гаджет. Примером может служить компьютер, в который можно вставлять адаптеры и сопрягать с мышками, клавиатурами, фотокамерами, джойстиками.
При выборе Bluetooth наушников обратите внимание, что практически все модели рассчитаны на прямое сопряжение с устройствами и не имеют в комплекте адаптеров.
Они удобны для использования со смартфонами, планшетами и ноутбуками. Если вам требуется гарнитура для компьютера, обратите внимание на наличие адаптера.
Существуют и комбинированные варианты: подключающиеся беспроводным и проводом способом, во втором случае уровень заряда аккумулятора не важен — при полностью разряженном аккумуляторе сигнал к динамикам поступает по проводу.
Радиус действия сигнала Bluetooth варьируется от 5 до 100 метров и зависит от версии Блютуз (от 1 до 5). Последняя пятая версия обладает улучшенными характеристиками по дальности и скорости передачи.
Важно! Гарнитура и воспроизводящее устройство должны поддерживать кодек aptX. Без использования кодека звуковые волны сжимаются для более надежной передачи данных, а сжатие приводит к потере качества звучания и ограничению по частотному диапазону до 14 кГц.
Использование кодека обеспечивает лучший звук, приближенный по качеству к Audio CD и охватывает весь частотный диапазон, но он не заставит звучать трек HD-Audio во всей его красе.
Есть кодеки передающие звук в приближенном к HD качеству (в некоторых моделях LG, Sony, Huawei) — не получили широко распространения, найти подобные наушники и воспроизводящие устройства с таким кодеком проблематично.
Bluetooth модели имеют демократичную стоимость, передают звук без искажений, удобны для разговоров по телефону и прослушиванию музыки, но для геймеров не подойдут из-за особенностей технологии шифрования — присутствует задержка сигнала на миллисекунды.
Wi-Fi наушники
Под брендом Wi-Fi скрываются радионаушники работающие на частотах 2,4 до 5 ГГц и передающие сигнал с использованием технологии шифрования данных. В комплекте база, подключающаяся к аудиовыходу воспроизводящего устройства. Преимущества Wi-Fi моделей в большом радиусе действия (до 100 метров), хорошей передаче качества звука и возможность подключения нескольких наушников к одной базе. Гарнитуры удачно сочетаются с умными телевизорами (Smart TV) — имеют встроенный Wi-Fi модуль, поэтому подключения базы не требуется.
Технические характеристики беспроводных наушников
Технология
ИК
Радионаушники
Bluetooth
Wi-Fi
Передача сигнала
Инфракрасный световой поток
FM радиочастоты
Радиоволна в ISM-диапазоне
Радиоволны ультравысоких и сверхвысоких частот
Подключение
Модуль ИК + линейный выход
Радио-база, мини-джек 3,5 мм или USB порт
Адаптер, USB порт
модуль
Диапазон частот
0,75-1200мкм
87-865 МГц
Скачкообразное изменение каждые 625 мкс
2,4-5ГГц
Дальность действия
2-5 метров в условиях прямой видимости
До 100 метров
~5-100 метров
100 метров
Качество передачи звука
Хорошее
Невысокое
Без искажений, возможны задержки
Хорошее
Стоимость
Низкая
Высокая
Варьируется от низкой до высокой
Высокая
Дополнительные сведения
Используются светодиоды светосилой до 100 мВт и токе потребления в пределах 50 мА
Сигнал не шифруется, возможны помехи от других радиоустройств
Сочетаются со Smart-устройствами имеющими встроенный Wi-Fi модуль
Звуковые характеристики:
Размеры динамиков варьируются от 5 до 45 мм в зависимости от типа (канальные, вставные, накладные).
Частотный диапазон должен находиться в пределах 20 Гц-20 КГц — выбирать более высокий частотный диапазон не имеет смысла.
Импенданс (сопротивление) в пределах 16-64 Ом.
Мощность – от 2 до 100 мВт. Более высокая мощность требует подключения усилителя.
Рекомендованная чувствительность в диапазоне 90-105 Дб.
Уровень гармонического искажения не должен превышать 0,5%.
Основные критерии выбора
Если требуется гарнитура для просмотра телевизора, рекомендуется приобретать модели с ИК-соединением или радионаушники. Отдав предпочтение Bluetooth гарнитуре, убедитесь, что ваш телевизор имеет соответствующий модуль. Для смартфонов или планшетов Bluetooth устройства станут наилучшим выбором.
Значительный критерий выбора беспроводных наушников:
Тип питания. Рекомендуется выбирать аккумуляторы с большей емкостью т.к. это позволит дольше слушать музыку без подзарядки. Но учтите, с емкостью аккумуляторов увеличивается размер.
Версия модуля (Блютуз). До версии V4.0 включительно гарнитура может терять связь (звук пропадает), если вы находитесь вблизи линий электропередач, силовых трансформаторов и т.д. Модуль версии V5.0 не подвержен подобным явлениям, если звук пропадает, вы купили не качественные или фейковые наушники c пометкой Bluetooth V5.0.
Кнопки управления. Часто кнопки управляющие громкостью независимы — не регулируют громкость на воспроизводящем устройстве, а понижают или повышают уровень в самих наушниках. Если в модель встроен слот для воспроизведения аудиотреков с флешки — кнопки перемотки и воспроизведения аналогично могут работать только для плеера в наушниках. Поэтому перед приобретением протестируйте гаджет со смартфоном — попробуйте переключить трек.
Определившись с типом подключения и питанием, выберите вид наушников и способ ношения. Вкладыши и внутриканальные удобны для занятий спортом — не давят на уши, компактны, дуговое оголовье помогает гаджету держаться на голове.
Существуют беспроводные (Bluetooth) модели, где динамики соединены проводом и раздельные. Выбирать стерео блютуз гарнитуру лучше с общим проводом, потому что при раздельном типе каждое «ухо» сопрягается отдельно, часто одно «ухо» теряет связь с устройством или звук запаздывает, вызывая дискомфорт. Наушники с общим проводом не требуется заряжать по отдельности — конструктивно аккумулятор расположен в корпусе правого «уха», а микросхема и кнопки в левом (зависит от модели).
В выборе монофонической гарнитуры (одно «ухо») обращайте внимание на версию модуля, и лучше приобретать модель не с жестким крючком — давит и натирает, после 2-х часов ношения почувствуете дискомфорт.
Обратите внимание на фото, это модель вакуумной блютуз гарнитуры с общим проводом, заушины гибкие — при ношении практически не ощущаются, не вызывают дискомфорт, провод располагается за шеей, это удобно, когда вы не пользуетесь гарнитурой.
Как говорилось ранее, по качеству звука беспроводные наушники уступают проводным вариантам. Чтобы свести к минимуму различия выбирайте модели с частотным диапазоном от 20Гц до 20 кГц, с максимально плавной АЧХ без пиков и провалов. Сопротивление гарнитуры рекомендуется выбирать в диапазоне 16-64 Ом, чувствительно 90-105 Дб, Мощность 2-100мВт, а уровень гармонических искажений не должен превышать 0,5%.
Как подключить беспроводные наушники
Подключить беспроводные наушники к телевизору, смартфону или плейеру не трудно:
На выключенном Bluetooth наушнике нажмите и удерживайте кнопку включения в течение 5 секунд, чтобы активировать режим сопряжения. Должна замигать индикация (обычно красный и синий).
На передатчике (смартфоне, планшете, ноутбуке) активируйте Блютуз, разрешите находить устройство и запустите поиск доступных подключений.
После окончания поиска на дисплее отобразиться список доступных для сопряжения устройств.
Для подключения выберите из списка ваши наушники, как правило это название модели.
Редко бывает, что для подключения требуется ввести пароль. По умолчанию пароль на Bluetooth 0000, 1111 или 1234.
Чтобы подключить беспородные наушники к телевизору и иному устройству, не имеющему Блютуз модуль, потребуется приобрести специальный передатчик с линейным выходом, который подсоединяется в соответствующий разъем телевизора. При включении наушников сопряжение с передатчиком производится в автоматическом режиме.
Для подключения наушников к компьютеру придется приобрести универсальный USB-передатчик.
Вредное воздействие и способы защиты
Споры о безопасности использования беспроводных наушников не утихают со времен их появления. Некоторые ученые сравнивают воздействие сигнала Bluetooth с волнами, идущими от микроволновых печей. Медики не могут определенно сказать о воздействии радиоволн на мозг человека — этот аспект недостаточно изучен. В свою очередь производители заявляют, что их устройства работают с очень слабыми волнами, неспособными причинит вред человеку.
Справедливости ради следует заметить, что действительно мощность магнитного поля беспроводных наушников в среднем в 600-800 раз слабее мощности мобильного телефона. Уже есть официальные данные, что при продолжительных телефонных разговорах возможно возникновение головной боли, а беспроводные гарнитуры, если не избавляют, то в любом случае снижают негативное воздействие мобильной связи.
Однозначно можно сказать, что из-за не сформированных до конца органов слуха нельзя использовать Bluetooth наушники детям. Взрослым для предотвращения возможных негативных последствий не рекомендуется вести длительные переговоры по мобильным телефонам, а пользоваться проводной связью. Если же невозможно отказаться от мобильного то следует использовать качественные беспроводные модели от проверенных производителей, а сам смартфон стараться держать подальше от тела и головы.
Лучшие производители
Компания Panasonic отошла от активного производства аудиотехники, сосредоточившись на выпуске других товаров. По этой причине наушники компании рассчитаны больше на пользователей предпочитающих бюджетные модели с неплохим звуком.
Audio-Technica создает модели беспроводных наушников Hi-End класса с ровным легким звуком. Гарнитуры среднего ценового сегмента обладают более акцентированным басом.
Беспроводные наушники Xiaomi прекрасно подходят к телефонам и имеют обширный ассортимент моделей. Китайская компания радует своих поклонников качественными гарнитурами по бюджетной цене.
Для непрофессиональных любителей качественного звука удачным выбором станут беспроводные наушники JBL отличающиеся оригинальным ярким дизайном и звуком, акцентированным на низкие частоты.
Недороги модели Sennheiser, ориентированы на любителей рока – качественные, мощные басы и звук в темных частотах. А более дорогие гарнитуры отличаются естественным и ровным звуком.
Компания Marshall не нуждается в представлении и известна меломанам. Наушники производителя подойдут для динамичной музыки и отличаются высоким качеством сборки.
Beyerdynamic – производитель известный ровным звуком с перевесом на высокие частоты. Производятся студийные, дорогие модели и гарнитуры для обычных пользователей.
Беспроводные наушники Sony – это неизменное качество и новейшие технологии. Звук гарнитур светлый, чистый, легкий и единственным исключением стала серия XB (Extra Bass) для любителей глубоких басов. Большой выбор моделей и дополнительные возможности делают Sony неизменным лидером на рынке аудиоустройств.
Ишматов Бахадыр Администратор и создатель ресурса ТехноГуру, практикующий радиоэлектронщик. Поделитесь записью с друзьями в социальных сетяхВозможно вам будет интересно:
texnogu.ru
как правильно выбрать беспроводные наушники
В век современных технологий никого уже не удивишь беспроводными девайсами: мы активно используем Wi-Fi на телефонах и ноутбуках, к компьютерам подключаем беспроводные мыши и клавиатуры, а музыку слушаем через Bluetooth-наушники. И вот тут случается загвоздка — а как выбрать самые лучшие наушники конкретно для ваших девайсов, ведь протоколов передачи звука по BT достаточно много, и далеко не все из них поддерживаются и наушниками, и самим устройством?
История и характеристики стандарта Bluetooth
Но начнем мы, как обычно, в истории создания BT. А создавать его начали, что примечательно, за несколько лет до USB — еще в 1994 году над этим стандартом стала работать компания Ericsson, достаточно известный в то время производитель телекоммуникационного оборудования. Сам стандарт разрабатывался как беспроводная альтернатива проводному подключению по RS-232 (более известному как последовательный порт). Сами спецификации были готовы уже к 1998 году — тогда же была создана группа Bluetooth SIG, куда вместе с Ericsson вошли IBM, Intel, Nokia и Toshiba. В 2002 году Bluetooth стал частью стандарта IEEE 802.15.1 (Wi-Fi, напомню, входит в стандарт IEEE 802.11). На данный момент в группу Bluetooth SIG входит более 18000 компаний, что делает Bluetooth одним из немногих основных стандартов по передаче данных на небольшие расстояния.
Как же работает Bluetooth? Он, как и Wi-Fi и множество других систем, работает в ISM-диапазоне — от 2.4 до 2.4835 ГГц. Разумеется, использование одного диапазона приводит к интерференции (наложению) сигналов — а это, в свою очередь, негативно сказывается на стабильности и скорости работы. С учетом того, что звук нужно передавать всегда в одном качестве без задержек, разработчики стандарта пошли на хитрость. Пожалуй, самой главной проблемой для BT является именно Wi-Fi — таких сетей в диапазоне 2.4 ГГц в каждом доме множество, а всего в этом диапазоне может быть 13 каналов шириной в 22 МГц:
Тут подход прост: и передатчик, и приемник все время использует один достаточно широкий канал. Да, он может перекрываться с другими каналами, что негативно скажется на скорости, но не на стабильности — и это всех устраивает. Bluetooth же использует другой подход: в ISM-диапазоне у него аж 79 каналов (в некоторых странах 23 — но Россия к ним не относится) шириной всего в 1 МГц, а приемник и передатчик с частотой в 1600 раз в секунду меняют канал по заданному алгоритму:
Это сделано специально для того, чтобы сильно уменьшить вероятность наложения сигналов в таком небольшом диапазоне частот. Но интерференцию это не отменяет — небольшие каналы BT вполне могут попасть в большие каналы Wi-Fi, и это приведет к потере скорости, что для качественной передачи звука недопустимо. Поэтому BT использует технологию AFH (Adaptive Frequency Hopping). Ее принцип заключается в том, что при смене каналов Bluetooth игнорируются те каналы, которые попадают в большой канал Wi-Fi:
Так что если вы пользуетесь Bluetooth в одном месте, то в теории никаких проблем с передачей звука нет — из 79 каналов будут выбраны свободные, что обеспечит достаточную скорость. Если вы перемещаетесь, то тут могут возникнуть проблемы — но, с другой стороны, часто вы видели на улице сети Wi-Fi? Так что технологию передачи звука по BT можно считать вполне помехоустойчивой, и осталось разобраться только со стандартами передачи звука по нему.
Bluetooth-профили для передачи звука
Самый первый профиль появился вместе со стандартом Bluetooth 1.2 больше 15 лет назад — уже тогда разработчикам стандарта пришло в голову, что беспроводной звук — это здорово. Увы, сам стандарт, называемый HSP — Headset Profile — для прослушивания музыки подходил слабо: передача звука шла в моно-формате с битрейтом до 64 кб/с. Этого более чем хватало для работы гарнитур — для них этот профиль, в общем-то, и был создан — но музыка, переданная в таком формате, звучала гораздо хуже самого криво пожатого 128 кб/с mp3, воспроизводимого через динамик тогдашних телефонов.
Следующий профиль назывался HFP (Hands-Free Profile), и, как понятно по названию, он опять же предназначался для гарнитур — все тот же монозвук с низким качеством. Из улучшений — более продвинутая работа: к примеру, при звонке можно было передавать звук с телефона на колонки машины, и использовать для ответа микрофон в машине. Но нас интересует именно передача музыки, и для нее этот профиль по понятным причинам категорически не подходит.
Первым профилем, предназначенным именно для передачи стереозвука, стал A2DP — Advanced Audio Distribution Profile. Именно в нем появилась функция опроса подключаемых к устройству наушников, дабы найти общий для них кодек, и, что самое главное — именно в этом профиле появилась возможность управлять сжатием аудио: увы, избежать сжатия нельзя из-за невысокой пропускной способности Bluetooth, но вот само сжатие сильно зависит от используемых кодеков и версии BT, так что итоговое качество звука может сильно варьироваться.
Кодек SBC — жмет хуже MP3, но в стерео
Если сказано, что ваши беспроводные колонки или наушники поддерживают A2DP и ни слова больше — то, скорее всего, будет использоваться для сжатия именно кодек SBC (Subband Coding). Сам принцип кодирования схож с MP3, однако тут упор идет не на минимизацию звуковых потерь, а на упрощение вычислений, дабы даже на слабых мобильных процессорах сжатие происходило очень быстро. Поэтому, к примеру, полностью отрезаются частоты выше 14 кГц. Поэтому, хоть SBC и допускает битрейт до 345 кб/с, MP3 в 320 кб/с будет звучать существенно лучше — достаточно просто посмотреть на спектры:
Как видно, лучше всего звук передает AptX (о нем ниже), далее идет MP3, ну и SBC на последнем месте.
AAC — единственный хороший кодек для iPhone
SBC — это стандартный кодек A2DP-профиля, и, разумеется, он далеко не единственный — есть и более продвинутые средства сжатия звука. И самый популярный среди них — кодек AAC (Advanced Audio Coding). Он же, к слову, самый лучший, если вы хотите использовать беспроводные наушники с iPhone, так что если у вас именно он — ищите наушники с его поддержкой (а таковых достаточно много). Да и вообще формат AAC используется больше всего именно в Apple — к примеру, все песни в iTunes или Apple Music используют именно его.
Изначально AAC разрабатывался как преемник MP3 — он дает лучшее качество звука при том же битрейте за счет нескольких оптимизаций: к примеру, удаляются не воспринимаемые человеком частоты, удаляется избыточность в кодированном сигнале, используется более широкое окно в 2048 точек (что такое окна можно почитать здесь) и так далее. Так что в итоге такой кодек работает существенно лучше SBC и вполне подходит для повседневного прослушивания музыки по Bluetooth — главное, чтобы его поддерживали как наушники, так и само устройство — иначе будет использоваться стандартный кодек SBC с печальными последствиями для звука.
aptX — оптимальный выбор для любителей хорошего звука
Это — один из немногих кодеков, который может передавать по BT звук в MP3 и AAC без дополнительной обработки — а, значит, и без влияния на качество звука. Двухканальный звук тут передается с битрейтом до 352 кб/с, и, разумеется, никакие частоты не обрезаются: используется частотный диапазон от 10 Гц до 22 кГц, чего более чем хватает для человеческого уха.
В 2009 году появилась более продвинутая версия aptX HD, она позволяет передавать звук с битрейтом до 576 кб/с — а этого уже хватает для воспроизведения некоторых Hi-Res-аудио, чем явно будут довольны меломаны.
Однако, увы, у aptX есть одна достаточно серьезная проблема: так как эта технология принадлежит Qualcomm, то и работает она только на устройствах с их Bluetooth-чипами, и именно поэтому поддержки aptX нет и не может быть на iPhone, где за Wi-Fi и BT отвечает чип от Broadcom. Ну и как в случае с AAC — поддерживать aptX должны как само устройство, так и наушники — в противном случае произойдет откат до AAC или SBC.
LDAC — единственный выбор для меломанов
Меломаны, конечно же, скажут — 576 кб/с у aptX HD это здорово, но есть музыка во flac с битрейтом и вдвое выше. И тут на помощь приходит Sony с собственным кодеком, который обеспечивает передачу звука с битрейтом аж в 990 кб/с с частотой дискретизации в 96 кГц — что, в общем-то, обеспечивает более качественное воспроизведение аудио, чем с CD-дисков. И если раньше этот кодек использовался сугубо в устройствах от Sony, то начиная с Android 8.0 он включен в проект AOSP, так что если под ваш смартфон есть прошивка на нем, и у вас есть наушники с поддержкой LDAC, то вы можете насладиться действительно Hi-Res-аудио по Bluetooth.
Итоги
А в итоге мы видим, что звук по Bluetooth развился настолько, что удовлетворит любым пожеланиям: для нетребовательных слушателей с простыми наушниками и музыкой в MP3 с битрейтом в 128 кб/с есть SBC. Для тех, кто привык слушать музыку из iTunes или же MP3 в 320 кб/с, есть AAC и aptX. Ну а для меломанов с музыкой в flac есть aptX HD и LDAC. Однако не забывайте — оба устройства должны поддерживать нужный вам кодек — иначе вы будете слушать flac с кодеком SBC, что явно вам не понравится.
www.iguides.ru
Как выбрать лучший протокол Bluetooth для своего приложения
Беспроводная связь становится неотъемлемой частью электроники. Все больше и больше потребителей хотят отправлять и получать данные, не думая о разъемах и кабелях. Одним из самых популярных протоколов беспроводной связи является Bluetooth, который благодаря его универсальности используется в широком спектре приложений.
Bluetooth используется для воспроизведения музыки со смартфона на автомобильной стереосистеме. В новейших системах «умный дом», Bluetooth позволяет закрывать и открывать замок входной двери с помощью телефона. Bluetooth также можно использовать для обмена файлами между планшетом и компьютером, а также для отправки обновлений с фитнес-трекера на компьютер или телефон. На рис. 1 изображены два наиболее распространенных устройства с поддержкой Bluetooth: смартфон и ноутбук.
Рис. 1. Благодаря протоколу Bluetooth мы можем отправлять и получать данные без проводов
Во всех этих приложениях используется «Bluetooth», но, что удивительно, речь идет о разных протоколах! В одних случаях применяется Bluetooth Low Energy (BLE), в то время как в других используется Bluetooth Basic Rate/ Enhanced Data Rate (Bluetooth BR/EDR). В новейших приложениях все чаще можно встретить поддержку Bluetooth 5.
Многие пользователи даже не подозревают о различиях между протоколами Bluetooth BR/ EDR и BLE, они также не знают, какой из протоколов лучше всего подходит для того или иного приложения. С появлением Bluetooth 5 все стало еще более запутанным, так как грань между протоколами размылась еще сильнее. Цель этой статьи состоит в том, чтобы объяснить, чем BLE отличается от Bluetooth BR/ EDR, и какое развитие нашли эти протоколы в Bluetooth 5. Статья поможет выбрать наиболее оптимальный протокол Bluetooth для вашего приложения.
История
Чтобы лучше понять, чем отличаются Bluetooth BR/ EDR и BLE, важно изучить историю этой беспроводной технологии. Каждый из протоколов был разработан группой Bluetooth Special Interest Group (Bluetooth SIG), которая управляет всеми протоколами Bluetooth. Результаты развития и доработки Bluetooth публикуются в виде новых спецификаций. На рис. 2 представлена история развития Bluetooth в виде временной шкалы с указанием годов выпуска Bluetooth BR, Bluetooth EDR, BLE и Bluetooth 5.
Рис. 2. Многолетняя история развития Bluetooth, с указанием дат выпуска новых спецификаций
Bluetooth BR/EDR
Исторически первым был разработан протокол Bluetooth BR. В нем для обмена данными в диапазоне ISM 2,4 ГГц использовался особый вид частотной манипуляции – GFSK (Gaussian frequency-shift keying). Полоса частот 2,4 ГГц была выбрана потому, что в отличие от большинства других частотных полос, она не требовала лицензирования и ее использование было бесплатным. Протокол Bluetooth BR быстро завоевал популярность, поскольку он обеспечивал недорогой и малопотребляющий способ отправки и получения данных по беспроводной сети на короткие расстояния со скоростью передачи данных до 0,7 Мбит/с.
Спустя несколько лет была выпущена новая спецификация Bluetooth 2.0, в состав которой вошел новый протокол Bluetooth EDR. Bluetooth EDR позволяет передавать данные в два-три раза быстрее, чем Bluetooth BR. Это связано с тем, что в Bluetooth EDR, кроме GFSK, также использовалась дифференциальная квадратурная фазовая манипуляция (differential quadrature phase-shift keying, QDPSK) и дифференциальная 8-уровневая фазовая манипуляция (differential 8-level phase-shift keying, 8DPSK). Если в GFSK один символ кодирует один бит, то в QDPSK один символ кодирует два бита, а в 8DPSK на один символ приходится три бита.
BLE
Любопытный факт – когда разрабатывался протокол BLE, он на самом деле не был протоколом Bluetooth! Дело в том, что компания Nokia создавала собственный новый беспроводной протокол под названием Wibree. Он обеспечивал минимальное потребление энергии, был очень дешевым и простым в настройке, что делало его идеальным решением для устройств, питающихся от небольших батареек.
Wibree использовал множество решений, реализованных еще в Bluetooth BR/ EDR: частотный диапазон ISM 2,4 ГГц, модуляция GFSK, разбиение на частотные каналы и скачкообразную перестройку частоты. Сходства между протоколами привели к тому, что Bluetooth SIG включила Wibree в свою новую спецификацию Bluetooth. Протокол впервые появился в спецификации Bluetooth 4.0 и получил привычное для современных пользователей название Bluetooth Low Energy (BLE).
Несмотря на появление BLE, поддержка старых протоколов Bluetooth BR/ EDR также сохранилась. Потребительские устройства с BLE часто назывались Bluetooth Smart, а Bluetooth BR/ EDR - Bluetooth Classic. Впрочем, в настоящее время эти термины больше не используются. В соответствии со спецификацией радиомодули могут иметь различные варианты поддержки протоколов: только Bluetooth BD/ EDR, только BLE, или одновременно Bluetooth BR/ EDR и BLE.
Bluetooth 5
Bluetooth SIG делает все возможное, чтобы модернизировать и совершенствовать Bluetooth в соответствии с развитием технологий. В последнее время одним из ключевых движущих факторов развития электроники стал Интернет вещей (IoT). Протокол BLE сыграл большую роль в становлении IoT, однако Bluetooth SIG хочет дополнительно расширить возможности Bluetooth в IoT-приложениях. Новые улучшения BLE были реализованы в Bluetooth 5.
Bluetooth BR/EDR vs. BLE
Давайте определим сходства и различия между Bluetooth BR/ EDR и BLE. Для начала коснемся физического уровня протоколов (PHY). Физический уровень PHY включает схему, используемую для модуляции и демодуляции аналоговых сигналов и преобразования их в цифровые символы. Различия в PHY являются главными причинами того, что каждый протокол оказывается оптимальным с точки зрения того или иного приложения. Существует четыре основных параметра PHY: организация частотных каналов, потребление, задержка и пропускная способность.
Схема частотных каналов
Протоколы Bluetooth BR/ EDR и BLE используют для обмена данными одинаковый частотный диапазон ISM 2,4 ГГц, но разное количество частотных каналов. Bluetooth BR/ EDR делит полосу частот на 79 каналов, разнесенных на 1 МГц. BLE использует более простой передатчик и приемник, поэтому он разделяет полосу частот на 40 каналов, разнесенных на 2 МГц.
Вне зависимости от числа используемых частотных каналов и Bluetooth BR/ EDR, и BLE вынужденно сталкиваются с таким неприятным фактором как помехи. Как уже отмечалось выше, диапазон ISM 2,4 ГГц является не лицензируемым и используется множеством передатчиков. Чтобы минимизировать влияние помех, в протоколах Bluetooth BR/ EDR и BLE используются скачкообразная перестройка частоты. При этом приемопередатчик работает на одном канале в течение короткого периода времени, а потом переключается на другой канал и продолжает обмен данными.
У BLE есть свои особенности организации частотных каналов. BLE резервирует три канала для широковещательной передачи данных. Эти рекламные каналы (advertising channels) необходимы для обнаружения BLE-устройств. Частота рекламных каналов была выбрана таким образом, чтобы они не мешали трем наиболее часто используемым каналам Wi-Fi, также работающим в диапазоне ISM 2,4 ГГц. После установления соединения приемопередатчики продолжают поддерживать связь на одном из 37 других каналов. На рис. 3 изображена схема частотных каналов BLE, на которой отмечены широковещательные каналы.
Рис. 3. Частотные каналы в BLE
Мощность
Bluetooth BR/ EDR и BLE существенно отличаются по уровню потребления. Об этом свидетельствует даже тот факт, что словосочетание «низкое энергопотребление» входит в название BLE! Bluetooth BR/ EDR использует максимальную выходную мощность 100 мВт для передачи данных на дистанцию примерно 10…100 м. На момент выхода Bluetooth BR/ EDR этот результат был вполне приемлемым, так как тогда не возникало проблем с зарядкой устройств. Однако сейчас постоянно растет спрос на устройства, которые могут работать от аккумулятора или батареи в течение нескольких месяцев или даже лет без подзарядки. При заявленной мощности 100 мВт обеспечить столь длительную работу очень сложно, так как радиомодуль быстро разряжает батарейку.
BLE предлагает идеальное решение. Уменьшение потребления происходит за счет того, что в BLE передатчик или приемник включаются только тогда, когда необходимо отправить или получить данные. При этом максимальная выходная мощность составляет всего 10 мВт при той же дальности действия. BLE отправляет данные короткими пакетами. Когда пакеты не отправляются, радиомодуль бездействует, потребляя минимум энергии. Все эти улучшения помогают BLE соответствовать своему названию.
Задержки
Еще один показатель, по которому BLE превосходит Bluetooth BR/ EDR является задержка. Для подготовки к отправке данных протоколам Bluetooth BR/ EDR требуется около 100 мс. Более того, присутствует дополнительная задержка в 100 мс с момента поступления данных для передачи до момента их получения на приемнике. В некоторых случаях такая задержка становится довольно ощутимой. Кроме того, задержка приводит к увеличению энергопотребления, поскольку передатчик больше времени проводит в состоянии готовности.
В BLE задержка оказывается значительно меньше – подготовка к передаче данных потребует всего 3 мс. Кроме того, задержка с момента поступления данных для передачи до момента их получения на приемнике составляет всего 6 мс. Это позволяет отправлять данные быстрее и экономить ресурс аккумуляторов.
Пропускная способность
Возможно у вас возник вопрос: почему кто-то выбирает Bluetooth BR/ EDR, а не BLE? Дело в том, что BLE существенно отстает от Bluetooth BR/ EDR по пропускной способности. И Bluetooth BR/ EDR, и BLE используют GFSK, поэтому теоретический предел их пропускной способности составляет 1 Мбит/ с. Однако такие факторы, как необходимость передачи служебных данных, ограничения радиосвязи и искусственные программные ограничения, приводят к снижению реальной пропускной способности.
На практике Bluetooth BR обеспечивает пропускную способность до 0,7 Мбит/с, в то время как для Bluetooth EDR она может достигать 2,1 Мбит/ с. Этого вполне достаточно для многих приложений, например, для передачи потокового аудио. Как уже отмечалось ранее, поскольку для экономии энергии BLE отправляет данные короткими пакетами, то его пропускная способность оказывается существенно ниже. Максимальная пропускная способность BLE может достигать только 0,27 Мбит/ с. Этого не хватит потоковой передачи звука, но для периодической отправки данных с датчика будет более чем достаточно.
Таким образом, различия в PHY приводят к существенным различиям и в характеристиках протоколов. В таблице 1 приведены результаты сравнения основных параметров Bluetooth BR/ EDR и BLE.
Таблица 1. Bluetooth BR/EDR vs. BLE
Параметр
Bluetooth BR/ EDR
BLE
Количество частотных каналов
79
40
Максимальная выходная мощность
100 мВт
10 мВт
Задержка
100 мс
6 мс
Задержка пересылки данных
100 мс
3 мс
Частота передачи
1 Мбит/с; 2-3 Мбит/с
1 Мбит/с
Пропускная способность
0,7 Мбит/с; 2,1 Мбит/с
0,27 Мбит/с
Дальность действия
~ 100 м
~ 100 м
BLE 5.0
Bluetooth 5 сохраняет оригинальную технологию BLE с низким энергопотреблением, но добавляет некоторые новые улучшения. Одним из основных улучшений является введение трех вариантов PHY, которые можно выбрать для увеличения дальности или пропускной способности. В Bluetooth 5 также добавлены некоторые изменения, повышающие эффективность использования широковещательных каналов.
Первый вариант PHY, предлагаемый Bluetooth 5, называется LE 1M. Это тот же PHY, который используется для BLE в спецификации Bluetooth 4.2, поэтому большинство его параметров будут соответствовать параметрам, представленным в таблице 1. LE 1M является единственным обязательным PHY согласно Bluetooth 5. Другие два PHY являются опциональными.
Одним из дополнительных вариантов PHY в Bluetooth 5 становится PHY с избыточным кодированием. Этот вариант PHY обеспечивает увеличенную дальность действия благодаря введению избыточности при кодировании данных. Таким образом, выигрыш достигается обработкой данных, а не за счет увеличения мощности передатчика.
Избыточные биты используются для определения правильного значения бита информации. Кодирование осуществляется в двух вариантах: S = 2 и S = ??8. В S = 2 отправляется по два символа на бит, что уменьшает пропускную способность в два раза, но теоретически удваивает радиус действия передатчика. S = 8 отправляет восемь символов на бит. Это снижает пропускную способность до 125 кбит/с, однако радиус действия теоретический также увеличивается примерно в четыре раза. На практике диапазон связи будет немного ниже теоретических значений, но этот метод все же помогает существенно увеличить дальность действия.
Радиус действия важен не для всех устройств, поэтому в Bluetooth 5 добавлены некоторые улучшения с учетом требований приложений, в которых пропускная способность оказывается важнее дальности. Существует опциональный вариант PHY, созданный для удвоения скорости передачи данных – LE 2M. Новая опция увеличивает скорость передачи «сырых» данных до 2 Мбит/с, что позволяет передавать данные с максимальной пропускной способностью до 1,4 Мбит / с. Таким образом, данные могут не только передаваться быстрее, чем в Bluetooth BR, но и с меньшими затратами энергии.
Сравнение вариантов PHY, предлагаемых Bluetooth 5, представлено в таблице 2. Таблица демонстрирует различия в скорости передачи данных и в радиусе действия.
Таблица 2. Сравнение PHY, предлагаемых Bluetooth 5
Параметр
LE 1M
LE с избыточностью S=2
LE с избыточностью S=8
LE 2M
Частота символов
1 Мсимволов/c
1 Мсимволов/c
1 Мсимволов/c
1 Мсимволов/c
Скорость передачи
1 Мбит/с
0,5 Мбит/с
0,125 Мбит/с
2 Мбит/с
Умножитель дальности действия
~ 1 x
~ 2 x
~ 4 x
~ 0,8 x
Требование Bluetooth 5
Обязательное
Опционально
Опционально
Опционально
Bluetooth 5 предлагает множество улучшений, повышающих эффективность использования широковещательных каналов. BLE использует ту же схему частотных каналов, однако широковещательная передача может выполняться на всех 40 каналах, а не только на трех, как ранее в Bluetooth 4. В Bluetooth 5 по трем старым рекламным каналам передаются небольшие пакеты, содержащие указатели на большие пакеты (до 255 октетов), которые передаются по оставшимся 37 каналам. Такое решение также помогает уменьшить объем трафика на трех основных широковещательных каналах. Bluetooth 5 также предлагает улучшения, связанные с организацией цепочек широковещательных пакетов, передачей периодических широковещательных пакетов и с уменьшением минимального интервала меду пакетами.
Приложения
Различия в PHY являются ключом к определению того, какой протокол лучше всего подходит для каждого конкретного приложения. Мы рассмотрели основные технические особенности, зная о которых можно оптимально использовать каждый протокол.
Давайте начнем с Bluetooth BR/ EDR. Этот протокол отличается существенной задержкой и высоким потреблением, однако благодаря этому он обеспечивает высокую пропускную способность. Таким образом, протокол Bluetooth BR/ EDR лучше всего подходит для приложений, в которых пропускная способность является критически важным параметром. Bluetooth BR/ EDR становится идеальным протоколом для потоковой передачи аудиоданных или при отправке больших объемов информации. В качестве примеров таких приложений можно привести беспроводную гарнитуру (рис. 4), а также двухточечные соединения между устройствами (например, между смартфонами).
Рис. 4. Беспроводная гарнитура является одним из примеров использования Bluetooth BR/ EDR
BLE лучше всего подходит для приложений, в которых необходимо быстро отправлять небольшие объемы данных. Такой вариант позволяет устройству выйти из режима сна, быстро передать накопленные данные и обратно вернуться в спящий режим. Благодаря минимальному потреблению BLE является идеальным выбором для устройств с питанием от аккумуляторов или батареек малой ёмкости. Хорошим примером использования BLE является пульсометр. Пульсометр не должен часто отправлять данные, но он должен питаться от небольшого аккумулятора и работать в течение длительного времени без подзарядок. Поскольку область IoT продолжает активно развиваться, мы увидим еще очень много новых устройств, использующих BLE.
Важно отметить, что после того, как вы определились с протоколом Bluetooth для своего приложения, необходимо грамотно выбрать ИС с поддержкой этого протокола. Нельзя покупать ИС наугад в надежде, что она поддерживает и Bluetooth BR/ EDR, и BLE. Как уже неоднократно говорилось ранее, Bluetooth BR/ EDR и BLE используют разные PHY, поэтому необходимо убедиться, что выбранная ИС поддерживает PHY того протокола, который вы планируете использовать. Если предполагается работа с обоими протоколами, то, соответственно, ИС также должна поддерживать и Bluetooth BR/ EDR, и BLE.
Bluetooth 5 уже начинает появляться в коммерческих устройствах. Многие популярные смартфоны уже сейчас имеют поддержку Bluetooth 5. Как и в случае с большинством беспроводных протоколов, для полноценного внедрения Bluetooth 5 потребуется несколько лет. Тем не менее, вполне очевидно, что время для Bluetooth 5 уже настало.
Если вы хотите быть готовым к использованию Bluetooth 5, то Вам необходим микроконтроллер, совместимый с Bluetooth 5. Одним из примеров таких микроконтроллеров является MAX32666GWPBT от компании Maxim. MAX32666GWPBT имеет два процессорных ядра Arm Cortex-M4 и отдельные функциональные блоки, предназначенные для работы со стеком Bluetooth (рис. 5). Оба процессорных ядра могут использоваться для выполнения пользовательских программ. Еще одним вариантом является малопотребляющий микроконтроллер MAX32665 с ядром Arm Cortex-M4 с блоком вычислений с плавающей запятой (FPU) и Bluetooth 5. Благодаря развитой системе питания, включающей SIMO-преобразователь (single-inductor multiple-output), и функции динамического масштабирования напряжения, данный микроконтроллер хорошо подходит для систем с батарейным питанием.
Рис. 5. Устройства с поддержкой с Bluetooth 5 являются целевым приложением для микроконтроллеров MAX32666GWPBT
Заключение
Каждый хороший урок следует закрепить небольшой проверкой. Вернитесь к началу статьи и попробуйте самостоятельно решить, какой из протоколов следует использовать для перечисленных приложений. Если у Вас возникли проблемы, то ответы можно найти ниже.
Протокол Bluetooth BR/ EDR хорош для приложений, где важно обеспечить максимальную пропускную способность. К сожалению, использование этого протокола сопряжено со значительным потреблением, поэтому он не подходит для приложений с батарейном питанием, в которых требуется длительная автономная работа. Bluetooth BR/ EDR также имеет большую задержку и требует больше времени для настройки соединения перед отправкой данных. Следовательно, он не предназначен для приложений, которые обмениваются редкими и короткими сообщениями. Bluetooth BR/ EDR часто используется для воспроизведения музыки, хранящейся на телефоне, с помощью автомобильной стереосистемы, а также для или отправки файлов между компьютерами или планшетами. Оба приложения требуют высокой пропускной способности и могут позволить себе иметь относительно высокое потребление.
Протокол BLE используется в приложениях, в которых критическим параметром является низкое энергопотребление, а высокая пропускная способность не имеет большого значения. BLE позволяет отправлять данные очень быстро и имеет низкую задержку. Данный протокол можно найти в устройствах, которые должны работать от небольшого аккумулятора в течение длительного времени без подзарядки или в устройствах, которым не требуется часто отправлять данные. BLE применяется в системах домашней безопасности, например, в «умных дверных замках», а также в портативных гаджетах, в частности в фитнес-трекерах.
Хотя все рассмотренные протоколы относятся к одной технологии Bluetooth, они действительно предлагают различные преимущества в мире беспроводной электроники. Чтобы определить, какой протокол лучше всего подходит для конкретного приложения, следует ознакомиться с различиями PHY, перечисленными в таблице 1. Кроме того, разработчики должны следить за тем, как Bluetooth 5 будет изменять отрасль в ближайшие несколько лет, благодаря более высокой пропускной способности, большему диапазону и улучшениями, связанными с широковещательными сообщениями.
Источник: www.electronicdesign.com
www.terraelectronica.ru
Bluetooth с низким энергопотреблением — Википедия
Беспроводная технология Bluetooth с низким энергопотреблением (англ. Bluetooth Low Energy, Bluetooth LE, BLE, представленная также как Bluetooth Smart) — выпущенная в декабре 2015 года версия спецификации ядра беспроводной технологии Bluetooth[1], наиболее существенным достоинством которой является сверхмалое пиковое энергопотребление, среднее энергопотребление и энергопотребление в режиме простоя.
Устройства, использующие Bluetooth с низким энергопотреблением, будут потреблять меньше энергии, чем другие Bluetooth-устройства предыдущих поколений. Во многих случаях устройства смогут работать более года на одной миниатюрной батарейке типа таблетка без подзарядки[2]. Таким образом, можно будет иметь, например, небольшие датчики, работающие непрерывно (например, датчик температуры), общающиеся с другими устройствами, такими как сотовый телефон или КПК.[2]
Эта новая версия спецификации Bluetooth даёт возможность поддержки широкого диапазона приложений и уменьшает размер конечного устройства для удобного использования в областях здравоохранения, физкультуры и спорта, охранных систем и домашних развлечений.
12 июня 2007 года Bluetooth SIG объявила, что Wibree станет частью спецификации Bluetooth, как технология Bluetooth с сверхнизким энергопотреблением (ULP Bluetooth). Результатом должна быть беспроводная технология с малым потреблением энергии и значительно увеличенным сроком службы от аккумулятора, сопоставимыми с таковыми у схем, использующих ZigBee.
20 апреля 2009 года Bluetooth SIG представила новую технологию Bluetooth с низким энергопотреблением как дополнительный протокол стека, полностью совместимый с другими существующими стеками протоколов Bluetooth. Предыдущие названия, такие как Wibree и ULP Bluetooth (Ultra Low Power) были заменены на принятое название технологии Bluetooth с низким энергопотреблением (Bluetooth low energy).
17 декабря 2009 года. Bluetooth SIG опубликовала принятие беспроводной технологии Bluetooth с низким энергопотреблением в качестве отличительной особенности версии 4.0 ядра спецификации Bluetooth[3].
Интеграция Bluetooth с низким энергопотреблением в спецификацию ядра завершена в начале 2010 года. Первым устройством, включающим в себя данную технологию, был iPhone 4S, выпущенный в октябре 2011. Другие производители представили устройства с Bluetooth Smart Ready в 2012 году.
Потребляя меньше энергии, технология Bluetooth с низким энергопотреблением предложит длительное обеспечение связи и соединит маленькие устройства типа датчиков и мобильные устройства в пределах персональных сетей (PAN).
Спецификация Bluetooth 4.0 (и более поздние) фактически определяет две беспроводные технологии: BR/EDR (классический Bluetooth, развивающийся, начиная с первой версии стандарта) и BLE (Bluetooth Low Energy)[4].
Устройства, в которых применён BLE, могут быть как двухрежимные BR/EDR/BLE (называются Bluetooth Smart Ready), совместимые с классическими Bluetooth-устройствами, так и однорежимные BLE (Bluetooth Smart)[4][2].
Основными блоками Bluetooth-устройства являются[4]:
Приложение (англ. application) — реализует полезную для конечного пользователя логику работы;
Контроллер (англ. controller) — занимается нижними уровнями Bluetooth.
Коммерческие продукты обычно используют одно из следующих аппаратных решений[4]:
SoC - однокристальная система, объединяющее в себе приложение, хост и контроллер. Применяется в компактных недорогих устройствах, таких как датчики;
Решение на двух микросхемах, при котором приложение и хост соединены с контроллером посредством UART, USB, SDIO и т. п.[5] по протоколу HCI. Такая конфигурация может использоваться, например, в мобильных устройствах;
Решение на двух микросхемах, в котором приложение соединяется с устройством связи (хост и контроллер) по проприетарному протоколу.
Уровень приложения — самый высокий уровень стека протоколов.
Уровень хоста содержит следующие уровни[6]:
GAP (Generic Access Profile) — профиль общего доступа,
GATT (Generic Attribute Profile) — профиль общих атрибутов,
L2CAP (Logical Link Control and Adaptation Protocol) — протокол логического соединения и адаптации,
ATT (Attribute Protocol) — протокол атрибутов,
SM (Security Manager) — менеджер безопасности,
HCI (Host Controller Interface) — интерфейс хост-контроллер, часть на стороне хоста,
Хост связан с контроллером протоколом HCI и имеет уровни[6]:
HCI — интерфейс хост-контроллер со стороны контроллера,
LL (Link Layer) — канальный уровень,
PHY — физический уровень.
См. также стек протоколов Bluetooth.
Стандарт Bluetooth чётко разграничивает понятия протокола и профиля. Протоколы являются неотъемлемой частью спецификации и являются «горизонтальными» частями отдельных уровней стека Bluetooth. Профили же являются «вертикальными» срезами функциональности и могут быть как обязательными (Generic Access Profile или GAP, Generic Attribute Profile или GATT), так и специфическими для данного устройства (например, Find Me Profile, Proximity Profile). Производители могут определять и свои собственные профили, например, iBeacon и Apple Notification Center Service фирмы Apple[7].
Техническая спецификация
Классический Bluetooth
Bluetooth с низким энергопотреблением
Радиочастота
2.4 ГГц
2.4 ГГц
Расстояние
100 м
>100 м
Скорость передачи данных по воздуху
1-3 Мб/с
1 Мб/с
Пропускная способность
0.7-2.1 Mb/s
0.27 Mb/s
Ведомые устройства
7
Не предопределено; зависит от реализации
Безопасность
64/128-bit и определяемый пользователем прикладной уровень
128-bit AES с Counter Mode CBC-MAC и определяемый пользователем прикладной уровень
Адаптивная быстрая перестройка частоты, Lazy Acknowledgement, 24-битовый избыточный циклический код (CRC), 32-разрядная проверка целостности сообщения
Задержка (от неподключенного состояния)
Обычно 100 мс
6 мс
Минимальное общее время передачи данных (зависит от состояния батареи)
100 мс
3 мс
Государственное регулирование
Во всём мире
Во всём мире
Орган по сертификации
Bluetooth SIG
Bluetooth SIG
Передача голоса
Да
Нет
Топология сети
Scatternet (англ.)русск.
Scatternet (англ.)русск.
Потребляемая мощность
1 Вт в качестве исходной
От 0,01 Вт до 0,5 Вт (в зависимости от вариантов использования)
Максимально потребляемый ток
<30 мА
<15 мА
Обнаружение службы
Да
Да
Определение конфигурации
Да
Да
Варианты использования
Мобильные телефоны, игры, наушники, стерео аудио потоки, автомобили, ПК и т. д.
Мобильные телефоны, игры, ПК, часы, спорт и физкультура, здравоохранение, автомобили, бытовая электроника, автоматизация, промышленность и т. д.
Bluetooth с низким энергопотреблением является расширением спецификации базовой беспроводной технологии Bluetooth, которая добавит новые функциональные возможности и позволит создавать приложения для удаленного управления, медицинского наблюдения, спортивных датчиков и других устройств. Bluetooth с низким энергопотреблением даст возможность улучшить существующие варианты применения, расширяя применимость и функциональные возможности технологии Bluetooth.
Соответствующие чипы могут быть интегрированы в такие продукты, как наручные часы, беспроводные клавиатуры, геймпады и датчики тела, которые могут подключаться к принимающим (хост) устройствам, таким как мобильные телефоны, персональные цифровые помощники (КПК) и персональные компьютеры (ПК).
Обновления программного обеспечения[править | править код]
Соответствующие приложения для существующих устройств могут быть открыты для использования технологии Bluetooth с низким энергопотреблением с помощью обновления. Это даст возможность существующему программному обеспечению Bluetooth-технологии получать данные от Bluetooth с низким энергопотреблением. Однако, возможность общаться в дуплексном режиме ограничена с определенными схемами распределения частоты традиционной технологии Bluetooth. Широко распространенные устройства, такие как мобильные телефоны, персональные цифровые помощники (КПК) и персональные компьютеры (ПК), могут получать данные передаваемые устройствами Bluetooth с низким энергопотреблением в качестве принимающих устройств для сложных задач.
Следовательно, технология Bluetooth с низким энергопотреблением может связать любую персональную сеть согласно IEEE 802.15 (WPAN) которая имеет связь с каждым простым устройством с другими приборами для сложных задач, а также для поддержки шлюза для передачи информации другим сетевым объектам.
Иногда можно «восстановить» рассеянную энергию излучения или энергию движения. Такие «убирающие мусор» системы могут питать Bluetooth со сверхнизким энергопотреблением, что приводит к чему-то наподобие датчиков пыли, очень маленьких, независимых, доступных сетевых датчиков, которые сообщают о цельной картине вокруг, они рассредоточены повсюду и не исчерпывает энергию. Кроме того, являются надежными.
Стандартизация[править | править код]
На рынке патентованных решений для обеспечения связи, технология Bluetooth с низким энергопотреблением определяет себя как:
широко распространенный промышленный стандарт протоколов (Bluetooth SIG)
международно принятый промышленный стандарт для передачи (IEEE 802.15.1)
низкая цена благодаря интеграции микросхемы
совместимость с уже существующими Bluetooth-устройствами через обновления
Аппаратные платформы[править | править код]
Несколько производителей занимаются выпуском чипов для периферийных устройств Bluetooth LE, например, Nordic Semiconductor с микросхемами серии nRF51, nRF52, Texas Instruments с системой-на-кристалле CC2541. Кроме того, вместо того, чтобы самостоятельно разрабатывать свои решения для радио, производители могут приобрести готовые модули, прошедшие соответствующую, довольно дорогостоящую, сертификацию. На начало 2014 года были доступны модули Laird BL600, Bluegiga BLE112/BLE113, а также RFDuino (для платформы Arduino)[8].
В качестве примера ниже приведены характеристики системы на кристалле серии nRF51[8]:
ARM (архитектура) Cortex-M0 с тактовой частотой 16 МГц
От 128 до 256 Кб флеш-памяти, из которых около 90 Кб занимает стек Bluetooth LE
16 Кб SRAM-памяти, из которых 8 Кб может использовать приложение, а остальное использует стек
Kevin Townsend; Carles Cufí; Akiba; Robert Davidson. Getting Started with Bluetooth Low Energy. — O'Reilly Media, Inc., 2014. — 180 p. — ISBN 978-1-4919-4951-1.
↑ PressReleasesDetail (неопр.) (недоступная ссылка). Дата обращения 22 февраля 2010. Архивировано 20 декабря 2009 года.
↑ 123 Bluetooth SIG Retrieved 2009-02-17. http://www.bluetooth.com/Bluetooth/Products/More_about_emBluetoothem_low_energy_technology.htm
↑ Bluetooth Core Specification Download Page (неопр.) (недоступная ссылка). Дата обращения 22 февраля 2010. Архивировано 17 января 2008 года.
Спецификация Bluetooth 4.0 принята. Ждем новых свершений / Habr
Протоколы скоростной передачи данных сейчас «пекут», как горячие пирожки. Не успели еще модули беспроводной связи стандарта 3.0 обосноваться в различного рода девайсах, как Bluetooth Special Interest Group (SIG) приняла спецификацию Bluetooth Core Specification Version 4.0. Интересно, что уже в четвертом квартале этого года производители обещают выпускать мобильные и не очень устройства с интегрированным модулем Bluetooth 4.0. Подробные характеристики Bluetooth Core Specification Version 4.0. давайте поместим под катом, довольно много букаф.
Так вот, устройства с новым модулем связи смогут обмениваться данными со скоростью до 24 Мбит/сек. Согласитесь, это намного больше, чем у наиболее распространенного сейчас (по крайней мере, в странах СНГ) Bluetooth 2.1 + EDR с его 3 Мбит/сек.
Особенностью Bluetooth 4.0 является не только высокая скорость передачи данных, которой должно быть достаточно для большинства современных устройств, но и пониженное энергопотребление модуля связи. Дело в том, что разработчики применили новую энергосберегающую технологию, которая позволяет внедрить Bluetooth 4.0 даже в маломощные устройства со слабым питанием.
Подобные девайсы могут быть использованы практически во всех сферах, включая медицину, развлечения, спорт и другие.
Отметим, что в Bluetooth 4.0. повышена безопасность передачи данных — теперь все, что передается, шифруется по протоколу AES-128. Еще одним плюсом является значительное расширение зоны действия модуля связи — до ста и более метров.
Разработчики утверждают, что от стандартной «таблетки», 3-х вольтовой батарейки типа CR 2025, модуль связи Bluetooth 4.0 сможет работать несколько лет. Интересно было бы проверить это утверждение на практике, правда? Радует, что ждать осталось совсем немного.
В пресс-релизе сообщается также, что все члены рабочей группы Bluetooth SIG смогут «пощупать» устройства с Bluetooth 4.0 на очередной, 37-й встрече SIG, которая должна пройти на этот раз в Барселоне, Испания, 4-8 октября. Разработчики предоставят для теста устройства как с предыдущими спецификациями Bluetooth, так и с Bluetooth 4.0.
Сразу после этого производители смогут активно внедрять модули связи нового типа в собственные устройства.
В общем, подведем итоги. Главными преимуществами Bluetooth 4.0 являются:
— низкое потребление энергии;
— высокая скорость передачи данных, до 24 Мбит/сек;
— увеличенная дальность действия, свыше 100 метров;
Что же, Bluetooth 4.0, мы тебя ждем.
Вот здесь размещен официальный пресс-релиз спецификации.
habr.com
маленькие хитрости использования «синего зуба» — «Хакер»
Содержание статьи
Все отлично знают, что с помощью Bluetooth можно передать файл с девайса на девайс или подключить беспроводную гарнитуру. Но этим его возможности не ограничиваются. Имея при себе нужный инструмент, можно творить настоящие чудеса. Так почему бы не попробовать себя в роли фокусника?
Встроенный модуль технологии Bluetooth (или, если более официально, IEEE 802.15.3) давно перестал быть диковинкой. Стоимость модуля настолько мизерна, что не встраивает его в мобильный, ноутбук или КПК только ленивый производитель. Да и то – по соображениям маркетинга. Словом, Bluetooth используют практически все. Но лишь единицы знают, что, используя технологию, рискуют выдать свои конфиденциальные данные. Но начнем все-таки с хорошего!
Трюк 1: Используем BT для удаленного доступа к компьютеру
Как-то для проведения презентации я пригласил одну длинноногую подругу – нажимать кнопку «пробел», чтобы перелистывать слайды в Power Point. Это удовольствие стоило мне недешевого обеда и двух часов пустых разговоров с Barbie girl. После этого я твердо решил: в следующий раз проблему отсутствия пульта ДУ я обойду по-другому. И обошел, воспользовавшись мобильником! Да-да, прямо с телефона можно перелистывать слайды, управлять музыкой – и делать еще бог знает что. Главное, чтобы на мобильнике и компьютере были установлены BT-модули. Мало того, что сэкономишь деньги и силы, так еще и выглядеть будешь непростительно модно. Показать такой фокус способен каждый, кто заюзает утилиту Bluetooth Remote Control, не столь давно обновившуюся до версии 3.0. Она позволяет управлять компьютером с экрана любого мобильного телефона. Все очень просто. На компьютер ставится специальная серверная часть, а на телефон – программа-клиент, написанная на Java (требуется MIDP 2.0). После настройки нехитрой схемы ты сможешь дистанционно управлять мышкой и клавиатурой компа. И самое главное – получишь доступ к удаленному рабочему столу. Настоящий Remote Desktop прямо с экрана мобильного телефона! Ну, а с длинноногой подругой время можно провести куда более удачно. Bluetooth Remote Control пригодится и здесь: чтобы поставить романтическую музыку :).
Трюк 2: Контроль доступа с помощью BT
Если ты работаешь в комнате, где вместе с тобой сидит с десяток коллег, тебе наверняка приходилось блокировать компьютер, когда уходишь в другое помещение. А что? Не успеешь отойти, как кто-нибудь уже покопается на твоем харде. Расклад не самый приятный. В общем, лочить компьютер нужно обязательно, вопрос в том – как? Можно использовать стандартные возможности винды и по десять раз на дню вводить длиннющий пароль. Или же делать это красиво с помощью технологии Bluetooth. Все просто, как дважды два. Отходишь от компьютера – и он тут же блокируется. Возвращаешься обратно – и лока как не бывало! Единственное условие: как в компьютере, так и в мобильном телефоне должен быть установлен модуль Bluetooth, а в системе заинсталена программа LockItNow (ты легко можешь написать такую программу и сам, у нас была целая статья). Впрочем, приятелям и коллегам можно рассказывать о телепатических возможностях, а потом продавать секрет за деньги :). Кстати говоря, если под рукой BT-модуля нет, то его можно заменить телефоном, который поддерживает «синий зуб» (подключи по COM-порту).
Трюк 3: Снифаем BT-трафик из эфира
Мастерство начинается с понимания. Не возникало ли у тебя когда-нибудь желания посмотреть внутрь протокола и узнать, как происходит обмен данными через «синий зуб»? Прослушивание трафика Bluetooth может выполняться только «в себя», то есть выполняется перехват исходящего и входящего трафика узла, на котором ты отдал команды. В этом деле немаловажное значение имеет так называемый Host Controller Interface (HCI), который позволяет обращаться к передатчику. HCI-узел обычно подключается к узлу драйвера устройства Bluetooth (входящий поток) и к узлу L2CAP (исходящий поток). Windows платформа по умолчанию такой возможности не предоставляет. Однако сторонними разработчиками были выпущены специальные драйвера, которые позволяют переводить стандартный донгл в сниффер. Традиционно показательной в этом плане является работа FTS4BT Wireless Bluetooth Protocol Analyzer, стоящего бешеные деньги. Продукт цепляет тем, что поддерживает новый Bluetooth v2.0 + EDR, на базе которого работают современные устройства и, более того, способен на лету декодировать весь трафик из эфира, аккуратно отсортировывая аудио, данные протоколов приложений и многое другое. Понятно, что для снифинга (да и вообще) наиболее актуальны USB-донглы класса 1, радиус действия которых достигает ста метров.
Трюк 4: Работаем с BT-адаптером напрямую
Долгое время Bluetooth стеки для Windows предоставляли настолько скудные возможности, что программисты просто обходили эту платформу стороной. Этим объясняется, что большинство программ для серьезных забав c «синим зубом» разрабатываются под никсовую платформу. Некоторые из хитрых приемов мы разберем именно на это платформе, а именно FreeBSD (напомню, что на диске прошлого номера мы выкладывали свежий 7.0 релиз этой ОС). Сама технология Bluetooth официально стала поддерживаться на ней только с 5-ой ветки на базе подсистемы Netgraph. Радует, что большинство USB-адаптеров совместимы с драйвером ng_ubt (его необходимо завести перед подключением устройства). Попробуем?
Подключаем устройство: kldload ng_ubt
Копируем сценарий подгрузки стека в удобное место: cp /usr/share/examples/netgraph/bluetooth/rc.bluetooth /usr/local/etc/rc.bluetooth
Копируем сценарий подгрузки стека в удобное место и запускаем: sh /usr/local/etc/rc.bluetoots start ubt0
Теперь хочу познакомить тебя с утилитой hccontrol. Это одна из основных программ для работы с BT-модулем. Именно она выполняет все операции, связанные с интерфейсом HCI, и имеет следующий синтаксис: hccontrol –n <имя_hci_узла> <команда>. Проверим функциональность нашего устройства, просканиров эфир на наличие устройств:
hccontrol –n ubt0hci Inquiry
Как результат, утилита выведет информацию о найденных устройствах, в том числе их MAC-адреса. Надо заметить, что каждое из устройств Bluetooth, будь то хедсет или обыкновенный телефон, представляет некоторый набор сервисов. Базовый перечень включает в себя: CIP (Common ISDN Access), CTP (Cordless Telephony), DUN (dial-up networking), FAX (FAX), FTRN (Obex File Transwer), HSET (Headset), NAP (Network Access Point). Чтобы выяснить, какие сервисы предоставляет то или иное устройство, используется запрос на специальном протоколе SPD (Service Descovery Protocol). Сервер SPD работает непосредственно на машине-хосте и является исключительно информационной составляющей (повлиять на него невозможно). Определить, какие сервисы предоставляют найденные устройства, можно с помощью соответствующей утилиты:
# spdcontrol -a <MAC-адрес устройства> browse
Трюк 5: Находим скрытые устройства
Итак, эфир мы просканировали и даже выяснили, какие сервисы доступны на активных устройствах. Но вот загвоздка! Некоторые девайсы никак не выдают своего присутствия, поскольку находятся в режиме «Undiscoverable mode» и не отвечают на широковещательные запросы. По настройкам своего телефона ты наверняка знаешь о подобной опции безопасности. Однако обнаружить такие устройства все-таки можно!
Самый известный прием их обнаружения – тупой перебор MAC-адресов, то есть последовательная посылка запросов на разные адреса из определенного диапазона. Для этого нужно использовать очень простую утилиту Redfang, которая перебирает последние шесть байт адреса устройства и таким образом обнаруживает спрятавшиеся устройства.
Другой вариант – это использовать пассивные методики: перевести свое устройство в режим ожидания, при этом назначить сети какое-нибудь привлекательное имя:
hciconfig hci0 name BT_YANDEX hciconfig hci0 down hciconfig hci0 up hcidump -V | grep bdaddr
В результате отобразятся все входящие соединения, среди которых могут запросто оказаться товарищи со скрытыми идентификаторами.
Трюк 6: Перехватываем из эфира разговоры по гарнитуре
Одна из основных угроз радиотехнологий состоит в том, что данные можно перехватить. Первое, что приходит в голову, касаемо Bluetooth – прослушать разговоры людей, использующих гарнитуру. И зачастую это реально! На хакерском фестивале What the Hack в Нидерландах специалисты из группы Trifinite продемонстрировали, как при помощи ноутбука с Linux, специальной программы и направленной антенны можно подслушать, о чем говорит через Bluetooth-гарнитуру водитель проезжающего автомобиля. Группа разработала программу Car Whisperer («Автомобильный шептун»). Возможности программы относительно невелики: прослушать можно только тех, кто забыл сменить заводские пароли доступа к Bluetooth наподобие «0000» или «1234». Но таких бедолаг, поверь, очень и очень много! «Шептун» способен вклиниться и успешно пройти «pairing» устройств, получив информацию, передаваемую с каркита или хедсета на мобилку. Хочу обратить внимание: утилита позволяет не только получить информацию, передающуюся между хедсетом и мобилой, но и инжектить туда свою. Мы решили проверить возможности этой программы, скачав Car Whisperer с сайта разработчиков.
Перед началом операции рекомендуется изменить класс своего устройства, особенно если программа будет использоваться с компьютера:
hciconfig адаптер class 0x500204 # 0x500204 - это класс «phone»
В противном случае некоторые «умные» девайсы могут заподозрить неладное. Смотрим синтаксис утилиты, который выглядит следующим образом:
./carwhisperer «что внедряем в линию» «что захватываем из линии» «адрес устройства» [канал]
Мы взяли внедряемый файл прямо из папки утилиты, а в качестве выходного указали out.raw:
На выходе получаем файл out.raw. Прослушать его в чистом виде нельзя: необходимо преобразовать в аудио формат, для чего потребуется дополнительная утилита. Подойдут довольно многие аудио конвертеры, например SoX:
Кроме прослушивания, можно войти в систему, просмотреть телефонную книгу и воспользоваться другими возможностями «свободных рук» с Bluetooth. Принцип такой: сначала осуществляется поиск активных устройств и проверка на предмет сервиса HS (Head Set). Далее исследуется MAC-адрес устройства и производится попытка подключения с использованием стандартного ключа. Если коннект установлен, то с устройством можно делать все, что угодно (в пределах доступного набора AT-команд).
На практике это выглядит следующим образом. Сначала осуществляется поиск всех активных гарнитур с помощью команды «sdptool search HS», которая выдает примерно такой ответ:
Inquiring ... Searching for HS on 00:0A:3A:54:71:95 ... Service Name: Headset Service RecHandle: 0x10009 Service Class ID List: "Headset" (0x1108) "Generic Audio" (0x1203) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 7 Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "Headset" (0x1108) Version: 0x0100
Далее осуществляется попытка открыть RFCOMM соединение на SCO audio channel с помощью команды «rfcomm connect 2 00:0A:3A:54:71:95 1» и посылка нужных AT-команд. Приведу небольшую статистическую заметку о данных авторизации на некоторые модели беспроводных гарнитур:
Кстати говоря, тот же принцип может использоваться для несанкционированного подключения и ко всем остальным устройствам. При помощи AT-команд и протокола RFCOMM можно, к примеру, прочитать SMS-сообщение или даже отправить его с чужого телефона на платный номер, поставив владельца девайса на деньги. Будь бдителен!
Трюк 7: DDoS BT-устройств
Подход традиционен. DDoS реально провести, когда хостовый девайс («master») выполняет работу, во много раз превосходящую клиентскую. Такую ситуацию называют атакой на отказ в обслуживании (Denial Of Service). Она может подвесить телефон или привести к быстрой разрядке батарейки. Провести атаку можно несколькими способами. Начнем со стандартных средств. Самое очевидное – пинговать девайс пакетами большого размера. Сделать это можно, указав утилите l2ping в качестве параметра «-s» флаг:
# l2ping -s 10000 -b "МАС адрес"
Сама программа, как ты уже понял, является родственником ping в bluetooth среде и служит для проверки связи и наличия соединения. Другой способ, принципиально отличающийся от первого, состоит в использовании приема «fuzzing» – своеобразной техники-лотереи, потому как заранее неизвестно, что произойдет. Это новое веяние в выявлении уязвимостей в продуктах без анализа исходных кодов. Полагается техника только на интерактивное общение с объектом на понятном для него языке, но с абсолютно хаотичными аргументами и значениями-переменными. Хакерской задачей будет сделать так, чтобы видимое название телефона состояло из достаточно большого числа элементов. При обнаружении его «master'ом» в 70% случаев происходит переполнение или отказ в обслуживании:
hciconfig hci0 name `perl -e 'print "ash" x 3137'` # Команда для линукса hccontrol –n адаптер change_local_name “новое имя”) # пример для FreeBSD
Многие телефоны по-прежнему не могут переварить файлы-бомбы. Вот простая реализация подобного приема.
Сначала готовят «бомбу». Известный пример: echo `perl -e 'print "skvz" x 3137'` > file
После чего используют модифицированную утилиту для взаимодействия с OBEX – USSP PUSH (xmailserver.org/ussp-push.html) ./obextool push file 00:0A:3A:54:71:95 `perl -e 'print "skvz" x 3137'` 3
Полную версию статьи читай в апрельском номере Хакера! На нашем диске ты найдешь полные версии программ, описанных в статье, а также полную подборку документации Bluetooth и уязвимостей в этой технологии.
xakep.ru
BLE под микроскопом / Habr
BLE под микроскопом. Часть 1
часть 2, часть 3 В мире существует большое разнообразие способов передачи информации «по воздуху». В последнее время всё большую популярность обретает формат BLE. Сегодня мы рассмотрим особенности этого протокола и поговорим о том, почему же он так востребован в современном мире. Так же мы рассмотрим средства разработки и особенности работы вспомогательных приложений на windows, android от фирмы Nordic.
Зачем придумали BLE
Как только люди научились передавать информацию без помощи проводов, встала задача передачи данных, используя устройство с батарейным питанием. Проблема в том, что ему должно помогать другое устройство, которое будет постоянно либо прослушивать эфир, либо передавать данные. Проблема возникает в том случае, если и приемник и передатчик имеют батарейное питание. В этом случае приходит на помощь BlueTooth Low Energy (BLE). Он впервые вошел в протокол BlueTooth 4.0. На данный момент уже вышла спецификация BlueTooth 5.0, однако мы будем рассматривать в основном формат BlueTooth 4.0, иногда указывая нововведения для формата 5.0. В качестве одного из устройств обычно выступает смартфон, а второго — батарейный гаджет. Андроид поддерживает BLE с версии 4.3.
Для передачи и приема данных необходима энергия, поэтому поднимают скорость передачи данных, что бы в единицу времени успеть передать больше информации. Для этого в BLE принята скорость передачи информации в 1 Mbit/c. Однако не только скорость передачи данных важна. Самым важным в BLE является то, что устройства связи умеют переходить в синхронный режим работы. Другими словами, устройства спят 99% времени, потом просыпаются на очень короткое время, обмениваются информацией и опять засыпают. Однако перед тем как войти в этот режим, необходимо пройти процедуру синхронизации. Для этого существует режим «advertising». Его мы рассмотрим позднее. А перед тем как погрузится в описание протокола BLE, хотелось бы затронуть тему инструментальных средств, для работы с протоколом BLE.
Инструменты
Для того чтобы разобраться во всем многообразии посылок и запросов нам необходимы инструментальные средства. С их помощью мы смогли бы увидеть содержимое посылок и проконтролировать механизм взаимодействия между устройствами. Для этих целей мы будем использовать nRF51822 Development Dongle (PCA10000), программу сниффера и, для отображения результатов, хорошо известную всем сисадминам программу «Wireshark». Программы бесплатные, но достать сам донгл может оказаться проблемой. Однако без инструментария, заниматься разработкой таких сложных устройств будет весьма проблематично. На первом этапе может помочь программа на андроиде «nRF Connect». Она позволяет сканировать эфир, находить и разбирать посылки как присоединяемых, так и не присоединяемых устройств. У Nordic-a есть и ещё инструменты для разработки BLE устройств, но нам будет достаточно этих. На российском рынке присутствует представитель компании Nordic – фирма «Rutronik» (rutronik24.com, rutronik.com). Через её представителей можно приобрести необходимые микросхемы, отладочные платы и т.д. Кроме того, в интернете имеется форум, на котором представители фирмы отвечают на вопросы разработчиков.
Сначала вкратце поговорим о том, как пользоваться нашими инструментами. Вставим в разъем USB наш донгл и запустим программу ble_sniffer_win. Мы увидим следующее окно.
Если донгл увидит BLE устройства, то внизу появится информация о них. В данном случае, в эфире присутствует одно устройство с именем «TestBLE». Так же отображается его уровень сигнала, MAC адрес и то, что этот адрес является случайным (random). Забегая вперед, хочется заметить, что здесь кроется один из подводных камней для разработчиков. Некоторые телефоны (LG G3S, Samsung S6) работают только с устройствами, MAC адреса которых зарегистрированы (public).
У сниффера есть два режима работы. Если мы нажмем кнопку «w» на клавиатуре, то запустится программа «Wireshark». Сниффер будет сканировать три рекламных канала и выдавать информацию обо всех устройствах объявления. Если мы сначала нажмем цифру на клавиатуре, такую же, как напротив интересующего нас устройства, то включится другой режим работы. В нем сниффер будет отслеживать трафик только одного выбранного устройства, причем как на каналах объявления, так и на рабочих каналах
Используя «Wireshark», легко получить всю информацию о посылке. Программа состоит из трех окон. Сверху отображаются все принятые посылки, во втором окне – детальная информация о выбранном пакете, а в третьем окне отображается сам фрейм. В свою очередь, во втором окне имеется три блока информации. В самом верхнем – временные значения выбранного фрейма, во втором (Nordic BLE sniffer meta) – общая информация о фрейме, такие как уровень сигнала, частотный канал и некоторые другие. Самым интересным для нас является третий блок информации (Bluetooth Low Energy Link Layer). В нем можно посмотреть разбор самого фрейма. В дальнейшем мы будем говорить именно об этом блоке информации. Сначала мы разберем формирование рекламных пакетов.
Advertising
Посмотрим на рисунок ниже. На нем показаны распределения каналов по частотам для BLE. Рекламные каналы — это 37 (2402Мгц), 38 (2426Мгц) и 39 (2480Мгц) каналы. Такое распределение рекламных каналов выбрано не случайно. Во-первых, рекламные каналы попадают между каналами Wi-Fi (1, 6, 11 каналы), что позволяет даже при малом уровне мощности, быть услышанными другими устройствами. Во-вторых, когда мы разносим рекламные каналы далеко друг от друга, мы получаем гарантированную доставку сообщения. Это связано с интерференцией сигнала в помещениях. Известно, что в результате отражения радиосигналов от стен, может получиться ситуация, когда приемник и передатчик не слышат друг друга. Однако в нашем случае, когда передача рекламных пакетов идет последовательно на трех разных каналах, максимально удаленных друг от друга по частоте, этот эффект отсутствует. Рассмотрим теперь формат самого пакета advertising. В спецификации длина данных измеряется в октетах. Для нас это байты. Самым первым байтом идет преамбула. Она состоит из чередующихся нулей и единиц. Это нужно для синхронизации передатчика и приемника. Следом за преамбулой передаются четыре байта адреса доступа(Access Address). После него идет пакет данных (PDU). В спецификции 4.0 максимальная длина PDU составляет 39 байт, а в версии 5.0 длина пакета данных увеличена до 257 байт. В конце каждого рекламного пакета идут три байта контрольной суммы (CRC). Здесь надо заметить, что Access Address служит для того, что бы устройства понимали, для кого предназначен BLE пакет. Это своеобразный код доступа. Если этот код доступа не знаком устройству, то пакет игнорируется. На всех рекламных каналах, в отличии от рабочих, он одинаков (0x8E89BED6), поэтому все устройства на каналах объявления видят друг друга.
Рассмотрим теперь формат блока данных PDU. В самом начале пакета PDU идет заголовок длинной 16 бит. В нем содержится тип пакета, флаги TxAdd, RxAdd, а так же длина всего поля PDU в байтах. RFU – это зарезервированные поля. Для спецификации 4.0 это выглядит так:
Заголовок: Для спецификации 5.0 увеличена длина поля Payload до 255 байт, а так же добавлены новые поля в заголовок: Заголовок: Поле TxAdd как раз и отвечает за то, как будет видеться MAC адрес устройства. Если это поле равно единице, то МАС устройства будет виден как random. Рассмотрим теперь какие бывают типы advertising пакетов. На рисунке приведен их список для спецификации 4.0. В формате 5.0 их число увеличено, но мы будем рассматривать то, что есть в обоих форматах. ADV_IND – это ненаправленные пакеты, которые рассылают устройства, готовые к присоединению. Большинство гаджетов при рассылке рекламных пакетов используют именно их.
ADV_DIRECT_IND — направленные рекламные пакеты присоединяемых устройств. Присоединять и обмениваться данными с ними может только конкретное устройство с заранее известным МАС адресом.
ADV_NONCONN_IND – рекламные пакеты, которые рассылают не присоединяемые устройства. Это маяки (beacon). Обычно они служат для получения какой-либо справочной информации. Например, при входе в магазин могут информировать об акциях. Кроме того, измеряя уровень сигналов от маяков и зная карту их расположения, можно осуществить автоматическое позиционирование внутри помещений. Это актуально для автоматизированных складов.
SCAN_REQ, SCAN_RSP, CONNECT_REQ – пакеты, которыми обмениваются присоединяемое устройство и телефон в процессе установления синхронного соединения. Эти пакеты и сам процесс присоединения мы рассмотрим во второй части статьи.
ADV_SCAN_IND – эти пакеты рассылает не присоединяемое устройство, которое может предоставить дополнительную информацию в ответ на запрос при сканировании.
Во второй части статьи мы рассмотрим различные режимы работы BLE устройств, а так же механизм «присоединения» устройства к телефону и переход на рабочие частоты.
Печерских Владимир
habr.com
Встречайте Bluetooth 5.0 — в 4 раза дальше и в 2 раза быстрее / Habr
Исполнительный директор Bluetooth SIG сообщил о новой версии стандарта. Компания прислушалась к маркетологам и, видимо, собирается для упрощения назвать версию Bluetooth 5 без обычной точки. Интереснее то, что новая версия будет предоставлять вдвое более быструю связь, а радиус действия увеличится в четыре раза по сравнению с Bluetooth 4.2. Другое важное обновление связано с функцией широковещательных пакетов установки соединения(advertising packet): Bluetooth-устройства смогут отправлять увеличенные фрагменты информации гаджетам, с которыми они не сопряжены.
АПД: исправлены показатели — по сообщению Bluetooth SIG, в новости была ошибка: радиус увеличится в 4 раза, а скорость — в 2 раза, а не наоборот, как в первой рассылке.
Технологию Bluetooth начали разрабатывать в 1994 году в качестве беспроводной замены кабелям RS-232. Это была Ericsson, и шведские корни компании повлияли на название и логотип: BlueTooth произошло от имени Харальда I Синезубого, а логотип складывается из двух скандинавских рун «хаглаз» и «беркана» . Датский король удостоился такой чести благодаря своему второму прозвищу — «Объединитель».
Bluetooth используют для передачи данных между персональными компьютерами и периферийными устройствами, игровыми приставками и джойстиками, между телефонами и гарнитурами, наушниками, умными устройствами. Использование Bluetooth привело к тому, что сейчас в России есть целое поколение людей, помнящих, как в школе они передавали музыку и картинки с телефона на телефон.
Технология завязана на использовании радиоволн в ISM-диапазоне (Industry, Science and Medicine), она использует свободный от лицензирования диапазон 2,4-2,4835 ГГц, и в нём применяется метод расширения спектра со скачкообразной перестройкой частоты (Frequency Hopping Spread Spectrum, FHSS). Благодаря псевдослучайной последовательности переключения между частотами возможна работа нескольких устройств друг рядом с другом без помех.
Первая версия Bluetooth 1.0 была готова в 1998 году, но проблемой была плохая совместимость между продуктами различных производителей. Версия 1.1 исправила ряд ошибок и получила индикацию мощности принимаемого сигнала. Проблему с совместимостью решила стандартизация версии Bluetooth 1.2 рабочей группой IEEE. Скорость версии 2.0, выпущенной в 2004 году, достигала 2,1 Мбит/с благодаря технологии ускорения передачи данных Enhanced Data Rate (EDR), а базовая скорость составляла 1.1 Мбит/с. В 2007 году 2.1 мог запрашивать характеристики устройства для фильтрации при сопряжении и экономить батарею. Bluetooth 3.0 с технологией HS в 2009 году мог в теории разогнаться до 24 Мбит/с.
Ericsson T39 — первый телефон с поддержкой Bluetooth, 2000 год
До последнего момента передовой версией была Bluetooth 4.2. Множество носимых устройств без поддержки смартфоном этой версии просто не будут работать. На смену 4.2 приходит Bluetooth 5. ArsTechnica со ссылкой на письмо исполнительного директора Bluetooth SIG Марка Пауэлла пишет о том, что скорость нового стандарта по сравнению с 4.2 увеличится в 2 раза, радиус действия — в 4 раза, а также даст «значительно больше возможностей для широковещательных пакетов». На момент написания статьи само письмо было недоступно. Уже сейчас в версии 4.2 такие пакеты имеют размер 47 байт, из которых 31 доступны для записи данных. Пока неизвестно, насколько больше они станут в новой версии.
Возможность передавать пакеты неопределенным адресатам без установки соединения широко используется так называемыми "маячками" — миниатюрными передатчиками, которые периодически передают широковещательные пакеты, которые могут содержать информацию о местоположении, заменяя систему GPS внутри зданий, рекламу и другие привязанные к локальному местоположению данные, например, информацию об экспонатах выставки.
Возможно, первые устройства с Bluetooth 5.0 появятся в начале 2017 года. Увеличение скорости и энергоэффективности используют в новых гаджетах для «умного дома» и носимых устройствах.
habr.com
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
Нам нужно, чтобы отправитель:
Мог найти все устройства, которые находятся рядом и поддерживают наш сервис.
Мог прочитать реквизиты.
И мог отослать сообщение получателю о том, что успешно отправил ему деньги.
Получатель, в свою очередь, должен уметь сообщать окружающим отправителям, что у него есть сервис с нужными данными, и уметь получать сообщения от отправителя. Как происходит процесс перевода денег по реквизитам у нас в банке, думаю, описывать не стоит. А теперь попробуем это реализовать.
Для начала нужно придумать названия нашего сервиса и характеристик. Как я говорил, это 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
Мы, счастливые, что всё исправили, побежали скорее передавать в тестирование, а они нам почти сразу возвращают: «Ваши модные фоточки не работают. Они все недогруженные приходят». Мы начали пробовать, и правда, иногда, на разных устройствах, в разное время приходят битые фотографии. Начали искать причину.
И тут снова увидели прежнюю ошибку. Сразу подумали, что дело в разных версиях. Но после полного удаления старой версии со всех тестовых устройств ошибка всё равно воспроизводилась. Мы взгрустнули…
Начали искать инструмент для отладки. Первое, что нам попалось, это 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
bluetooth 2.0 Википедия
У этого термина существуют и другие значения, см. Синий зуб.
Bluetooth
Уровень (по модели OSI)
Физический
Назначение протокола
Энергоэффективная беспроводная связь устройств на расстоянии до 100 м (с версии 5.0 до 400 м)
Спецификация
IEEE 802.15.1
Разработчик
Bluetooth SIG
Bluetooth (от слов англ. blue — синий и tooth — зуб; произносится /bluːtuːθ/), блюту́с[1][2] — производственная спецификация беспроводных персональных сетей (Wireless personal area network, WPAN). Bluetooth обеспечивает обмен файлами и информацией между такими устройствами, как персональные компьютеры (настольные, карманные, ноутбуки), мобильные телефоны, интернет-планшеты, принтеры, цифровые фотоаппараты, мышки, клавиатуры, джойстики, наушники, гарнитуры и акустические системы на надёжной, бесплатной, повсеместно доступной радиочастоте для ближней связи. Bluetooth позволяет этим устройствам сообщаться, когда они находятся друг от друга в радиусе около 10 м в старых версиях протокола и до 400 м начиная с версии Bluetooth 5. Дальность сильно зависит от преград и помех, даже в одном помещении.
Название[ | ]
Слово Bluetooth — адаптация на английский язык датского слова «Blåtand» («Синезубый»). Так прозвали когда-то короля викингов Харальда I Синезубого, жившего в Дании около тысячи лет назад. Прозвище этот король получил за тёмный передний зуб. Харальд I правил в X веке Данией и частью Норвегии и объединил враждовавшие датские племена в единое королевство. Подразумевается, что Bluetooth делает то же самое с протоколами связи, объединяя их в один универсальный стандарт[3][4][5]. Хотя «blå» в современных скандинавских языках означает «синий», во времена вики