Реализация беспроводного канала управления при помощи встраиваемых радиомодулей 433МГц STM32F4

Print Friendly, PDF & Email

 Реализация беспроводного канала управления при помощи встраиваемых радиомодулей 433МГц STM32F4

Здесь мы расскажем, как мы реализовали с применением процессора АРМ STM32 управление и передачу информации по беспроводному каналу данных с амплитудной модуляцией. Рассмотрим основные аспекты передачи данных по беспроводному каналу связи на частоте 433.92 МГц. В дополнение к этому был реализован графический анализатор сигнала, для принимающего и передающего модуле на плате STM32F4 – Discovery.  Полетели!

Оглавление

Введение. 2

1.         Радиомодули  MP433. 3

2.         Отладочная плата STM32F429iDISCO.. 4

3.         Беспроводной канал связи 433 МГц. 6

3.1 Подключение радиомодулей. 6

3.2 Прошивка. 9

3.3 Проверка работы канала. 10

4.         Оценка эффективности и выводы.. 12

5.         Кодирование и передача информации. 14

6.         Вывод. 18

7.         Список используемой литературы.. 18

Введение

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

 Рис.1. Пример системы с большим количеством кабелей

1.     Радиомодули  MP433

В качестве встраиваемых в устройства модулей предполагается использовать комплект из передатчика и приемника диапазона 433МГц. Комплект изначально предназначен для построения систем на базе микроконтроллера Arduino, может использоваться для проектов управления авто и авиа моделями, проектов охраны и автоматики, для построения беспроводных датчиков и исполнительных реле, дистанционного управления электроприборами до 150м. Внешний вид представлен на рисунках 2 и 3.

 

mhtml:file://C:\Users\Alexander\Desktop\ключи%20от%20шлагбаума\Arduino%20и%20радиомодули%20433%20МГц.mht!http://www.radio-magic.ru/images/articles/arduino/trans.jpg

Рисунок 2. Передатчик

Характеристики передатчика:

·        напряжение — от 3 до 12 В;

·        мощность на выходе — 32 мВт;

·        рабочий ток — 8мА;

·        скорость передачи данных — 8 кб/сек;

·        рабочие температуры — от -20 до 80 градусов С.

 

Приемник 433 МГц

Рисунок 3. Приёмник

Характеристики приёмника:

·        напряжение:  5 В;

·        ток: 5,5 мА;

·        рабочая частота: 315-433 МГц;

·        скорость приема 9,6 кб/сек.

Для улучшения качества и дальности приёма к модулю также припаяна антенна длиной 17 см.(1/4 длины волны).

2.     Отладочная плата STM32F429iDISCO

STM32F429iDISCO – отладочная плата из линейки Discovery от STMicroelectronics на базе высокопроизводительного микроконтроллера STM32F429ZIT6U. Внешний вид платы представлен на рисунке 4.

STM32F429I-DISCO-5

Рисунок 4. Отладочная плата

Отличительные особенности:

·        микроконтроллер STM32F429ZIT6U, 2 МБ Flash, 256 КБ RA,, корпус LQFP-144;

·        встроенные ST-LINK/V2;

·        SWDинтерфейс;

·        2,4”QVGA TFT LCD дисплей с сенсорной панелью;

·        64 Мбит SDRAM;

·        MEMS датчик L3GD20;

·        6 светодиодов;

·        2 кнопки;

·        разъем USB OTG Micro-AB;

·        порты MK вынесены на внешние штыревые разъемы.

 

3.     Беспроводной канал связи 433 МГц

3.1 Подключение радиомодулей

Рассмотрим подробнее подключение радиомодулей к отладочной плате (рис. 5). Каждый модуль имеет вывод на антенну и три вывода, подключаемых к плате: питание (1), данные (2 и 3), земля (4). Питание и земля подключены к соответствующим пинам на плате. Для определения пинов приема и передачи данных использована программа STM32CubeMX  (рис. 6).

untitled

IMAG1371

Рисунок 5. Подключение радиомодулей

