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

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

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

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

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

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

Алгоритм формирования пакетов данных для передачи по...

Полезная информация. Спецвыпуски.

Методы оценки качества передачи речевых пакетов при... Данные методы позволят правильно оценить основные параметры качества работы сети NGN.

Сравнение некоторых модификаций протокола TCP с ARTCP

Протокол TCP осуществляет доставку дейтограмм, называемых сегментами, в виде байтовых

В случае потери нескольких пакетов из одного окна отправитель получает новые данные, когда

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

Роль протокола TCP в современных компьютерных сетях.

Аналогичным методом проведем тестирование пропускной способности сети при передаче 100 Мбайт данных по протоколам UDP/IPv4 и...

...(Stream control transport protocol) [5] — транспортный протокол с контролем пакетов. RSTEG размер полезной нагрузки пакета и...

Сравнительный обзор сетевых интерфейсов для коммутации...

В основе этих интерфейсов лежит дифференциальный способ передачи данных, когда

Сообщение в ModBus состоит из адреса (1 байт), кода функции (1 байт), данных (до 252

Автоматизация поиска оптимальных параметров сетевого... Протокол UDP был выбран, т. к...

Аналитический обзор применения сетевой стеганографии для...

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

Разработка и исследование промышленной сети, создание...

– Низкая скорость передачи данных. Протокол RS-485 (Modbus).

Пакет состоит из идентификатора устройства в сети Modbus (ID), кода команды, адреса команды, данных (аргументы функции) и контрольной суммы.

Использование отладочной платы STM32F7 Discovery для...

3) создание/отладка кода программы микроконтроллера для управления устройством.

Рассмотрим отладочную плату производства STM32F7 Discovery для разработки мобильного микропроцессорного кардиомонитора с функцией передачи данных по сети.

Подключение акселерометра, выполненного по MEMS-технологии...

Полезная информация. Спецвыпуски.

Данный акселерометр подключается к микроконтроллеру(МК) по шине SPI, после настройки которой, посылая необходимые данные в регистры, производится установка таких параметров, как: пределы измерения, скорость...

Анализ системы мультиплексирования данных в распределенных...

Полезная информация. Спецвыпуски.

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

...(например «вложение» UDP пакета в пакет протокола IP), на...

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

Алгоритм формирования пакетов данных для передачи по...

Полезная информация. Спецвыпуски.

Методы оценки качества передачи речевых пакетов при... Данные методы позволят правильно оценить основные параметры качества работы сети NGN.

Сравнение некоторых модификаций протокола TCP с ARTCP

Протокол TCP осуществляет доставку дейтограмм, называемых сегментами, в виде байтовых

В случае потери нескольких пакетов из одного окна отправитель получает новые данные, когда

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

Роль протокола TCP в современных компьютерных сетях.

Аналогичным методом проведем тестирование пропускной способности сети при передаче 100 Мбайт данных по протоколам UDP/IPv4 и...

...(Stream control transport protocol) [5] — транспортный протокол с контролем пакетов. RSTEG размер полезной нагрузки пакета и...

Сравнительный обзор сетевых интерфейсов для коммутации...

В основе этих интерфейсов лежит дифференциальный способ передачи данных, когда

Сообщение в ModBus состоит из адреса (1 байт), кода функции (1 байт), данных (до 252

Автоматизация поиска оптимальных параметров сетевого... Протокол UDP был выбран, т. к...

Аналитический обзор применения сетевой стеганографии для...

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

Разработка и исследование промышленной сети, создание...

– Низкая скорость передачи данных. Протокол RS-485 (Modbus).

Пакет состоит из идентификатора устройства в сети Modbus (ID), кода команды, адреса команды, данных (аргументы функции) и контрольной суммы.

Использование отладочной платы STM32F7 Discovery для...

3) создание/отладка кода программы микроконтроллера для управления устройством.

Рассмотрим отладочную плату производства STM32F7 Discovery для разработки мобильного микропроцессорного кардиомонитора с функцией передачи данных по сети.

Подключение акселерометра, выполненного по MEMS-технологии...

Полезная информация. Спецвыпуски.

Данный акселерометр подключается к микроконтроллеру(МК) по шине SPI, после настройки которой, посылая необходимые данные в регистры, производится установка таких параметров, как: пределы измерения, скорость...

Анализ системы мультиплексирования данных в распределенных...

Полезная информация. Спецвыпуски.

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

...(например «вложение» UDP пакета в пакет протокола IP), на...