Особенности работы с приемопередатчиком NRF24L01+ | Статья в сборнике международной научной конференции

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Библиографическое описание:

Аверченко, А. П. Особенности работы с приемопередатчиком NRF24L01+ / А. П. Аверченко, А. А. Лыжин, Н. В. Седнев, М. Д. Новиков. — Текст : непосредственный // Технические науки в России и за рубежом : материалы VII Междунар. науч. конф. (г. Москва, ноябрь 2017 г.). — Москва : Буки-Веди, 2017. — С. 39-42. — URL: https://moluch.ru/conf/tech/archive/286/13143/ (дата обращения: 18.12.2024).



В статье приведен обзор и особенности работы с популярным однокристальным цифровым приемопередатчиком NRF24L01+.

Ключевые слова: NRF24L01+, беспроводная сеть, приемопередатчик

В настоящее время с функционированием беспроводных технологий передачи данных используют целые сети цифровых устройств различных масштабов: от глобальных мобильных сетей сотовой связи до локальных, которые необходимы для взаимодействия самодельных радиолюбительских устройств. Приемопередатчик NRF24L01+ — микросхема радиочастотного трансивера, с помощью которого можно организовать передачу данных, к примеру, для создания удаленного управления и мониторинга устройств на промышленном предприятии. Рабочие частоты связи приемопередатчика 2.400–2.4835 ГГц [1]. Частота рабочего канала может изменяться, доступно 126 каналов шириной менее 1 МГц при использовании трансивера на скорости передачи 250 кБит/с. При максимальной скорости передачи ширина канала может превышать 1 МГц. Несмотря на качественную документированность микросхемы, задача сопряжения ее с микроконтроллером имеет свои особенности. Среди радиолюбителей широко распространены модули с распаянной микросхемой, необходимой обвязкой и антенной, это обусловлено низким энергопотреблением модуля и низкой ценой. Модуль приемопередатчика представлен на рисунке 1.

nrf.jpg

Рис. 1. Приемопередатчик NRF24L01+

В приемопередатчик входят: передатчик с программируемой выходной мощностью, приемник с малошумящим усилителем, синтезатор частот, блок управления питанием, блок для связи с микроконтроллером, позволяющий обмениваться данными по интерфейсу SPI [2]. Прием и передача данных может осуществляться с разной скоростью: 250 кБит/с, 1 Мбит/с, 2 Мбит/с. Однако, при более высокой скорости передаче данных увеличивается вероятность появления коллизий (одновременной передачи данных несколькими трансиверами).

Управление приемопередатчиком осуществляется посредством микроконтроллера по интерфейсу SPI.

Приемопередатчик может находиться в четырех состояниях: выключенном, режиме бездействия, режимы приема и передачи. Так же микросхема NRF24L01+ имеет режимы энергосбережения. Напряжение питание модуля 1.9–3.6 В, рекомендуемое — 3.3В. Максимальный ток потребления в режиме передачи 11.3 мА, в режиме приема — 12.3 мА. Стоит отметить, что у микросхемы приемопередатчика входы интерфейса SPI толерантны к напряжению 5 В. Это является неоспоримым преимуществом при использовании отладочных плат с различными напряжениями логических уровней.

Стоит отметить, что для стабильной работы трансивера необходима дополнительная установка на отладочную плату двух конденсаторов между выводами VCC и GND: конденсатор в SMD корпусе емкостью 0,1 мкФ, электролитический конденсатор емкостью не менее 10 мкФ на напряжение 10 В. В противном случае возможна некорректная работа приемопередатчика в режиме передачи.

Приемопередатчик имеет собственный аппаратно-реализованный протокол обмена Enhanced ShockBurst™, который гарантирует надежный обмен данными. Данный протокол является усовершенствованным протоколом ShockBurst™. Основным отличием усовершенствованного протокола является возможность простой и эффективной передачи данных с обратной связью. Таким образом, в трансивере аппаратно реализована отправка подтверждения приема пакета. В противном случае передача пакета повторяется. Использование вышеупомянутой функции позволяет снизить нагрузку с управляющего микроконтроллера, сняв с него задачу анализа потерянных пакетов. Также данный протокол удобен для передачи данных в режиме «точка-точка» или создания беспроводной сети топологии «звезда».

Все данные, передаваемые по беспроводной сети, представляют собой пакеты из 49 байт. Из них 32 байт зарезервированы для полезной нагрузки, остальные 17 байт являются служебными.

Зачастую необходимо передать как можно больше данных, не беспокоясь о количестве ошибок и потерянных пакетов (например, при передаче изображений или аудио). Это обусловлено тем, что при потери нескольких пакетов данных во время передачи изображений, видео или аудио потоков ухудшение качества данных не влияет на информативность. Для этого используется протокол ShockBurst™. При использовании данного протокола биты контроля пакета не передаются, а контрольная сумма может не передаваться, что увеличивает скорость передачи данных до 2 Мбит/с но снижает надежность безошибочной передачи данных. Структурная схема ShockBurst™ представлена на рисунке 2. Первая часть пакета содержит стартовые биты, которые необходимы для стабилизации приемника. Далее — адрес по которому направлен пакет данных. Следом идет полезная нагрузка размером до 32 байт. Заключительной частью пакета является его контрольная сумма.