Связь между радиомодулями  и микроконтроллером организована через периферийный интерфейс USART (Universal Synchronous/Asynchronous ReceiverTransmitter), сконфигурированный в режиме UART5. Передающий модуль подключен к пину PC12 (3), настроенному на передачу данных по USART, приёмник к пину PD2 (2), настроенному соответственно на приём.

Рисунок 6.  STM32CubeMX.

 

 

3.2 Прошивка

Написание кода, прошивка платы и отладка работы выполнены в программе Keil uVision5.

Перед реализацией главной функции необходимо ввести несколько вспомогательных.  Во-первых, провести инициализацию USART в режиме USART5 . Важно, что приём и передача данных приходятся на разные порты (PC и PD), так что нужно инициализировать их оба. Также необходимо разрешить прерывания по приёму  (см. приложение 1). Во-вторых, реализовать временную задержку, работу пользовательской кнопки и прерывания по приёму (см. приложение 2).

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

 

3.3 Проверка работы канала

Чтобы убедиться в работоспособности канала в функцию, отвечающей за прерывания по приему (UART5 IRQ, приложение 2) добавлены функции изменения состояния светодиодов. Таким образом, при приеме любых данных свое состояние будет изменять светодиод №3, а при приеме значения, заданного вручную, состояние изменит светодиод №4. Это позволяет определить, происходит ли прием сторонних сигналов, данных, передаваемых с передатчика, и не теряется ли информация при передаче.

Непосредственно саму последовательность импульсов можно пронаблюдать, подключив осциллограф к выходу приёмника.  При отпущенной кнопке (передача не ведется, мигает только светодиод №3) можно увидеть сигналы, распространяющиеся в среде от других источников (рис. 7). Последовательность импульсов, принимаемая от нашего передатчика (кнопка зажата, мигают оба светодиода)  представлена на рисунке 8.

LeCroy14

Рисунок 7. Сигналы неизвестных источников

LeCroy12

Рисунок 8.  Заданная последовательность импульсов

 

4.     Оценка эффективности и выводы

Чтобы оценить эффективность канала, необходимо сравнить число импульсов, принятых от передатчика с числом отправленных. Для этого введены две дополнительные переменные (count_tx  и count_rx). Первая увеличивается на 1 каждый раз, когда происходит отправка пакета данных, а вторая, когда принимается определенное значение из пакета. Значение переменных в определенный момент времени можно определить, зайдя в отладчик Keil uVision5, вкладка Debug, окно Watch (рис. 9).

Рисунок 9. Значения переменных count_tx  и count_rx

Эффективность приёма изменяется в зависимости от скорости передачи и задержки между импульсами. Опытным путем получены примерные оптимальные значения – скорость передачи 4кбит/сек (половина максимальной скорости передачи), задержка между импульсами 5 мс. При этом принято 99.5% переданных данных.

Рассмотрено подключение радиомодулей MP433 к отладочной плате STM32F429i-DISCO и передача по ним данных, организованная через периферийный интерфейс USART, сконфигурированном в режиме UART5. Данный способ является наиболее простым вариантом реализации, подходящим для ознакомления с принципами работы и решения простых задач, но имеет ряд недостатков.

При подключении осциллографа к выходу приемника на экране наблюдался непрерывный поток данных, среди которых проходили данные, отправляемые с передатчика. Так как радиомодули работают на частоте      433 МГц, имеющей широкое распространение, то количество сторонних сигналов может быть очень велико, особенно в городской среде. При расположении приемника и передатчика в непосредственной близости друг от друга наблюдались искажения и ошибки. При отдалении модулей на расчетное рабочее расстояние (до 100 – 150 м), а так же при появлении других источников, работающих на частоте близкой к 433 МГц, влияние сторонних сигналов возрастет, что может привести к значительным потерям информации. Из этого следует, что при организации беспроводной системы управления основной задачей является создание протокола, позволяющего вести гарантированную и безопасную передачу данных извлекать из потока данных нужную информацию и игнорировать стороннюю.

