Измерение параметров производительности микроконтроллера при вводе данных и передаче их по сети | Статья в журнале «Молодой ученый»

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

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

Автор:

Рубрика: Технические науки

Опубликовано в Молодой учёный №45 (492) ноябрь 2023 г.

Дата публикации: 05.11.2023

Статья просмотрена: 50 раз

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

Невзоров, И. А. Измерение параметров производительности микроконтроллера при вводе данных и передаче их по сети / И. А. Невзоров. — Текст : непосредственный // Молодой ученый. — 2023. — № 45 (492). — С. 16-19. — URL: https://moluch.ru/archive/492/107364/ (дата обращения: 16.11.2024).



Предложена методика измерения скорости заполнения буфера при вводе данных и передаче их по сети, основанная на применении сетевых инструментов разработчика в современных браузерах.

Ключевые слова: микроконтроллер, Ethernet, HTTP, скорость передачи данных, скорость заполнения буфера.

Необходимость в некоторых ситуациях исследовать параметры производительности компьютерных систем никуда не пропадает несмотря на всё развитие технологий [1]. Задачей представляемой работы было определение того, что и насколько ограничивает возможности ввода данных в сеть через параллельный порт микроконтроллера:

— собственно конкретный микроконтроллер ATmega2560 и тот его программный код, который занимается вводом данных и их временным накоплением во внутренней оперативной памяти (в буфере);

— сетевой контроллер W5500 с его интерфейсом SPI и тот программный код в ATmega2560, который занимается передачей данных из буфера по 100-мегабитной сети с обычным стеком TCP/IP и HTTP.

Решение второй части задачи было экспериментально получено в [2]. Эксперименты показали, что указанные аппаратные средства позволяют достичь скорости передачи информации не более примерно 2,5 Мбит/с, причем существовавшие тогда версии библиотеки Ethernet [3] для W5500 могли при неудачном выборе размера буфера намного ухудшить скорость.

Рассмотрим далее следующее решение первой части задачи.

  1. Создаем в ATmega2560 тестовый HTTP-сервер. В ответ на запрос GET программа должна будет посылать содержимое буфера известного объема, выделенного в оперативной памяти микроконтроллера:

union int_char {

int i [1024]; // по отсчетам

char ch [2048]; // по байтам

};

int_char transmittedData;

Тип int_char позволяет упростить работу с одним и тем же буфером как с массивом байтов, так и с массивом 16-битовых целых чисел.

  1. Создаем в программе цикл заполнения буфера. Например, в таких вариантах:

— заполнение возрастающими 16-битовыми целыми числами:

for (int m = 0; m < 1024; m++) {transmittedData.i [m] = m;}

— заполнение возрастающими байтами:

for (int m = 0; m < 2048; m++) {transmittedData.ch [m] = m;}

— ввод байтов с параллельного порта:

for (int m = 0; m < 2048; m++) {transmittedData.ch [m] = PINA;}

  1. Создаем внешние циклы и вызов функции передачи буфера в сеть client.write:

for (int k = 0; k < 1000; k++) {

for (int n = 0; n < nmax; n++) { // вводим данные

for (int m = 0; m < 2048; m++) {transmittedData.ch [m] = PINA;}

}

client.write(transmittedData.ch, 2048); // посылаем данные

}

Чтобы повысить точность измерений программа повторяет заполнение и передачу буфера много (1000) раз подряд. Дополнительно можно увеличивать долю операций заполнения, задавая количество внешних циклов заполнения буфера nmax.

  1. Запустив HTTP-сервер, с помощью инструментов разработчика в браузере (рис. 1) измеряем суммарное время многократного заполнения и передачи буфера. Это параметр Content Download (время передачи контента).

Длительности состояний одного запроса GET

Рис. 1. Длительности состояний одного запроса GET

  1. Повторяем измерения для разных nmax от 0 до 10 и строим диаграмму (рис. 2). Нелинейный вид зависимости в начале графика объясняется тем, что функция client.write библиотеки Ethernet возвращает управление основной программе не дожидаясь конца текущей передачи модуля W5500 по сети, а несколько раньше, когда она передала весь буфер в память модуля. За это время успевает отработать примерно один проход внешнего цикла заполнения буфера.
  2. Зная время передачи контента 6,28 c при nmax = 0, и общий объем посланных данных 2048*1000 байт = 2048000 байт = 2048000*8 бит = 16384000 бит, вычисляем скорость передачи данных по сети (16384000 бит)/(6,28 c) = 2,61 Мбит/с. Это значение, ограниченное возможностями модуля W5500 и его программного обеспечения.
  3. Выбираем две точки, расположенные далеко друг от друга, но находящиеся на прямолинейно возрастающем участке диаграммы. Например, здесь это точки с nmax = 2 и nmax = 10.

Время передачи контента в зависимости от количества внешних циклов заполнения буфера nmax

Рис. 2. Время передачи контента в зависимости от количества внешних циклов заполнения буфера nmax

Вычисляем прирост nmax как разность 10–2 = 8. Вычисляем соответствующий прирост времени: 12,63 с — 6,96 с = 5,67 с. Вычисляем время одного внешнего цикла заполнения буфера как отношение приростов: (5,67 с)/8 = 0,709 с.

  1. Зная время 0,709 c и общий объем заполняемых данных 2048*1000 байт = 2048000 байт = 2048000*8 бит = 16384000 бит, вычисляем скорость заполнения буфера (16384000 бит)/(0,709 c) = 23,1 Мбит/с. Это значение, ограниченное возможностями ATmega2560 и программного обеспечения заполнения буфера.
  2. Зная время 0,709 c и общее количество проходов цикла 1024*1000 = 1024000, вычисляем время одного прохода (0,709 c)/1024000 = 692 нс.
  3. Зная время одного прохода 692 нс и тактовую частоту 16 МГц, вычисляем количество тактов на один проход цикла (692 нс)*(16 МГц) = (692 нс)*(0,016 ГГц) = 692*0,016 = 11.