C:\Users\Shahmen\Desktop\Статья1\Ненадежный протокол.jpg

Рис. 2. Структура сетевого пакета протокола ShockBurst™

В других ситуациях требуется надежная передача пакетов, что гарантирует усовершенствованный протокол Enhanced ShockBurst™. При передаче по этому протоколу увеличивается адрес, все биты контроля пакета передаются, и дополнительно передается девять бит идентификации пакета. Первые 2 бита используются как двухразрядный двоичный счетчик, значение которого увеличивается на 1 при приеме каждого пакета. Данный счетчик позволяет отслеживать верную очередность приема пакетов данных. Остальные семь бит в трансивере NRF24L01+ не используются и зарезервированы под будущие продукты. Таким образом, пакет данных переданный по протоколу Enhanced ShockBurst™, увеличивается на 9 бит. Благодаря тому, что процессор Enhanced ShockBurst™ выполняет все высокоскоростные операции канального уровня исключается потребность в частом обращении управляющего микроконтроллера к трансиверу. Порядок действия приемника и передатчика следующая. Анализируя принятые пакеты приемник определяет, от какого передатчика пришел данный пакет. Если приемник успешно принимает и идентифицирует пакет, он отправляет пакет подтверждения на адрес, от которого он получил пакет. Если передатчик не получает пакет подтверждения, он отправляет пакет повторно.

Проблема в том, что при использовании протокола Enhanced ShockBurst™ NRF24L01+ работает на более низкой скорости (до 256 Кбит/с), хотя размер полезной нагрузки остается постоянным. Структурная схема Enhanced ShockBurst™ представлена на рисунке 3.

Рис. 3. Структура сетевого пакета протокола Enhanced ShockBurst™

По умолчанию на приемопередатчике NRF24L01+ установлен режим Enhanced ShockBurst. Чтобы его отключить и перейти на режим ShockBurst необходимо включить бит NO_ACK.

Набор функций, реализуемых модулем NRF24L01+, поддерживается библиотекой Mirf. Библиотека подключается к основному проекту и инициализируется в прошивке управляющего микроконтроллера.

Функция init() инициализирует модуль, устанавливает значения для настраиваемых контактов и инициализирует интерфейс SPI. Синтаксис: Mirf.init(). Параметров нет.

Функция setRADDR() устанавливает адрес получателя. Синтаксис: Mirf.setRADDR(byte *addr). Параметр: addr — адрес получателя.

Функция setTADDR() устанавливает адрес отправителя. Синтаксис: Mirf.setTADDR(byte *addr). Параметр: addr — адрес отправителя.

Функция config() устанавливает определенные в параметрах номер канала Mirf.channel и емкость буфера Mirf.payload. Свойствам channel и payload класса Mirf должны быть присвоены соответствующие значения до исполнения функции. Синтаксис: Mirf.config(). Параметров нет.

Функция dataReady() определяет, есть ли данные для получения. Синтаксис: Mirf.dataReady(). Параметров нет. Возвращаемые значения: true — есть данные для получения; false — нет данных для получения. Так как мы не знаем точного времени передачи информации, то необходимо циклично проверять наличие пакетов в эфире с помощью данной функции.

Функция getData() получает данные из буфера размером Mirf.payload. Синтаксис: Mirf.getData(byte *data). Параметр: data — указатель на массив для получения данных.

Функция send() отправляет данные. Синтаксис: Mirf.send(byte *data). Параметр: data — указатель на массив данных.

Функция isSending() определяет, отправляются данные или нет. Синтаксис: Mirf.isSending(). Параметров нет. Возвращаемые значения: true —– данные отправляются; false — данные не отправляются.

Приведенный код реализует инициализацию приемопередатчика, прием и передачу пакета:

Mirf.spi = &MirfHardwareSpi; /*Подключение SPI драйвера*/

Mirf.init(); /*Установка пинов*/

Mirf.setRADDR((byte *)"serv1"); /*Задаём адрес приёмника.*/

Mirf.payload = sizeof(unsigned long); /*Устанавливаем размер полезной нагрузки*/

Mirf.config(); /*Включаем приём*/

byte data[Mirf.payload]; /*Приёмный буфер*/

if(!Mirf.isSending() && Mirf.dataReady()){ /*Если пакет получен*/

Mirf.getData(data); /*Загружаем пакет в буфер*/

Mirf.setTADDR((byte *)"clie1");

Mirf.send(data); }/*Отправляем данные назад клиенту*/

Благодаря низкой цене, трансивер NRF24L01+ можно встретить во множестве проектов. Данные трансиверы широко применяются в элементах умного дома, системах передачи телеметрии с квадрокоптеров. При подключении к чипу дополнительных усилителей существую возможность увеличить дальность связи до тысячи метров. Увеличение дальности работы приемопередатчика может способствовать применению его в самоорганизующихся масштабируемых сетях. Таким образом, с использованием расширенного протокола передачи данных, учитывая особенности работы трансивера, мы можем добиться надежной и быстрой передачи данных на большие дистанции.