Подобный фильтр можно реализовать через периферийный интерфейс USART, путем создания дополнительных библиотек, в которых будет организованы синхронизация работы модулей, включение основного обработчика данных только на прием данных с передатчика, кодирование сигнала. В среде Arduino для всего этого уже есть специальная библиотека — VirtualWire, находящаяся в свободном доступе. Взяв из нее некоторые идеи и алгоритмы, была создана новая библиотека, соответствующая требованиям для работы с системами управления, а также позволяющая вести контроль работы радиомодулей. Библиотека написана на языке Си для работы с микроконтроллерами серии STM32F4xx.

5.     Кодирование и передача информации

Программа содержит особенности, необходимые для организации передачи по беспроводным каналам связи, использующим амплитудную модуляцию (Рис. 10), небольших сообщений, без адресации, ретрансляции и подтверждения. Поддерживает работу с рядом распространённых недорогих радиомодулей. В библиотеке не используется интерфейс USART. Приемникам, работающим с амплитудной модуляцией, необходима подготовительная пачка импульсов (преамбула) для синхронизации  приемника и передатчика, а также хороший баланс сигнала по постоянному току (DC баланс). USART не позволяет достичь этого. Он работает с амплитудной модуляцией, но не так хорошо, как представленная библиотека.

Рис. 10. Амплитудная модуляция

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

Сообщение передается вместе с преамбулой,  информацией о длине и контрольной суммой, а для достижения лучшего DC баланса кодируется методом 4-to-6 bit. Контрольная сумма для проверки целостности данных рассчитывается по алгоритму CRC (Cyclic redundancy check).

Каждое сообщение передается как пакет импульсов (рис.11) содержащий:

·       36 бит — преамбула, состоящая из 16 пар 0 и 1 (1);

·       12 бит стартового символа, на примере 0xb38 (000111001101) (2);

·       1 байт – длина сообщения (1 + n + 2; от 4 до 30 байт) (3);

·       n-байт данных – передаваемая информация (от 1 до 27 байт) (4)

·       2 байта контрольной суммы (5).

LeCroy22

 

 

Рис. 11. Передаваемый пакет импульсов

Длина сообщения в примере составляет 5 байт, в том числе 2 байта переданной информации – два символа, “0” и “1” (0x30 и 0x31). Максимальная длина пакета составляет 36+12+(1+27+2)*2*6 =408 бит. Все, что следует за стартовым символом, кодируется методом 4-to-6 bit. Это означает, что каждый байт кодируется как 2 6-битных символа (старшая группа и младшая группа). В каждом символе первым идет младший значащий бит (LSBit). 

Исходя из задаваемой скорости передачи данных (1 — 8 kbit/s) устанавливается таймер-счетчик таким образом, чтобы на время передачи одного бита информации приходилось 8 срабатываний этого счетчика (рис. 12).

LeCroy20

Рис. 12. Периоды срабатывание счетчика

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

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

IMAG1434

Рис. 13. Рабочий экран в режиме синхронизации.

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

Рис. 14. Значения переменных

Таким образом, благодаря использованию дополнительных алгоритмов достигнута работа радиоканала, при которой данные передаются без потерь на максимальной скорости работы передатчика (8 kbit/s).

6.    Вывод

Результатом работы является функционирующий радиоканал, использующий амплитудную модуляцию и работающий на частоте 433.92 МГц, который может применяться для управления многоэлементными устройствами и системами на расстояниях до 150 метров и их удаленного контроля.

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

7.    Список используемой литературы

1.                Олифер В.Г., Олифер Н.А. Основы компьютерных сетей – Издательство Питер, 2009.

2.                Cortex-M Series from ARM.com –  http://www.arm.com/products/processors/cortex-m.

3.                Cortex-M4 Technical Reference Manual.

4.                Лекция «Модуляция и кодирование» — http://www.cs.vsu.ru/~kas/doc/infonets/infonets04.pdf




Previous Запись

STM32F4 Начнем программировать CubeMX!

STM32F4 Начнем программировать! В этой статье мы покажем, какой ... Read more

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (3 оценок, среднее: 5,00 из 5)
Загрузка...

13 thoughts on “Реализация беспроводного канала управления при помощи встраиваемых радиомодулей 433МГц STM32F4”

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

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

*

© 2014-2024 ElectroProg Все права защищены!

↓
↓