Ранее авторами было проведено исследование, посвященное разработке программного обеспечения электронного устройства, являющегося компонентом системы «Умный дом» и реализующего методологию Internet of Energy путем управления энергопотреблением в данной системе [1]. Указанное программное обеспечение позволяет организовать управление микроконтроллером с помощью команд, передаваемых ему разными способами, в том числе посредством ввода URL адреса в веб-браузере устройства, подключенного к общей с микроконтроллером Wi-Fi сети.
Однако на сегодняшний день наиболее распространенным стандартом локальных сетей является технология Ethernet. Общее количество сетей, использующих в настоящее время Ethernet, оценивается в 5 миллионов, а количество компьютеров, работающих с установленными сетевыми адаптерами Ethernet, – в 50 миллионов [2]. В качестве преимуществ данной технологии можно выделить следующие:
- высокая скорость обмена данными (возможность одиночной, групповой, циркуляционной передачи);
- децентрализация работы абонентов и адаптация загруженности канала;
- стандартизация и сертификация;
- простота аппаратной реализации;
- широкая аппаратно-программная поддержка.
Таким образом, исследование, посвященное разработке модуля, который позволит практически любому электронному устройству получить возможность подключения к локальной вычислительной сети Ethernet и тем самым организовать процессы удаленных измерений и контроля электронных устройств, в состав которых будет входить данный модуль, является актуальным.
Цель исследования: разработка универсального модуля, предназначенного для работы в составе электронных устройств и способного осуществлять обмен данными по интерфейсу Ethernet с использованием протокола HTTP. Далее будем называть этот модуль универсальным модулем. Он должен получать и обрабатывать информацию, поступающую по каналу Ethernet, с целью ее последующей обработки, вывода или хранения на другом локальном контроллере, управляющем модуле или компьютере.
Для достижения указанной цели необходимо решить следующие задачи:
- разработать структурную и функциональную схемы универсального модуля;
- произвести подбор комплектующих и разработать принципиальную схему универсального модуля;
- подобрать специализированное программное обеспечение, предназначенное для автоматизации процесса разработки универсального модуля;
- разработать физический макет и встроенное программное обеспечение универсального модуля;
- выполнить вычислительные эксперименты, подтверждающие работоспособность разработанного универсального модуля на физическом макете.
Материалы и методы исследования
На первом этапе исследования была создана структурная схема универсального модуля (рис. 1), которая отображает принцип его действия в наиболее общем виде. Далее опишем блоки, представленные на данной структурной схеме.
Рис. 1. Структурная схема универсального модуля в составе электронного устройства
Основным блоком на данной схеме является блок «Электронное устройство № 1», в состав которого входит разрабатываемый модуль. Следует отметить, что необходимым условием, позволяющим интегрировать универсальный модуль в состав электронного устройства, является наличие у данного устройства интерфейса UART [3], с помощью которого оно будет взаимодействовать с универсальным модулем. Блок «Электронное устройство № 2» является приёмником передаваемой от универсального модуля информации.
На основе структурной схемы была разработана функциональная схема (рис. 2), которая поясняет, как организована передача информации между узлами универсального модуля.
Рис. 2. Функциональная схема универсального модуля в составе электронного устройства
На вход управляющего микроконтроллера через систему ввода-вывода поступает информация от программируемого блока электронного устройства, частью которого является универсальный модуль.
Поступившую от программируемого блока информацию управляющий микроконтроллер отправляет в блок преобразования интерфейсов. Этот блок выполняет трансляцию данных, поступающих через интерфейс UART в форму, пригодную для передачи по интерфейсу Ethernet и в обратном направлении. Таким образом, данный блок обеспечивает подключение устройств, оснащенных последовательным UART-интерфейсом, к сети Ethernet.
После завершения этапов разработки структурной и функциональной схем был выполнен подбор комплектующих для универсального модуля. Главным элементом разрабатываемого универсального модуля является управляющий микроконтроллер. В качестве такого контроллера был выбран микроконтроллер AVR ATmega328 [4, 5], который по совокупности своих параметров наилучшим образом подходит для управления периферийными устройствами универсального модуля. Выбор данной модели микроконтроллера осуществлялся в соответствии с приведенными ниже требованиями:
- наличие минимально необходимого состава внутренних устройств: таймеры, АЦП, порты параллельного и последовательного ввода-вывода данных;
- наличие средств, обеспечивающих процедуру отладки систем, реализуемых на базе микроконтроллера;
- наличие служебных устройств, которые позволяют облегчить процесс разработки и повышают надежность работы локального контроллера (например, встроенный генератор тактовых импульсов, сторожевой таймер, схема контроля напряжения питания);
- наличие внутренней flash-памяти программ, которая обеспечивает возможность загрузки и хранения необходимого системного и прикладного программного обеспечения объемом не менее 32 Кбайт.
Поскольку Ethernet является достаточно сложным интерфейсом, а Ethernet-микросхемами практически невозможно управлять с помощью микроконтроллера с небольшим объемом памяти, оптимальным решением данной задачи является применение Ethernet-адаптера ENC28J60 [6], который был выбран для реализации функции преобразования интерфейса UART в интерфейс Ethernet в составе универсального модуля.
Взаимодействие управляющего микроконтроллера Atmega328 со специализированным микроконтроллером ENC28J60 организовано с помощью интерфейса SPI (последовательный синхронный стандарт передачи данных в режиме полного дуплекса) [7].
На следующем этапе исследования был выполнен подбор специализированного программного обеспечения, предназначенного для автоматизации процесса разработки универсального модуля. В качестве основы для создания встроенного программного обеспечения универсального модуля была выбрана среда разработки Arduino. Данный выбор обусловлен открытостью указанной платформы, а также доступностью средств разработки и простотой ее освоения.
Таким образом, программирование микроконтроллера выполнено на языке Arduino в одноименной среде разработки. Следует отметить, что реализованные на Arduino проекты электронных устройств могут как взаимодействовать с программным обеспечением, установленным на компьютере, так и работать самостоятельно.
Кроме того, для проектирования принципиальной схемы и наглядного представления электронного макета устройства был использован пакет программ PROTEUS VSM [8]. Он представляет собой систему схемотехнического моделирования, которая базируется на моделях электронных компонентов.
После того как был определен набор комплектующих, используемых для разработки универсального модуля, с помощью PROTEUS VSM была построена его электрическая принципиальная схема, представленная на рис. 3.
Рис. 3. Принципиальная схема универсального модуля
Выбранный микроконтроллер ATMEGA328P-PU установлен на специализированную макетную плату Arduino Uno. Управление микроконтроллером осуществляется с использованием интерфейса UART на скорости 38400 бод.
Устройства, реализованные на базе Arduino, имеют возможность принимать данные о параметрах окружающей среды, получаемые с использованием различных датчиков. Поэтому в качестве экспериментального устройства, выполняющего функции источника данных, был использован цифровой датчик температуры и влажности DHT11. Этот датчик вырабатывает аналоговые сигналы, имеющие вид зависимости электрического напряжения или тока от времени, которые подвергаются аналого-цифровому преобразованию и поступают на вход микроконтроллера. Таким образом, этот датчик имитирует поток данных, поступающих от электронного устройства, частью которого является универсальный модуль.
Система команд, разработанная для универсального модуля и позволяющая управлять устройством, в состав которого входит универсальный модуль, представлена в таблице.
Разработанная система команд
Команда |
Расшифровка |
Описание |
#ss(c[]) |
Set Server (Адрес сервера) |
Данная команда выполняет замену значения переменной, содержащей данные об адресе сервера на информацию, заданную внутри круглых скобок |
#sp(i) |
Set Port (Адрес порта) |
Данная команда выполняет замену значения переменной, содержащей данные о порте сервера на информацию, заданную внутри круглых скобок |
#sr(c[]) |
Send Request (Запрос, передаваемый на сервер) |
Данная команда передает запрос, заданный внутри круглых скобок, на сервер |
#cc |
Connect |
Данная команда передает микроконтроллеру задание подключиться к серверу |
#dc |
Disconnect |
Данная команда передает микроконтроллеру задание отключиться от сервера |
Результаты исследования и их обсуждение
Для выполнения тестирования и демонстрации работоспособности разработанного модуля был создан физический макет, включающий три персональных компьютера и Wi-Fi роутер. К одному из компьютеров был подключен прототип разработанного универсального модуля. Два других компьютера выполняли роли принимающих устройств, отображающих полученные данные. Они были соединены с роутером посредством коммутационных кабелей.
Тестовая программа, разработанная для устройства, принимающего данные по интерфейсу Ethernet, реализует функцию TCP сервера. Она осуществляет «прослушивание» указанного пользователем порта и отображение полученных и преобразованных данных на экране электронного устройства, выступающего в роли приемника информации.
На принимающих устройствах были запущены TCP-серверы, ожидающие подключения универсального модуля. Процесс подключения включает несколько этапов. На первом этапе с управляющего компьютера необходимо передать команду #ss(…), которая выполнит замену адреса сервера на значение, указанное в скобках в качестве параметра данной команды. На следующем этапе необходимо передать команду #sp(…), которая аналогично предыдущей команде осуществит замену данных об используемом порте сервера на указанное в скобках значение. На последнем этапе нужно установить соединение с сервером, передав команду #cc. При этом необходимо осуществить запуск серверов на принимающих устройствах, нажав кнопку «Start». Соответствующая последовательность вводимых команд, использованная в процессе тестирования, отображена на рис. 4.
Рис. 4. Окно управления параметрами соединения
Рис. 5. Отображение данных, переданных от универсального модуля на сервер
Результат успешной передачи данных на принимающие устройства при применении разработанного универсального модуля будет получен всего через несколько секунд. Вид окна интерфейса сервера для рассматриваемого тестового случая приведен на рис. 5.
Заключение
Таким образом, в результате проведенного исследования была разработана структура и электрическая принципиальная схема универсального модуля, построенного на базе современного 8-разрядного микроконтроллера с RISC-архитектурой, входящего в состав аппаратной платформы Arduino. Выбор данной архитектуры обусловлен тем, что широкий набор команд и способов адресации в микроконтроллерах этого класса существенно облегчает создание эффективных прикладных программ. Достаточно высокая производительность процессора и значительный объем внутренней памяти, а также набор периферийных и служебных устройств, входящих в состав разработанного универсального модуля, обеспечивают широкие возможности для получения, обработки и передачи данных. Наличие эффективных средств программирования и отладки упрощает и ускоряет процесс создания необходимого программного обеспечения.
Конечным результатом проведенного исследования является разработка универсального модуля, представляющего возможность принимать, обрабатывать и передавать данные по интерфейсу Ethernet.
В качестве перспектив использования разработанного универсального модуля могут быть рассмотрены различные проекты, выполняемые в ряде организаций промышленного и технологического производства, ЖКХ, организации системы охраны и контроля доступа, автоматизации зданий и многое другое.