Литература:

  1. Nordic Semiconductor, Техническая характеристика nRF24L01 — Отто Нилсенс. — 2007. — 74 c.
  2. Лихолетова М. В., Устюгов В. А. Технический обзор микросхемы приемопередатчика nRF24L01+ // Международный научный журнал «Juvenis Scientia». СПб: Издательство «Социально-гуманитарное знание». — 2016. № 6. С.4–5.
Основные термины (генерируются автоматически): SPI, данные, пакет, передача данных, полезная нагрузка, параметр, синтаксис, управляющий микроконтроллер, усовершенствованный протокол, функция.

Ключевые слова

беспроводная сеть, NRF24L01+, приемопередатчик

Похожие статьи

Особенности программирования микроконтроллера GPS-модуля A9G

В статье автор рассматривает особенности программирования модуля Ai-Thinker A9G для работы в качестве GPS датчика для автономных навигационных систем.

О возможности замены стандарта ARINC 429 на AFDX

В статье рассмотрена возможность замены традиционных линий передачи данных между бортовым оборудованием воздушного судна на перспективный стандарт ARINC 664 часть 7 (AFDX).

Использование микроконтроллеров широкого применения для разработки устройств аудиообработки

В статье рассматривается вопрос, о возможности использования микроконтроллеров (далее MCU) широкого применения, построенных на базе ядер Arm ®Cortex ® M, в сфере цифровой обработки сигнала (далее DSP). На примере устройства, обработки аналогово звуко...

Беспроводные электронные табло для крупных компаний розничной торговли

В статье авторы исследуют способы управления информацией на полках магазинов при помощи электронных табло (ценников). Проанализированы преимущества и недостатки.

Система управления активно управляемой газомагнитной опорой

В данной статье рассмотрена программная реализации системы управления активно управляемой газомагнитной опорой с использованием встраиваемого контроллера SBRIO-9636 под управлением Labview.

Использование модулей на основе Bluetooth 4.0 BLE для реализации удаленного сбора данных со счетчиков энергоресурсов

Рассмотрена задача снятия показаний со счетчиков бытовых энергоресурсов. Проанализированы существующие решения. Предложено использование модулей на основе технологии Bluetooth 4.0 BLE.

Реализация метода прямого цифрового синтеза гармонического сигнала на платах Altera DE2–115 и Data Conversion HSMC

В статье авторы реализуют метод прямого цифрового синтеза гармонических сигналов на платах Altera DE2–115 и Data Conversion HSMC.

Исследование интерфейсов радиодоступа в сетях 5G

В данной работе рассматриваются принципы построения радиоинтерфейса в сетях подвижной связи пятого поколения на основе базовых станций gNB.

Разработка LED CUBE 8*8*8

В данной статье рассматривается разработка электронного устройства LED CUBE 8*8*8, с возможностью вывода анимации, графики и текстовой информации.

Устройства ввода информации с малым энергопотреблением

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

Похожие статьи

Особенности программирования микроконтроллера GPS-модуля A9G

В статье автор рассматривает особенности программирования модуля Ai-Thinker A9G для работы в качестве GPS датчика для автономных навигационных систем.

О возможности замены стандарта ARINC 429 на AFDX

В статье рассмотрена возможность замены традиционных линий передачи данных между бортовым оборудованием воздушного судна на перспективный стандарт ARINC 664 часть 7 (AFDX).

Использование микроконтроллеров широкого применения для разработки устройств аудиообработки

В статье рассматривается вопрос, о возможности использования микроконтроллеров (далее MCU) широкого применения, построенных на базе ядер Arm ®Cortex ® M, в сфере цифровой обработки сигнала (далее DSP). На примере устройства, обработки аналогово звуко...

Беспроводные электронные табло для крупных компаний розничной торговли

В статье авторы исследуют способы управления информацией на полках магазинов при помощи электронных табло (ценников). Проанализированы преимущества и недостатки.

Система управления активно управляемой газомагнитной опорой

В данной статье рассмотрена программная реализации системы управления активно управляемой газомагнитной опорой с использованием встраиваемого контроллера SBRIO-9636 под управлением Labview.

Использование модулей на основе Bluetooth 4.0 BLE для реализации удаленного сбора данных со счетчиков энергоресурсов

Рассмотрена задача снятия показаний со счетчиков бытовых энергоресурсов. Проанализированы существующие решения. Предложено использование модулей на основе технологии Bluetooth 4.0 BLE.

Реализация метода прямого цифрового синтеза гармонического сигнала на платах Altera DE2–115 и Data Conversion HSMC

В статье авторы реализуют метод прямого цифрового синтеза гармонических сигналов на платах Altera DE2–115 и Data Conversion HSMC.

Исследование интерфейсов радиодоступа в сетях 5G

В данной работе рассматриваются принципы построения радиоинтерфейса в сетях подвижной связи пятого поколения на основе базовых станций gNB.

Разработка LED CUBE 8*8*8

В данной статье рассматривается разработка электронного устройства LED CUBE 8*8*8, с возможностью вывода анимации, графики и текстовой информации.

Устройства ввода информации с малым энергопотреблением

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