Следующая новость
Предыдущая новость

Юзай новый блютус, BLE-пять! Изучаем и кодим под новый скоростной протокол на примере Arduino

09.01.2018 13:26
Юзай новый блютус, BLE-пять! Изучаем и кодим под новый скоростной протокол на примере Arduino

Содержание статьи

  • Обзор стандарта Bluetooth 5
  • Высокая пропускная способность данных
  • Увеличение пропускной способности вещания
  • Улучшенное сосуществование с улучшенным чередованием каналов
  • BLE Mesh — пока только 4.0
  • Выбор железа
  • SoftDevice
  • Отладочная плата
  • Первый полет
  • Важная теория
  • Установка SDK
  • Тестируем дальность и пропускную способность BLE5
  • Заключение
  • Музыкальная пауза от автора

С ростом количества сетевых беспроводных устройств (охранные и пожарные сигнализации, телемедицина, мониторинг окружающей среды и множество других) появляются новые и совершенствуются старые стандарты и протоколы беспроводной связи. Разные компании и DIY-разработчики используют для своих устройств и сетей разные стандарты передачи данных, например ZigBee, Z-Wave, Bluetooth 4, Wi-Fi, 6LoWPAN, Thread, ANT или собственные проприетарные протоколы. Не так давно вышла новая спецификация стандарта радиосвязи для обмена данными по воздуху Bluetooth 5. В этой статье я на примере программирования новейшего микроконтроллера покажу преимущества нового стандарта.

На правах любящего логику «программиста с паяльником» ???? начну статью с плана.

  1. Обзор стандарта. Преимущества пятой версии в сравнении с четвертой.
  2. Выбор железа. Приемник, передатчик.
  3. Описание отладочной платы и микроконтроллера. В этой части я расскажу о параметрах выбранного микроконтроллера и отладочной платы.
  4. Начало работы с SDK (software development kit) под выбранный микроконтроллер. Здесь описывается, как начать разрабатывать простые радиоприложения под Bluetooth Low Energy четвертой версии на нашей отладочной плате. Чтобы мы привыкли к новому набору инструментов и на конкретном примере научились общаться по Bluetooth c Android-телефоном.
  5. Тест нового стандарта Bluetooth 5. В этой части мы сделаем две прошивки для двух отладочных плат и рассмотрим новые режимы радиопередачи по Bluetooth 5.

Обзор стандарта Bluetooth 5

Что мы знаем о новом стандарте? Мы знаем, что он обратно совместим с четвертыми версиями спецификации BLE (Bluetooth Low Energy, Bluetooth Smart), то есть с версиями 4.0, 4.1, 4.2, и позволяет новым устройствам с Bluetooth 5 общаться со старыми девайсами (разумеется, новые фичи будут недоступны). В четвертых версиях BLE, в полном соответствии с названием, позволял проектировать устройства с гораздо меньшим потреблением, чем Bluetooth Classic. Но все остальное, кроме энергопотребления, было не очень — я про скорость, объем передаваемых данных в одном пакете и дальность. Все эти свойства улучшает Bluetooth 5.
Более подробно можно узнать на официальном сайте Bluetooth 5, а мы сейчас кратко остановимся на главных преимуществах пятой версии.

WWW

Все новые Bluetooth-спецификации публикуются здесь.

Высокая пропускная способность данных

Вместе с усовершенствованиями, введенными в Bluetooth 4.2, которые позволяли увеличить объем данных в одном пакете, и еще большим увеличением возможного объема данных в пакете в Bluetooth 5 (DLE) общая пропускная способность стала впятеро выше, чем исходный уровень Bluetooth 4.0!