Аналогично были получены параметры для других вариантов заполнения буфера (табл. 1).

Таблица 1

Измеренные параметры производительности микроконтроллера

Цикл заполнения буфера

Возрастающими 16-битовыми целыми числами

Возрастающими байтами

Ввод байтов с параллельного порта

Скорость заполнения буфера, Мбит/с

23,1

14,1

18,1

Скорость заполнения буфера, Мбайт/с

2,89

1,76

2,26

Время одного прохода цикла, нс

692

566

441

Количество тактов на один проход цикла

11

9

7

Количество тактов на один байт данных

5,5

9

7

Литература:

  1. Реальная скорость Wi-Fi (на предприятиях) [Электронный ресурс] // Habr. — URL: https://habr.com/ru/articles/431404/ (дата обращения: 02.11.2023).
  2. Воловач В. И., Будилов В. Н., Есин А. А. Исследование скорости передачи по HTTP при использовании микроконтроллеров ATmega2560 и W5500 // Эволюционные процессы информационных технологий: сборник трудов по материалам 5-й всероссийской научно-технической конференции. — М.: Издательство «Научный консультант», 2020. — С. 101–105.
  3. Ethernet — Arduino Reference [Электронный ресурс] // Arduino. — URL: https://www.arduino.cc/reference/en/libraries/ethernet/ (дата обращения 02.11.2023).
Основные термины (генерируются автоматически): GET, HTTP, PINA, проход цикла, скорость заполнения буфера, время передачи контента, SPI, внешний цикл заполнения буфера, параллельный порт, программный код.


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

микроконтроллер, HTTP, скорость передачи данных, Ethernet, скорость заполнения буфера

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

Интеллектуализация системы обнаружения и предотвращения сбоев в сети

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

Концепция калибровки потока экструдера для 3D-принтеров на базе FDM-технологии на примере модели Anycubic Chiron

В статье описывается концепция и пошаговая методика калибровки потока на экструдерах типа «Боуден» с описанием команд для работы в терминале и изменения конфигуратора прошивки контроллера.

Методы сокращения энергопотребления в беспроводных сетях

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

Подсистема межблочной синхронной передачи данных на основе ПЛИС в комплексах цифровой обработки сигналов

В статье предлагаются методы и средства гарантированного обеспечения синхронной передачи данных между вычислительными блоками, реализованными на ПЛИС. Рассмотрены наиболее вероятные аварийные ситуации для подсистемы передачи данных и предложены спосо...

Модификация архитектуры web-приложения, основанной на паттерне CQRS, для повышения производительности

В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных. Результатом применения архитектуры стало возмо...

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

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

Типовые атаки на DHCP

В статье авторы рассматривают типовые атаки на DHCP и рассказывают о методах обеспечения сетевой безопасности, необходимых для эффективной защиты от угроз. В данной статье меры безопасности моделируются с использованием Cisco Packet Tracer.

Протокол удаленного рабочего стола RDP как способ виртуализации рабочего места

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

Обработка конкурентных транзакций в распределенных системах на примере Java

При разработке программного обеспечения в высоконагруженных системах требуется определить стратегии при одновременных обновлениях. Множество запросов от одинаковых пользователей приводят к конфликтам транзакций на уровне базы данных. Для предотвращен...

Протокол передачи данных для устройства ввода информации

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

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

Интеллектуализация системы обнаружения и предотвращения сбоев в сети

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

Концепция калибровки потока экструдера для 3D-принтеров на базе FDM-технологии на примере модели Anycubic Chiron

В статье описывается концепция и пошаговая методика калибровки потока на экструдерах типа «Боуден» с описанием команд для работы в терминале и изменения конфигуратора прошивки контроллера.

Методы сокращения энергопотребления в беспроводных сетях

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

Подсистема межблочной синхронной передачи данных на основе ПЛИС в комплексах цифровой обработки сигналов

В статье предлагаются методы и средства гарантированного обеспечения синхронной передачи данных между вычислительными блоками, реализованными на ПЛИС. Рассмотрены наиболее вероятные аварийные ситуации для подсистемы передачи данных и предложены спосо...

Модификация архитектуры web-приложения, основанной на паттерне CQRS, для повышения производительности

В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных. Результатом применения архитектуры стало возмо...

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

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

Типовые атаки на DHCP

В статье авторы рассматривают типовые атаки на DHCP и рассказывают о методах обеспечения сетевой безопасности, необходимых для эффективной защиты от угроз. В данной статье меры безопасности моделируются с использованием Cisco Packet Tracer.

Протокол удаленного рабочего стола RDP как способ виртуализации рабочего места

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

Обработка конкурентных транзакций в распределенных системах на примере Java

При разработке программного обеспечения в высоконагруженных системах требуется определить стратегии при одновременных обновлениях. Множество запросов от одинаковых пользователей приводят к конфликтам транзакций на уровне базы данных. Для предотвращен...

Протокол передачи данных для устройства ввода информации

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

Задать вопрос