Теперь чистая пропускная способность данных без учета накладных расходов, таких как адресация, может достигать 1,4 Мбит/c. Зачем нужна такая высокая скорость? Согласен, дурацкий вопрос, даже не знаю, зачем я его придумал. ???? Пользователей-аудиофилов это порадует скоростью передачи качественной музыки, а для нас, гиков, открывает возможность гораздо быстрее обновлять прошивку устройства «по воздуху» (OTA-DFU). Всего же благодаря изменениям, внесенным в физический (PHY) слой для работы Bluetooth-радио, стали доступны четыре скорости:

  • 2 Мбит/с;
  • 1 Мбит/с;
  • 500 Кбит/с;
  • 125 Кбит/с.

Уверен, что с первыми двумя скоростями тебе уже все ясно, но вот вопрос: зачем при таком богатстве нужны две «нижние передачи»?

А дело в том, что при низких скоростях и связанной с ними LE закодированной обработке с использованием прямой коррекции ошибок (FEC) становится легче отказаться от повторной передачи данных в окружающем шуме. Короче говоря, чувствительность улучшается. И не надо при высоком уровне шума повторно запрашивать пакеты данных (маленький квадрокоптер может улететь дальше от пульта управления).

Увеличение пропускной способности вещания

Для снижения загрузки вещательного (advertisment, рекламного :)) канала и решения проблемы перегрузки каналов предлагаются вещательные расширения (они же «рекламные расширения»).

Расширение длины данных и новый PHY-уровень означают, что длина пакетов увеличивается с точки зрения фактических данных и времени, в течение которого они занимают канал. Поскольку существуют только три рекламных канала, эти каналы вскоре могут перегружаться вещательными пакетами с большими объемами данных при более низких скоростях передачи в эфире, таких как 125 Кбит/с.

Рекламные расширения смягчают эту потенциальную проблему.

Улучшенное сосуществование с улучшенным чередованием каналов

Bluetooth 5 также предоставил усовершенствованный алгоритм секвенирования каналов (CSA # 2) для улучшения псевдослучайного последовательного переключения каналов. CSA # 2 повысит производительность сосуществования разрешенных устройств при наличии вокруг Wi-Fi и других Bluetooth-устройств. Все SoCs серии nRF52 имеют возможность поддерживать CSA # 2.

BLE Mesh — пока только 4.0

Ячеистая топология — сетевая топология компьютерной сети, построенная на принципе ячеек, в которой радиостанции сети соединяются друг с другом и способны принимать на себя роль коммутатора для остальных участников. Эта организация сети достаточно сложна в настройке, однако при такой топологии достигается высокая отказоустойчивость. Как правило, узлы соединяются по принципу «каждый с каждым».
Таким образом, большое количество связей обеспечивает широкий выбор маршрута следования трафика внутри сети, а значит, обрыв одного соединения не нарушит работу сети в целом. Но BLE Mesh-сети рассчитаны (по крайней мере пока) на Bluetooth стандарта четвертых версий.

Выбор железа

На момент написания этой статьи пятую версию протокола поддерживали смартфоны Samsung и Sony и в свободной продаже было довольно мало BLE5-совместимых устройств.

Юзай новый блютус, BLE-пять! Изучаем и кодим под новый скоростной протокол на примере Arduino

Плата nrf52840 Preview DK

Поэтому, чтобы оценить все возможности Bluetooth 5, я решил взять две отладочные платы с микроконтроллером nRF52840 компании Nordic Semiconductor. Почему именно их? Просто Nordic Semiconductor давно славится своими разработками именно в области Bluetooth-микросхем. Кроме того, их разработки традиционно отличаются вменяемой ценой и богатой документацией. Чипы серии nRF52 и конкретно nRF52840 представляют собой систему на кристалле (SoC, System on a Chip) и, согласно документации, мультипротокольны — могут работать со стандартами Bluetooth 5, Bluetooth Low Energy, ANT, 802.15.4, 2.4GHz RF. Поддерживают они и NFC.

Юзай новый блютус, BLE-пять! Изучаем и кодим под новый скоростной протокол на примере Arduino

INFO

Все многопротокольные SoCs серии nRF52 поддерживают перечисленные фичи. Кроме того, nRF52840 имеет улучшенную выходную мощность, что вместе с новыми функциями Long Range (увеличение расстояния вещания) переполняет сердце разработчика безотчетной радостью. ????

NRF52840 — это усовершенствованный многопроцессорный SoC, идеально подходящий для сверхмалых беспроводных приложений. Имеет полную аппаратную поддержку Bluetooth 5 (включая увеличенную дальность вещания). Софт nRF52840 крутится на 32-битном процессоре ARM Cortex-M4F (64 МГц достаточно каждому (с) почти Билл Гейтс) с 1 Мбайт флеш-памяти и 256 Кбайт ОЗУ на чипе. Поддерживает инструкции DSP (цифровая обработка сигнала), вычисления с плавающей точкой (FPU).

Поддерживает несколько протоколов, включая Bluetooth с низким энергопотреблением, ANT (кто-нибудь использовал этот протокол? :)), 802.15.4 и 2.4GHz.

NRF52840 SoC использует управление питанием, чтобы максимизировать энергоэффективность приложений и время автономной работы. Запитать чип можно от напряжения постоянного тока в диапазоне от 1,7 до 5,5 В.

EasyDMA, как и все DMA (прямой доступ к памяти), позволяет разгрузить ЦП нашего микроконтроллера, например чтобы передавать потоки данных из АЦП в UART без участия ядра.

В SoC есть также мощный криптографический сопроцессор на кристалле (ARM Cryptocell-310), обеспечивающий криптографические функции и услуги для ускорения операций, экономии времени обработки процессором данных и сокращения потребления энергии. Он включает в себя настоящий генератор случайных чисел (TRNG) и поддерживает широкий спектр асимметричных, симметричных и хеширующих криптографических сервисов. NFC также поддерживается в чипе.
NRF52840 имеет встроенную поддержку USB 2.0 (full speed) и встроенное регулирование питания, позволяющее напрямую подключаться к USB-хостам для передачи данных.

Чип совместим с существующими сериями nRF52, nRF51 и nRF24 Series от Nordic Semiconductor.

SoftDevice

Стеки беспроводных протоколов от Nordic Semiconductor известны как SoftDevices. NRF52840 поддерживается S140 SoftDevice.
S140 SoftDevice — это поддерживающий Bluetooth 5 (пока alpha).

Отладочная плата

Отладочную плату на основе этого микроконтроллера я выбрал под стать чипу, вот она: nRF52840 Preview DK Development Kit for nRF52840. Между прочим, к ней прилагается NFC-антенка!

NRF52840 PDK — это универсальный комплект для разработки плат для Bluetooth 5, Bluetooth с низким энергопотреблением, ANT, 802.15.4 и 2.4GHz с использованием nRF52840 SoC. Этот комплект поддерживает разработку для SoC nRF52840.

Набор аппаратно совместим с Arduino Uno Revision 3, позволяет использовать сторонние шилды, совместимые с этим стандартом. Антенна NFC может быть подключена к набору, чтобы активировать функциональность тега NFC. Комплект обеспечивает доступ ко всем входам и выходам через интерфейсы и имеет четыре светодиода и четыре кнопки, которые программируются пользователем.

Он поддерживает стандартную цепочку инструментов разработки Nordic Software Development с использованием Keil, IAR и GCC. Опции программы / отладки в комплекте — это Segger J-Link OB.

Кроме всего прочего, на основе младшего чипа серии nRF52832 уже существуют платы для платформы Arduino, например Arduino Primo. Почему это хорошо? Да потому, что это избавляет тебя от кодинга на С.

Продолжение статьи доступно только подписчикам

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

Подпишись на журнал «Хакер» по выгодной цене!

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

1 год

5590 р.

Экономия 1400 рублей!

1 месяц

700 р.

25-30 статей в месяц

Уже подписан?

Источник

Последние новости